]> mj.ucw.cz Git - libucw.git/blobdiff - charset/U-cat.h
added a wrapper for POSIX semaphores that works also on Darwin
[libucw.git] / charset / U-cat.h
index fd576823b2cc01e91162a86eeeaa5e2241b19571..bcfe99b2ba05779a626aba9d73bf98a799f4ec9d 100644 (file)
 /* Generated automatically by gentab. Please don't edit. */
 
 /* Generated automatically by gentab. Please don't edit. */
 
-static byte _U_cat_00[256] = {
-_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,
-_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,
-_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,_C_DIGIT|_C_XDIGIT,0,0,0,0,0,0,
-0,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER|_C_XDIGIT,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,_C_INNER,
-0,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER|_C_XDIGIT,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,_C_CTRL,
-_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,
-_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,
-_C_BLANK,0,0,0,0,0,0,0,0,0,_C_LOWER,0,0,_C_CTRL,0,0,
-0,0,0,0,0,_C_LOWER,0,0,0,0,_C_LOWER,0,0,0,0,0,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER
-};
-
-static byte _U_cat_01[256] = {
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,
-_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,
-_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,0,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,
-0,0,0,0,_C_UPPER,0,_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,
-_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_LOWER,_C_UPPER,0,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER
-};
-
-static byte _U_cat_02[256] = {
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
+static const byte _U_cat_00[256] = {
+_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,
+_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,
+_U_SPACE,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,_U_DIGIT,0,0,0,0,0,0,
+0,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER|_U_XDIGIT,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0,0,
+0,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER|_U_XDIGIT,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,_U_CTRL,
+_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,
+_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,
+_U_SPACE,0,0,0,0,0,0,0,0,0,_U_LLOWER,0,0,_U_CTRL,0,0,
+0,0,0,0,0,_U_LLOWER,0,0,0,0,_U_LLOWER,0,0,0,0,0,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER
+};
+
+static const byte _U_cat_01[256] = {
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LIGATURE,_U_LIGATURE,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,
+_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,
+_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,
+_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LLOWER,_U_LUPPER,_U_LETTER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER
+};
+
+static const byte _U_cat_02[256] = {
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,_U_LETTER,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_03[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
-};
-
-static byte _U_cat_03[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,_U_LETTER,0,0,0,0,0,
+0,0,0,0,0,0,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,
+_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,
+_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LLOWER,0,0,0,0
+};
+
+static const byte _U_cat_04[256] = {
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,0,0,0,0,0,0,0,0,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0,0,_U_LUPPER,_U_LLOWER,0,0,0,0,0,0
+};
+
+static const byte _U_cat_05[256] = {
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,_U_LETTER,0,0,0,0,0,0,
+0,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LIGATURE,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_UPPER,0,_C_UPPER,_C_UPPER,
-_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,
-_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_LOWER,0,_C_UPPER,_C_LOWER,_C_UPPER,_C_UPPER,_C_LOWER,0,0,0,0
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 };
 
-static byte _U_cat_04[256] = {
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,0,0,0,0,0,0,0,0,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,_C_UPPER,_C_LOWER,0,0,0,0,0,0
+static const byte _U_cat_06[256] = {
+_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,0,0,0,0,0,_U_CTRL,0,0,
+0,0,0,0,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,
+0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER
 };
 
 };
 
-static byte _U_cat_05[256] = {
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+static const byte _U_cat_07[256] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0,0,0,0,0,
-0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,
+0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_06[256] = {
-_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,
+static const byte _U_cat_09[256] = {
+0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,
+_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_0A[256] = {
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,_U_LETTER,
+_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,
+_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_0B[256] = {
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,
+_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER,
+0,0,0,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_0C[256] = {
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,0,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_0D[256] = {
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_07[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL,
+static const byte _U_cat_0E[256] = {
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,_U_LETTER,0,0,
+0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+0,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,0,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,_U_LETTER,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_0F[256] = {
+_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -152,35 +285,187 @@ static byte _U_cat_07[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_10[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+static const byte _U_cat_10[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_11[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0
+};
+
+static const byte _U_cat_12[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_13[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
+_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_14[256] = {
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_15[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_16[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,
+_U_SPACE,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_17[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,
+_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_CTRL,_U_CTRL,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,_U_LETTER,0,0,0,0,_U_LETTER,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_16[256] = {
+static const byte _U_cat_18[256] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_SPACE,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_19[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -190,7 +475,14 @@ _C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_17[256] = {
+static const byte _U_cat_1D[256] = {
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -199,18 +491,72 @@ static byte _U_cat_17[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_1E[256] = {
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,
+_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,_U_LUPPER,_U_LLOWER,0,0,0,0,0,0
+};
+
+static const byte _U_cat_1F[256] = {
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LETTER,0,_U_LLOWER,0,
+0,0,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LETTER,0,0,0,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,
+0,0,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,_U_LLOWER,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LETTER,0,0,0
+};
+
+static const byte _U_cat_20[256] = {
+_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_SPACE,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,_U_SPACE,_U_SPACE,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_SPACE,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_SPACE,
+_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,0,0,0,0,0,0,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,_U_CTRL,
+0,_U_LLOWER,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_LLOWER,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,_C_CTRL,_C_CTRL,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_18[256] = {
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_BLANK,0,
+static const byte _U_cat_21[256] = {
+0,0,_U_LUPPER,0,0,0,0,_U_LUPPER,0,0,_U_LLOWER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,_U_LLOWER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LLOWER,0,_U_LUPPER,0,0,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,
+0,0,0,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,_U_LLOWER,
+_U_LUPPER,_U_LUPPER,0,_U_LUPPER,_U_LLOWER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LLOWER,0,0,0,_U_LLOWER,_U_LUPPER,_U_LUPPER,
+0,0,0,0,0,_U_LUPPER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -221,21 +567,55 @@ static byte _U_cat_18[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_30[256] = {
+_U_SPACE,0,0,0,0,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,_U_LETTER,_U_LETTER,0,0,0,
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_31[256] = {
+0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,
+0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
 };
 
 };
 
-static byte _U_cat_1D[256] = {
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,
+static const byte _U_cat_34[256] = {
+_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -247,69 +627,31 @@ _C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_1E[256] = {
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,
-_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,_C_UPPER,_C_LOWER,0,0,0,0,0,0
-};
-
-static byte _U_cat_1F[256] = {
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,_C_LOWER,0,
-0,0,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,
-0,0,_C_LOWER,_C_LOWER,_C_LOWER,0,_C_LOWER,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0
-};
-
-static byte _U_cat_20[256] = {
-_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_BLANK,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,
+static const byte _U_cat_4D[256] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,_C_BLANK,_C_BLANK,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_BLANK,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_BLANK,
-_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,0,0,0,0,0,0,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,_C_CTRL,
-0,_C_LOWER,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_LOWER,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_21[256] = {
-0,0,_C_UPPER,0,0,0,0,_C_UPPER,0,0,_C_LOWER,_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,_C_LOWER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_LOWER,0,_C_UPPER,0,0,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,
-0,0,0,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,_C_LOWER,
-_C_UPPER,_C_UPPER,0,_C_UPPER,_C_LOWER,0,0,0,0,_C_LOWER,0,0,0,_C_LOWER,_C_UPPER,_C_UPPER,
-0,0,0,0,0,_C_UPPER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,
+static const byte _U_cat_4E[256] = {
+_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -323,18 +665,113 @@ _C_UPPER,_C_UPPER,0,_C_UPPER,_C_LOWER,0,0,0,0,_C_LOWER,0,0,0,_C_LOWER,_C_UPPER,_
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_30[256] = {
-_C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+static const byte _U_cat_9F[256] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_A0[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_A1[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_A2[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_A3[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_A4[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -342,8 +779,8 @@ _C_BLANK,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_D8[256] = {
-_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+static const byte _U_cat_AC[256] = {
+_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -361,7 +798,7 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_DB[256] = {
+static const byte _U_cat_D7[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -369,19 +806,19 @@ static byte _U_cat_DB[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL,
-_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 };
 
-static byte _U_cat_DC[256] = {
-_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+static const byte _U_cat_D8[256] = {
+_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -399,7 +836,7 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_DF[256] = {
+static const byte _U_cat_DB[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -407,19 +844,19 @@ static byte _U_cat_DF[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL,
+_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL
 };
 
 };
 
-static byte _U_cat_E0[256] = {
-_C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+static const byte _U_cat_DC[256] = {
+_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -437,7 +874,7 @@ _C_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_F8[256] = {
+static const byte _U_cat_DF[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -453,12 +890,12 @@ static byte _U_cat_F8[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL
 };
 
 };
 
-static byte _U_cat_FB[256] = {
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0,
-0,0,0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,
+static const byte _U_cat_E0[256] = {
+_U_CTRL,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -475,7 +912,7 @@ _C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,0,0,0,0
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
 };
 
-static byte _U_cat_FE[256] = {
+static const byte _U_cat_F8[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
@@ -491,43 +928,157 @@ static byte _U_cat_FE[256] = {
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_C_CTRL
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,_U_CTRL
+};
+
+static const byte _U_cat_F9[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
 };
 
 };
 
-static byte _U_cat_FF[256] = {
+static const byte _U_cat_FA[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,
-_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,_C_UPPER,0,0,0,0,0,
-0,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,
-_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,_C_LOWER,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+};
+
+static const byte _U_cat_FB[256] = {
+_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,0,0,0,0,0,0,0,0,0,
+0,0,0,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,_U_LIGATURE,0,0,0,0,0,_U_LETTER,0,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,0,
+_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LIGATURE,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_FC[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER
+};
+
+static const byte _U_cat_FD[256] = {
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,0
+};
+
+static const byte _U_cat_FE[256] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-0,0,0,0,0,0,0,0,0,_C_CTRL,_C_CTRL,_C_CTRL,0,0,0,0
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_CTRL
+};
+
+static const byte _U_cat_FF[256] = {
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,
+_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,_U_LUPPER,0,0,0,0,0,
+0,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,
+_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,_U_LLOWER,0,0,0,0,0,
+0,0,0,0,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,
+0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,
+0,0,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,_U_LETTER,0,0,_U_LETTER,_U_LETTER,_U_LETTER,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,_U_CTRL,_U_CTRL,_U_CTRL,0,0,0,0
 };
 
 };
 
-byte *_U_cat[256] = {
-_U_cat_00,_U_cat_01,_U_cat_02,_U_cat_03,_U_cat_04,_U_cat_05,_U_cat_06,_U_cat_07,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-_U_cat_10,NULL,NULL,NULL,NULL,NULL,_U_cat_16,_U_cat_17,_U_cat_18,NULL,NULL,NULL,NULL,_U_cat_1D,_U_cat_1E,_U_cat_1F,
+const byte *_U_cat[256] = {
+_U_cat_00,_U_cat_01,_U_cat_02,_U_cat_03,_U_cat_04,_U_cat_05,_U_cat_06,_U_cat_07,NULL,_U_cat_09,_U_cat_0A,_U_cat_0B,_U_cat_0C,_U_cat_0D,_U_cat_0E,_U_cat_0F,
+_U_cat_10,_U_cat_11,_U_cat_12,_U_cat_13,_U_cat_14,_U_cat_15,_U_cat_16,_U_cat_17,_U_cat_18,_U_cat_19,NULL,NULL,NULL,_U_cat_1D,_U_cat_1E,_U_cat_1F,
 _U_cat_20,_U_cat_21,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 _U_cat_20,_U_cat_21,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-_U_cat_30,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
+_U_cat_30,_U_cat_31,NULL,NULL,_U_cat_34,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
+NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_4D,_U_cat_4E,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
+NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_9F,
+_U_cat_A0,_U_cat_A1,_U_cat_A2,_U_cat_A3,_U_cat_A4,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_AC,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_D8,NULL,NULL,_U_cat_DB,_U_cat_DC,NULL,NULL,_U_cat_DF,
+NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_D7,_U_cat_D8,NULL,NULL,_U_cat_DB,_U_cat_DC,NULL,NULL,_U_cat_DF,
 _U_cat_E0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
 _U_cat_E0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,
-NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_F8,NULL,NULL,_U_cat_FB,NULL,NULL,_U_cat_FE,_U_cat_FF
+NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,_U_cat_F8,_U_cat_F9,_U_cat_FA,_U_cat_FB,_U_cat_FC,_U_cat_FD,_U_cat_FE,_U_cat_FF
 };
 };