This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Implement C11/C++11 set of UCNs allowed in identifiers


This patch updates the set of UCNs supported in identifiers for
C11/C++11, so bringing the general state of C11 support to substantial
parity with that of C99 support (done modulo bugs, extended
identifiers corner cases and floating-point issues / optional features
- in the C11 case there are a couple more optional features without
GCC support, Annex K Bounds-checking interfaces where all that would
be needed would be appropriately conditional rsize_t additions to
stddef.h and stdint.h and Annex L Analyzability where rather more work
would be needed to produce a mode, possibly based on ubsan, where
almost all undefined behavior has bounded effects).

C11 and C++11 do at least have the same set of UCNs permitted in
identifiers, whereas C99 and C++98/C++03 differed (C++03 corrected a
typo where C++98 had 0e0d which should have been 0e8d).  The C11/C++11
set is a superset of the C99 and C++98/C++03 sets, except for the
omission of two Arabic presentation forms U+FD3E ORNATE LEFT
PARENTHESIS and U+FD3F ORNATE RIGHT PARENTHESIS that were previously
allowed by C++.

C99 disallowed UCNs for digits starting identifiers; C++98/C++03 had
no UCNs it allowed in identifiers but not at their start.  C11 and
C++11 instead disallow a specified set of UCNs for combining
characters from starting identifiers.

The C11/C++11 set of characters is generally much bigger than the set
for the previous standard, including large ranges whether or not all
code points in those ranges are currently allocated.  It includes many
more combining characters than before, with those combining characters
also including some with many more precombined NFC forms in Unicode.
The inclusion of more combining characters means that the previous
manual checks for a few context-dependent cases of whether an
identifier is in NFC (for -Wnormalized=) are no longer a feasible
approach.  Instead this patch arranges for those checks to be
generated automatically from the Unicode character data (version 6.3.0
used in this patch) (producing a 2600-line function in place of a
previous 11 lines of code) - I'd welcome comments from any Unicode
experts on whether the logic I'm using to identify non-NFC in these
cases is correct.  As the new combining characters include some that
combine with previous ASCII letters, normalization state also needs to
be updated more precisely for non-UCN parts of identifiers than it did
before.

Bootstrapped with no regressions on x86_64-unknown-linux-gnu.  Applied
to mainline.

Any comments on whether we should consider the Unicode character data
- UnicodeData.txt and DerivedNormalizationProps.txt, a total of about
2MB - as source code for the generated ucnid.h that should be checked
into the repository and included in releases, or as an external build
tool or system library that doesn't need including in the GCC source
code?

gcc/testsuite:
2013-11-15  Joseph Myers  <joseph@codesourcery.com>

	* c-c++-common/cpp/ucnid-2011-1.c: New test.

libcpp:
2013-11-15  Joseph Myers  <joseph@codesourcery.com>

	* ucnid.tab: Add C11 and C11NOSTART data.
	* makeucnid.c (digit): Rename enum value to N99.
	(C11, N11, all_languages): New enum values.
	(NUM_CODE_POINTS, MAX_CODE_POINT): New macros.
	(flags, decomp, combining_value): Use NUM_CODE_POINTS as array
	size.
	(decomp): Use unsigned int as element type.
	(all_decomp): New array.
	(read_ucnid): Handle C11 and C11NOSTART.  Use MAX_CODE_POINT.
	(read_table): Use MAX_CODE_POINT.  Store all decompositions in
	all_decomp.
	(read_derived): Use MAX_CODE_POINT.
	(write_table): Use NUM_CODE_POINTS.  Print N99, C11 and N11
	flags.  Print whole array variable declaration rather than just
	array contents.
	(char_id_valid, write_context_switch): New functions.
	(main): Call write_context_switch.
	* ucnid.h: Regenerate.
	* include/cpplib.h (struct cpp_options): Add c11_identifiers.
	* init.c (struct lang_flags): Add c11_identifiers.
	(cpp_set_lang): Set c11_identifiers option from selected language.
	* internal.h (struct normalize_state): Document "previous" as
	previous starter character.
	(NORMALIZE_STATE_UPDATE_IDNUM): Take character as argument.
	* charset.c (DIG): Rename enum value to N99.
	(C11, N11): New enum values.
	(struct ucnrange): Give name to struct.  Use short for flags and
	unsigned int for end of range.  Include ucnid.h for whole variable
	declaration.
	(ucn_valid_in_identifier): Allow for characters up to 0x10FFFF.
	Allow for C11 in determining valid characters and valid start
	characters.  Use check_nfc for non-Hangul context-dependent
	checks.  Only store starter characters in nst->previous.
	(_cpp_valid_ucn): Pass new argument to
	NORMALIZE_STATE_UPDATE_IDNUM.
	* lex.c (lex_identifier): Pass new argument to
	NORMALIZE_STATE_UPDATE_IDNUM.  Call NORMALIZE_STATE_UPDATE_IDNUM
	after initial non-UCN part of identifier.
	(lex_number): Pass new argument to NORMALIZE_STATE_UPDATE_IDNUM.

Index: libcpp/internal.h
===================================================================
--- libcpp/internal.h	(revision 204841)
+++ libcpp/internal.h	(working copy)
@@ -713,9 +713,10 @@ extern size_t _cpp_replacement_text_len (const cpp
 
 struct normalize_state 
 {
-  /* The previous character.  */
+  /* The previous starter character.  */
   cppchar_t previous;
-  /* The combining class of the previous character.  */
+  /* The combining class of the previous character (whether or not a
+     starter).  */
   unsigned char prev_class;
   /* The lowest normalization level so far.  */
   enum cpp_normalize_level level;
@@ -723,10 +724,10 @@ struct normalize_state
 #define INITIAL_NORMALIZE_STATE { 0, 0, normalized_KC }
 #define NORMALIZE_STATE_RESULT(st) ((st)->level)
 
-/* We saw a character that matches ISIDNUM(), update a
+/* We saw a character C that matches ISIDNUM(), update a
    normalize_state appropriately.  */
-#define NORMALIZE_STATE_UPDATE_IDNUM(st) \
-  ((st)->previous = 0, (st)->prev_class = 0)
+#define NORMALIZE_STATE_UPDATE_IDNUM(st, c)	\
+  ((st)->previous = (c), (st)->prev_class = 0)
 
 extern cppchar_t _cpp_valid_ucn (cpp_reader *, const unsigned char **,
 				 const unsigned char *, int,
Index: libcpp/ucnid.tab
===================================================================
--- libcpp/ucnid.tab	(revision 204841)
+++ libcpp/ucnid.tab	(working copy)
@@ -19,7 +19,8 @@
 ; D, which is itself a reproduction from ISO/IEC TR 10176:1998, and
 ; the similar table from ISO/IEC 14882:1988 (C++98) Annex E, which is
 ; a reproduction of ISO/IEC PDTR 10176.  Unfortunately these tables
-; are not identical.
+; are not identical.  It also reproduces the somewhat different tables
+; in C11 and C++11, which are identical to each other.
 
 [C99]
 
@@ -209,3 +210,34 @@ fbd3-fd3f fd50-fd8f fd92-fdc7 fdf0-fdfb fe70-fe72
 ff21-ff3a ff41-ff5a ff66-ffbe ffc2-ffc7 ffca-ffcf ffd2-ffd7
 ffda-ffdc 4e00-9fa5
 
+[C11]
+; Group 1
+00a8 00aa 00ad 00af 00b2-00b5 00b7-00ba 00bc-00be 00c0-00d6 00d8-00f6
+00f8-00ff
+
+; Group 2, minus characters under C11NOSTART
+0100-02ff 0370-167f 1681-180d 180f-1dbf 1e00-1fff
+
+; Group 3
+200b-200d 202a-202e 203f-2040 2054 2060-206f
+
+; Group 4, minus characters under C11NOSTART
+2070-20cf 2100-218f 2460-24ff 2776-2793 2c00-2dff 2e80-2fff
+
+; Group 5
+3004-3007 3021-302f 3031-303f
+
+; Group 6
+3040-d7ff
+
+; Group 7, minus characters under C11NOSTART
+f900-fd3d fd40-fdcf fdf0-fe1f fe30-fe44 fe47-fffd
+
+; Group 8
+10000-1fffd 20000-2fffd 30000-3fffd 40000-4fffd 50000-5fffd
+60000-6fffd 70000-7fffd 80000-8fffd 90000-9fffd a0000-afffd
+b0000-bfffd c0000-cfffd d0000-dfffd e0000-efffd
+
+[C11NOSTART]
+; Group 1
+0300-036f 1dc0-1dff 20d0-20ff fe20-fe2f
Index: libcpp/lex.c
===================================================================
--- libcpp/lex.c	(revision 204841)
+++ libcpp/lex.c	(working copy)
@@ -1204,11 +1204,14 @@ lex_identifier (cpp_reader *pfile, const uchar *ba
 
   cur = pfile->buffer->cur;
   if (! starts_ucn)
-    while (ISIDNUM (*cur))
-      {
-	hash = HT_HASHSTEP (hash, *cur);
-	cur++;
-      }
+    {
+      while (ISIDNUM (*cur))
+	{
+	  hash = HT_HASHSTEP (hash, *cur);
+	  cur++;
+	}
+      NORMALIZE_STATE_UPDATE_IDNUM (nst, *(cur - 1));
+    }
   pfile->buffer->cur = cur;
   if (starts_ucn || forms_identifier_p (pfile, false, nst))
     {
@@ -1216,8 +1219,8 @@ lex_identifier (cpp_reader *pfile, const uchar *ba
       do {
 	while (ISIDNUM (*pfile->buffer->cur))
 	  {
+	    NORMALIZE_STATE_UPDATE_IDNUM (nst, *pfile->buffer->cur);
 	    pfile->buffer->cur++;
-	    NORMALIZE_STATE_UPDATE_IDNUM (nst);
 	  }
       } while (forms_identifier_p (pfile, false, nst));
       result = _cpp_interpret_identifier (pfile, base,
@@ -1277,8 +1280,8 @@ lex_number (cpp_reader *pfile, cpp_string *number,
       while (ISIDNUM (*cur) || *cur == '.' || DIGIT_SEP (*cur)
 	     || VALID_SIGN (*cur, cur[-1]))
 	{
+	  NORMALIZE_STATE_UPDATE_IDNUM (nst, *cur);
 	  cur++;
-	  NORMALIZE_STATE_UPDATE_IDNUM (nst);
 	}
 
       pfile->buffer->cur = cur;
Index: libcpp/charset.c
===================================================================
--- libcpp/charset.c	(revision 204841)
+++ libcpp/charset.c	(working copy)
@@ -828,29 +828,32 @@ enum {
   /* Valid in a C99 identifier?  */
   C99 = 1,
   /* Valid in a C99 identifier, but not as the first character?  */
-  DIG = 2,
+  N99 = 2,
   /* Valid in a C++ identifier?  */
   CXX = 4,
+  /* Valid in a C11/C++11 identifier?  */
+  C11 = 8,
+  /* Valid in a C11/C++11 identifier, but not as the first character?  */
+  N11 = 16,
   /* NFC representation is not valid in an identifier?  */
-  CID = 8,
+  CID = 32,
   /* Might be valid NFC form?  */
-  NFC = 16,
+  NFC = 64,
   /* Might be valid NFKC form?  */
-  NKC = 32,
+  NKC = 128,
   /* Certain preceding characters might make it not valid NFC/NKFC form?  */
-  CTX = 64
+  CTX = 256
 };
 
-static const struct {
+struct ucnrange {
   /* Bitmap of flags above.  */
-  unsigned char flags;
+  unsigned short flags;
   /* Combining class of the character.  */
   unsigned char combine;
   /* Last character in the range described by this entry.  */
-  unsigned short end;
-} ucnranges[] = {
+  unsigned int end;
+};
 #include "ucnid.h"
-};
 
 /* Returns 1 if C is valid in an identifier, 2 if C is valid except at
    the start of an identifier, and 0 if C is not valid in an
@@ -864,8 +867,9 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppcha
 			 struct normalize_state *nst)
 {
   int mn, mx, md;
+  unsigned short valid_flags, invalid_start_flags;
 
-  if (c > 0xFFFF)
+  if (c > 0x10FFFF)
     return 0;
 
   mn = 0;
@@ -881,16 +885,26 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppcha
 
   /* When -pedantic, we require the character to have been listed by
      the standard for the current language.  Otherwise, we accept the
-     union of the acceptable sets for C++98 and C99.  */
-  if (! (ucnranges[mn].flags & (C99 | CXX)))
+     union of the acceptable sets for all supported language versions.  */
+  valid_flags = C99 | CXX | C11;
+  if (CPP_PEDANTIC (pfile))
+    {
+      if (CPP_OPTION (pfile, c11_identifiers))
+	valid_flags = C11;
+      else if (CPP_OPTION (pfile, c99))
+	valid_flags = C99;
+      else if (CPP_OPTION (pfile, cplusplus))
+	valid_flags = CXX;
+    }
+  if (! (ucnranges[mn].flags & valid_flags))
       return 0;
+  if (CPP_OPTION (pfile, c11_identifiers))
+    invalid_start_flags = N11;
+  else if (CPP_OPTION (pfile, c99))
+    invalid_start_flags = N99;
+  else
+    invalid_start_flags = 0;
 
-  if (CPP_PEDANTIC (pfile)
-      && ((CPP_OPTION (pfile, c99) && !(ucnranges[mn].flags & C99))
-	  || (CPP_OPTION (pfile, cplusplus)
-	      && !(ucnranges[mn].flags & CXX))))
-    return 0;
-
   /* Update NST.  */
   if (ucnranges[mn].combine != 0 && ucnranges[mn].combine < nst->prev_class)
     nst->level = normalized_none;
@@ -899,17 +913,6 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppcha
       bool safe;
       cppchar_t p = nst->previous;
 
-      /* Easy cases from Bengali, Oriya, Tamil, Jannada, and Malayalam.  */
-      if (c == 0x09BE)
-	safe = p != 0x09C7;  /* Use 09CB instead of 09C7 09BE.  */
-      else if (c == 0x0B3E)
-	safe = p != 0x0B47;  /* Use 0B4B instead of 0B47 0B3E.  */
-      else if (c == 0x0BBE)
-	safe = p != 0x0BC6 && p != 0x0BC7;  /* Use 0BCA/0BCB instead.  */
-      else if (c == 0x0CC2)
-	safe = p != 0x0CC6;  /* Use 0CCA instead of 0CC6 0CC2.  */
-      else if (c == 0x0D3E)
-	safe = p != 0x0D46 && p != 0x0D47;  /* Use 0D4A/0D4B instead.  */
       /* For Hangul, characters in the range AC00-D7A3 are NFC/NFKC,
 	 and are combined algorithmically from a sequence of the form
 	 1100-1112 1161-1175 11A8-11C2
@@ -917,20 +920,19 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppcha
 	 really a valid character).
 	 Unfortunately, C99 allows (only) the NFC form, but C++ allows
 	 only the combining characters.  */
-      else if (c >= 0x1161 && c <= 0x1175)
+      if (c >= 0x1161 && c <= 0x1175)
 	safe = p < 0x1100 || p > 0x1112;
       else if (c >= 0x11A8 && c <= 0x11C2)
 	safe = (p < 0xAC00 || p > 0xD7A3 || (p - 0xAC00) % 28 != 0);
       else
+	safe = check_nfc (pfile, c, p);
+      if (!safe)
 	{
-	  /* Uh-oh, someone updated ucnid.h without updating this code.  */
-	  cpp_error (pfile, CPP_DL_ICE, "Character %x might not be NFKC", c);
-	  safe = true;
+	  if ((c >= 0x1161 && c <= 0x1175) || (c >= 0x11A8 && c <= 0x11C2))
+	    nst->level = MAX (nst->level, normalized_identifier_C);
+	  else
+	    nst->level = normalized_none;
 	}
-      if (!safe && c < 0x1161)
-	nst->level = normalized_none;
-      else if (!safe)
-	nst->level = MAX (nst->level, normalized_identifier_C);
     }
   else if (ucnranges[mn].flags & NKC)
     ;
@@ -940,11 +942,13 @@ ucn_valid_in_identifier (cpp_reader *pfile, cppcha
     nst->level = MAX (nst->level, normalized_identifier_C);
   else
     nst->level = normalized_none;
-  nst->previous = c;
+  if (ucnranges[mn].combine == 0)
+    nst->previous = c;
   nst->prev_class = ucnranges[mn].combine;
 
-  /* In C99, UCN digits may not begin identifiers.  */
-  if (CPP_OPTION (pfile, c99) && (ucnranges[mn].flags & DIG))
+  /* In C99, UCN digits may not begin identifiers.  In C11 and C++11,
+     UCN combining characters may not begin identifiers.  */
+  if (ucnranges[mn].flags & invalid_start_flags)
     return 2;
 
   return 1;
@@ -1054,7 +1058,7 @@ _cpp_valid_ucn (cpp_reader *pfile, const uchar **p
 	  CPP_OPTION (pfile, warn_dollars) = 0;
 	  cpp_error (pfile, CPP_DL_PEDWARN, "'$' in identifier or number");
 	}
-      NORMALIZE_STATE_UPDATE_IDNUM (nst);
+      NORMALIZE_STATE_UPDATE_IDNUM (nst, result);
     }
   else if (identifier_pos)
     {
Index: libcpp/makeucnid.c
===================================================================
--- libcpp/makeucnid.c	(revision 204841)
+++ libcpp/makeucnid.c	(working copy)
@@ -29,16 +29,23 @@ along with this program; see the file COPYING3.  I
 enum {
   C99 = 1,
   CXX = 2,
-  digit = 4,
-  not_NFC = 8,
-  not_NFKC = 16,
-  maybe_not_NFC = 32
+  N99 = 4,
+  C11 = 8,
+  N11 = 16,
+  all_languages = C99 | CXX | C11,
+  not_NFC = 32,
+  not_NFKC = 64,
+  maybe_not_NFC = 128
 };
 
-static unsigned flags[65536];
-static unsigned short decomp[65536][2];
-static unsigned char combining_value[65536];
+#define NUM_CODE_POINTS 0x110000
+#define MAX_CODE_POINT 0x10ffff
 
+static unsigned flags[NUM_CODE_POINTS];
+static unsigned int all_decomp[NUM_CODE_POINTS][2];
+static unsigned int decomp[NUM_CODE_POINTS][2];
+static unsigned char combining_value[NUM_CODE_POINTS];
+
 /* Die!  */
 
 static void
@@ -48,7 +55,7 @@ fail (const char *s)
   exit (1);
 }
 
-/* Read ucnid.tab and set the C99 and CXX flags in header[].  */
+/* Read ucnid.tab and set the flags for language versions in header[].  */
 
 static void
 read_ucnid (const char *fname)
@@ -66,10 +73,14 @@ read_ucnid (const char *fname)
 	break;
       if (strcmp (line, "[C99]\n") == 0)
 	fl = C99;
-      if (strcmp (line, "[C99DIG]\n") == 0)
-	fl = C99|digit;
+      else if (strcmp (line, "[C99DIG]\n") == 0)
+	fl = C99|N99;
       else if (strcmp (line, "[CXX]\n") == 0)
 	fl = CXX;
+      else if (strcmp (line, "[C11]\n") == 0)
+	fl = C11;
+      else if (strcmp (line, "[C11NOSTART]\n") == 0)
+	fl = C11|N11;
       else if (isxdigit (line[0]))
 	{
 	  char *l = line;
@@ -94,7 +105,7 @@ read_ucnid (const char *fname)
 		}
 	      while (isspace (*l))
 		l++;
-	      if (end > 0xFFFF)
+	      if (end > MAX_CODE_POINT)
 		fail ("parsing ucnid.tab, end too large");
 	      while (start <= end)
 		flags[start++] |= fl;
@@ -108,8 +119,10 @@ read_ucnid (const char *fname)
 
 /* Read UnicodeData.txt and fill in the 'decomp' table to be the
    decompositions of characters for which both the character
-   decomposed and all the code points in the decomposition are either
-   C99 or CXX.  */
+   decomposed and all the code points in the decomposition are valid
+   for some supported language version, and the 'all_decomp' table to
+   be the decompositions of all characters without those
+   constraints.  */
 
 static void
 read_table (char *fname)
@@ -123,7 +136,7 @@ read_table (char *fname)
       char line[256];
       unsigned long codepoint, this_decomp[4];
       char *l;
-      int i;
+      int i, j;
       int decomp_useful;
 
       if (!fgets (line, sizeof (line), f))
@@ -131,8 +144,8 @@ read_table (char *fname)
       codepoint = strtoul (line, &l, 16);
       if (l == line || *l != ';')
 	fail ("parsing UnicodeData.txt, reading code point");
-      if (codepoint > 0xffff || ! (flags[codepoint] & (C99 | CXX)))
-	continue;
+      if (codepoint > MAX_CODE_POINT)
+	fail ("parsing UnicodeData.txt, code point too large");
 
       do {
 	l++;
@@ -171,7 +184,9 @@ read_table (char *fname)
 	}
       if (i > 2)  /* Decomposition too long.  */
 	fail ("parsing UnicodeData.txt, decomposition too long");
-      if (decomp_useful)
+      for (j = 0; j < i; j++)
+	all_decomp[codepoint][j] = this_decomp[j];
+      if ((flags[codepoint] & all_languages) && decomp_useful)
 	while (--i >= 0)
 	  decomp[codepoint][i] = this_decomp[i];
     }
@@ -208,8 +223,8 @@ read_derived (const char *fname)
       start = strtoul (line, &l, 16);
       if (l == line)
 	fail ("parsing DerivedNormalizationProps.txt, reading start");
-      if (start > 0xffff)
-	continue;
+      if (start > MAX_CODE_POINT)
+	fail ("parsing DerivedNormalizationProps.txt, code point too large");
       if (*l == '.' && l[1] == '.')
 	end = strtoul (l + 2, &l, 16);
       else
@@ -237,17 +252,21 @@ write_table (void)
   unsigned last_flag = flags[0];
   bool really_safe = decomp[0][0] == 0;
   unsigned char last_combine = combining_value[0];
+
+  printf ("static const struct ucnrange ucnranges[] = {\n");
   
-  for (i = 1; i <= 65536; i++)
-    if (i == 65536
-	|| (flags[i] != last_flag && ((flags[i] | last_flag) & (C99 | CXX)))
+  for (i = 1; i <= NUM_CODE_POINTS; i++)
+    if (i == NUM_CODE_POINTS
+	|| (flags[i] != last_flag && ((flags[i] | last_flag) & all_languages))
 	|| really_safe != (decomp[i][0] == 0)
 	|| combining_value[i] != last_combine)
       {
-	printf ("{ %s|%s|%s|%s|%s|%s|%s, %3d, %#06x },\n",
+	printf ("{ %s|%s|%s|%s|%s|%s|%s|%s|%s, %3d, %#06x },\n",
 		last_flag & C99 ? "C99" : "  0",
-		last_flag & digit ? "DIG" : "  0",
+		last_flag & N99 ? "N99" : "  0",
 		last_flag & CXX ? "CXX" : "  0",
+		last_flag & C11 ? "C11" : "  0",
+		last_flag & N11 ? "N11" : "  0",
 		really_safe ? "CID" : "  0",
 		last_flag & not_NFC ? "  0" : "NFC",
 		last_flag & not_NFKC ? "  0" : "NKC",
@@ -258,8 +277,100 @@ write_table (void)
 	last_combine = combining_value[0];
 	really_safe = decomp[i][0] == 0;
       }
+
+  printf ("};\n");
 }
 
+/* Return whether a given character is valid in an identifier for some
+   supported language, either as itself or as a UCN.  */
+
+static bool
+char_id_valid (unsigned int c)
+{
+  return ((flags[c] & all_languages)
+	  || (c == 0x24)
+	  || (c >= 0x30 && c <= 0x39)
+	  || (c >= 0x41 && c <= 0x5a)
+	  || (c >= 0x61 && c <= 0x7a));
+}
+
+/* Write out the switch statement over characters for which it is
+   context-dependent whether they are in NFC.  */
+
+static void
+write_context_switch (void)
+{
+  unsigned i;
+  printf ("static bool\n"
+	  "check_nfc (cpp_reader *pfile, cppchar_t c, cppchar_t p)\n"
+	  "{\n"
+	  "  switch (c)\n"
+	  "    {\n");
+  for (i = 0; i < NUM_CODE_POINTS; i++)
+    {
+      bool found_case = false;
+      unsigned j;
+      if (!(flags[i] & all_languages) || !(flags[i] & maybe_not_NFC))
+	continue;
+      if ((i >= 0x1161 && i <= 0x1175) || (i >= 0x11A8 && i <= 0x11C2))
+	continue; /* Hangul handled algorithmically.  */
+      printf ("    case %#06x:\n"
+	      "      switch (p)\n"
+	      "\t{\n", i);
+      /* If an NFC starter character decomposes with this character I
+	 as the second character and an NFC starter character S as the
+	 first character, that latter character as a previous
+	 character means this character is not NFC.  Furthermore, any
+	 NFC starter character K made by a series of compositions of S
+	 with combining characters whose combining class is greater
+	 than that of I also means this character is not NFC.  */
+      for (j = 0; j < NUM_CODE_POINTS; j++)
+	{
+	  unsigned s, k;
+	  if (all_decomp[j][1] != i)
+	    continue;
+	  s = all_decomp[j][0];
+	  if (combining_value[s] != 0 || (flags[s] & not_NFC) != 0)
+	    continue;
+	  if (char_id_valid (s))
+	    {
+	      found_case = true;
+	      printf ("\tcase %#06x:\n", s);
+	    }
+	  for (k = 0; k < NUM_CODE_POINTS; k++)
+	    {
+	      unsigned t = k;
+	      if (k == s || !char_id_valid (k))
+		continue;
+	      while (all_decomp[t][1] != 0
+		     && combining_value[all_decomp[t][1]] > combining_value[i])
+		{
+		  if (combining_value[t] != 0 || (flags[t] & not_NFC) != 0)
+		    break;
+		  t = all_decomp[t][0];
+		}
+	      if (t == s)
+		{
+		  found_case = true;
+		  printf ("\tcase %#06x:\n", k);
+		}
+	    }
+	}
+      if (found_case)
+	printf ("\t  return false;\n");
+      else
+	printf ("\t/* Non-NFC cases not applicable to C/C++.  */\n");
+      printf ("\tdefault:\n"
+	      "\t  return true;\n"
+	      "\t}\n\n");
+    }
+  printf ("    default:\n"
+	  "      cpp_error (pfile, CPP_DL_ICE, \"Character %%x might not be NFKC\", c);\n"
+	  "      return true;\n"
+	  "  }\n"
+	  "}\n");
+}
+
 /* Print out the huge copyright notice.  */
 
 static void
@@ -336,5 +447,6 @@ main(int argc, char ** argv)
 
   write_copyright ();
   write_table ();
+  write_context_switch ();
   return 0;
 }
Index: libcpp/include/cpplib.h
===================================================================
--- libcpp/include/cpplib.h	(revision 204841)
+++ libcpp/include/cpplib.h	(working copy)
@@ -437,6 +437,10 @@ struct cpp_options
      literal number suffixes as user-defined literal number suffixes.  */
   unsigned char ext_numeric_literals;
 
+  /* Nonzero means extended identifiers allow the characters specified
+     in C11 and C++11.  */
+  unsigned char c11_identifiers;
+
   /* Nonzero for C++ 2014 Standard binary constants.  */
   unsigned char binary_constants;
 
Index: libcpp/init.c
===================================================================
--- libcpp/init.c	(revision 204841)
+++ libcpp/init.c	(working copy)
@@ -77,6 +77,7 @@ struct lang_flags
   char cplusplus;
   char extended_numbers;
   char extended_identifiers;
+  char c11_identifiers;
   char std;
   char cplusplus_comments;
   char digraphs;
@@ -88,21 +89,21 @@ struct lang_flags
 };
 
 static const struct lang_flags lang_defaults[] =
-{ /*              c99 c++ xnum xid std  //   digr ulit rlit udlit bin_cst dig_sep */
-  /* GNUC89   */  { 0,  0,  1,   0,  0,   1,   1,   0,   0,   0,    0,      0 },
-  /* GNUC99   */  { 1,  0,  1,   0,  0,   1,   1,   1,   1,   0,    0,      0 },
-  /* GNUC11   */  { 1,  0,  1,   0,  0,   1,   1,   1,   1,   0,    0,      0 },
-  /* STDC89   */  { 0,  0,  0,   0,  1,   0,   0,   0,   0,   0,    0,      0 },
-  /* STDC94   */  { 0,  0,  0,   0,  1,   0,   1,   0,   0,   0,    0,      0 },
-  /* STDC99   */  { 1,  0,  1,   0,  1,   1,   1,   0,   0,   0,    0,      0 },
-  /* STDC11   */  { 1,  0,  1,   0,  1,   1,   1,   1,   0,   0,    0,      0 },
-  /* GNUCXX   */  { 0,  1,  1,   0,  0,   1,   1,   0,   0,   0,    0,      0 },
-  /* CXX98    */  { 0,  1,  1,   0,  1,   1,   1,   0,   0,   0,    0,      0 },
-  /* GNUCXX11 */  { 1,  1,  1,   0,  0,   1,   1,   1,   1,   1,    0,      0 },
-  /* CXX11    */  { 1,  1,  1,   0,  1,   1,   1,   1,   1,   1,    0,      0 },
-  /* GNUCXX1Y */  { 1,  1,  1,   0,  0,   1,   1,   1,   1,   1,    1,      1 },
-  /* CXX1Y    */  { 1,  1,  1,   0,  1,   1,   1,   1,   1,   1,    1,      1 },
-  /* ASM      */  { 0,  0,  1,   0,  0,   1,   0,   0,   0,   0,    0,      0 }
+{ /*              c99 c++ xnum xid c11 std  //   digr ulit rlit udlit bin_cst dig_sep */
+  /* GNUC89   */  { 0,  0,  1,   0,  0,  0,   1,   1,   0,   0,   0,    0,      0 },
+  /* GNUC99   */  { 1,  0,  1,   0,  0,  0,   1,   1,   1,   1,   0,    0,      0 },
+  /* GNUC11   */  { 1,  0,  1,   0,  1,  0,   1,   1,   1,   1,   0,    0,      0 },
+  /* STDC89   */  { 0,  0,  0,   0,  0,  1,   0,   0,   0,   0,   0,    0,      0 },
+  /* STDC94   */  { 0,  0,  0,   0,  0,  1,   0,   1,   0,   0,   0,    0,      0 },
+  /* STDC99   */  { 1,  0,  1,   0,  0,  1,   1,   1,   0,   0,   0,    0,      0 },
+  /* STDC11   */  { 1,  0,  1,   0,  1,  1,   1,   1,   1,   0,   0,    0,      0 },
+  /* GNUCXX   */  { 0,  1,  1,   0,  0,  0,   1,   1,   0,   0,   0,    0,      0 },
+  /* CXX98    */  { 0,  1,  1,   0,  0,  1,   1,   1,   0,   0,   0,    0,      0 },
+  /* GNUCXX11 */  { 1,  1,  1,   0,  1,  0,   1,   1,   1,   1,   1,    0,      0 },
+  /* CXX11    */  { 1,  1,  1,   0,  1,  1,   1,   1,   1,   1,   1,    0,      0 },
+  /* GNUCXX1Y */  { 1,  1,  1,   0,  1,  0,   1,   1,   1,   1,   1,    1,      1 },
+  /* CXX1Y    */  { 1,  1,  1,   0,  1,  1,   1,   1,   1,   1,   1,    1,      1 },
+  /* ASM      */  { 0,  0,  1,   0,  0,  0,   1,   0,   0,   0,   0,    0,      0 }
   /* xid should be 1 for GNUC99, STDC99, GNUCXX, CXX98, GNUCXX11, CXX11,
      GNUCXX1Y, and CXX1Y when no longer experimental (when all uses of
      identifiers in the compiler have been audited for correct handling
@@ -121,6 +122,7 @@ cpp_set_lang (cpp_reader *pfile, enum c_lang lang)
   CPP_OPTION (pfile, cplusplus)			 = l->cplusplus;
   CPP_OPTION (pfile, extended_numbers)		 = l->extended_numbers;
   CPP_OPTION (pfile, extended_identifiers)	 = l->extended_identifiers;
+  CPP_OPTION (pfile, c11_identifiers)		 = l->c11_identifiers;
   CPP_OPTION (pfile, std)			 = l->std;
   CPP_OPTION (pfile, trigraphs)			 = l->std;
   CPP_OPTION (pfile, cplusplus_comments)	 = l->cplusplus_comments;
Index: libcpp/ucnid.h
===================================================================
--- libcpp/ucnid.h	(revision 204841)
+++ libcpp/ucnid.h	(working copy)
@@ -52,749 +52,4473 @@
    use or other dealings in these Data Files or Software without prior
    written authorization of the copyright holder.  */
 
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00a9 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x00aa },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b4 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x00b5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x00b7 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x00b9 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x00ba },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00bf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x00d6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00d7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x00f6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x00f7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0131 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0133 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x013e },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0140 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0148 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0149 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x017e },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x017f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x01c3 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x01cc },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x01f0 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x01f3 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x01f5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x01f9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0217 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x024f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x02a8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02af },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x02b8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02ba },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x02bb },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02bc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x02c1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02cf },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x02d1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x02df },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x02e4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0379 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x037a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0383 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0x0384 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x0385 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0386 },
-{   0|  0|  0|CID|  0|  0|  0,   0, 0x0387 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x038a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x038b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x038c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x038d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03a1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03a2 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03ce },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03cf },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x03d6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03d9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03da },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03db },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03dc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03dd },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03de },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03df },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03e0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x03e1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03ef },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x03f2 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x03f3 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x0400 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x040c },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x040d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x040e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x044f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0450 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x045c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x045d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0481 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x048f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04c4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04c6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04c8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04ca },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04cc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04cf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04eb },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04ed },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04f5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x04f7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x04f9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0530 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0556 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0558 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0559 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0560 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0586 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0587 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05af },
-{ C99|  0|  0|CID|NFC|NKC|  0,  10, 0x05b0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  11, 0x05b1 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  12, 0x05b2 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  13, 0x05b3 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  14, 0x05b4 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  15, 0x05b5 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  16, 0x05b6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  17, 0x05b7 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  18, 0x05b8 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  19, 0x05b9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05ba },
-{ C99|  0|  0|CID|NFC|NKC|  0,  20, 0x05bb },
-{ C99|  0|  0|CID|NFC|NKC|  0,  21, 0x05bc },
-{ C99|  0|  0|CID|NFC|NKC|  0,  22, 0x05bd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05be },
-{ C99|  0|  0|CID|NFC|NKC|  0,  23, 0x05bf },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05c0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  24, 0x05c1 },
-{ C99|  0|  0|CID|NFC|NKC|  0,  25, 0x05c2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05cf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x05ea },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x05ef },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x05f2 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x05f4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0620 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x063a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x063f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x064a },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  27, 0x064b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  28, 0x064c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  29, 0x064d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  30, 0x064e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  31, 0x064f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  32, 0x0650 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  33, 0x0651 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,  34, 0x0652 },
-{   0|  0|  0|CID|NFC|NKC|CTX,   0, 0x065f },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0669 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x066f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0674 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0678 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06b7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06b9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06be },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06bf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06ce },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06cf },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x06d5 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d6 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d8 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06d9 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06da },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06db },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06dc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06e4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x06e6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0, 230, 0x06e7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06e8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06e9 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x06ea },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06eb },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x06ec },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x06ed },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x06ef },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x06f9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0900 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0903 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0904 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0939 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x093c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x094c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x094d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x094f },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0950 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0951 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0952 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0957 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x095f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0962 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0963 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0965 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x096f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0980 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0983 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0984 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x098c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x098e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0990 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0992 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09a8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09a9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09b0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09b1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09b2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09b5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09b9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09bd },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x09be },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09c4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09c6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09c8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09ca },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x09cb },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09cc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x09cd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09db },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x09dd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09de },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x09df },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09e1 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x09e3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x09e5 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x09ef },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x09f1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a01 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a02 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a0a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a0e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a12 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a30 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a31 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a32 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a34 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a35 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a36 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a37 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a3d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a42 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a46 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a4a },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0a4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a58 },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a5b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a5c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a5d },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0a5e },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0a6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a73 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a74 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a80 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0a83 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a84 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a8b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a8c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a8d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a8e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0a91 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0a92 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0aa8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0aa9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ab0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ab1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ab3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ab4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ab9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0abc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ac5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ac6 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ac9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0aca },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0acc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0acd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0acf },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ad0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0adf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ae0 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ae5 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0aef },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b00 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b03 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b0c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b0e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b12 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b30 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b31 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b35 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b3c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b3d },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0b3e },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b43 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b46 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b4a },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0b4b },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0b4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b5b },
-{ C99|  0|CXX|CID|  0|  0|  0,   0, 0x0b5d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b5e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b61 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0b6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b81 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0b83 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b84 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b8a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b8d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b90 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b91 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b95 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b98 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b9a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b9b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b9c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0b9d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0b9f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ba2 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ba4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ba7 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0baa },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bad },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0bb5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bb6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0bb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bbd },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0bbe },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc5 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0bc9 },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0bcb },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0bcc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0bcd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0be6 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0bef },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c00 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c03 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c0c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c0d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c11 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c34 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c3d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c44 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c45 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c49 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0c4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c5f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c61 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0c6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c81 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0c83 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c84 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c8c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c8d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0c90 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0c91 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ca8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ca9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0cb3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cb4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0cb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cbd },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc1 },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0cc2 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc5 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc8 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cc9 },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0cca },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ccc },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0ccd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cdd },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0cde },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0cdf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ce1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ce5 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0cef },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d01 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d03 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d04 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d0c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d0d },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d10 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d11 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d28 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d29 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d3d },
-{ C99|  0|  0|CID|NFC|NKC|CTX,   0, 0x0d3e },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d43 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d45 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d48 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d49 },
-{ C99|  0|  0|  0|NFC|NKC|  0,   0, 0x0d4b },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0d4c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0d4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d5f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0d61 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0d65 },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0d6f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e00 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e30 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0e31 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e32 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0e33 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0e37 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 103, 0x0e38 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 103, 0x0e39 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0e3a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e3f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e46 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0e47 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 107, 0x0e48 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 107, 0x0e49 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e4e },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e4f },
-{ C99|DIG|CXX|CID|NFC|NKC|  0,   0, 0x0e59 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e5b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e80 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e82 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e83 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e84 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e86 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e88 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e89 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e8a },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e8c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e8d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e93 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e97 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0e98 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0e9f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea0 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ea3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea4 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ea5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea6 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ea7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ea9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eab },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0eac },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eae },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eaf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eb0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0eb1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0eb2 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x0eb3 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0eb7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 118, 0x0eb8 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 118, 0x0eb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0eba },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ebc },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ebd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ebf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ec4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ec5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x0ec6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ec7 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 122, 0x0ec8 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 122, 0x0ec9 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 122, 0x0eca },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0ecd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0ecf },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0ed9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0edb },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x0edd },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0eff },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f00 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f17 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f18 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f19 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f1f },
-{ C99|DIG|  0|CID|NFC|NKC|  0,   0, 0x0f33 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f34 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f35 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f36 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 220, 0x0f37 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f38 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 216, 0x0f39 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f3d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f42 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f43 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f47 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f48 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f4c },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f4d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f51 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f52 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f56 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f57 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f5b },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f5c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f68 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f69 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f70 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 129, 0x0f71 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f72 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f73 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 132, 0x0f74 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f76 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x0f77 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f78 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x0f79 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f7a },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f7b },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f7c },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f7f },
-{ C99|  0|  0|CID|NFC|NKC|  0, 130, 0x0f80 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f81 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0f82 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0f83 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   9, 0x0f84 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f85 },
-{ C99|  0|  0|CID|NFC|NKC|  0, 230, 0x0f86 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f8b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f8f },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f92 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f93 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f95 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f96 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f97 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0f98 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0f9c },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0f9d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fa1 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fa2 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fa6 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fa7 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fab },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fac },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fad },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0fb0 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x0fb7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x0fb8 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x0fb9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x109f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x10c5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x10cf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x10f6 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x10ff },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x1159 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1160 },
-{   0|  0|CXX|CID|NFC|NKC|CTX,   0, 0x1175 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x11a2 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x11a7 },
-{   0|  0|CXX|CID|NFC|NKC|CTX,   0, 0x11c2 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x11f9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1dff },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1e99 },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x1e9a },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x1e9b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1e9f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ef9 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1eff },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f15 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f17 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f1d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f1f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f45 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f47 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f4d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f4f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f57 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f58 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f59 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f5a },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f5b },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f5c },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f5d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f5e },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f70 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f71 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f72 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f73 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f74 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f75 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f76 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f77 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f78 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f79 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f7a },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f7b },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1f7c },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1f7d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1f7f },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fb4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fb5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fba },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fbb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fbc },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1fbd },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x1fbe },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1fc1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fc4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fc5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fc8 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fc9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fca },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fcb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fcc },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1fcf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fd2 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fd3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fd5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fda },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fdb },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1fdf },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fe2 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1fe3 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fea },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1feb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1fec },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x1ff1 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ff4 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x1ff5 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ff8 },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1ff9 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ffa },
-{ C99|  0|CXX|  0|  0|  0|  0,   0, 0x1ffb },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x1ffc },
-{   0|  0|  0|CID|  0|  0|  0,   0, 0x203e },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x2040 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x207e },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x207f },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x2101 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2102 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x2106 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2107 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2109 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2113 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2114 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2115 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x2117 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x2118 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x211d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2123 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2124 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2125 },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x2126 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2127 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2128 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2129 },
-{ C99|  0|  0|CID|  0|  0|  0,   0, 0x212a },
-{ C99|  0|  0|  0|  0|  0|  0,   0, 0x212b },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x212d },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x212e },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2131 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x2132 },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x2138 },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x215f },
-{ C99|  0|  0|CID|NFC|  0|  0,   0, 0x217f },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x2182 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x3004 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x3007 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x3020 },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0x3029 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x3040 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x3093 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x3094 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x309a },
-{ C99|  0|CXX|CID|NFC|  0|  0,   0, 0x309c },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x309e },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x30a0 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x30f6 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x30fa },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x30fc },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0x30fe },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0x3104 },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x312c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0x4dff },
-{ C99|  0|CXX|CID|NFC|NKC|  0,   0, 0x9fa5 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xabff },
-{ C99|  0|  0|CID|NFC|NKC|  0,   0, 0xd7a3 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xf8ff },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa0d },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa0f },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa10 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa11 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa12 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa14 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa1e },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa1f },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa20 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa21 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa22 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa24 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa26 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfa29 },
-{   0|  0|CXX|  0|  0|  0|  0,   0, 0xfa2d },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb1e },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb1f },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfb29 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb36 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb37 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb3c },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb3d },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb3e },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb3f },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb41 },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfb42 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb44 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfb45 },
-{   0|  0|CXX|CID|  0|  0|  0,   0, 0xfb4e },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfbb1 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfbd2 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfd3d },
-{   0|  0|CXX|CID|NFC|NKC|  0,   0, 0xfd3f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfd4f },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfd8f },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfd91 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfdc7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfdef },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfdfb },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0xfe6f },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfe72 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfe73 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfe74 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xfe75 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xfefc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xff20 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xff3a },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0xff40 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xff5a },
-{   0|  0|  0|CID|NFC|  0|  0,   0, 0xff65 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffbe },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffc1 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffc7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffc9 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffcf },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffd1 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffd7 },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffd9 },
-{   0|  0|CXX|CID|NFC|  0|  0,   0, 0xffdc },
-{   0|  0|  0|CID|NFC|NKC|  0,   0, 0xffff },
+static const struct ucnrange ucnranges[] = {
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00a7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00a8 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00a9 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00aa },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x00ad },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00ae },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00af },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b1 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00b4 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00b5 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00b6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x00b7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00b9 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00ba },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00bb },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x00be },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00bf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x00d6 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00d7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x00f6 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x00f7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0131 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0133 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x013e },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0140 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0148 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0149 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x017e },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x017f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01c3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x01cc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01d4 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01dc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01dd },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01e3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01eb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01f0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x01f3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x01f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x01f9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x01ff },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0217 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0229 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x022d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x022f },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0231 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x024f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x02a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02af },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x02b8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02ba },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02bb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02bc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02c1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02cf },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02d1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02d7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x02dd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02df },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x02e4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x02ff },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0300 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0301 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0302 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0303 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0304 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0305 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0306 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0307 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0308 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0309 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x030d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x030e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x030f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0310 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0311 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0312 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0313 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0314 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 232, 0x0315 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0316 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0317 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0318 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0319 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 232, 0x031a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 216, 0x031b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x031f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0320 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 202, 0x0321 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 202, 0x0322 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0323 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0324 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0325 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0326 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 202, 0x0327 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 202, 0x0328 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0329 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x032d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x032e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x032f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0330 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 220, 0x0331 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0332 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0333 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0334 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0335 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0336 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x0337 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX,   1, 0x0338 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0339 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x033a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x033b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x033c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x033d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x033e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x033f },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0340 },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0341 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 230, 0x0342 },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0343 },
+{   0|  0|  0|C11|N11|  0|  0|  0|  0, 230, 0x0344 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|CTX, 240, 0x0345 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0346 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0347 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0348 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0349 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x034a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x034b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x034c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x034d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x034f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0350 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0351 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0352 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0353 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0354 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0355 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0356 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0357 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 232, 0x0358 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x0359 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x035a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x035b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x035c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x035d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x035e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x035f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x0360 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x0361 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x0362 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0363 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0364 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0365 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0366 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0367 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0368 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x0369 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036a },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036b },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036c },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036d },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036e },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x036f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0373 },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0374 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0379 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x037a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x037d },
+{   0|  0|  0|C11|  0|CID|  0|  0|  0,   0, 0x037e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0383 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0384 },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x0385 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0386 },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0387 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x038a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x038b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x038c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x038d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0390 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03a1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03a2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03a9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x03b0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03c9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x03ce },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03cf },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x03d2 },
+{ C99|  0|CXX|C11|  0|  0|NFC|  0|  0,   0, 0x03d4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x03d6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03d9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03da },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03db },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03dc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03dd },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03de },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03df },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03e0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03e1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x03f2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x03f3 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x03f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03f8 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x03f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x03ff },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0400 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0401 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0402 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0403 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0406 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0407 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x040b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x040c },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x040d },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x040e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0418 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0419 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0438 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0439 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x044f },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0450 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0451 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0452 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0453 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0456 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0457 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x045b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x045c },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x045d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x045e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0475 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0477 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0481 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0482 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0483 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0484 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0485 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0486 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x048f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04c0 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04c2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04c4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04c6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04c8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04ca },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04cc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04cf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04d3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04d5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04d7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04d9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04df },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04e1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04e7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x04e9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04eb },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x04ed },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x04f7 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x04f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0530 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0556 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0558 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0559 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0560 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0586 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0587 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0590 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0591 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0592 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0593 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0594 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0595 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0596 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0597 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0598 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0599 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x059a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x059b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x059f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05a7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05a9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x05aa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05ab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x05ad },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 228, 0x05ae },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05af },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  10, 0x05b0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  11, 0x05b1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  12, 0x05b2 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  13, 0x05b3 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  14, 0x05b4 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  15, 0x05b5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  16, 0x05b6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  17, 0x05b7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  18, 0x05b8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  19, 0x05b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  19, 0x05ba },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  20, 0x05bb },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  21, 0x05bc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  22, 0x05bd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05be },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  23, 0x05bf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05c0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  24, 0x05c1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,  25, 0x05c2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05c3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x05c4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05c6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05cf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x05ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x05ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x05f2 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x05f4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x060f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0610 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0611 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0612 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0613 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0614 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0615 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0616 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0617 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  30, 0x0618 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  31, 0x0619 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0620 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0621 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0626 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x063a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x063f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x064a },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  27, 0x064b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  28, 0x064c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  29, 0x064d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  30, 0x064e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  31, 0x064f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  32, 0x0650 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  33, 0x0651 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,  34, 0x0652 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX, 230, 0x0653 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX, 230, 0x0654 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX, 220, 0x0655 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0656 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0657 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0658 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0659 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x065c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x065e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x065f },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0669 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x066f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0674 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0678 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06b7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06b9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06be },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06bf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x06c0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06c1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x06c2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06ce },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06cf },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06d2 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x06d3 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06d5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06d9 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06da },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06db },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06dc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06de },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06df },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x06e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x06e6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0, 230, 0x06e7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06e8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06e9 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x06ea },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06eb },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x06ec },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x06ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06ef },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x06f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0710 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x072f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0730 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0731 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0732 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0733 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0734 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0735 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0736 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0737 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0738 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0739 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x073a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x073b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x073c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x073d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x073e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x073f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0740 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0741 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0742 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0743 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0744 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0745 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0746 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0747 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0748 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0749 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x07ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07eb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x07f1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x07f2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0815 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0816 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0817 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0818 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x081a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x081f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0820 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0821 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0822 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0824 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0825 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0826 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0828 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0829 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x082a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x082b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x082c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0858 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0859 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x085a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x08e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08e6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08e8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08e9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08eb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08ec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08ee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  27, 0x08f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  28, 0x08f1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  29, 0x08f2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08f6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08f8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x08fa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08fb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08fc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x08fd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0900 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0903 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0904 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0928 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0929 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0930 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0931 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0933 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0934 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0939 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x093b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   7, 0x093c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x094c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x094d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x094f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0950 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0951 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0952 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0953 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0957 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x095f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0962 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0963 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0965 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x096f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0980 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0983 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0984 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x098c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x098e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0990 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0992 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09a9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09b0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09b1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09b2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09b5 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09bb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09bd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x09be },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09c4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09c6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09c8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09ca },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x09cc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x09cd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09d6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x09d7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09db },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x09dd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09de },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x09df },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09e1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09e5 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x09ef },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x09f1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a01 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a02 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a0a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a0e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a12 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a30 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a31 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a32 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a34 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a35 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a36 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a37 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a42 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a46 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a4a },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0a4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a58 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a5b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a5c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a5d },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0a5e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a73 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a74 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a80 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a83 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a84 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a8e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0a91 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0a92 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0aa8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0aa9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ab9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0abb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   7, 0x0abc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ac5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ac6 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ac9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0aca },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0acc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0acd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0acf },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ad0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0adf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ae0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ae5 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0aef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b00 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b0e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b12 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b30 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b31 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b35 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   7, 0x0b3c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0b3e },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b43 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b46 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b47 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0b48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b4a },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0b4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0b4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b55 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0b57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b5b },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x0b5d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b5e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b61 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b81 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b83 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b84 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b8a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b8d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b90 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b91 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b93 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x0b94 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b95 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b98 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0b9f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ba2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ba4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ba7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0baa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bad },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0bb5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bb6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0bb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bbd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0bbe },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bc9 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0bcc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0bcd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bd6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0bd7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0be6 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0bef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c00 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c0d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c11 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c34 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c44 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c45 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c47 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0c48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c49 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0c4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c54 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  84, 0x0c55 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,  91, 0x0c56 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c5f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c61 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c81 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c83 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c84 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c8c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c8d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0c90 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0c91 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ca8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ca9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0cb3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cb4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0cb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cbb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cbd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cbf },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0cc0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc1 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0cc2 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc5 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc6 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0cc8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cc9 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0ccb },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ccc },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0ccd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cd4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0cd6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cdd },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cde },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cdf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ce1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ce5 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0cef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d01 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d04 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d0d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d10 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d11 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d28 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d29 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0d3e },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d43 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d45 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d48 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d49 },
+{ C99|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0d4c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0d4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d56 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0d57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d5f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0d61 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d65 },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0d6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0dc9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   9, 0x0dca },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0dce },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0dcf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0dd9 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0dda },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ddb },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x0dde },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x0ddf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e00 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e30 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e31 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e32 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0e33 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e37 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 103, 0x0e38 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 103, 0x0e39 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0e3a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e3f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e46 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e47 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 107, 0x0e48 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 107, 0x0e49 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 107, 0x0e4a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e4e },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e4f },
+{ C99|N99|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e59 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e5b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e80 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e82 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e83 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e84 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e86 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e88 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e89 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e8a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e8c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e8d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e93 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e97 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0e98 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0e9f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ea9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eac },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eae },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eaf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x0eb3 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eb7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 118, 0x0eb8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 118, 0x0eb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eba },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ebc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ebd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ebf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec5 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ec7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 122, 0x0ec8 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 122, 0x0ec9 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 122, 0x0eca },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ecd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ecf },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0ed9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0edb },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0edd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0eff },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f00 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f0b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0f0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f17 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f18 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f19 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f1f },
+{ C99|N99|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f34 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f35 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f36 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x0f37 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f38 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x0f39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f3d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f42 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f43 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f47 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f48 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f4c },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f4d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f51 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f52 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f56 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f57 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f5b },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f5c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f68 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f69 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f70 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 129, 0x0f71 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f72 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f73 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 132, 0x0f74 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f76 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0f77 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f78 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x0f79 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f7a },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f7b },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f7c },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f7f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 130, 0x0f80 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f81 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0f82 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0f83 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x0f84 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f85 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x0f86 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f8b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f8f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f92 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f93 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f95 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f96 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f97 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f98 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0f9c },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0f9d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fa1 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fa2 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fa6 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fa7 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fab },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fac },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fad },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fb0 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fb7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fb8 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x0fb9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x0fc5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1025 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1026 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x102d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x102e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1036 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1038 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x1039 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x108c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x109f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x10c5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10cf },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x10f6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10fb },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x10fc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10ff },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1159 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1160 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|CTX,   0, 0x1175 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x11a2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11a7 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|CTX,   0, 0x11c2 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x11f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x135c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x135d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x135e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x167f },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x1680 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1713 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1733 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x17d1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x17dc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x180d },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x180e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x18a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1938 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x1939 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x193a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a16 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a17 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a5f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a74 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a75 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a76 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a77 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a78 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a79 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a7a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1a7b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1a7e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b05 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b06 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b07 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b08 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b09 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b0a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b0b },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b0d },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b0e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b11 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b12 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b33 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   7, 0x1b34 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x1b35 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b3a },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b3c },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b3d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b3f },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b41 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b42 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1b43 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1b6a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1b6c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b70 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b71 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1b72 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ba9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x1baa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1be5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1bf1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x1bf2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1c36 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ccf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cd0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cd1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1cd3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1cd4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cd9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cda },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1cdb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cdc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cdd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cde },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1cdf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ce1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1ce7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1cec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1cf3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d2b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d2e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d2f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d3a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d3b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d6a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d77 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d78 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d9a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1dbf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dc2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dc9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dca },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dcb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dcc },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 234, 0x1dcd },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 214, 0x1dce },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dcf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 202, 0x1dd0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dd9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dda },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddc },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddd },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dde },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1ddf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1de5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x1dfb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 233, 0x1dfc },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dfd },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x1dfe },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x1dff },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e07 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e09 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e13 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e17 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e1b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e1d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e2d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e2f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e37 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e39 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e4b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e53 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e5b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e5d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e63 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e69 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e77 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1e7b },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1e99 },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x1e9a },
+{ C99|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1e9b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1e9f },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ea3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1eb7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ebd },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ec7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ecf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ee3 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee7 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ef1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x1ef9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eff },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f15 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f17 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f1d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f1f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f45 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f47 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f4d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f4f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f58 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f59 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f5a },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f5b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f5c },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f5d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f5e },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f70 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f71 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f72 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f73 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f74 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f75 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f76 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f77 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f78 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f79 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f7a },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f7b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1f7c },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1f7d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f7f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fb4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fb5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fba },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fbb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fbc },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1fbd },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1fbe },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1fc0 },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fc1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fc4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fc5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fc8 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fc9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fca },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fcb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fcc },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fcf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fd2 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fd3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fd5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fda },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fdb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fdc },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fdf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fe2 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1fe3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fea },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1feb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1fec },
+{   0|  0|  0|C11|  0|  0|NFC|  0|  0,   0, 0x1fed },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1fee },
+{   0|  0|  0|C11|  0|CID|  0|  0|  0,   0, 0x1fef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ff1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ff4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ff5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ff8 },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1ff9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ffa },
+{ C99|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0x1ffb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x1ffc },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1ffd },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ffe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fff },
+{   0|  0|  0|  0|  0|CID|  0|  0|  0,   0, 0x200a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x200d },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2029 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x202e },
+{   0|  0|  0|  0|  0|CID|NFC|  0|  0,   0, 0x203e },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2040 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2053 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2054 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x205f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x206f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2071 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2073 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x207e },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x207f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x208e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x208f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x209c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x20a7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x20a8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x20cf },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d1 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d2 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d3 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20d7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20d9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20da },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20db },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x20e0 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x20e4 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20e5 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20e6 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20e7 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20e8 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0x20e9 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20ea },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   1, 0x20eb },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ec },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ed },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ee },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 220, 0x20ef },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0x20ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2101 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2102 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2103 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2104 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2106 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2107 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2108 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2109 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2113 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2114 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2115 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2116 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2117 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2118 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x211d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x211f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2122 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2123 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2124 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2125 },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x2126 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2127 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2128 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2129 },
+{ C99|  0|  0|C11|  0|CID|  0|  0|  0,   0, 0x212a },
+{ C99|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x212b },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x212d },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x212e },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2131 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2132 },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2138 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2139 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x213a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2140 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2144 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2149 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x214f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x215f },
+{ C99|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x217f },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2182 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2188 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2189 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x218f },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x245f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x24ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x24ff },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2775 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2793 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2bff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2c7b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2c7d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2cee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2cef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2cf0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2d6e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2d6f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2d7e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2ddf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2de9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2deb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2ded },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2def },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2df9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dfe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x2dff },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2e7f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2e9e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2e9f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2ef2 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2ef3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2eff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x2fd5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2fff },
+{   0|  0|  0|  0|  0|CID|NFC|  0|  0,   0, 0x3003 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3004 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3007 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x3020 },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3029 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 218, 0x302a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 228, 0x302b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 232, 0x302c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 222, 0x302d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 224, 0x302e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 224, 0x302f },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x3030 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3035 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x3036 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3037 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x303a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3040 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x304b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x304c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x304d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x304e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x304f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3050 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3051 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3052 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3053 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3054 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3055 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3056 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3057 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3058 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3059 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x305a },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x305b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x305c },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x305d },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x305e },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x305f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3060 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3061 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3062 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3064 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3065 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3066 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3067 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3068 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3069 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x306f },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3071 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3072 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3074 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3075 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3077 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3078 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x307a },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x307b },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x307d },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x3093 },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x3094 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3098 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   8, 0x3099 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   8, 0x309a },
+{ C99|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0x309c },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x309d },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x309e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x309f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x30a0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30ab },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30ac },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30ad },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30ae },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30af },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b6 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b7 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30b8 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30b9 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30ba },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30bb },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30bc },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30bd },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30be },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30bf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c0 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c1 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c2 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c4 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c5 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c6 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30c8 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30c9 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30cf },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30d1 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30d2 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30d4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30d5 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30d7 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30d8 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30da },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30db },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30dd },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30f3 },
+{ C99|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30f4 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30f6 },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30fa },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30fc },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x30fd },
+{   0|  0|CXX|C11|  0|  0|NFC|NKC|  0,   0, 0x30fe },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x30ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3104 },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x312c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3130 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x318e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3191 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x319f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x31ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x321e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x321f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x3247 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x324f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x327e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x327f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x32fe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x32ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x33ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x4dff },
+{ C99|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0x9fa5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa66e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa673 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa674 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa675 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa676 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa677 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa678 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa679 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa67a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa67b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa67c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa69e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa6ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa6f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa76f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xa770 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa7f7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xa7f9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa805 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa8c3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa8df },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e4 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8e9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ea },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8eb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ed },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8ef },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xa8f0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa92a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0xa92b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0xa92c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa952 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa9b2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xa9bf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaaaf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaab1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaab2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaab3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaab6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaab7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaabd },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0xaabe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaac0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xaaf5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xabec },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xabff },
+{ C99|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xd7a3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xd7ff },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xf8ff },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa0d },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa0f },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa10 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa11 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa12 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa14 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa1e },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa1f },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa20 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa21 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa22 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa24 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa26 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfa29 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfa2d },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0xfa6d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfa6f },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0xfad9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfaff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfb06 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb12 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfb17 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb1c },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0xfb1d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,  26, 0xfb1e },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb1f },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfb29 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb36 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb37 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb3c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb3d },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb3e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb3f },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb41 },
+{   0|  0|CXX|C11|  0|CID|NFC|NKC|  0,   0, 0xfb42 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb44 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfb45 },
+{   0|  0|CXX|C11|  0|  0|  0|  0|  0,   0, 0xfb4e },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfbb1 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfbd2 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfd3d },
+{   0|  0|CXX|  0|  0|CID|NFC|NKC|  0,   0, 0xfd3f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfd4f },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfd8f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfd91 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfdc7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfdcf },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xfdef },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfdfb },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfdfc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe0f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe19 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe1f },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe20 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe21 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe22 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe23 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe24 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0, 230, 0xfe25 },
+{   0|  0|  0|C11|N11|CID|NFC|NKC|  0,   0, 0xfe2f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe44 },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xfe46 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe52 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe53 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe66 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe67 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xfe6b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe6f },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfe72 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe73 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfe74 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfe75 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xfefc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xff00 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xff20 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xff3a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xff40 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xff5a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xff65 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffbe },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffc1 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffc7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffc9 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffcf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffd1 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffd7 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffd9 },
+{   0|  0|CXX|C11|  0|CID|NFC|  0|  0,   0, 0xffdc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffdf },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xffe6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xffe7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0xffee },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x101fc },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a0c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a0e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a37 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x10a38 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x10a39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x10a3e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11045 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11099 },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1109a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1109b },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1109c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x110aa },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x110ab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x110b8 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x110b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   7, 0x110ba },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x110ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x11100 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x11101 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11126 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|CTX,   0, 0x11127 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1112d },
+{   0|  0|  0|C11|  0|  0|NFC|NKC|  0,   0, 0x1112f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x11132 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x11133 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x111bf },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x116b5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   9, 0x116b6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d15d },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1d164 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d165 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d166 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1d167 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   1, 0x1d168 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d16c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 226, 0x1d16d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d16e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d16f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d170 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 216, 0x1d171 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d17a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d17f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d180 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d181 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d184 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d185 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d186 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d187 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d188 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d189 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 220, 0x1d18a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d1a9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d1aa },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d1ab },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d1ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d1ba },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x1d1c0 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d241 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d242 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0, 230, 0x1d243 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d3ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d454 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d455 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d49c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d49d },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d49f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4a1 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4a2 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4a4 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4a6 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4a8 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4ac },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4ad },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4b9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4ba },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4bb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4bc },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d4c3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d4c4 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d505 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d506 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d50a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d50c },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d514 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d515 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d51c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d51d },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d539 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d53a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d53e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d53f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d544 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d545 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d546 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d549 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d550 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d551 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d6a5 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d6a7 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d7cb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1d7cd },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1d7ff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1edff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee03 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee04 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee1f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee20 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee22 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee23 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee24 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee26 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee27 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee28 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee32 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee33 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee37 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee38 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee39 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee3a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee3b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee41 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee42 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee46 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee47 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee48 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee49 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee4a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee4b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee4c },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee4f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee50 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee52 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee53 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee54 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee56 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee57 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee58 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee59 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee5a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee5b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee5c },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee5d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee5e },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee5f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee60 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee62 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee63 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee64 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee66 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee6a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee6b },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee72 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee73 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee77 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee78 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee7c },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee7d },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee7e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee7f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee89 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1ee8a },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1ee9b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eea0 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1eea3 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eea4 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1eea9 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1eeaa },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1eebb },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f0ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f10a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f10f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f12e },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f12f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f14f },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f169 },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f16b },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f18f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f190 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f1ff },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f202 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f20f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f23a },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f23f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f248 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1f24f },
+{   0|  0|  0|C11|  0|CID|NFC|  0|  0,   0, 0x1f251 },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x1fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x1ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2f7ff },
+{   0|  0|  0|C11|  0|  0|  0|  0|  0,   0, 0x2fa1d },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x2fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x2ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x3fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x3ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x4fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x4ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x5fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x5ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x6fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x6ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x7fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x7ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x8fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x8ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0x9fffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x9ffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xafffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xaffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xbfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xbffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xcfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xcffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xdfffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0xdffff },
+{   0|  0|  0|C11|  0|CID|NFC|NKC|  0,   0, 0xefffd },
+{   0|  0|  0|  0|  0|CID|NFC|NKC|  0,   0, 0x10ffff },
+};
+static bool
+check_nfc (cpp_reader *pfile, cppchar_t c, cppchar_t p)
+{
+  switch (c)
+    {
+    case 0x0300:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0045:
+	case 0x0049:
+	case 0x004f:
+	case 0x0055:
+	case 0x0061:
+	case 0x0065:
+	case 0x0069:
+	case 0x006f:
+	case 0x0075:
+	case 0x00dc:
+	case 0x00fc:
+	case 0x004e:
+	case 0x006e:
+	case 0x0415:
+	case 0x0418:
+	case 0x0435:
+	case 0x0438:
+	case 0x0112:
+	case 0x0113:
+	case 0x014c:
+	case 0x014d:
+	case 0x0057:
+	case 0x0077:
+	case 0x00c2:
+	case 0x00e2:
+	case 0x0102:
+	case 0x0103:
+	case 0x00ca:
+	case 0x00ea:
+	case 0x00d4:
+	case 0x00f4:
+	case 0x01a0:
+	case 0x01a1:
+	case 0x01af:
+	case 0x01b0:
+	case 0x0059:
+	case 0x0079:
+	case 0x1f00:
+	case 0x1f80:
+	case 0x1f01:
+	case 0x1f81:
+	case 0x1f08:
+	case 0x1f88:
+	case 0x1f09:
+	case 0x1f89:
+	case 0x1f10:
+	case 0x1f11:
+	case 0x1f18:
+	case 0x1f19:
+	case 0x1f20:
+	case 0x1f90:
+	case 0x1f21:
+	case 0x1f91:
+	case 0x1f28:
+	case 0x1f98:
+	case 0x1f29:
+	case 0x1f99:
+	case 0x1f30:
+	case 0x1f31:
+	case 0x1f38:
+	case 0x1f39:
+	case 0x1f40:
+	case 0x1f41:
+	case 0x1f48:
+	case 0x1f49:
+	case 0x1f50:
+	case 0x1f51:
+	case 0x1f59:
+	case 0x1f60:
+	case 0x1fa0:
+	case 0x1f61:
+	case 0x1fa1:
+	case 0x1f68:
+	case 0x1fa8:
+	case 0x1f69:
+	case 0x1fa9:
+	case 0x03b1:
+	case 0x1fb3:
+	case 0x03b5:
+	case 0x03b7:
+	case 0x1fc3:
+	case 0x03b9:
+	case 0x03bf:
+	case 0x03c5:
+	case 0x03c9:
+	case 0x1ff3:
+	case 0x0391:
+	case 0x1fbc:
+	case 0x0395:
+	case 0x0397:
+	case 0x1fcc:
+	case 0x1fbf:
+	case 0x03ca:
+	case 0x0399:
+	case 0x1ffe:
+	case 0x03cb:
+	case 0x03a5:
+	case 0x00a8:
+	case 0x039f:
+	case 0x03a9:
+	case 0x1ffc:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0301:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0045:
+	case 0x0049:
+	case 0x004f:
+	case 0x0055:
+	case 0x0059:
+	case 0x0061:
+	case 0x0065:
+	case 0x0069:
+	case 0x006f:
+	case 0x0075:
+	case 0x0079:
+	case 0x0043:
+	case 0x0063:
+	case 0x004c:
+	case 0x006c:
+	case 0x004e:
+	case 0x006e:
+	case 0x0052:
+	case 0x0072:
+	case 0x0053:
+	case 0x0073:
+	case 0x005a:
+	case 0x007a:
+	case 0x00dc:
+	case 0x00fc:
+	case 0x0047:
+	case 0x0067:
+	case 0x00c5:
+	case 0x00e5:
+	case 0x00c6:
+	case 0x00e6:
+	case 0x00d8:
+	case 0x00f8:
+	case 0x00a8:
+	case 0x0391:
+	case 0x1fbc:
+	case 0x0395:
+	case 0x0397:
+	case 0x1fcc:
+	case 0x0399:
+	case 0x039f:
+	case 0x03a5:
+	case 0x03a9:
+	case 0x1ffc:
+	case 0x03ca:
+	case 0x03b1:
+	case 0x1fb3:
+	case 0x03b5:
+	case 0x03b7:
+	case 0x1fc3:
+	case 0x03b9:
+	case 0x03cb:
+	case 0x03bf:
+	case 0x03c5:
+	case 0x03c9:
+	case 0x1ff3:
+	case 0x03d2:
+	case 0x0413:
+	case 0x041a:
+	case 0x0433:
+	case 0x043a:
+	case 0x00c7:
+	case 0x00e7:
+	case 0x0112:
+	case 0x0113:
+	case 0x00cf:
+	case 0x00ef:
+	case 0x004b:
+	case 0x006b:
+	case 0x004d:
+	case 0x006d:
+	case 0x00d5:
+	case 0x00f5:
+	case 0x014c:
+	case 0x014d:
+	case 0x0050:
+	case 0x0070:
+	case 0x0168:
+	case 0x0169:
+	case 0x0057:
+	case 0x0077:
+	case 0x00c2:
+	case 0x00e2:
+	case 0x0102:
+	case 0x0103:
+	case 0x00ca:
+	case 0x00ea:
+	case 0x00d4:
+	case 0x00f4:
+	case 0x01a0:
+	case 0x01a1:
+	case 0x01af:
+	case 0x01b0:
+	case 0x1f00:
+	case 0x1f80:
+	case 0x1f01:
+	case 0x1f81:
+	case 0x1f08:
+	case 0x1f88:
+	case 0x1f09:
+	case 0x1f89:
+	case 0x1f10:
+	case 0x1f11:
+	case 0x1f18:
+	case 0x1f19:
+	case 0x1f20:
+	case 0x1f90:
+	case 0x1f21:
+	case 0x1f91:
+	case 0x1f28:
+	case 0x1f98:
+	case 0x1f29:
+	case 0x1f99:
+	case 0x1f30:
+	case 0x1f31:
+	case 0x1f38:
+	case 0x1f39:
+	case 0x1f40:
+	case 0x1f41:
+	case 0x1f48:
+	case 0x1f49:
+	case 0x1f50:
+	case 0x1f51:
+	case 0x1f59:
+	case 0x1f60:
+	case 0x1fa0:
+	case 0x1f61:
+	case 0x1fa1:
+	case 0x1f68:
+	case 0x1fa8:
+	case 0x1f69:
+	case 0x1fa9:
+	case 0x1fbf:
+	case 0x1ffe:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0302:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0045:
+	case 0x0049:
+	case 0x004f:
+	case 0x0055:
+	case 0x0061:
+	case 0x0065:
+	case 0x0069:
+	case 0x006f:
+	case 0x0075:
+	case 0x0043:
+	case 0x0063:
+	case 0x0047:
+	case 0x0067:
+	case 0x0048:
+	case 0x0068:
+	case 0x004a:
+	case 0x006a:
+	case 0x0053:
+	case 0x0073:
+	case 0x0057:
+	case 0x0077:
+	case 0x0059:
+	case 0x0079:
+	case 0x005a:
+	case 0x007a:
+	case 0x1ea0:
+	case 0x1ea1:
+	case 0x1eb8:
+	case 0x1eb9:
+	case 0x1ecc:
+	case 0x1ecd:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0303:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x004e:
+	case 0x004f:
+	case 0x0061:
+	case 0x006e:
+	case 0x006f:
+	case 0x0049:
+	case 0x0069:
+	case 0x0055:
+	case 0x0075:
+	case 0x0056:
+	case 0x0076:
+	case 0x00c2:
+	case 0x00e2:
+	case 0x0102:
+	case 0x0103:
+	case 0x0045:
+	case 0x0065:
+	case 0x00ca:
+	case 0x00ea:
+	case 0x00d4:
+	case 0x00f4:
+	case 0x01a0:
+	case 0x01a1:
+	case 0x01af:
+	case 0x01b0:
+	case 0x0059:
+	case 0x0079:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0304:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0061:
+	case 0x0045:
+	case 0x0065:
+	case 0x0049:
+	case 0x0069:
+	case 0x004f:
+	case 0x006f:
+	case 0x0055:
+	case 0x0075:
+	case 0x00dc:
+	case 0x00fc:
+	case 0x00c4:
+	case 0x00e4:
+	case 0x0226:
+	case 0x0227:
+	case 0x00c6:
+	case 0x00e6:
+	case 0x01ea:
+	case 0x01eb:
+	case 0x00d6:
+	case 0x00f6:
+	case 0x00d5:
+	case 0x00f5:
+	case 0x022e:
+	case 0x022f:
+	case 0x0059:
+	case 0x0079:
+	case 0x0418:
+	case 0x0438:
+	case 0x0423:
+	case 0x0443:
+	case 0x0047:
+	case 0x0067:
+	case 0x1e36:
+	case 0x1e37:
+	case 0x1e5a:
+	case 0x1e5b:
+	case 0x03b1:
+	case 0x1fb3:
+	case 0x0391:
+	case 0x1fbc:
+	case 0x03b9:
+	case 0x0399:
+	case 0x03c5:
+	case 0x03a5:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0306:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0061:
+	case 0x0045:
+	case 0x0065:
+	case 0x0047:
+	case 0x0067:
+	case 0x0049:
+	case 0x0069:
+	case 0x004f:
+	case 0x006f:
+	case 0x0055:
+	case 0x0075:
+	case 0x0423:
+	case 0x0418:
+	case 0x0438:
+	case 0x0443:
+	case 0x0416:
+	case 0x0436:
+	case 0x0410:
+	case 0x0430:
+	case 0x0415:
+	case 0x0435:
+	case 0x0228:
+	case 0x0229:
+	case 0x1ea0:
+	case 0x1ea1:
+	case 0x03b1:
+	case 0x1fb3:
+	case 0x0391:
+	case 0x1fbc:
+	case 0x03b9:
+	case 0x0399:
+	case 0x03c5:
+	case 0x03a5:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0307:
+      switch (p)
+	{
+	case 0x0043:
+	case 0x0063:
+	case 0x0045:
+	case 0x0065:
+	case 0x0047:
+	case 0x0067:
+	case 0x0049:
+	case 0x005a:
+	case 0x007a:
+	case 0x0041:
+	case 0x0061:
+	case 0x004f:
+	case 0x006f:
+	case 0x0042:
+	case 0x0062:
+	case 0x0044:
+	case 0x0064:
+	case 0x0046:
+	case 0x0066:
+	case 0x0048:
+	case 0x0068:
+	case 0x004d:
+	case 0x006d:
+	case 0x004e:
+	case 0x006e:
+	case 0x0050:
+	case 0x0070:
+	case 0x0052:
+	case 0x0072:
+	case 0x0053:
+	case 0x0073:
+	case 0x015a:
+	case 0x015b:
+	case 0x0160:
+	case 0x0161:
+	case 0x1e62:
+	case 0x1e63:
+	case 0x0054:
+	case 0x0074:
+	case 0x0057:
+	case 0x0077:
+	case 0x0058:
+	case 0x0078:
+	case 0x0059:
+	case 0x0079:
+	case 0x017f:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0308:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0045:
+	case 0x0049:
+	case 0x004f:
+	case 0x0055:
+	case 0x0061:
+	case 0x0065:
+	case 0x0069:
+	case 0x006f:
+	case 0x0075:
+	case 0x0079:
+	case 0x0059:
+	case 0x0399:
+	case 0x03a5:
+	case 0x03b9:
+	case 0x03c5:
+	case 0x03d2:
+	case 0x0415:
+	case 0x0406:
+	case 0x0435:
+	case 0x0456:
+	case 0x0410:
+	case 0x0430:
+	case 0x04d8:
+	case 0x04d9:
+	case 0x0416:
+	case 0x0436:
+	case 0x0417:
+	case 0x0437:
+	case 0x0418:
+	case 0x0438:
+	case 0x041e:
+	case 0x043e:
+	case 0x04e8:
+	case 0x04e9:
+	case 0x042d:
+	case 0x044d:
+	case 0x0423:
+	case 0x0443:
+	case 0x0427:
+	case 0x0447:
+	case 0x042b:
+	case 0x044b:
+	case 0x0048:
+	case 0x0068:
+	case 0x00d5:
+	case 0x00f5:
+	case 0x016a:
+	case 0x016b:
+	case 0x0057:
+	case 0x0077:
+	case 0x0058:
+	case 0x0078:
+	case 0x0074:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0309:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0061:
+	case 0x00c2:
+	case 0x00e2:
+	case 0x0102:
+	case 0x0103:
+	case 0x0045:
+	case 0x0065:
+	case 0x00ca:
+	case 0x00ea:
+	case 0x0049:
+	case 0x0069:
+	case 0x004f:
+	case 0x006f:
+	case 0x00d4:
+	case 0x00f4:
+	case 0x01a0:
+	case 0x01a1:
+	case 0x0055:
+	case 0x0075:
+	case 0x01af:
+	case 0x01b0:
+	case 0x0059:
+	case 0x0079:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x030a:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0061:
+	case 0x0055:
+	case 0x0075:
+	case 0x0077:
+	case 0x0079:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x030b:
+      switch (p)
+	{
+	case 0x004f:
+	case 0x006f:
+	case 0x0055:
+	case 0x0075:
+	case 0x0423:
+	case 0x0443:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x030c:
+      switch (p)
+	{
+	case 0x0043:
+	case 0x0063:
+	case 0x0044:
+	case 0x0064:
+	case 0x0045:
+	case 0x0065:
+	case 0x004c:
+	case 0x006c:
+	case 0x004e:
+	case 0x006e:
+	case 0x0052:
+	case 0x0072:
+	case 0x0053:
+	case 0x0073:
+	case 0x0054:
+	case 0x0074:
+	case 0x005a:
+	case 0x007a:
+	case 0x0041:
+	case 0x0061:
+	case 0x0049:
+	case 0x0069:
+	case 0x004f:
+	case 0x006f:
+	case 0x0055:
+	case 0x0075:
+	case 0x00dc:
+	case 0x00fc:
+	case 0x0047:
+	case 0x0067:
+	case 0x004b:
+	case 0x006b:
+	case 0x01b7:
+	case 0x0292:
+	case 0x006a:
+	case 0x0048:
+	case 0x0068:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x030f:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0061:
+	case 0x0045:
+	case 0x0065:
+	case 0x0049:
+	case 0x0069:
+	case 0x004f:
+	case 0x006f:
+	case 0x0052:
+	case 0x0072:
+	case 0x0055:
+	case 0x0075:
+	case 0x0474:
+	case 0x0475:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0311:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x0061:
+	case 0x0045:
+	case 0x0065:
+	case 0x0049:
+	case 0x0069:
+	case 0x004f:
+	case 0x006f:
+	case 0x0052:
+	case 0x0072:
+	case 0x0055:
+	case 0x0075:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0313:
+      switch (p)
+	{
+	case 0x03b1:
+	case 0x1fb3:
+	case 0x0391:
+	case 0x1fbc:
+	case 0x03b5:
+	case 0x0395:
+	case 0x03b7:
+	case 0x1fc3:
+	case 0x0397:
+	case 0x1fcc:
+	case 0x03b9:
+	case 0x0399:
+	case 0x03bf:
+	case 0x039f:
+	case 0x03c5:
+	case 0x03c9:
+	case 0x1ff3:
+	case 0x03a9:
+	case 0x1ffc:
+	case 0x03c1:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0314:
+      switch (p)
+	{
+	case 0x03b1:
+	case 0x1fb3:
+	case 0x0391:
+	case 0x1fbc:
+	case 0x03b5:
+	case 0x0395:
+	case 0x03b7:
+	case 0x1fc3:
+	case 0x0397:
+	case 0x1fcc:
+	case 0x03b9:
+	case 0x0399:
+	case 0x03bf:
+	case 0x039f:
+	case 0x03c5:
+	case 0x03a5:
+	case 0x03c9:
+	case 0x1ff3:
+	case 0x03a9:
+	case 0x1ffc:
+	case 0x03c1:
+	case 0x03a1:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x031b:
+      switch (p)
+	{
+	case 0x004f:
+	case 0x00d2:
+	case 0x00d3:
+	case 0x00d4:
+	case 0x00d5:
+	case 0x00d6:
+	case 0x014c:
+	case 0x014e:
+	case 0x0150:
+	case 0x01d1:
+	case 0x020c:
+	case 0x020e:
+	case 0x022a:
+	case 0x022c:
+	case 0x022e:
+	case 0x0230:
+	case 0x1e4c:
+	case 0x1e4e:
+	case 0x1e50:
+	case 0x1e52:
+	case 0x1ecc:
+	case 0x1ece:
+	case 0x1ed0:
+	case 0x1ed2:
+	case 0x1ed4:
+	case 0x1ed6:
+	case 0x1ed8:
+	case 0x006f:
+	case 0x00f2:
+	case 0x00f3:
+	case 0x00f4:
+	case 0x00f5:
+	case 0x00f6:
+	case 0x014d:
+	case 0x014f:
+	case 0x0151:
+	case 0x01d2:
+	case 0x020d:
+	case 0x020f:
+	case 0x022b:
+	case 0x022d:
+	case 0x022f:
+	case 0x0231:
+	case 0x1e4d:
+	case 0x1e4f:
+	case 0x1e51:
+	case 0x1e53:
+	case 0x1ecd:
+	case 0x1ecf:
+	case 0x1ed1:
+	case 0x1ed3:
+	case 0x1ed5:
+	case 0x1ed7:
+	case 0x1ed9:
+	case 0x0055:
+	case 0x00d9:
+	case 0x00da:
+	case 0x00db:
+	case 0x00dc:
+	case 0x0168:
+	case 0x016a:
+	case 0x016c:
+	case 0x016e:
+	case 0x0170:
+	case 0x01d3:
+	case 0x01d5:
+	case 0x01d7:
+	case 0x01d9:
+	case 0x01db:
+	case 0x0214:
+	case 0x0216:
+	case 0x1e72:
+	case 0x1e74:
+	case 0x1e76:
+	case 0x1e78:
+	case 0x1e7a:
+	case 0x1ee4:
+	case 0x1ee6:
+	case 0x0075:
+	case 0x00f9:
+	case 0x00fa:
+	case 0x00fb:
+	case 0x00fc:
+	case 0x0169:
+	case 0x016b:
+	case 0x016d:
+	case 0x016f:
+	case 0x0171:
+	case 0x01d4:
+	case 0x01d6:
+	case 0x01d8:
+	case 0x01da:
+	case 0x01dc:
+	case 0x0215:
+	case 0x0217:
+	case 0x1e73:
+	case 0x1e75:
+	case 0x1e77:
+	case 0x1e79:
+	case 0x1e7b:
+	case 0x1ee5:
+	case 0x1ee7:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0323:
+      switch (p)
+	{
+	case 0x0042:
+	case 0x1e02:
+	case 0x0062:
+	case 0x1e03:
+	case 0x0044:
+	case 0x010e:
+	case 0x1e0a:
+	case 0x0064:
+	case 0x010f:
+	case 0x1e0b:
+	case 0x0048:
+	case 0x0124:
+	case 0x021e:
+	case 0x1e22:
+	case 0x1e26:
+	case 0x0068:
+	case 0x0125:
+	case 0x021f:
+	case 0x1e23:
+	case 0x1e27:
+	case 0x004b:
+	case 0x01e8:
+	case 0x1e30:
+	case 0x006b:
+	case 0x01e9:
+	case 0x1e31:
+	case 0x004c:
+	case 0x0139:
+	case 0x013d:
+	case 0x006c:
+	case 0x013a:
+	case 0x013e:
+	case 0x004d:
+	case 0x1e3e:
+	case 0x1e40:
+	case 0x006d:
+	case 0x1e3f:
+	case 0x1e41:
+	case 0x004e:
+	case 0x00d1:
+	case 0x0143:
+	case 0x0147:
+	case 0x01f8:
+	case 0x1e44:
+	case 0x006e:
+	case 0x00f1:
+	case 0x0144:
+	case 0x0148:
+	case 0x01f9:
+	case 0x1e45:
+	case 0x0052:
+	case 0x0154:
+	case 0x0158:
+	case 0x0210:
+	case 0x0212:
+	case 0x1e58:
+	case 0x0072:
+	case 0x0155:
+	case 0x0159:
+	case 0x0211:
+	case 0x0213:
+	case 0x1e59:
+	case 0x0053:
+	case 0x015a:
+	case 0x015c:
+	case 0x0160:
+	case 0x1e60:
+	case 0x1e64:
+	case 0x1e66:
+	case 0x0073:
+	case 0x015b:
+	case 0x015d:
+	case 0x0161:
+	case 0x1e61:
+	case 0x1e65:
+	case 0x1e67:
+	case 0x0054:
+	case 0x0164:
+	case 0x1e6a:
+	case 0x0074:
+	case 0x0165:
+	case 0x1e6b:
+	case 0x1e97:
+	case 0x0056:
+	case 0x1e7c:
+	case 0x0076:
+	case 0x1e7d:
+	case 0x0057:
+	case 0x0174:
+	case 0x1e80:
+	case 0x1e82:
+	case 0x1e84:
+	case 0x1e86:
+	case 0x0077:
+	case 0x0175:
+	case 0x1e81:
+	case 0x1e83:
+	case 0x1e85:
+	case 0x1e87:
+	case 0x1e98:
+	case 0x005a:
+	case 0x0179:
+	case 0x017b:
+	case 0x017d:
+	case 0x1e90:
+	case 0x007a:
+	case 0x017a:
+	case 0x017c:
+	case 0x017e:
+	case 0x1e91:
+	case 0x0041:
+	case 0x00c0:
+	case 0x00c1:
+	case 0x00c2:
+	case 0x00c3:
+	case 0x00c4:
+	case 0x00c5:
+	case 0x0100:
+	case 0x0102:
+	case 0x01cd:
+	case 0x01de:
+	case 0x01e0:
+	case 0x01fa:
+	case 0x0200:
+	case 0x0202:
+	case 0x0226:
+	case 0x1ea2:
+	case 0x1ea4:
+	case 0x1ea6:
+	case 0x1ea8:
+	case 0x1eaa:
+	case 0x1eae:
+	case 0x1eb0:
+	case 0x1eb2:
+	case 0x1eb4:
+	case 0x0061:
+	case 0x00e0:
+	case 0x00e1:
+	case 0x00e2:
+	case 0x00e3:
+	case 0x00e4:
+	case 0x00e5:
+	case 0x0101:
+	case 0x0103:
+	case 0x01ce:
+	case 0x01df:
+	case 0x01e1:
+	case 0x01fb:
+	case 0x0201:
+	case 0x0203:
+	case 0x0227:
+	case 0x1ea3:
+	case 0x1ea5:
+	case 0x1ea7:
+	case 0x1ea9:
+	case 0x1eab:
+	case 0x1eaf:
+	case 0x1eb1:
+	case 0x1eb3:
+	case 0x1eb5:
+	case 0x0045:
+	case 0x00c8:
+	case 0x00c9:
+	case 0x00ca:
+	case 0x00cb:
+	case 0x0112:
+	case 0x0114:
+	case 0x0116:
+	case 0x011a:
+	case 0x0204:
+	case 0x0206:
+	case 0x1e14:
+	case 0x1e16:
+	case 0x1eba:
+	case 0x1ebc:
+	case 0x1ebe:
+	case 0x1ec0:
+	case 0x1ec2:
+	case 0x1ec4:
+	case 0x0065:
+	case 0x00e8:
+	case 0x00e9:
+	case 0x00ea:
+	case 0x00eb:
+	case 0x0113:
+	case 0x0115:
+	case 0x0117:
+	case 0x011b:
+	case 0x0205:
+	case 0x0207:
+	case 0x1e15:
+	case 0x1e17:
+	case 0x1ebb:
+	case 0x1ebd:
+	case 0x1ebf:
+	case 0x1ec1:
+	case 0x1ec3:
+	case 0x1ec5:
+	case 0x0049:
+	case 0x00cc:
+	case 0x00cd:
+	case 0x00ce:
+	case 0x00cf:
+	case 0x0128:
+	case 0x012a:
+	case 0x012c:
+	case 0x0130:
+	case 0x01cf:
+	case 0x0208:
+	case 0x020a:
+	case 0x1e2e:
+	case 0x1ec8:
+	case 0x0069:
+	case 0x00ec:
+	case 0x00ed:
+	case 0x00ee:
+	case 0x00ef:
+	case 0x0129:
+	case 0x012b:
+	case 0x012d:
+	case 0x01d0:
+	case 0x0209:
+	case 0x020b:
+	case 0x1e2f:
+	case 0x1ec9:
+	case 0x004f:
+	case 0x00d2:
+	case 0x00d3:
+	case 0x00d4:
+	case 0x00d5:
+	case 0x00d6:
+	case 0x014c:
+	case 0x014e:
+	case 0x0150:
+	case 0x01d1:
+	case 0x020c:
+	case 0x020e:
+	case 0x022a:
+	case 0x022c:
+	case 0x022e:
+	case 0x0230:
+	case 0x1e4c:
+	case 0x1e4e:
+	case 0x1e50:
+	case 0x1e52:
+	case 0x1ece:
+	case 0x1ed0:
+	case 0x1ed2:
+	case 0x1ed4:
+	case 0x1ed6:
+	case 0x006f:
+	case 0x00f2:
+	case 0x00f3:
+	case 0x00f4:
+	case 0x00f5:
+	case 0x00f6:
+	case 0x014d:
+	case 0x014f:
+	case 0x0151:
+	case 0x01d2:
+	case 0x020d:
+	case 0x020f:
+	case 0x022b:
+	case 0x022d:
+	case 0x022f:
+	case 0x0231:
+	case 0x1e4d:
+	case 0x1e4f:
+	case 0x1e51:
+	case 0x1e53:
+	case 0x1ecf:
+	case 0x1ed1:
+	case 0x1ed3:
+	case 0x1ed5:
+	case 0x1ed7:
+	case 0x01a0:
+	case 0x1eda:
+	case 0x1edc:
+	case 0x1ede:
+	case 0x1ee0:
+	case 0x01a1:
+	case 0x1edb:
+	case 0x1edd:
+	case 0x1edf:
+	case 0x1ee1:
+	case 0x0055:
+	case 0x00d9:
+	case 0x00da:
+	case 0x00db:
+	case 0x00dc:
+	case 0x0168:
+	case 0x016a:
+	case 0x016c:
+	case 0x016e:
+	case 0x0170:
+	case 0x01d3:
+	case 0x01d5:
+	case 0x01d7:
+	case 0x01d9:
+	case 0x01db:
+	case 0x0214:
+	case 0x0216:
+	case 0x1e78:
+	case 0x1e7a:
+	case 0x1ee6:
+	case 0x0075:
+	case 0x00f9:
+	case 0x00fa:
+	case 0x00fb:
+	case 0x00fc:
+	case 0x0169:
+	case 0x016b:
+	case 0x016d:
+	case 0x016f:
+	case 0x0171:
+	case 0x01d4:
+	case 0x01d6:
+	case 0x01d8:
+	case 0x01da:
+	case 0x01dc:
+	case 0x0215:
+	case 0x0217:
+	case 0x1e79:
+	case 0x1e7b:
+	case 0x1ee7:
+	case 0x01af:
+	case 0x1ee8:
+	case 0x1eea:
+	case 0x1eec:
+	case 0x1eee:
+	case 0x01b0:
+	case 0x1ee9:
+	case 0x1eeb:
+	case 0x1eed:
+	case 0x1eef:
+	case 0x0059:
+	case 0x00dd:
+	case 0x0176:
+	case 0x0178:
+	case 0x0232:
+	case 0x1e8e:
+	case 0x1ef2:
+	case 0x1ef6:
+	case 0x1ef8:
+	case 0x0079:
+	case 0x00fd:
+	case 0x00ff:
+	case 0x0177:
+	case 0x0233:
+	case 0x1e8f:
+	case 0x1e99:
+	case 0x1ef3:
+	case 0x1ef7:
+	case 0x1ef9:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0324:
+      switch (p)
+	{
+	case 0x0055:
+	case 0x00d9:
+	case 0x00da:
+	case 0x00db:
+	case 0x00dc:
+	case 0x0168:
+	case 0x016a:
+	case 0x016c:
+	case 0x016e:
+	case 0x0170:
+	case 0x01d3:
+	case 0x01d5:
+	case 0x01d7:
+	case 0x01d9:
+	case 0x01db:
+	case 0x0214:
+	case 0x0216:
+	case 0x1e78:
+	case 0x1e7a:
+	case 0x1ee6:
+	case 0x0075:
+	case 0x00f9:
+	case 0x00fa:
+	case 0x00fb:
+	case 0x00fc:
+	case 0x0169:
+	case 0x016b:
+	case 0x016d:
+	case 0x016f:
+	case 0x0171:
+	case 0x01d4:
+	case 0x01d6:
+	case 0x01d8:
+	case 0x01da:
+	case 0x01dc:
+	case 0x0215:
+	case 0x0217:
+	case 0x1e79:
+	case 0x1e7b:
+	case 0x1ee7:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0325:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x00c0:
+	case 0x00c1:
+	case 0x00c2:
+	case 0x00c3:
+	case 0x00c4:
+	case 0x00c5:
+	case 0x0100:
+	case 0x0102:
+	case 0x01cd:
+	case 0x01de:
+	case 0x01e0:
+	case 0x01fa:
+	case 0x0200:
+	case 0x0202:
+	case 0x0226:
+	case 0x1ea2:
+	case 0x1ea4:
+	case 0x1ea6:
+	case 0x1ea8:
+	case 0x1eaa:
+	case 0x1eae:
+	case 0x1eb0:
+	case 0x1eb2:
+	case 0x1eb4:
+	case 0x0061:
+	case 0x00e0:
+	case 0x00e1:
+	case 0x00e2:
+	case 0x00e3:
+	case 0x00e4:
+	case 0x00e5:
+	case 0x0101:
+	case 0x0103:
+	case 0x01ce:
+	case 0x01df:
+	case 0x01e1:
+	case 0x01fb:
+	case 0x0201:
+	case 0x0203:
+	case 0x0227:
+	case 0x1ea3:
+	case 0x1ea5:
+	case 0x1ea7:
+	case 0x1ea9:
+	case 0x1eab:
+	case 0x1eaf:
+	case 0x1eb1:
+	case 0x1eb3:
+	case 0x1eb5:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0326:
+      switch (p)
+	{
+	case 0x0053:
+	case 0x015a:
+	case 0x015c:
+	case 0x0160:
+	case 0x1e60:
+	case 0x1e64:
+	case 0x1e66:
+	case 0x0073:
+	case 0x015b:
+	case 0x015d:
+	case 0x0161:
+	case 0x1e61:
+	case 0x1e65:
+	case 0x1e67:
+	case 0x0054:
+	case 0x0164:
+	case 0x1e6a:
+	case 0x0074:
+	case 0x0165:
+	case 0x1e6b:
+	case 0x1e97:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0327:
+      switch (p)
+	{
+	case 0x0043:
+	case 0x0106:
+	case 0x0108:
+	case 0x010a:
+	case 0x010c:
+	case 0x0063:
+	case 0x0107:
+	case 0x0109:
+	case 0x010b:
+	case 0x010d:
+	case 0x0047:
+	case 0x011c:
+	case 0x011e:
+	case 0x0120:
+	case 0x01e6:
+	case 0x01f4:
+	case 0x1e20:
+	case 0x0067:
+	case 0x011d:
+	case 0x011f:
+	case 0x0121:
+	case 0x01e7:
+	case 0x01f5:
+	case 0x1e21:
+	case 0x004b:
+	case 0x01e8:
+	case 0x1e30:
+	case 0x1e32:
+	case 0x1e34:
+	case 0x006b:
+	case 0x01e9:
+	case 0x1e31:
+	case 0x1e33:
+	case 0x1e35:
+	case 0x004c:
+	case 0x0139:
+	case 0x013d:
+	case 0x1e36:
+	case 0x1e38:
+	case 0x1e3a:
+	case 0x1e3c:
+	case 0x006c:
+	case 0x013a:
+	case 0x013e:
+	case 0x1e37:
+	case 0x1e39:
+	case 0x1e3b:
+	case 0x1e3d:
+	case 0x004e:
+	case 0x00d1:
+	case 0x0143:
+	case 0x0147:
+	case 0x01f8:
+	case 0x1e44:
+	case 0x1e46:
+	case 0x1e48:
+	case 0x1e4a:
+	case 0x006e:
+	case 0x00f1:
+	case 0x0144:
+	case 0x0148:
+	case 0x01f9:
+	case 0x1e45:
+	case 0x1e47:
+	case 0x1e49:
+	case 0x1e4b:
+	case 0x0052:
+	case 0x0154:
+	case 0x0158:
+	case 0x0210:
+	case 0x0212:
+	case 0x1e58:
+	case 0x1e5a:
+	case 0x1e5c:
+	case 0x1e5e:
+	case 0x0072:
+	case 0x0155:
+	case 0x0159:
+	case 0x0211:
+	case 0x0213:
+	case 0x1e59:
+	case 0x1e5b:
+	case 0x1e5d:
+	case 0x1e5f:
+	case 0x0053:
+	case 0x015a:
+	case 0x015c:
+	case 0x0160:
+	case 0x0218:
+	case 0x1e60:
+	case 0x1e62:
+	case 0x1e64:
+	case 0x1e66:
+	case 0x1e68:
+	case 0x0073:
+	case 0x015b:
+	case 0x015d:
+	case 0x0161:
+	case 0x0219:
+	case 0x1e61:
+	case 0x1e63:
+	case 0x1e65:
+	case 0x1e67:
+	case 0x1e69:
+	case 0x0054:
+	case 0x0164:
+	case 0x021a:
+	case 0x1e6a:
+	case 0x1e6c:
+	case 0x1e6e:
+	case 0x1e70:
+	case 0x0074:
+	case 0x0165:
+	case 0x021b:
+	case 0x1e6b:
+	case 0x1e6d:
+	case 0x1e6f:
+	case 0x1e71:
+	case 0x1e97:
+	case 0x0045:
+	case 0x00c8:
+	case 0x00c9:
+	case 0x00ca:
+	case 0x00cb:
+	case 0x0112:
+	case 0x0114:
+	case 0x0116:
+	case 0x011a:
+	case 0x0204:
+	case 0x0206:
+	case 0x1e14:
+	case 0x1e16:
+	case 0x1e18:
+	case 0x1e1a:
+	case 0x1eb8:
+	case 0x1eba:
+	case 0x1ebc:
+	case 0x1ebe:
+	case 0x1ec0:
+	case 0x1ec2:
+	case 0x1ec4:
+	case 0x1ec6:
+	case 0x0065:
+	case 0x00e8:
+	case 0x00e9:
+	case 0x00ea:
+	case 0x00eb:
+	case 0x0113:
+	case 0x0115:
+	case 0x0117:
+	case 0x011b:
+	case 0x0205:
+	case 0x0207:
+	case 0x1e15:
+	case 0x1e17:
+	case 0x1e19:
+	case 0x1e1b:
+	case 0x1eb9:
+	case 0x1ebb:
+	case 0x1ebd:
+	case 0x1ebf:
+	case 0x1ec1:
+	case 0x1ec3:
+	case 0x1ec5:
+	case 0x1ec7:
+	case 0x0044:
+	case 0x010e:
+	case 0x1e0a:
+	case 0x1e0c:
+	case 0x1e0e:
+	case 0x1e12:
+	case 0x0064:
+	case 0x010f:
+	case 0x1e0b:
+	case 0x1e0d:
+	case 0x1e0f:
+	case 0x1e13:
+	case 0x0048:
+	case 0x0124:
+	case 0x021e:
+	case 0x1e22:
+	case 0x1e24:
+	case 0x1e26:
+	case 0x1e2a:
+	case 0x0068:
+	case 0x0125:
+	case 0x021f:
+	case 0x1e23:
+	case 0x1e25:
+	case 0x1e27:
+	case 0x1e2b:
+	case 0x1e96:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0328:
+      switch (p)
+	{
+	case 0x0041:
+	case 0x00c0:
+	case 0x00c1:
+	case 0x00c2:
+	case 0x00c3:
+	case 0x00c4:
+	case 0x00c5:
+	case 0x0100:
+	case 0x0102:
+	case 0x01cd:
+	case 0x01de:
+	case 0x01e0:
+	case 0x01fa:
+	case 0x0200:
+	case 0x0202:
+	case 0x0226:
+	case 0x1e00:
+	case 0x1ea0:
+	case 0x1ea2:
+	case 0x1ea4:
+	case 0x1ea6:
+	case 0x1ea8:
+	case 0x1eaa:
+	case 0x1eac:
+	case 0x1eae:
+	case 0x1eb0:
+	case 0x1eb2:
+	case 0x1eb4:
+	case 0x1eb6:
+	case 0x0061:
+	case 0x00e0:
+	case 0x00e1:
+	case 0x00e2:
+	case 0x00e3:
+	case 0x00e4:
+	case 0x00e5:
+	case 0x0101:
+	case 0x0103:
+	case 0x01ce:
+	case 0x01df:
+	case 0x01e1:
+	case 0x01fb:
+	case 0x0201:
+	case 0x0203:
+	case 0x0227:
+	case 0x1e01:
+	case 0x1ea1:
+	case 0x1ea3:
+	case 0x1ea5:
+	case 0x1ea7:
+	case 0x1ea9:
+	case 0x1eab:
+	case 0x1ead:
+	case 0x1eaf:
+	case 0x1eb1:
+	case 0x1eb3:
+	case 0x1eb5:
+	case 0x1eb7:
+	case 0x0045:
+	case 0x00c8:
+	case 0x00c9:
+	case 0x00ca:
+	case 0x00cb:
+	case 0x0112:
+	case 0x0114:
+	case 0x0116:
+	case 0x011a:
+	case 0x0204:
+	case 0x0206:
+	case 0x1e14:
+	case 0x1e16:
+	case 0x1e18:
+	case 0x1e1a:
+	case 0x1eb8:
+	case 0x1eba:
+	case 0x1ebc:
+	case 0x1ebe:
+	case 0x1ec0:
+	case 0x1ec2:
+	case 0x1ec4:
+	case 0x1ec6:
+	case 0x0065:
+	case 0x00e8:
+	case 0x00e9:
+	case 0x00ea:
+	case 0x00eb:
+	case 0x0113:
+	case 0x0115:
+	case 0x0117:
+	case 0x011b:
+	case 0x0205:
+	case 0x0207:
+	case 0x1e15:
+	case 0x1e17:
+	case 0x1e19:
+	case 0x1e1b:
+	case 0x1eb9:
+	case 0x1ebb:
+	case 0x1ebd:
+	case 0x1ebf:
+	case 0x1ec1:
+	case 0x1ec3:
+	case 0x1ec5:
+	case 0x1ec7:
+	case 0x0049:
+	case 0x00cc:
+	case 0x00cd:
+	case 0x00ce:
+	case 0x00cf:
+	case 0x0128:
+	case 0x012a:
+	case 0x012c:
+	case 0x0130:
+	case 0x01cf:
+	case 0x0208:
+	case 0x020a:
+	case 0x1e2c:
+	case 0x1e2e:
+	case 0x1ec8:
+	case 0x1eca:
+	case 0x0069:
+	case 0x00ec:
+	case 0x00ed:
+	case 0x00ee:
+	case 0x00ef:
+	case 0x0129:
+	case 0x012b:
+	case 0x012d:
+	case 0x01d0:
+	case 0x0209:
+	case 0x020b:
+	case 0x1e2d:
+	case 0x1e2f:
+	case 0x1ec9:
+	case 0x1ecb:
+	case 0x0055:
+	case 0x00d9:
+	case 0x00da:
+	case 0x00db:
+	case 0x00dc:
+	case 0x0168:
+	case 0x016a:
+	case 0x016c:
+	case 0x016e:
+	case 0x0170:
+	case 0x01af:
+	case 0x01d3:
+	case 0x01d5:
+	case 0x01d7:
+	case 0x01d9:
+	case 0x01db:
+	case 0x0214:
+	case 0x0216:
+	case 0x1e72:
+	case 0x1e74:
+	case 0x1e76:
+	case 0x1e78:
+	case 0x1e7a:
+	case 0x1ee4:
+	case 0x1ee6:
+	case 0x1ee8:
+	case 0x1eea:
+	case 0x1eec:
+	case 0x1eee:
+	case 0x1ef0:
+	case 0x0075:
+	case 0x00f9:
+	case 0x00fa:
+	case 0x00fb:
+	case 0x00fc:
+	case 0x0169:
+	case 0x016b:
+	case 0x016d:
+	case 0x016f:
+	case 0x0171:
+	case 0x01b0:
+	case 0x01d4:
+	case 0x01d6:
+	case 0x01d8:
+	case 0x01da:
+	case 0x01dc:
+	case 0x0215:
+	case 0x0217:
+	case 0x1e73:
+	case 0x1e75:
+	case 0x1e77:
+	case 0x1e79:
+	case 0x1e7b:
+	case 0x1ee5:
+	case 0x1ee7:
+	case 0x1ee9:
+	case 0x1eeb:
+	case 0x1eed:
+	case 0x1eef:
+	case 0x1ef1:
+	case 0x004f:
+	case 0x00d2:
+	case 0x00d3:
+	case 0x00d4:
+	case 0x00d5:
+	case 0x00d6:
+	case 0x014c:
+	case 0x014e:
+	case 0x0150:
+	case 0x01a0:
+	case 0x01d1:
+	case 0x020c:
+	case 0x020e:
+	case 0x022a:
+	case 0x022c:
+	case 0x022e:
+	case 0x0230:
+	case 0x1e4c:
+	case 0x1e4e:
+	case 0x1e50:
+	case 0x1e52:
+	case 0x1ecc:
+	case 0x1ece:
+	case 0x1ed0:
+	case 0x1ed2:
+	case 0x1ed4:
+	case 0x1ed6:
+	case 0x1ed8:
+	case 0x1eda:
+	case 0x1edc:
+	case 0x1ede:
+	case 0x1ee0:
+	case 0x1ee2:
+	case 0x006f:
+	case 0x00f2:
+	case 0x00f3:
+	case 0x00f4:
+	case 0x00f5:
+	case 0x00f6:
+	case 0x014d:
+	case 0x014f:
+	case 0x0151:
+	case 0x01a1:
+	case 0x01d2:
+	case 0x020d:
+	case 0x020f:
+	case 0x022b:
+	case 0x022d:
+	case 0x022f:
+	case 0x0231:
+	case 0x1e4d:
+	case 0x1e4f:
+	case 0x1e51:
+	case 0x1e53:
+	case 0x1ecd:
+	case 0x1ecf:
+	case 0x1ed1:
+	case 0x1ed3:
+	case 0x1ed5:
+	case 0x1ed7:
+	case 0x1ed9:
+	case 0x1edb:
+	case 0x1edd:
+	case 0x1edf:
+	case 0x1ee1:
+	case 0x1ee3:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x032d:
+      switch (p)
+	{
+	case 0x0044:
+	case 0x010e:
+	case 0x1e0a:
+	case 0x0064:
+	case 0x010f:
+	case 0x1e0b:
+	case 0x0045:
+	case 0x00c8:
+	case 0x00c9:
+	case 0x00ca:
+	case 0x00cb:
+	case 0x0112:
+	case 0x0114:
+	case 0x0116:
+	case 0x011a:
+	case 0x0204:
+	case 0x0206:
+	case 0x1e14:
+	case 0x1e16:
+	case 0x1eba:
+	case 0x1ebc:
+	case 0x1ebe:
+	case 0x1ec0:
+	case 0x1ec2:
+	case 0x1ec4:
+	case 0x0065:
+	case 0x00e8:
+	case 0x00e9:
+	case 0x00ea:
+	case 0x00eb:
+	case 0x0113:
+	case 0x0115:
+	case 0x0117:
+	case 0x011b:
+	case 0x0205:
+	case 0x0207:
+	case 0x1e15:
+	case 0x1e17:
+	case 0x1ebb:
+	case 0x1ebd:
+	case 0x1ebf:
+	case 0x1ec1:
+	case 0x1ec3:
+	case 0x1ec5:
+	case 0x004c:
+	case 0x0139:
+	case 0x013d:
+	case 0x006c:
+	case 0x013a:
+	case 0x013e:
+	case 0x004e:
+	case 0x00d1:
+	case 0x0143:
+	case 0x0147:
+	case 0x01f8:
+	case 0x1e44:
+	case 0x006e:
+	case 0x00f1:
+	case 0x0144:
+	case 0x0148:
+	case 0x01f9:
+	case 0x1e45:
+	case 0x0054:
+	case 0x0164:
+	case 0x1e6a:
+	case 0x0074:
+	case 0x0165:
+	case 0x1e6b:
+	case 0x1e97:
+	case 0x0055:
+	case 0x00d9:
+	case 0x00da:
+	case 0x00db:
+	case 0x00dc:
+	case 0x0168:
+	case 0x016a:
+	case 0x016c:
+	case 0x016e:
+	case 0x0170:
+	case 0x01d3:
+	case 0x01d5:
+	case 0x01d7:
+	case 0x01d9:
+	case 0x01db:
+	case 0x0214:
+	case 0x0216:
+	case 0x1e78:
+	case 0x1e7a:
+	case 0x1ee6:
+	case 0x0075:
+	case 0x00f9:
+	case 0x00fa:
+	case 0x00fb:
+	case 0x00fc:
+	case 0x0169:
+	case 0x016b:
+	case 0x016d:
+	case 0x016f:
+	case 0x0171:
+	case 0x01d4:
+	case 0x01d6:
+	case 0x01d8:
+	case 0x01da:
+	case 0x01dc:
+	case 0x0215:
+	case 0x0217:
+	case 0x1e79:
+	case 0x1e7b:
+	case 0x1ee7:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x032e:
+      switch (p)
+	{
+	case 0x0048:
+	case 0x0124:
+	case 0x021e:
+	case 0x1e22:
+	case 0x1e26:
+	case 0x0068:
+	case 0x0125:
+	case 0x021f:
+	case 0x1e23:
+	case 0x1e27:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0330:
+      switch (p)
+	{
+	case 0x0045:
+	case 0x00c8:
+	case 0x00c9:
+	case 0x00ca:
+	case 0x00cb:
+	case 0x0112:
+	case 0x0114:
+	case 0x0116:
+	case 0x011a:
+	case 0x0204:
+	case 0x0206:
+	case 0x1e14:
+	case 0x1e16:
+	case 0x1eba:
+	case 0x1ebc:
+	case 0x1ebe:
+	case 0x1ec0:
+	case 0x1ec2:
+	case 0x1ec4:
+	case 0x0065:
+	case 0x00e8:
+	case 0x00e9:
+	case 0x00ea:
+	case 0x00eb:
+	case 0x0113:
+	case 0x0115:
+	case 0x0117:
+	case 0x011b:
+	case 0x0205:
+	case 0x0207:
+	case 0x1e15:
+	case 0x1e17:
+	case 0x1ebb:
+	case 0x1ebd:
+	case 0x1ebf:
+	case 0x1ec1:
+	case 0x1ec3:
+	case 0x1ec5:
+	case 0x0049:
+	case 0x00cc:
+	case 0x00cd:
+	case 0x00ce:
+	case 0x00cf:
+	case 0x0128:
+	case 0x012a:
+	case 0x012c:
+	case 0x0130:
+	case 0x01cf:
+	case 0x0208:
+	case 0x020a:
+	case 0x1e2e:
+	case 0x1ec8:
+	case 0x0069:
+	case 0x00ec:
+	case 0x00ed:
+	case 0x00ee:
+	case 0x00ef:
+	case 0x0129:
+	case 0x012b:
+	case 0x012d:
+	case 0x01d0:
+	case 0x0209:
+	case 0x020b:
+	case 0x1e2f:
+	case 0x1ec9:
+	case 0x0055:
+	case 0x00d9:
+	case 0x00da:
+	case 0x00db:
+	case 0x00dc:
+	case 0x0168:
+	case 0x016a:
+	case 0x016c:
+	case 0x016e:
+	case 0x0170:
+	case 0x01d3:
+	case 0x01d5:
+	case 0x01d7:
+	case 0x01d9:
+	case 0x01db:
+	case 0x0214:
+	case 0x0216:
+	case 0x1e78:
+	case 0x1e7a:
+	case 0x1ee6:
+	case 0x0075:
+	case 0x00f9:
+	case 0x00fa:
+	case 0x00fb:
+	case 0x00fc:
+	case 0x0169:
+	case 0x016b:
+	case 0x016d:
+	case 0x016f:
+	case 0x0171:
+	case 0x01d4:
+	case 0x01d6:
+	case 0x01d8:
+	case 0x01da:
+	case 0x01dc:
+	case 0x0215:
+	case 0x0217:
+	case 0x1e79:
+	case 0x1e7b:
+	case 0x1ee7:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0331:
+      switch (p)
+	{
+	case 0x0042:
+	case 0x1e02:
+	case 0x0062:
+	case 0x1e03:
+	case 0x0044:
+	case 0x010e:
+	case 0x1e0a:
+	case 0x0064:
+	case 0x010f:
+	case 0x1e0b:
+	case 0x004b:
+	case 0x01e8:
+	case 0x1e30:
+	case 0x006b:
+	case 0x01e9:
+	case 0x1e31:
+	case 0x004c:
+	case 0x0139:
+	case 0x013d:
+	case 0x006c:
+	case 0x013a:
+	case 0x013e:
+	case 0x004e:
+	case 0x00d1:
+	case 0x0143:
+	case 0x0147:
+	case 0x01f8:
+	case 0x1e44:
+	case 0x006e:
+	case 0x00f1:
+	case 0x0144:
+	case 0x0148:
+	case 0x01f9:
+	case 0x1e45:
+	case 0x0052:
+	case 0x0154:
+	case 0x0158:
+	case 0x0210:
+	case 0x0212:
+	case 0x1e58:
+	case 0x0072:
+	case 0x0155:
+	case 0x0159:
+	case 0x0211:
+	case 0x0213:
+	case 0x1e59:
+	case 0x0054:
+	case 0x0164:
+	case 0x1e6a:
+	case 0x0074:
+	case 0x0165:
+	case 0x1e6b:
+	case 0x1e97:
+	case 0x005a:
+	case 0x0179:
+	case 0x017b:
+	case 0x017d:
+	case 0x1e90:
+	case 0x007a:
+	case 0x017a:
+	case 0x017c:
+	case 0x017e:
+	case 0x1e91:
+	case 0x0068:
+	case 0x0125:
+	case 0x021f:
+	case 0x1e23:
+	case 0x1e27:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0338:
+      switch (p)
+	{
+	/* Non-NFC cases not applicable to C/C++.  */
+	default:
+	  return true;
+	}
+
+    case 0x0342:
+      switch (p)
+	{
+	case 0x1f00:
+	case 0x1f80:
+	case 0x1f01:
+	case 0x1f81:
+	case 0x1f08:
+	case 0x1f88:
+	case 0x1f09:
+	case 0x1f89:
+	case 0x1f20:
+	case 0x1f90:
+	case 0x1f21:
+	case 0x1f91:
+	case 0x1f28:
+	case 0x1f98:
+	case 0x1f29:
+	case 0x1f99:
+	case 0x1f30:
+	case 0x1f31:
+	case 0x1f38:
+	case 0x1f39:
+	case 0x1f50:
+	case 0x1f51:
+	case 0x1f59:
+	case 0x1f60:
+	case 0x1fa0:
+	case 0x1f61:
+	case 0x1fa1:
+	case 0x1f68:
+	case 0x1fa8:
+	case 0x1f69:
+	case 0x1fa9:
+	case 0x03b1:
+	case 0x1fb3:
+	case 0x00a8:
+	case 0x03b7:
+	case 0x1fc3:
+	case 0x1fbf:
+	case 0x03b9:
+	case 0x03ca:
+	case 0x1ffe:
+	case 0x03c5:
+	case 0x03cb:
+	case 0x03c9:
+	case 0x1ff3:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0345:
+      switch (p)
+	{
+	case 0x1f00:
+	case 0x1f01:
+	case 0x1f02:
+	case 0x1f03:
+	case 0x1f04:
+	case 0x1f05:
+	case 0x1f06:
+	case 0x1f07:
+	case 0x1f08:
+	case 0x1f09:
+	case 0x1f0a:
+	case 0x1f0b:
+	case 0x1f0c:
+	case 0x1f0d:
+	case 0x1f0e:
+	case 0x1f0f:
+	case 0x1f20:
+	case 0x1f21:
+	case 0x1f22:
+	case 0x1f23:
+	case 0x1f24:
+	case 0x1f25:
+	case 0x1f26:
+	case 0x1f27:
+	case 0x1f28:
+	case 0x1f29:
+	case 0x1f2a:
+	case 0x1f2b:
+	case 0x1f2c:
+	case 0x1f2d:
+	case 0x1f2e:
+	case 0x1f2f:
+	case 0x1f60:
+	case 0x1f61:
+	case 0x1f62:
+	case 0x1f63:
+	case 0x1f64:
+	case 0x1f65:
+	case 0x1f66:
+	case 0x1f67:
+	case 0x1f68:
+	case 0x1f69:
+	case 0x1f6a:
+	case 0x1f6b:
+	case 0x1f6c:
+	case 0x1f6d:
+	case 0x1f6e:
+	case 0x1f6f:
+	case 0x1f70:
+	case 0x03b1:
+	case 0x03ac:
+	case 0x1fb6:
+	case 0x0391:
+	case 0x1f74:
+	case 0x03b7:
+	case 0x03ae:
+	case 0x1fc6:
+	case 0x0397:
+	case 0x1f7c:
+	case 0x03c9:
+	case 0x03ce:
+	case 0x1ff6:
+	case 0x03a9:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0653:
+      switch (p)
+	{
+	case 0x0627:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0654:
+      switch (p)
+	{
+	case 0x0627:
+	case 0x0648:
+	case 0x064a:
+	case 0x06d5:
+	case 0x06c1:
+	case 0x06d2:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0655:
+      switch (p)
+	{
+	case 0x0627:
+	case 0x0622:
+	case 0x0623:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x093c:
+      switch (p)
+	{
+	case 0x0928:
+	case 0x0930:
+	case 0x0933:
+	case 0x0915:
+	case 0x0916:
+	case 0x0917:
+	case 0x091c:
+	case 0x0921:
+	case 0x0922:
+	case 0x092b:
+	case 0x092f:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x09be:
+      switch (p)
+	{
+	case 0x09c7:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x09d7:
+      switch (p)
+	{
+	case 0x09c7:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0b3e:
+      switch (p)
+	{
+	case 0x0b47:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0b56:
+      switch (p)
+	{
+	case 0x0b47:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0b57:
+      switch (p)
+	{
+	case 0x0b47:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0bbe:
+      switch (p)
+	{
+	case 0x0bc6:
+	case 0x0bc7:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0bd7:
+      switch (p)
+	{
+	case 0x0b92:
+	case 0x0bc6:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0c56:
+      switch (p)
+	{
+	case 0x0c46:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0cc2:
+      switch (p)
+	{
+	case 0x0cc6:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0cd5:
+      switch (p)
+	{
+	case 0x0cbf:
+	case 0x0cc6:
+	case 0x0cca:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0cd6:
+      switch (p)
+	{
+	case 0x0cc6:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0d3e:
+      switch (p)
+	{
+	case 0x0d46:
+	case 0x0d47:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0d57:
+      switch (p)
+	{
+	case 0x0d46:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0dca:
+      switch (p)
+	{
+	case 0x0dd9:
+	case 0x0ddc:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0dcf:
+      switch (p)
+	{
+	case 0x0dd9:
+	case 0x0dda:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x0ddf:
+      switch (p)
+	{
+	case 0x0dd9:
+	case 0x0dda:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x102e:
+      switch (p)
+	{
+	case 0x1025:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x1b35:
+      switch (p)
+	{
+	case 0x1b05:
+	case 0x1b07:
+	case 0x1b09:
+	case 0x1b0b:
+	case 0x1b0d:
+	case 0x1b11:
+	case 0x1b3a:
+	case 0x1b3c:
+	case 0x1b3e:
+	case 0x1b3f:
+	case 0x1b42:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x3099:
+      switch (p)
+	{
+	case 0x304b:
+	case 0x304d:
+	case 0x304f:
+	case 0x3051:
+	case 0x3053:
+	case 0x3055:
+	case 0x3057:
+	case 0x3059:
+	case 0x305b:
+	case 0x305d:
+	case 0x305f:
+	case 0x3061:
+	case 0x3064:
+	case 0x3066:
+	case 0x3068:
+	case 0x306f:
+	case 0x3072:
+	case 0x3075:
+	case 0x3078:
+	case 0x307b:
+	case 0x3046:
+	case 0x309d:
+	case 0x30ab:
+	case 0x30ad:
+	case 0x30af:
+	case 0x30b1:
+	case 0x30b3:
+	case 0x30b5:
+	case 0x30b7:
+	case 0x30b9:
+	case 0x30bb:
+	case 0x30bd:
+	case 0x30bf:
+	case 0x30c1:
+	case 0x30c4:
+	case 0x30c6:
+	case 0x30c8:
+	case 0x30cf:
+	case 0x30d2:
+	case 0x30d5:
+	case 0x30d8:
+	case 0x30db:
+	case 0x30a6:
+	case 0x30ef:
+	case 0x30f0:
+	case 0x30f1:
+	case 0x30f2:
+	case 0x30fd:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x309a:
+      switch (p)
+	{
+	case 0x306f:
+	case 0x3072:
+	case 0x3075:
+	case 0x3078:
+	case 0x307b:
+	case 0x30cf:
+	case 0x30d2:
+	case 0x30d5:
+	case 0x30d8:
+	case 0x30db:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x110ba:
+      switch (p)
+	{
+	case 0x11099:
+	case 0x1109b:
+	case 0x110a5:
+	  return false;
+	default:
+	  return true;
+	}
+
+    case 0x11127:
+      switch (p)
+	{
+	case 0x11131:
+	case 0x11132:
+	  return false;
+	default:
+	  return true;
+	}
+
+    default:
+      cpp_error (pfile, CPP_DL_ICE, "Character %x might not be NFKC", c);
+      return true;
+  }
+}
Index: gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c
===================================================================
--- gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c	(revision 0)
+++ gcc/testsuite/c-c++-common/cpp/ucnid-2011-1.c	(revision 0)
@@ -0,0 +1,15 @@
+/* { dg-do preprocess } */
+/* { dg-options "-std=c11 -pedantic -fextended-identifiers" { target c } } */
+/* { dg-options "-std=c++11 -pedantic -fextended-identifiers" { target c++ } } */
+
+\u00A8
+
+B\u0300
+
+\u0300 /* { dg-error "not valid at the start of an identifier" } */
+
+A\u0300 /* { dg-warning "not in NFC" } */
+
+\U00010000
+\U0001FFFD
+\U000E1234

-- 
Joseph S. Myers
joseph@codesourcery.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]