summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
Diffstat (limited to 'strings')
-rw-r--r--strings/CMakeLists.txt10
-rw-r--r--strings/conf_to_src.c43
-rw-r--r--strings/ctype-big5.c240
-rw-r--r--strings/ctype-bin.c104
-rw-r--r--strings/ctype-cp932.c250
-rw-r--r--strings/ctype-czech.c48
-rw-r--r--strings/ctype-euc_kr.c130
-rw-r--r--strings/ctype-eucjpms.c180
-rw-r--r--strings/ctype-extra.c372
-rw-r--r--strings/ctype-gb2312.c124
-rw-r--r--strings/ctype-gbk.c243
-rw-r--r--strings/ctype-latin1.c81
-rw-r--r--strings/ctype-mb.c387
-rw-r--r--strings/ctype-mb.ic324
-rw-r--r--strings/ctype-simple.c357
-rw-r--r--strings/ctype-sjis.c239
-rw-r--r--strings/ctype-tis620.c61
-rw-r--r--strings/ctype-uca.c29336
-rw-r--r--strings/ctype-ucs2.c1797
-rw-r--r--strings/ctype-ujis.c192
-rw-r--r--strings/ctype-utf8.c3882
-rw-r--r--strings/ctype-win1250ch.c41
-rw-r--r--strings/ctype.c912
-rw-r--r--strings/decimal.c91
-rw-r--r--strings/dtoa.c9
-rw-r--r--strings/my_strtoll10.c10
-rw-r--r--strings/my_vsnprintf.c219
-rw-r--r--strings/str2int.c4
-rw-r--r--strings/str_alloc.c35
-rw-r--r--strings/strcoll.ic275
-rw-r--r--strings/strings_def.h9
-rw-r--r--strings/strmov.c1
-rw-r--r--strings/uca-dump.c43
-rw-r--r--strings/xml.c101
34 files changed, 35568 insertions, 4582 deletions
diff --git a/strings/CMakeLists.txt b/strings/CMakeLists.txt
index 6646d48e2dc..ea6eaa8c25e 100644
--- a/strings/CMakeLists.txt
+++ b/strings/CMakeLists.txt
@@ -20,19 +20,19 @@ SET(STRINGS_SOURCES bchange.c bmove_upp.c ctype-big5.c ctype-bin.c ctype-cp932.c
ctype-latin1.c ctype-mb.c ctype-simple.c ctype-sjis.c ctype-tis620.c ctype-uca.c
ctype-ucs2.c ctype-ujis.c ctype-utf8.c ctype-win1250ch.c ctype.c decimal.c dtoa.c int2str.c
is_prefix.c llstr.c longlong2str.c my_strtoll10.c my_vsnprintf.c
- str2int.c str_alloc.c strcend.c strend.c strfill.c strmake.c strmov.c strnmov.c
+ str2int.c strcend.c strend.c strfill.c strmake.c strmov.c strnmov.c
strxmov.c strxnmov.c xml.c
strmov_overlapp.c
my_strchr.c strcont.c strappend.c)
IF(NOT HAVE_STRNLEN)
- # OSX does not have strnlen
+ # OSX below 10.7 did not have strnlen
SET(STRINGS_SOURCES ${STRINGS_SOURCES} strnlen.c)
ENDIF()
# Avoid dependencies on perschema data defined in mysys
ADD_DEFINITIONS(-DDISABLE_MYSQL_THREAD_H)
ADD_CONVENIENCE_LIBRARY(strings ${STRINGS_SOURCES})
-IF(MSVC)
- INSTALL_DEBUG_TARGET(strings DESTINATION ${INSTALL_LIBDIR}/debug)
-ENDIF()
+ADD_EXECUTABLE(conf_to_src EXCLUDE_FROM_ALL conf_to_src.c)
+SET_TARGET_PROPERTIES(conf_to_src PROPERTIES EXCLUDE_FROM_DEFAULT_BUILD TRUE)
+TARGET_LINK_LIBRARIES(conf_to_src mysys strings)
diff --git a/strings/conf_to_src.c b/strings/conf_to_src.c
index b0c2ae71a45..6c352db7437 100644
--- a/strings/conf_to_src.c
+++ b/strings/conf_to_src.c
@@ -23,7 +23,7 @@
#define ROW_LEN 16
#define ROW16_LEN 8
-#define MAX_BUF 64*1024
+#define MAX_BUF (64*1024)
static struct charset_info_st all_charsets[512];
@@ -145,12 +145,35 @@ static int add_collation(struct charset_info_st *cs)
}
+static void
+default_reporter(enum loglevel level __attribute__ ((unused)),
+ const char *format __attribute__ ((unused)),
+ ...)
+{
+}
+
+
+static void
+my_charset_loader_init(MY_CHARSET_LOADER *loader)
+{
+ loader->error[0]= '\0';
+ loader->once_alloc= malloc;
+ loader->malloc= malloc;
+ loader->realloc= realloc;
+ loader->free= free;
+ loader->reporter= default_reporter;
+ loader->add_collation= add_collation;
+}
+
+
static int my_read_charset_file(const char *filename)
{
char buf[MAX_BUF];
int fd;
uint len;
+ MY_CHARSET_LOADER loader;
+ my_charset_loader_init(&loader);
if ((fd=open(filename,O_RDONLY)) < 0)
{
fprintf(stderr,"Can't open '%s'\n",filename);
@@ -161,14 +184,10 @@ static int my_read_charset_file(const char *filename)
DBUG_ASSERT(len < MAX_BUF);
close(fd);
- if (my_parse_charset_xml(buf,len,add_collation))
+ if (my_parse_charset_xml(&loader, buf, len))
{
-#if 0
- printf("ERROR at line %d pos %d '%s'\n",
- my_xml_error_lineno(&p)+1,
- my_xml_error_pos(&p),
- my_xml_error_string(&p));
-#endif
+ fprintf(stderr, "Error while parsing '%s': %s\n", filename, loader.error);
+ exit(1);
}
return FALSE;
@@ -207,8 +226,7 @@ void dispcset(FILE *f,CHARSET_INFO *cs)
fprintf(f," sort_order_%s, /* sort_order */\n",cs->name);
else
fprintf(f," NULL, /* sort_order */\n");
- fprintf(f," NULL, /* contractions */\n");
- fprintf(f," NULL, /* sort_order_big*/\n");
+ fprintf(f," NULL, /* uca */\n");
fprintf(f," to_uni_%s, /* to_uni */\n",cs->name);
}
else
@@ -221,13 +239,12 @@ void dispcset(FILE *f,CHARSET_INFO *cs)
fprintf(f," NULL, /* lower */\n");
fprintf(f," NULL, /* upper */\n");
fprintf(f," NULL, /* sort order */\n");
- fprintf(f," NULL, /* contractions */\n");
- fprintf(f," NULL, /* sort_order_big*/\n");
+ fprintf(f," NULL, /* uca */\n");
fprintf(f," NULL, /* to_uni */\n");
}
fprintf(f," NULL, /* from_uni */\n");
- fprintf(f," my_unicase_default, /* caseinfo */\n");
+ fprintf(f," &my_unicase_default, /* caseinfo */\n");
fprintf(f," NULL, /* state map */\n");
fprintf(f," NULL, /* ident map */\n");
fprintf(f," 1, /* strxfrm_multiply*/\n");
diff --git a/strings/ctype-big5.c b/strings/ctype-big5.c
index 502a0bd55e1..792c5521cd4 100644
--- a/strings/ctype-big5.c
+++ b/strings/ctype-big5.c
@@ -34,6 +34,7 @@
/*
Support for Chinese(BIG5) characters, by jou@nematic.ieo.nctu.edu.tw
+ CP950 and HKSCS additional characters are also accepted.
modified by Wei He (hewei@mail.ied.ac.cn)
modified by Alex Barkov <bar@udm.net>
*/
@@ -47,6 +48,13 @@
#define big5head(e) ((uchar)(e>>8))
#define big5tail(e) ((uchar)(e&0xff))
+#define MY_FUNCTION_NAME(x) my_ ## x ## _big5
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80)
+#define IS_MB2_CHAR(x,y) (isbig5head(x) && isbig5tail(y))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
+
+
static const uchar ctype_big5[257] =
{
0, /* For standard library */
@@ -177,7 +185,7 @@ static const uchar sort_order_big5[]=
};
-static MY_UNICASE_INFO cA2[256]=
+static MY_UNICASE_CHARACTER cA2[256]=
{
/* A200-A20F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -370,7 +378,7 @@ static MY_UNICASE_INFO cA2[256]=
};
-static MY_UNICASE_INFO cA3[256]=
+static MY_UNICASE_CHARACTER cA3[256]=
{
/* A300-A30F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -563,7 +571,7 @@ static MY_UNICASE_INFO cA3[256]=
};
-static MY_UNICASE_INFO cC7[256]=
+static MY_UNICASE_CHARACTER cC7[256]=
{
/* C700-C70F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -756,7 +764,7 @@ static MY_UNICASE_INFO cC7[256]=
};
-static MY_UNICASE_INFO *my_caseinfo_big5[256]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_big5[256]=
{
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -793,6 +801,13 @@ static MY_UNICASE_INFO *my_caseinfo_big5[256]=
};
+static MY_UNICASE_INFO my_caseinfo_big5=
+{
+ 0xFFFF,
+ my_caseinfo_pages_big5
+};
+
+
static uint16 big5strokexfrm(uint16 i)
{
if ((i == 0xA440) || (i == 0xA441)) return 0xA440;
@@ -835,114 +850,35 @@ static uint16 big5strokexfrm(uint16 i)
}
-
-static int my_strnncoll_big5_internal(const uchar **a_res,
- const uchar **b_res, size_t length)
+static size_t
+my_strnxfrm_big5(CHARSET_INFO *cs,
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- const uchar *a= *a_res, *b= *b_res;
-
- while (length--)
- {
- if ((length > 0) && isbig5code(*a,*(a+1)) && isbig5code(*b, *(b+1)))
- {
- if (*a != *b || *(a+1) != *(b+1))
- return ((int) big5code(*a,*(a+1)) -
- (int) big5code(*b,*(b+1)));
- a+= 2;
- b+= 2;
- length--;
- }
- else if (sort_order_big5[*a++] !=
- sort_order_big5[*b++])
- return ((int) sort_order_big5[a[-1]] -
- (int) sort_order_big5[b[-1]]);
- }
- *a_res= a;
- *b_res= b;
- return 0;
-}
-
-
-/* Compare strings */
-
-static int my_strnncoll_big5(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
-{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_big5_internal(&a, &b, length);
- return res ? res : (int)((b_is_prefix ? length : a_length) - b_length);
-}
-
-
-/* compare strings, ignore end space */
-
-static int my_strnncollsp_big5(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_big5_internal(&a, &b, length);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- if (!res && a_length != b_length)
+ uchar *d0= dst;
+ uchar *de= dst + dstlen;
+ const uchar *se= src + srclen;
+ const uchar *sort_order= cs->sort_order;
+
+ for (; dst < de && src < se && nweights; nweights--)
{
- const uchar *end;
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a_length < b_length)
- {
- /* put longer key in a */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
+ if (cs->cset->ismbchar(cs, (const char*) src, (const char*) se))
{
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
+ /*
+ Note, it is safe not to check (src < se)
+ in the code below, because ismbchar() would
+ not return TRUE if src was too short
+ */
+ uint16 e= big5strokexfrm((uint16) big5code(*src, *(src + 1)));
+ *dst++= big5head(e);
+ if (dst < de)
+ *dst++= big5tail(e);
+ src+= 2;
}
+ else
+ *dst++= sort_order ? sort_order[*src++] : *src++;
}
- return res;
-}
-
-
-static size_t my_strnxfrm_big5(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uint16 e;
- size_t dstlen= len;
- uchar *dest_end= dest + dstlen;
-
- len = srclen;
- while (len-- && dest < dest_end)
- {
- if ((len > 0) && isbig5code(*src, *(src+1)))
- {
- e = big5strokexfrm((uint16) big5code(*src, *(src+1)));
- *dest++ = big5head(e);
- if (dest < dest_end)
- *dest++ = big5tail(e);
- src +=2;
- len--;
- } else
- *dest++ = sort_order_big5[(uchar) *src++];
- }
- if (dstlen > srclen)
- bfill(dest, dstlen - srclen, ' ');
- return dstlen;
+ return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0);
}
#if 0
@@ -6825,6 +6761,9 @@ my_mb_wc_big5(CHARSET_INFO *cs __attribute__((unused)),
if (s+2>e)
return MY_CS_TOOSMALL2;
+ if (!IS_MB2_CHAR(hi, s[1]))
+ return MY_CS_ILSEQ;
+
if (!(pwc[0]=func_big5_uni_onechar((hi<<8)+s[1])))
return -2;
@@ -6832,47 +6771,23 @@ my_mb_wc_big5(CHARSET_INFO *cs __attribute__((unused)),
}
-/*
- Returns a well formed length of a BIG5 string.
- CP950 and HKSCS additional characters are also accepted.
-*/
-static
-size_t my_well_formed_len_big5(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
+#define MY_FUNCTION_NAME(x) my_ ## x ## _big5_chinese_ci
+#define WEIGHT_MB1(x) (sort_order_big5[(uchar) (x)])
+#define WEIGHT_MB2(x,y) (big5code(x, y))
+#include "strcoll.ic"
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if ((b < emb) && isbig5code((uchar)*b, (uchar)b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _big5_bin
+#define WEIGHT_MB1(x) ((uchar) (x))
+#define WEIGHT_MB2(x,y) (big5code(x, y))
+#include "strcoll.ic"
-static MY_COLLATION_HANDLER my_collation_big5_chinese_ci_handler =
+
+static MY_COLLATION_HANDLER my_collation_handler_big5_chinese_ci=
{
NULL, /* init */
- my_strnncoll_big5,
- my_strnncollsp_big5,
+ my_strnncoll_big5_chinese_ci,
+ my_strnncollsp_big5_chinese_ci,
my_strnxfrm_big5,
my_strnxfrmlen_simple,
my_like_range_mb,
@@ -6883,6 +6798,23 @@ static MY_COLLATION_HANDLER my_collation_big5_chinese_ci_handler =
my_propagate_simple
};
+
+static MY_COLLATION_HANDLER my_collation_handler_big5_bin=
+{
+ NULL, /* init */
+ my_strnncoll_big5_bin,
+ my_strnncollsp_big5_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
static MY_CHARSET_HANDLER my_charset_big5_handler=
{
NULL, /* init */
@@ -6911,7 +6843,11 @@ static MY_CHARSET_HANDLER my_charset_big5_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_big5,
+ my_well_formed_char_length_big5,
+ my_copy_fix_mb,
+ my_native_to_mb_big5,
};
struct charset_info_st my_charset_big5_chinese_ci=
@@ -6926,11 +6862,10 @@ struct charset_info_st my_charset_big5_chinese_ci=
to_lower_big5,
to_upper_big5,
sort_order_big5,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_big5, /* caseinfo */
+ &my_caseinfo_big5, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -6942,8 +6877,9 @@ struct charset_info_st my_charset_big5_chinese_ci=
0xF9D5, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_big5_handler,
- &my_collation_big5_chinese_ci_handler
+ &my_collation_handler_big5_chinese_ci
};
@@ -6959,11 +6895,10 @@ struct charset_info_st my_charset_big5_bin=
to_lower_big5,
to_upper_big5,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_big5, /* caseinfo */
+ &my_caseinfo_big5, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -6975,8 +6910,9 @@ struct charset_info_st my_charset_big5_bin=
0xF9FE, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_big5_handler,
- &my_collation_mb_bin_handler
+ &my_collation_handler_big5_bin
};
diff --git a/strings/ctype-bin.c b/strings/ctype-bin.c
index 4813607690a..114472b3f10 100644
--- a/strings/ctype-bin.c
+++ b/strings/ctype-bin.c
@@ -70,7 +70,7 @@ static const uchar bin_char_array[] =
static my_bool
my_coll_init_8bit_bin(struct charset_info_st *cs,
- void *(*alloc)(size_t) __attribute__((unused)))
+ MY_CHARSET_LOADER *loader __attribute__((unused)))
{
cs->max_sort_char=255;
return FALSE;
@@ -81,7 +81,7 @@ static int my_strnncoll_binary(CHARSET_INFO * cs __attribute__((unused)),
const uchar *t, size_t tlen,
my_bool t_is_prefix)
{
- size_t len=min(slen,tlen);
+ size_t len=MY_MIN(slen,tlen);
int cmp= memcmp(s,t,len);
return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen);
}
@@ -132,7 +132,7 @@ static int my_strnncoll_8bit_bin(CHARSET_INFO * cs __attribute__((unused)),
const uchar *t, size_t tlen,
my_bool t_is_prefix)
{
- size_t len=min(slen,tlen);
+ size_t len=MY_MIN(slen,tlen);
int cmp= memcmp(s,t,len);
return cmp ? cmp : (int)((t_is_prefix ? len : slen) - tlen);
}
@@ -176,7 +176,7 @@ static int my_strnncollsp_8bit_bin(CHARSET_INFO * cs __attribute__((unused)),
diff_if_only_endspace_difference= 0;
#endif
- end= a + (length= min(a_length, b_length));
+ end= a + (length= MY_MIN(a_length, b_length));
while (a < end)
{
if (*a++ != *b++)
@@ -220,11 +220,11 @@ static size_t my_case_str_bin(CHARSET_INFO *cs __attribute__((unused)),
static size_t my_case_bin(CHARSET_INFO *cs __attribute__((unused)),
- char *src __attribute__((unused)),
- size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+ const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
+ DBUG_ASSERT(srclen <= dstlen);
+ memcpy(dst, src, srclen);
return srclen;
}
@@ -256,10 +256,8 @@ static int my_mb_wc_bin(CHARSET_INFO *cs __attribute__((unused)),
}
-static int my_wc_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
- my_wc_t wc,
- uchar *s,
- uchar *e __attribute__((unused)))
+int my_wc_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
+ my_wc_t wc, uchar *s, uchar *e)
{
if (s >= e)
return MY_CS_TOOSMALL;
@@ -277,36 +275,39 @@ void my_hash_sort_8bit_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,
ulong *nr1, ulong *nr2)
{
- const uchar *pos = key;
-
+ ulong tmp1= *nr1;
+ ulong tmp2= *nr2;
+
/*
Remove trailing spaces. We have to do this to be able to compare
'A ' and 'A' as identical
*/
- key= skip_trailing_space(key, len);
+ const uchar *end = skip_trailing_space(key, len);
- for (; pos < (uchar*) key ; pos++)
+ for (; key < end ; key++)
{
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
+ MY_HASH_ADD(tmp1, tmp2, (uint) *key);
}
+
+ *nr1= tmp1;
+ *nr2= tmp2;
}
void my_hash_sort_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,ulong *nr1, ulong *nr2)
{
- const uchar *pos = key;
-
- key+= len;
-
- for (; pos < (uchar*) key ; pos++)
+ const uchar *end = key + len;
+ ulong tmp1= *nr1;
+ ulong tmp2= *nr2;
+
+ for (; key < end ; key++)
{
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
+ MY_HASH_ADD(tmp1, tmp2, (uint) *key);
}
+
+ *nr1= tmp1;
+ *nr2= tmp2;
}
@@ -392,7 +393,7 @@ int my_wildcmp_bin_impl(CHARSET_INFO *cs,
if (tmp <= 0)
return(tmp);
}
- } while (str != str_end && wildstr[0] != w_many);
+ } while (str != str_end);
return(-1);
}
}
@@ -410,28 +411,17 @@ int my_wildcmp_bin(CHARSET_INFO *cs,
}
-static size_t my_strnxfrm_bin(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t dstlen,
- const uchar *src, size_t srclen)
+static size_t
+my_strnxfrm_8bit_bin(CHARSET_INFO *cs,
+ uchar * dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- if (dest != src)
- memcpy(dest, src, min(dstlen,srclen));
- if (dstlen > srclen)
- bfill(dest + srclen, dstlen - srclen, 0);
- return dstlen;
-}
-
-
-static
-size_t my_strnxfrm_8bit_bin(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t dstlen,
- const uchar *src, size_t srclen)
-{
- if (dest != src)
- memcpy(dest, src, min(dstlen,srclen));
- if (dstlen > srclen)
- bfill(dest + srclen, dstlen - srclen, ' ');
- return dstlen;
+ set_if_smaller(srclen, dstlen);
+ set_if_smaller(srclen, nweights);
+ if (dst != src)
+ memcpy(dst, src, srclen);
+ return my_strxfrm_pad_desc_and_reverse(cs, dst, dst + srclen, dst + dstlen,
+ nweights - srclen, flags, 0);
}
@@ -517,7 +507,7 @@ static MY_COLLATION_HANDLER my_collation_binary_handler =
NULL, /* init */
my_strnncoll_binary,
my_strnncollsp_binary,
- my_strnxfrm_bin,
+ my_strnxfrm_8bit_bin,
my_strnxfrmlen_simple,
my_like_range_simple,
my_wildcmp_bin,
@@ -556,14 +546,18 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_8bit,
+ my_well_formed_char_length_8bit,
+ my_copy_8bit,
+ my_wc_mb_bin,
};
struct charset_info_st my_charset_bin =
{
63,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY,/* state */
+ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_PRIMARY|MY_CS_NOPAD,/* state */
"binary", /* cs name */
"binary", /* name */
"", /* comment */
@@ -572,11 +566,10 @@ struct charset_info_st my_charset_bin =
bin_char_array, /* to_lower */
bin_char_array, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -588,6 +581,7 @@ struct charset_info_st my_charset_bin =
255, /* max_sort_char */
0, /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
&my_collation_binary_handler
};
diff --git a/strings/ctype-cp932.c b/strings/ctype-cp932.c
index 27f1a2ef160..2acd4cfebcd 100644
--- a/strings/ctype-cp932.c
+++ b/strings/ctype-cp932.c
@@ -176,10 +176,19 @@ static const uchar sort_order_cp932[]=
(uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377'
};
-#define iscp932head(c) ((0x81<=(c) && (c)<=0x9f) || \
- ((0xe0<=(c)) && (c)<=0xfc))
-#define iscp932tail(c) ((0x40<=(c) && (c)<=0x7e) || \
- (0x80<=(c) && (c)<=0xfc))
+#define iscp932head(c) ((0x81 <= (uchar) (c) && (uchar) (c) <= 0x9f) || \
+ (0xe0 <= (uchar) (c) && (uchar) (c) <= 0xfc))
+#define iscp932tail(c) ((0x40 <= (uchar) (c) && (uchar) (c) <= 0x7e) || \
+ (0x80 <= (uchar) (c) && (uchar) (c) <= 0xfc))
+
+#define iscp932kata(c) (0xA1 <= (uchar) (c) && (uchar) (c) <= 0xDF)
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _cp932
+#define IS_8BIT_CHAR(x) iscp932kata(x)
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80 || iscp932kata(x))
+#define IS_MB2_CHAR(x,y) (iscp932head(x) && iscp932tail(y))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
static uint ismbchar_cp932(CHARSET_INFO *cs __attribute__((unused)),
@@ -197,7 +206,7 @@ static uint mbcharlen_cp932(CHARSET_INFO *cs __attribute__((unused)),uint c)
#define cp932code(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d))
-static MY_UNICASE_INFO c81[256]=
+static MY_UNICASE_CHARACTER c81[256]=
{
/* 8100-810F */
{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,7 +416,7 @@ static MY_UNICASE_INFO c81[256]=
};
-static MY_UNICASE_INFO c82[256]=
+static MY_UNICASE_CHARACTER c82[256]=
{
/* 8200-820F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -615,7 +624,7 @@ static MY_UNICASE_INFO c82[256]=
};
-static MY_UNICASE_INFO c83[256]=
+static MY_UNICASE_CHARACTER c83[256]=
{
/* 8300-830F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -825,7 +834,7 @@ static MY_UNICASE_INFO c83[256]=
};
-static MY_UNICASE_INFO c84[256]=
+static MY_UNICASE_CHARACTER c84[256]=
{
/* 8400-840F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1035,7 +1044,7 @@ static MY_UNICASE_INFO c84[256]=
};
-static MY_UNICASE_INFO c87[256]=
+static MY_UNICASE_CHARACTER c87[256]=
{
/* 8700-870F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1245,7 +1254,7 @@ static MY_UNICASE_INFO c87[256]=
};
-static MY_UNICASE_INFO cEE[256]=
+static MY_UNICASE_CHARACTER cEE[256]=
{
/* EE00-EE0F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1456,7 +1465,7 @@ static MY_UNICASE_INFO cEE[256]=
};
-static MY_UNICASE_INFO cFA[256]=
+static MY_UNICASE_CHARACTER cFA[256]=
{
/* FA00-FA0F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1666,7 +1675,7 @@ static MY_UNICASE_INFO cFA[256]=
};
-static MY_UNICASE_INFO *my_caseinfo_cp932[256]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_cp932[256]=
{
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -1703,113 +1712,11 @@ static MY_UNICASE_INFO *my_caseinfo_cp932[256]=
};
-static int my_strnncoll_cp932_internal(CHARSET_INFO *cs,
- const uchar **a_res, size_t a_length,
- const uchar **b_res, size_t b_length)
-{
- const uchar *a= *a_res, *b= *b_res;
- const uchar *a_end= a + a_length;
- const uchar *b_end= b + b_length;
- while (a < a_end && b < b_end)
- {
- if (ismbchar_cp932(cs,(char*) a, (char*) a_end) &&
- ismbchar_cp932(cs,(char*) b, (char*) b_end))
- {
- uint a_char= cp932code(*a, *(a+1));
- uint b_char= cp932code(*b, *(b+1));
- if (a_char != b_char)
- return a_char - b_char;
- a += 2;
- b += 2;
- } else
- {
- if (sort_order_cp932[(uchar)*a] != sort_order_cp932[(uchar)*b])
- return sort_order_cp932[(uchar)*a] - sort_order_cp932[(uchar)*b];
- a++;
- b++;
- }
- }
- *a_res= a;
- *b_res= b;
- return 0;
-}
-
-
-static int my_strnncoll_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
+MY_UNICASE_INFO my_caseinfo_cp932=
{
- int res= my_strnncoll_cp932_internal(cs, &a, a_length, &b, b_length);
- if (b_is_prefix && a_length > b_length)
- a_length= b_length;
- return res ? res : (int) (a_length - b_length);
-}
-
-
-static int my_strnncollsp_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- const uchar *a_end= a + a_length;
- const uchar *b_end= b + b_length;
- int res= my_strnncoll_cp932_internal(cs, &a, a_length, &b, b_length);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- if (!res && (a != a_end || b != b_end))
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a == a_end)
- {
- /* put shorter key in a */
- a_end= b_end;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (; a < a_end ; a++)
- {
- if (*a != (uchar) ' ')
- return (*a < (uchar) ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-
-static size_t my_strnxfrm_cp932(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uchar *d_end = dest + len;
- uchar *s_end = (uchar*) src + srclen;
- while (dest < d_end && src < s_end)
- {
- if (ismbchar_cp932(cs,(char*) src, (char*) s_end))
- {
- *dest++ = *src++;
- if (dest < d_end && src < s_end)
- *dest++ = *src++;
- }
- else
- *dest++ = sort_order_cp932[(uchar)*src++];
- }
- if (len > srclen)
- bfill(dest, len - srclen, ' ');
- return len;
-}
+ 0xFFFF,
+ my_caseinfo_pages_cp932
+};
static const uint16 cp932_to_unicode[65536]=
@@ -34729,60 +34636,37 @@ size_t my_numcells_cp932(CHARSET_INFO *cs __attribute__((unused)),
return clen;
}
+
/*
- Returns a well formed length of a cp932 string.
- cp932 additional characters are also accepted.
+ cp932_chinese_ci and cp932_bin sort character blocks in this order:
+ 1. [00..7F] - 7BIT characters (ASCII)
+ 2. [81..9F][40..7E,80..FC] - MB2 characters, part1
+ 3. [A1..DF] - 8BIT characters (Kana)
+ 4. [E0..FC][40..7E,80..FC] - MB2 characters, part2
*/
+#define MY_FUNCTION_NAME(x) my_ ## x ## _cp932_japanese_ci
+#define WEIGHT_PAD_SPACE (256 * (int) ' ')
+#define WEIGHT_MB1(x) (256 * (int) sort_order_cp932[(uchar) (x)])
+#define WEIGHT_MB2(x,y) (cp932code(x, y))
+#include "strcoll.ic"
-static
-size_t my_well_formed_len_cp932(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- *error= 0;
- while (pos-- && b < e)
- {
- /*
- Cast to int8 for extra safety.
- "char" can be unsigned by default
- on some platforms.
- */
- if (((int8)b[0]) >= 0)
- {
- /* Single byte ascii character */
- b++;
- }
- else if (iscp932head((uchar)*b) && (e-b)>1 && iscp932tail((uchar)b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else if (((uchar)*b) >= 0xA1 && ((uchar)*b) <= 0xDF)
- {
- /* Half width kana */
- b++;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _cp932_bin
+#define WEIGHT_PAD_SPACE (256 * (int) ' ')
+#define WEIGHT_MB1(x) (256 * (int) (uchar) (x))
+#define WEIGHT_MB2(x,y) (cp932code(x, y))
+#include "strcoll.ic"
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+
+static MY_COLLATION_HANDLER my_collation_handler_cp932_japanese_ci=
{
- NULL, /* init */
- my_strnncoll_cp932,
- my_strnncollsp_cp932,
- my_strnxfrm_cp932,
+ NULL, /* init */
+ my_strnncoll_cp932_japanese_ci,
+ my_strnncollsp_cp932_japanese_ci,
+ my_strnxfrm_mb,
my_strnxfrmlen_simple,
my_like_range_mb,
- my_wildcmp_mb, /* wildcmp */
+ my_wildcmp_mb,
my_strcasecmp_8bit,
my_instr_mb,
my_hash_sort_simple,
@@ -34790,6 +34674,22 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
};
+static MY_COLLATION_HANDLER my_collation_handler_cp932_bin=
+{
+ NULL, /* init */
+ my_strnncoll_cp932_bin,
+ my_strnncollsp_cp932_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* init */
@@ -34818,7 +34718,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_cp932,
+ my_well_formed_char_length_cp932,
+ my_copy_fix_mb,
+ my_native_to_mb_cp932,
};
@@ -34834,11 +34738,10 @@ struct charset_info_st my_charset_cp932_japanese_ci=
to_lower_cp932,
to_upper_cp932,
sort_order_cp932,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_cp932, /* caseinfo */
+ &my_caseinfo_cp932, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -34850,8 +34753,9 @@ struct charset_info_st my_charset_cp932_japanese_ci=
0xFCFC, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_ci_handler
+ &my_collation_handler_cp932_japanese_ci
};
struct charset_info_st my_charset_cp932_bin=
@@ -34866,11 +34770,10 @@ struct charset_info_st my_charset_cp932_bin=
to_lower_cp932,
to_upper_cp932,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_cp932, /* caseinfo */
+ &my_caseinfo_cp932, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -34882,8 +34785,9 @@ struct charset_info_st my_charset_cp932_bin=
0xFCFC, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_mb_bin_handler
+ &my_collation_handler_cp932_bin
};
#endif
diff --git a/strings/ctype-czech.c b/strings/ctype-czech.c
index 7030e6d41a5..99673100c12 100644
--- a/strings/ctype-czech.c
+++ b/strings/ctype-czech.c
@@ -166,7 +166,7 @@ static const struct wordvalue doubles[] = {
*/
#define ADD_TO_RESULT(dest, len, totlen, value) \
-if ((totlen) < (len)) { dest[totlen] = value; } (totlen++);
+{ if ((totlen) < (len)) { dest[totlen++]= value; } }
#define IS_END(p, src, len) (((char *)p - (char *)src) >= (len))
#define NEXT_CMP_VALUE(src, p, store, pass, value, len) \
@@ -287,13 +287,26 @@ int my_strnncollsp_czech(CHARSET_INFO * cs,
/*
+ Returns the number of bytes required for strnxfrm().
+*/
+static size_t
+my_strnxfrmlen_czech(CHARSET_INFO *cs
+ __attribute__((unused)), size_t len)
+{
+ return len * 4 + 4;
+}
+
+
+/*
Function strnxfrm, actually strxfrm, with Czech sorting, which expect
the length of the strings being specified
*/
-static size_t my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
+static size_t
+my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)),
+ uchar *dest, size_t len,
+ uint nweights_arg __attribute__((unused)),
+ const uchar *src, size_t srclen, uint flags)
{
int value;
const uchar *p, * store;
@@ -301,15 +314,23 @@ static size_t my_strnxfrm_czech(CHARSET_INFO *cs __attribute__((unused)),
size_t totlen = 0;
p = src; store = src;
+ if (!(flags & 0x0F)) /* All levels by default */
+ flags|= 0x0F;
+
do
{
+ int add= (1 << pass) & flags; /* If this level is needed */
NEXT_CMP_VALUE(src, p, store, pass, value, (int)srclen);
- ADD_TO_RESULT(dest, len, totlen, value);
+ if (add)
+ ADD_TO_RESULT(dest, len, totlen, value);
}
while (value);
- if (len > totlen)
- bfill(dest + totlen, len - totlen, ' ');
- return len;
+ if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len > totlen)
+ {
+ memset(dest + totlen, ' ', len - totlen);
+ totlen= len;
+ }
+ return totlen;
}
#undef IS_END
@@ -592,7 +613,7 @@ static MY_COLLATION_HANDLER my_collation_latin2_czech_ci_handler =
my_strnncoll_czech,
my_strnncollsp_czech,
my_strnxfrm_czech,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_czech,
my_like_range_czech,
my_wildcmp_bin,
my_strcasecmp_8bit,
@@ -604,7 +625,8 @@ static MY_COLLATION_HANDLER my_collation_latin2_czech_ci_handler =
struct charset_info_st my_charset_latin2_czech_ci =
{
2,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */
+ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT|
+ MY_CS_STRNXFRM_BAD_NWEIGHTS|MY_CS_NON1TO1, /* state */
"latin2", /* cs name */
"latin2_czech_cs", /* name */
"", /* comment */
@@ -613,11 +635,10 @@ struct charset_info_st my_charset_latin2_czech_ci =
to_lower_czech,
to_upper_czech,
sort_order_czech,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
tab_8859_2_uni, /* tab_to_uni */
idx_uni_8859_2, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
4, /* strxfrm_multiply */
@@ -629,6 +650,7 @@ struct charset_info_st my_charset_latin2_czech_ci =
0, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 4, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_latin2_czech_ci_handler
};
diff --git a/strings/ctype-euc_kr.c b/strings/ctype-euc_kr.c
index 5ead0fef66a..4c549a6686a 100644
--- a/strings/ctype-euc_kr.c
+++ b/strings/ctype-euc_kr.c
@@ -201,6 +201,14 @@ static const uchar sort_order_euc_kr[]=
iseuc_kr_tail2(c) || \
iseuc_kr_tail3(c))
+#define euckrcode(c,d) (((uchar)(c) <<8) | (uchar)(d))
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _euckr
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80)
+#define IS_MB2_CHAR(x,y) (iseuc_kr_head(x) && iseuc_kr_tail(y))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
+
static uint ismbchar_euc_kr(CHARSET_INFO *cs __attribute__((unused)),
const char* p, const char *e)
@@ -216,7 +224,7 @@ static uint mbcharlen_euc_kr(CHARSET_INFO *cs __attribute__((unused)),uint c)
}
-static MY_UNICASE_INFO cA3[256]=
+static MY_UNICASE_CHARACTER cA3[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -421,7 +429,7 @@ static MY_UNICASE_INFO cA3[256]=
};
-static MY_UNICASE_INFO cA5[256]=
+static MY_UNICASE_CHARACTER cA5[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -626,7 +634,7 @@ static MY_UNICASE_INFO cA5[256]=
};
-static MY_UNICASE_INFO cA7[256]=
+static MY_UNICASE_CHARACTER cA7[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -831,7 +839,7 @@ static MY_UNICASE_INFO cA7[256]=
};
-static MY_UNICASE_INFO cA8[256]=
+static MY_UNICASE_CHARACTER cA8[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1036,7 +1044,7 @@ static MY_UNICASE_INFO cA8[256]=
};
-static MY_UNICASE_INFO cA9[256]=
+static MY_UNICASE_CHARACTER cA9[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1241,7 +1249,7 @@ static MY_UNICASE_INFO cA9[256]=
};
-static MY_UNICASE_INFO cAC[256]=
+static MY_UNICASE_CHARACTER cAC[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1446,7 +1454,7 @@ static MY_UNICASE_INFO cAC[256]=
};
-static MY_UNICASE_INFO *my_caseinfo_euckr[256]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_euckr[256]=
{
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -1483,6 +1491,13 @@ static MY_UNICASE_INFO *my_caseinfo_euckr[256]=
};
+static MY_UNICASE_INFO my_caseinfo_euckr=
+{
+ 0xFFFF,
+ my_caseinfo_pages_euckr
+};
+
+
/* page 0 0x8141-0xC8FE */
static const uint16 tab_ksc5601_uni0[]={
0xAC02,0xAC03,0xAC05,0xAC06,0xAC0B,0xAC0C,0xAC0D,0xAC0E,
@@ -9915,6 +9930,9 @@ my_mb_wc_euc_kr(CHARSET_INFO *cs __attribute__((unused)),
if (s+2>e)
return MY_CS_TOOSMALL2;
+ if (!IS_MB2_CHAR(hi, s[1]))
+ return MY_CS_ILSEQ;
+
if (!(pwc[0]=func_ksc5601_uni_onechar((hi<<8)+s[1])))
return -2;
@@ -9922,56 +9940,50 @@ my_mb_wc_euc_kr(CHARSET_INFO *cs __attribute__((unused)),
}
-/*
- Returns well formed length of a EUC-KR string.
-*/
-static size_t
-my_well_formed_len_euckr(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
+#define MY_FUNCTION_NAME(x) my_ ## x ## _euckr_korean_ci
+#define WEIGHT_MB1(x) (sort_order_euc_kr[(uchar) (x)])
+#define WEIGHT_MB2(x,y) (euckrcode(x, y))
+#include "strcoll.ic"
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if (b < emb && iseuc_kr_head(*b) && iseuc_kr_tail(b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _euckr_bin
+#define WEIGHT_MB1(x) ((uchar) (x))
+#define WEIGHT_MB2(x,y) (euckrcode(x, y))
+#include "strcoll.ic"
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+static MY_COLLATION_HANDLER my_collation_handler_euckr_korean_ci=
{
- NULL, /* init */
- my_strnncoll_simple, /* strnncoll */
- my_strnncollsp_simple,
- my_strnxfrm_simple, /* strnxfrm */
+ NULL, /* init */
+ my_strnncoll_euckr_korean_ci,
+ my_strnncollsp_euckr_korean_ci,
+ my_strnxfrm_mb,
my_strnxfrmlen_simple,
- my_like_range_mb, /* like_range */
- my_wildcmp_mb, /* wildcmp */
+ my_like_range_mb,
+ my_wildcmp_mb,
my_strcasecmp_mb,
my_instr_mb,
my_hash_sort_simple,
my_propagate_simple
};
+
+static MY_COLLATION_HANDLER my_collation_handler_euckr_bin=
+{
+ NULL, /* init */
+ my_strnncoll_euckr_bin,
+ my_strnncollsp_euckr_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* init */
@@ -9987,8 +9999,8 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_mb_ctype_mb,
my_caseup_str_mb,
my_casedn_str_mb,
- my_caseup_mb_varlen, /* UPPER() can reduce length: Turkish DOTLESS i -> I */
- my_casedn_mb, /* LOWER() does not change length, use simple version*/
+ my_caseup_mb, /* UPPER() can reduce length: Turkish DOTLESS i -> I */
+ my_casedn_mb, /* LOWER() does not change length */
my_snprintf_8bit,
my_long10_to_str_8bit,
my_longlong10_to_str_8bit,
@@ -10000,7 +10012,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_euckr,
+ my_well_formed_char_length_euckr,
+ my_copy_fix_mb,
+ my_native_to_mb_euckr,
};
@@ -10016,11 +10032,10 @@ struct charset_info_st my_charset_euckr_korean_ci=
to_lower_euc_kr,
to_upper_euc_kr,
sort_order_euc_kr,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_euckr, /* caseinfo */
+ &my_caseinfo_euckr, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -10032,8 +10047,9 @@ struct charset_info_st my_charset_euckr_korean_ci=
0xFEFE, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_ci_handler
+ &my_collation_handler_euckr_korean_ci
};
@@ -10049,11 +10065,10 @@ struct charset_info_st my_charset_euckr_bin=
to_lower_euc_kr,
to_upper_euc_kr,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_euckr, /* caseinfo */
+ &my_caseinfo_euckr, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -10065,8 +10080,9 @@ struct charset_info_st my_charset_euckr_bin=
0xFEFE, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_mb_bin_handler
+ &my_collation_handler_euckr_bin
};
#endif
diff --git a/strings/ctype-eucjpms.c b/strings/ctype-eucjpms.c
index 49dbaaf3138..fe699f8a334 100644
--- a/strings/ctype-eucjpms.c
+++ b/strings/ctype-eucjpms.c
@@ -180,10 +180,44 @@ static const uchar sort_order_eucjpms[]=
};
-#define iseucjpms(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xfe))
-#define iskata(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xdf))
-#define iseucjpms_ss2(c) (((c)&0xff) == 0x8e)
-#define iseucjpms_ss3(c) (((c)&0xff) == 0x8f)
+/*
+ EUCJPMS encoding subcomponents:
+ [x00-x7F] # ASCII/JIS-Roman (one-byte/character)
+ [x8E][xA1-xDF] # half-width katakana (two bytes/char)
+ [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char)
+ [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char)
+*/
+#define iseucjpms(c) (0xa1 <= (uchar) (c) && (uchar) (c) <= 0xfe)
+#define iskata(c) (0xa1 <= (uchar) (c) && (uchar) (c) <= 0xdf)
+#define iseucjpms_ss2(c) ((uchar) (c) == 0x8e)
+#define iseucjpms_ss3(c) ((uchar) (c) == 0x8f)
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _eucjpms
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80)
+#define IS_MB2_JIS(x,y) (iseucjpms(x) && iseucjpms(y))
+#define IS_MB2_KATA(x,y) (iseucjpms_ss2(x) && iskata(y))
+#define IS_MB2_CHAR(x,y) (IS_MB2_KATA(x,y) || IS_MB2_JIS(x,y))
+#define IS_MB3_CHAR(x,y,z) (iseucjpms_ss3(x) && IS_MB2_JIS(y,z))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _eucjpms_japanese_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(x) ((int) sort_order_eucjpms[(uchar) (x)])
+#define WEIGHT_MB2(x,y) ((((uint) (uchar)(x)) << 16) | \
+ (((uint) (uchar) (y)) << 8))
+#define WEIGHT_MB3(x,y,z) (WEIGHT_MB2(x,y) | ((uint) (uchar) z))
+#include "strcoll.ic"
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _eucjpms_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(x) ((int) (uchar) (x))
+#define WEIGHT_MB2(x,y) ((((uint) (uchar)(x)) << 16) | \
+ (((uint) (uchar) (y)) << 8))
+#define WEIGHT_MB3(x,y,z) (WEIGHT_MB2(x,y) | ((uint) (uchar) z))
+#include "strcoll.ic"
static uint ismbchar_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
@@ -204,7 +238,7 @@ static uint mbcharlen_eucjpms(CHARSET_INFO *cs __attribute__((unused)),uint c)
/* Case info pages for JIS-X-0208 range */
-static MY_UNICASE_INFO cA2[256]=
+static MY_UNICASE_CHARACTER cA2[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -325,7 +359,7 @@ static MY_UNICASE_INFO cA2[256]=
};
-static MY_UNICASE_INFO cA3[256]=
+static MY_UNICASE_CHARACTER cA3[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -446,7 +480,7 @@ static MY_UNICASE_INFO cA3[256]=
};
-static MY_UNICASE_INFO cA6[256]=
+static MY_UNICASE_CHARACTER cA6[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -567,7 +601,7 @@ static MY_UNICASE_INFO cA6[256]=
};
-static MY_UNICASE_INFO cA7[256]=
+static MY_UNICASE_CHARACTER cA7[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -688,7 +722,7 @@ static MY_UNICASE_INFO cA7[256]=
};
-static MY_UNICASE_INFO cAD[256]=
+static MY_UNICASE_CHARACTER cAD[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -811,7 +845,7 @@ static MY_UNICASE_INFO cAD[256]=
/* Case info pages for JIS-X-0212 range */
-static MY_UNICASE_INFO c8FA6[256]=
+static MY_UNICASE_CHARACTER c8FA6[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -932,7 +966,7 @@ static MY_UNICASE_INFO c8FA6[256]=
};
-static MY_UNICASE_INFO c8FA7[256]=
+static MY_UNICASE_CHARACTER c8FA7[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1053,7 +1087,7 @@ static MY_UNICASE_INFO c8FA7[256]=
};
-static MY_UNICASE_INFO c8FA9[256]=
+static MY_UNICASE_CHARACTER c8FA9[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1174,7 +1208,7 @@ static MY_UNICASE_INFO c8FA9[256]=
};
-static MY_UNICASE_INFO c8FAA[256]=
+static MY_UNICASE_CHARACTER c8FAA[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1295,7 +1329,7 @@ static MY_UNICASE_INFO c8FAA[256]=
};
-static MY_UNICASE_INFO c8FAB[256]=
+static MY_UNICASE_CHARACTER c8FAB[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1416,7 +1450,7 @@ static MY_UNICASE_INFO c8FAB[256]=
};
-static MY_UNICASE_INFO c8FF3[256]=
+static MY_UNICASE_CHARACTER c8FF3[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1537,7 +1571,7 @@ static MY_UNICASE_INFO c8FF3[256]=
};
-static MY_UNICASE_INFO c8FF4[256]=
+static MY_UNICASE_CHARACTER c8FF4[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1658,7 +1692,7 @@ static MY_UNICASE_INFO c8FF4[256]=
};
-static MY_UNICASE_INFO *my_caseinfo_eucjpms[512]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_eucjpms[512]=
{
/* JIS-X-0208 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
@@ -1730,7 +1764,14 @@ static MY_UNICASE_INFO *my_caseinfo_eucjpms[512]=
};
-static const uint16 jisx0208_eucjpms_to_unicode[65536]=
+static MY_UNICASE_INFO my_caseinfo_eucjpms=
+{
+ 0x0FFFF,
+ my_caseinfo_pages_eucjpms
+};
+
+
+static uint16 jisx0208_eucjpms_to_unicode[65536]=
{
0x0000, 0x0001, 0x0002, 0x0003, /* 0000 */
0x0004, 0x0005, 0x0006, 0x0007,
@@ -67409,62 +67450,6 @@ my_wc_mb_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
}
-/*
- EUCJPMS encoding subcomponents:
- [x00-x7F] # ASCII/JIS-Roman (one-byte/character)
- [x8E][xA0-xDF] # half-width katakana (two bytes/char)
- [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char)
- [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char)
-*/
-
-static
-size_t my_well_formed_len_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
- const char *beg, const char *end, size_t pos,
- int *error)
-{
- const uchar *b= (uchar *) beg;
- *error=0;
-
- for ( ; pos && b < (uchar*) end; pos--, b++)
- {
- char *chbeg;
- uint ch= *b;
-
- if (ch <= 0x7F) /* one byte */
- continue;
-
- chbeg= (char *) b++;
- if (b >= (uchar *) end) /* need more bytes */
- return (uint) (chbeg - beg); /* unexpected EOL */
-
- if (ch == 0x8E) /* [x8E][xA0-xDF] */
- {
- if (*b >= 0xA0 && *b <= 0xDF)
- continue;
- *error=1;
- return (uint) (chbeg - beg); /* invalid sequence */
- }
-
- if (ch == 0x8F) /* [x8F][xA1-xFE][xA1-xFE] */
- {
- ch= *b++;
- if (b >= (uchar*) end)
- {
- *error= 1;
- return (uint)(chbeg - beg); /* unexpected EOL */
- }
- }
-
- if (ch >= 0xA1 && ch <= 0xFE &&
- *b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */
- continue;
- *error=1;
- return (size_t) (chbeg - beg); /* invalid sequence */
- }
- return (size_t) (b - (uchar *) beg);
-}
-
-
static
size_t my_numcells_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
const char *str, const char *str_end)
@@ -67500,12 +67485,12 @@ size_t my_numcells_eucjpms(CHARSET_INFO *cs __attribute__((unused)),
}
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+static MY_COLLATION_HANDLER my_collation_eucjpms_japanese_ci_handler =
{
NULL, /* init */
- my_strnncoll_simple,/* strnncoll */
- my_strnncollsp_simple,
- my_strnxfrm_simple, /* strnxfrm */
+ my_strnncoll_eucjpms_japanese_ci,
+ my_strnncollsp_eucjpms_japanese_ci,
+ my_strnxfrm_mb, /* strnxfrm */
my_strnxfrmlen_simple,
my_like_range_mb, /* like_range */
my_wildcmp_mb, /* wildcmp */
@@ -67515,6 +67500,23 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
my_propagate_simple
};
+
+static MY_COLLATION_HANDLER my_collation_eucjpms_bin_handler =
+{
+ NULL, /* init */
+ my_strnncoll_eucjpms_bin,
+ my_strnncollsp_eucjpms_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* init */
@@ -67543,7 +67545,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_eucjpms,
+ my_well_formed_char_length_eucjpms,
+ my_copy_fix_mb,
+ my_native_to_mb_eucjpms,
};
@@ -67560,11 +67566,10 @@ struct charset_info_st my_charset_eucjpms_japanese_ci=
to_lower_eucjpms,
to_upper_eucjpms,
sort_order_eucjpms,
- NULL, /* sort_order_big*/
- NULL, /* contractions */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_eucjpms,/* caseinfo */
+ &my_caseinfo_eucjpms,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -67576,8 +67581,9 @@ struct charset_info_st my_charset_eucjpms_japanese_ci=
0xFEFE, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_ci_handler
+ &my_collation_eucjpms_japanese_ci_handler
};
@@ -67593,11 +67599,10 @@ struct charset_info_st my_charset_eucjpms_bin=
to_lower_eucjpms,
to_upper_eucjpms,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_eucjpms,/* caseinfo */
+ &my_caseinfo_eucjpms,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -67609,8 +67614,9 @@ struct charset_info_st my_charset_eucjpms_bin=
0xFEFE, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_mb_bin_handler
+ &my_collation_eucjpms_bin_handler
};
diff --git a/strings/ctype-extra.c b/strings/ctype-extra.c
index da112646aea..90c7ea15eba 100644
--- a/strings/ctype-extra.c
+++ b/strings/ctype-extra.c
@@ -6616,11 +6616,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_dec8_swedish_ci, /* lower */
to_upper_dec8_swedish_ci, /* upper */
sort_order_dec8_swedish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_dec8_swedish_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6632,6 +6631,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6649,11 +6649,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp850_general_ci, /* lower */
to_upper_cp850_general_ci, /* upper */
sort_order_cp850_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp850_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6665,6 +6664,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6682,11 +6682,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin1_german1_ci, /* lower */
to_upper_latin1_german1_ci, /* upper */
sort_order_latin1_german1_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin1_german1_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6698,6 +6697,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6715,11 +6715,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_hp8_english_ci, /* lower */
to_upper_hp8_english_ci, /* upper */
sort_order_hp8_english_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_hp8_english_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6731,6 +6730,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6748,11 +6748,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_koi8r_general_ci, /* lower */
to_upper_koi8r_general_ci, /* upper */
sort_order_koi8r_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_koi8r_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6764,6 +6763,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6781,11 +6781,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin2_general_ci, /* lower */
to_upper_latin2_general_ci, /* upper */
sort_order_latin2_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin2_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6797,6 +6796,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6814,11 +6814,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_swe7_swedish_ci, /* lower */
to_upper_swe7_swedish_ci, /* upper */
sort_order_swe7_swedish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_swe7_swedish_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6830,6 +6829,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6847,11 +6847,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_ascii_general_ci, /* lower */
to_upper_ascii_general_ci, /* upper */
sort_order_ascii_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_ascii_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6863,6 +6862,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6880,11 +6880,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1251_bulgarian_ci, /* lower */
to_upper_cp1251_bulgarian_ci, /* upper */
sort_order_cp1251_bulgarian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1251_bulgarian_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6896,6 +6895,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6913,11 +6913,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin1_danish_ci, /* lower */
to_upper_latin1_danish_ci, /* upper */
sort_order_latin1_danish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin1_danish_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6929,6 +6928,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6946,11 +6946,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_hebrew_general_ci, /* lower */
to_upper_hebrew_general_ci, /* upper */
sort_order_hebrew_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_hebrew_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6962,6 +6961,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -6979,11 +6979,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin7_estonian_cs, /* lower */
to_upper_latin7_estonian_cs, /* upper */
sort_order_latin7_estonian_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin7_estonian_cs, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -6995,6 +6994,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7012,11 +7012,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin2_hungarian_ci, /* lower */
to_upper_latin2_hungarian_ci, /* upper */
sort_order_latin2_hungarian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin2_hungarian_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7028,6 +7027,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7045,11 +7045,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_koi8u_general_ci, /* lower */
to_upper_koi8u_general_ci, /* upper */
sort_order_koi8u_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_koi8u_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7061,6 +7060,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7078,11 +7078,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1251_ukrainian_ci, /* lower */
to_upper_cp1251_ukrainian_ci, /* upper */
sort_order_cp1251_ukrainian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1251_ukrainian_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7094,6 +7093,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7111,11 +7111,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_greek_general_ci, /* lower */
to_upper_greek_general_ci, /* upper */
sort_order_greek_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_greek_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7127,6 +7126,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7144,11 +7144,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1250_general_ci, /* lower */
to_upper_cp1250_general_ci, /* upper */
sort_order_cp1250_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1250_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7160,6 +7159,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7177,11 +7177,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin2_croatian_ci, /* lower */
to_upper_latin2_croatian_ci, /* upper */
sort_order_latin2_croatian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin2_croatian_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7193,6 +7192,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7210,11 +7210,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1257_lithuanian_ci, /* lower */
to_upper_cp1257_lithuanian_ci, /* upper */
sort_order_cp1257_lithuanian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1257_lithuanian_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7226,6 +7225,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7243,11 +7243,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin5_turkish_ci, /* lower */
to_upper_latin5_turkish_ci, /* upper */
sort_order_latin5_turkish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin5_turkish_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7259,6 +7258,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7276,11 +7276,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_armscii8_general_ci, /* lower */
to_upper_armscii8_general_ci, /* upper */
sort_order_armscii8_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_armscii8_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7292,6 +7291,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7309,11 +7309,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp866_general_ci, /* lower */
to_upper_cp866_general_ci, /* upper */
sort_order_cp866_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp866_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7325,6 +7324,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7342,11 +7342,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_keybcs2_general_ci, /* lower */
to_upper_keybcs2_general_ci, /* upper */
sort_order_keybcs2_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_keybcs2_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7358,6 +7357,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7375,11 +7375,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_macce_general_ci, /* lower */
to_upper_macce_general_ci, /* upper */
sort_order_macce_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_macce_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7391,6 +7390,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7408,11 +7408,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_macroman_general_ci, /* lower */
to_upper_macroman_general_ci, /* upper */
sort_order_macroman_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_macroman_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7424,6 +7423,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7441,11 +7441,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp852_general_ci, /* lower */
to_upper_cp852_general_ci, /* upper */
sort_order_cp852_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp852_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7457,6 +7456,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7474,11 +7474,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin7_general_ci, /* lower */
to_upper_latin7_general_ci, /* upper */
sort_order_latin7_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin7_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7490,6 +7489,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7507,11 +7507,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin7_general_cs, /* lower */
to_upper_latin7_general_cs, /* upper */
sort_order_latin7_general_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin7_general_cs, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7523,6 +7522,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7540,11 +7540,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_macce_bin, /* lower */
to_upper_macce_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_macce_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7556,6 +7555,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -7573,11 +7573,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1250_croatian_ci, /* lower */
to_upper_cp1250_croatian_ci, /* upper */
sort_order_cp1250_croatian_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1250_croatian_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7589,6 +7588,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7606,11 +7606,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin1_general_ci, /* lower */
to_upper_latin1_general_ci, /* upper */
sort_order_latin1_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin1_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7622,6 +7621,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7639,11 +7639,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin1_general_cs, /* lower */
to_upper_latin1_general_cs, /* upper */
sort_order_latin1_general_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin1_general_cs, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7655,6 +7654,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7672,11 +7672,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1251_bin, /* lower */
to_upper_cp1251_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1251_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7688,6 +7687,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -7705,11 +7705,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1251_general_ci, /* lower */
to_upper_cp1251_general_ci, /* upper */
sort_order_cp1251_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1251_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7721,6 +7720,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7738,11 +7738,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1251_general_cs, /* lower */
to_upper_cp1251_general_cs, /* upper */
sort_order_cp1251_general_cs, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1251_general_cs, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7754,6 +7753,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7771,11 +7771,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_macroman_bin, /* lower */
to_upper_macroman_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_macroman_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7787,6 +7786,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -7804,11 +7804,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1256_general_ci, /* lower */
to_upper_cp1256_general_ci, /* upper */
sort_order_cp1256_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1256_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7820,6 +7819,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7837,11 +7837,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1257_bin, /* lower */
to_upper_cp1257_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1257_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7853,6 +7852,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -7870,11 +7870,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1257_general_ci, /* lower */
to_upper_cp1257_general_ci, /* upper */
sort_order_cp1257_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1257_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7886,6 +7885,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -7903,11 +7903,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_armscii8_bin, /* lower */
to_upper_armscii8_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_armscii8_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7919,6 +7918,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -7936,11 +7936,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_ascii_bin, /* lower */
to_upper_ascii_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_ascii_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7952,6 +7951,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -7969,11 +7969,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1250_bin, /* lower */
to_upper_cp1250_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1250_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -7985,6 +7984,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8002,11 +8002,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1256_bin, /* lower */
to_upper_cp1256_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1256_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8018,6 +8017,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8035,11 +8035,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp866_bin, /* lower */
to_upper_cp866_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp866_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8051,6 +8050,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8068,11 +8068,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_dec8_bin, /* lower */
to_upper_dec8_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_dec8_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8084,6 +8083,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8101,11 +8101,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_greek_bin, /* lower */
to_upper_greek_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_greek_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8117,6 +8116,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8134,11 +8134,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_hebrew_bin, /* lower */
to_upper_hebrew_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_hebrew_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8150,6 +8149,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8167,11 +8167,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_hp8_bin, /* lower */
to_upper_hp8_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_hp8_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8183,6 +8182,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8200,11 +8200,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_keybcs2_bin, /* lower */
to_upper_keybcs2_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_keybcs2_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8216,6 +8215,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8233,11 +8233,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_koi8r_bin, /* lower */
to_upper_koi8r_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_koi8r_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8249,6 +8248,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8266,11 +8266,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_koi8u_bin, /* lower */
to_upper_koi8u_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_koi8u_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8282,6 +8281,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8299,11 +8299,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin2_bin, /* lower */
to_upper_latin2_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin2_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8315,6 +8314,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8332,11 +8332,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin5_bin, /* lower */
to_upper_latin5_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin5_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8348,6 +8347,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8365,11 +8365,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin7_bin, /* lower */
to_upper_latin7_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin7_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8381,6 +8380,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8398,11 +8398,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp850_bin, /* lower */
to_upper_cp850_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp850_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8414,6 +8413,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8431,11 +8431,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp852_bin, /* lower */
to_upper_cp852_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp852_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8447,6 +8446,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8464,11 +8464,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_swe7_bin, /* lower */
to_upper_swe7_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_swe7_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8480,6 +8479,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8497,11 +8497,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_geostd8_general_ci, /* lower */
to_upper_geostd8_general_ci, /* upper */
sort_order_geostd8_general_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_geostd8_general_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8513,6 +8512,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -8530,11 +8530,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_geostd8_bin, /* lower */
to_upper_geostd8_bin, /* upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_geostd8_bin, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8546,6 +8545,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_bin_handler,
}
@@ -8563,11 +8563,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_latin1_spanish_ci, /* lower */
to_upper_latin1_spanish_ci, /* upper */
sort_order_latin1_spanish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_latin1_spanish_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8579,6 +8578,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -8596,11 +8596,10 @@ struct charset_info_st compiled_charsets[] = {
to_lower_cp1250_polish_ci, /* lower */
to_upper_cp1250_polish_ci, /* upper */
sort_order_cp1250_polish_ci, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
to_uni_cp1250_polish_ci, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8612,6 +8611,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
@@ -8628,11 +8628,10 @@ struct charset_info_st compiled_charsets[] = {
NULL, /* lower */
NULL, /* upper */
NULL, /* sort order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* to_uni */
NULL, /* from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state map */
NULL, /* ident map */
1, /* strxfrm_multiply*/
@@ -8644,6 +8643,7 @@ struct charset_info_st compiled_charsets[] = {
255, /* max_sort_char */
' ', /* pad_char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_8bit_simple_ci_handler,
}
diff --git a/strings/ctype-gb2312.c b/strings/ctype-gb2312.c
index a2d9e6edb08..5030360bc74 100644
--- a/strings/ctype-gb2312.c
+++ b/strings/ctype-gb2312.c
@@ -163,6 +163,14 @@ static const uchar sort_order_gb2312[]=
#define isgb2312head(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xf7)
#define isgb2312tail(c) (0xa1<=(uchar)(c) && (uchar)(c)<=0xfe)
+#define gb2312code(c,d) (((uchar)(c) <<8) | (uchar)(d))
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gb2312
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80)
+#define IS_MB2_CHAR(x,y) (isgb2312head(x) && isgb2312tail(y))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
static uint ismbchar_gb2312(CHARSET_INFO *cs __attribute__((unused)),
@@ -177,7 +185,7 @@ static uint mbcharlen_gb2312(CHARSET_INFO *cs __attribute__((unused)),uint c)
}
-static MY_UNICASE_INFO cA2[256]=
+static MY_UNICASE_CHARACTER cA2[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -298,7 +306,7 @@ static MY_UNICASE_INFO cA2[256]=
};
-static MY_UNICASE_INFO cA3[256]=
+static MY_UNICASE_CHARACTER cA3[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -419,7 +427,7 @@ static MY_UNICASE_INFO cA3[256]=
};
-static MY_UNICASE_INFO cA6[256]=
+static MY_UNICASE_CHARACTER cA6[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -540,7 +548,7 @@ static MY_UNICASE_INFO cA6[256]=
};
-static MY_UNICASE_INFO cA7[256]=
+static MY_UNICASE_CHARACTER cA7[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -661,7 +669,7 @@ static MY_UNICASE_INFO cA7[256]=
};
-static MY_UNICASE_INFO cA8[256]=
+static MY_UNICASE_CHARACTER cA8[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -782,7 +790,7 @@ static MY_UNICASE_INFO cA8[256]=
};
-static MY_UNICASE_INFO *my_caseinfo_gb2312[256]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_gb2312[256]=
{
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -819,6 +827,13 @@ static MY_UNICASE_INFO *my_caseinfo_gb2312[256]=
};
+static MY_UNICASE_INFO my_caseinfo_gb2312=
+{
+ 0xFFFF,
+ my_caseinfo_pages_gb2312
+};
+
+
/* page 0 0x2121-0x2658 */
static const uint16 tab_gb2312_uni0[]={
0x3000,0x3001,0x3002,0x30FB,0x02C9,0x02C7,0x00A8,0x3003,
@@ -6317,7 +6332,10 @@ my_mb_wc_gb2312(CHARSET_INFO *cs __attribute__((unused)),
if (s+2>e)
return MY_CS_TOOSMALL2;
-
+
+ if (!IS_MB2_CHAR(hi, s[1]))
+ return MY_CS_ILSEQ;
+
if (!(pwc[0]=func_gb2312_uni_onechar(((hi<<8)+s[1])&0x7F7F)))
return -2;
@@ -6325,47 +6343,24 @@ my_mb_wc_gb2312(CHARSET_INFO *cs __attribute__((unused)),
}
-/*
- Returns well formed length of a EUC-KR string.
-*/
-static size_t
-my_well_formed_len_gb2312(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gb2312_chinese_ci
+#define WEIGHT_MB1(x) (sort_order_gb2312[(uchar) (x)])
+#define WEIGHT_MB2(x,y) (gb2312code(x, y))
+#include "strcoll.ic"
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if (b < emb && isgb2312head(*b) && isgb2312tail(b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gb2312_bin
+#define WEIGHT_MB1(x) ((uchar) (x))
+#define WEIGHT_MB2(x,y) (gb2312code(x, y))
+#include "strcoll.ic"
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+static MY_COLLATION_HANDLER my_collation_handler_gb2312_chinese_ci=
{
- NULL, /* init */
- my_strnncoll_simple, /* strnncoll */
- my_strnncollsp_simple,
- my_strnxfrm_simple, /* strnxfrm */
+ NULL, /* init */
+ my_strnncoll_gb2312_chinese_ci,
+ my_strnncollsp_gb2312_chinese_ci,
+ my_strnxfrm_mb, /* strnxfrm */
my_strnxfrmlen_simple,
my_like_range_mb, /* like_range */
my_wildcmp_mb, /* wildcmp */
@@ -6375,6 +6370,24 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
my_propagate_simple
};
+
+static MY_COLLATION_HANDLER my_collation_handler_gb2312_bin=
+{
+ NULL, /* init */
+ my_strnncoll_gb2312_bin,
+ my_strnncollsp_gb2312_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
+
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* init */
@@ -6403,7 +6416,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_gb2312,
+ my_well_formed_char_length_gb2312,
+ my_copy_fix_mb,
+ my_native_to_mb_gb2312,
};
@@ -6419,11 +6436,10 @@ struct charset_info_st my_charset_gb2312_chinese_ci=
to_lower_gb2312,
to_upper_gb2312,
sort_order_gb2312,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_gb2312, /* caseinfo */
+ &my_caseinfo_gb2312,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -6435,10 +6451,12 @@ struct charset_info_st my_charset_gb2312_chinese_ci=
0xF7FE, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_ci_handler
+ &my_collation_handler_gb2312_chinese_ci
};
+
struct charset_info_st my_charset_gb2312_bin=
{
86,0,0, /* number */
@@ -6451,11 +6469,10 @@ struct charset_info_st my_charset_gb2312_bin=
to_lower_gb2312,
to_upper_gb2312,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_gb2312, /* caseinfo */
+ &my_caseinfo_gb2312,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -6467,8 +6484,9 @@ struct charset_info_st my_charset_gb2312_bin=
0xF7FE, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_mb_bin_handler
+ &my_collation_handler_gb2312_bin
};
#endif
diff --git a/strings/ctype-gbk.c b/strings/ctype-gbk.c
index d3a53475ccc..602255e9aee 100644
--- a/strings/ctype-gbk.c
+++ b/strings/ctype-gbk.c
@@ -43,6 +43,13 @@
#define gbkhead(e) ((uchar)(e>>8))
#define gbktail(e) ((uchar)(e&0xff))
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gbk
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80)
+#define IS_MB2_CHAR(x,y) (isgbkhead(x) && isgbktail(y))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
+
+
static const uchar ctype_gbk[257] =
{
0, /* For standard library */
@@ -136,7 +143,8 @@ static const uchar to_upper_gbk[]=
(uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377',
};
-static MY_UNICASE_INFO cA2[256]=
+
+static MY_UNICASE_CHARACTER cA2[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -340,7 +348,7 @@ static MY_UNICASE_INFO cA2[256]=
{0xA2FF,0xA2FF,0xA2FF}
};
-static MY_UNICASE_INFO cA3[256]=
+static MY_UNICASE_CHARACTER cA3[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -545,7 +553,7 @@ static MY_UNICASE_INFO cA3[256]=
};
-static MY_UNICASE_INFO cA6[256]=
+static MY_UNICASE_CHARACTER cA6[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -750,7 +758,7 @@ static MY_UNICASE_INFO cA6[256]=
};
-static MY_UNICASE_INFO cA7[256]=
+static MY_UNICASE_CHARACTER cA7[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -955,7 +963,7 @@ static MY_UNICASE_INFO cA7[256]=
};
-static MY_UNICASE_INFO *my_caseinfo_gbk[256]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_gbk[256]=
{
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -991,7 +999,15 @@ static MY_UNICASE_INFO *my_caseinfo_gbk[256]=
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
-static const uchar sort_order_gbk[]=
+
+static MY_UNICASE_INFO my_caseinfo_gbk=
+{
+ 0xFFFF,
+ my_caseinfo_pages_gbk
+};
+
+
+static uchar sort_order_gbk[]=
{
'\000','\001','\002','\003','\004','\005','\006','\007',
'\010','\011','\012','\013','\014','\015','\016','\017',
@@ -3435,112 +3451,35 @@ static uint16 gbksortorder(uint16 i)
}
-int my_strnncoll_gbk_internal(const uchar **a_res, const uchar **b_res,
- size_t length)
-{
- const uchar *a= *a_res, *b= *b_res;
- uint a_char,b_char;
-
- while (length--)
- {
- if ((length > 0) && isgbkcode(*a,*(a+1)) && isgbkcode(*b, *(b+1)))
- {
- a_char= gbkcode(*a,*(a+1));
- b_char= gbkcode(*b,*(b+1));
- if (a_char != b_char)
- return ((int) gbksortorder((uint16) a_char) -
- (int) gbksortorder((uint16) b_char));
- a+= 2;
- b+= 2;
- length--;
- }
- else if (sort_order_gbk[*a++] != sort_order_gbk[*b++])
- return ((int) sort_order_gbk[a[-1]] -
- (int) sort_order_gbk[b[-1]]);
- }
- *a_res= a;
- *b_res= b;
- return 0;
-}
-
-
-
-int my_strnncoll_gbk(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
-{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_gbk_internal(&a, &b, length);
- return res ? res : (int) ((b_is_prefix ? length : a_length) - b_length);
-}
-
-
-static int my_strnncollsp_gbk(CHARSET_INFO * cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
+static size_t
+my_strnxfrm_gbk(CHARSET_INFO *cs,
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- size_t length= min(a_length, b_length);
- int res= my_strnncoll_gbk_internal(&a, &b, length);
+ uchar *d0= dst;
+ uchar *de= dst + dstlen;
+ const uchar *se= src + srclen;
+ const uchar *sort_order= cs->sort_order;
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- if (!res && a_length != b_length)
+ for (; dst < de && src < se && nweights; nweights--)
{
- const uchar *end;
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a_length < b_length)
- {
- /* put shorter key in a */
- a_length= b_length;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (end= a + a_length-length; a < end ; a++)
+ if (cs->cset->ismbchar(cs, (const char*) src, (const char*) se))
{
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
+ /*
+ Note, it is safe not to check (src < se)
+ in the code below, because ismbchar() would
+ not return TRUE if src was too short
+ */
+ uint16 e= gbksortorder((uint16) gbkcode(*src, *(src + 1)));
+ *dst++= gbkhead(e);
+ if (dst < de)
+ *dst++= gbktail(e);
+ src+= 2;
}
+ else
+ *dst++= sort_order ? sort_order[*src++] : *src++;
}
- return res;
-}
-
-
-static size_t my_strnxfrm_gbk(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uint16 e;
- size_t dstlen= len;
- uchar *dest_end= dest + dstlen;
-
- len = srclen;
- while (len-- && dest < dest_end)
- {
- if ((len > 0) && isgbkcode(*src, *(src+1)))
- {
- e = gbksortorder((uint16) gbkcode(*src, *(src+1)));
- *dest++ = gbkhead(e);
- if (dest < dest_end)
- *dest++ = gbktail(e);
- src+=2;
- len--;
- } else
- *dest++ = sort_order_gbk[(uchar) *src++];
- }
- if (dstlen > srclen)
- bfill(dest, dstlen - srclen, ' ');
- return dstlen;
+ return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0);
}
@@ -10705,6 +10644,9 @@ my_mb_wc_gbk(CHARSET_INFO *cs __attribute__((unused)),
if (s+2>e)
return MY_CS_TOOSMALL2;
+ if (!IS_MB2_CHAR(hi, s[1]))
+ return MY_CS_ILSEQ;
+
if (!(pwc[0]=func_gbk_uni_onechar( (hi<<8) + s[1])))
return -2;
@@ -10713,48 +10655,23 @@ my_mb_wc_gbk(CHARSET_INFO *cs __attribute__((unused)),
}
-/*
- Returns well formed length of a GBK string.
-*/
-static
-size_t my_well_formed_len_gbk(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- const char *emb= e - 1; /* Last possible end of an MB character */
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gbk_chinese_ci
+#define WEIGHT_MB1(x) (sort_order_gbk[(uchar) (x)])
+#define WEIGHT_MB2(x,y) (gbksortorder(gbkcode(x,y)))
+#include "strcoll.ic"
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if ((b < emb) && isgbkcode((uchar)*b, (uchar)b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _gbk_bin
+#define WEIGHT_MB1(x) ((uchar) (x))
+#define WEIGHT_MB2(x,y) (gbkcode(x,y))
+#include "strcoll.ic"
-
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+static MY_COLLATION_HANDLER my_collation_handler_gbk_chinese_ci=
{
- NULL, /* init */
- my_strnncoll_gbk,
- my_strnncollsp_gbk,
+ NULL, /* init */
+ my_strnncoll_gbk_chinese_ci,
+ my_strnncollsp_gbk_chinese_ci,
my_strnxfrm_gbk,
my_strnxfrmlen_simple,
my_like_range_mb,
@@ -10765,6 +10682,24 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
my_propagate_simple
};
+
+static MY_COLLATION_HANDLER my_collation_handler_gbk_bin=
+{
+ NULL, /* init */
+ my_strnncoll_gbk_bin,
+ my_strnncollsp_gbk_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
+
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* init */
@@ -10793,7 +10728,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_gbk,
+ my_well_formed_char_length_gbk,
+ my_copy_fix_mb,
+ my_native_to_mb_gbk,
};
@@ -10809,11 +10748,10 @@ struct charset_info_st my_charset_gbk_chinese_ci=
to_lower_gbk,
to_upper_gbk,
sort_order_gbk,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_gbk, /* caseinfo */
+ &my_caseinfo_gbk, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -10825,8 +10763,9 @@ struct charset_info_st my_charset_gbk_chinese_ci=
0xA967, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_ci_handler
+ &my_collation_handler_gbk_chinese_ci
};
struct charset_info_st my_charset_gbk_bin=
@@ -10841,11 +10780,10 @@ struct charset_info_st my_charset_gbk_bin=
to_lower_gbk,
to_upper_gbk,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_gbk, /* caseinfo */
+ &my_caseinfo_gbk, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -10857,8 +10795,9 @@ struct charset_info_st my_charset_gbk_bin=
0xFEFE, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_mb_bin_handler
+ &my_collation_handler_gbk_bin
};
diff --git a/strings/ctype-latin1.c b/strings/ctype-latin1.c
index 8bfc81c83df..37f43c6bce5 100644
--- a/strings/ctype-latin1.c
+++ b/strings/ctype-latin1.c
@@ -364,9 +364,14 @@ int my_mb_wc_latin1(CHARSET_INFO *cs __attribute__((unused)),
{
if (str >= end)
return MY_CS_TOOSMALL;
-
- *wc=cs_to_uni[*str];
- return (!wc[0] && str[0]) ? -1 : 1;
+ /*
+ There are no unassigned characters in latin1.
+ Every code point in latin1 is mapped to some Unicode code point.
+ We can always return 1, no needs to check the value of cs_to_uni[*str].
+ */
+ *wc= cs_to_uni[*str];
+ DBUG_ASSERT(wc[0] || !str[0]);
+ return 1;
}
static
@@ -380,7 +385,10 @@ int my_wc_mb_latin1(CHARSET_INFO *cs __attribute__((unused)),
if (str >= end)
return MY_CS_TOOSMALL;
- pl= uni_to_cs[(wc>>8) & 0xFF];
+ if (wc > 0xFFFF)
+ return MY_CS_ILUNI;
+
+ pl= uni_to_cs[wc >> 8];
str[0]= pl ? pl[wc & 0xFF] : '\0';
return (!str[0] && wc) ? MY_CS_ILUNI : 1;
}
@@ -413,7 +421,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_8bit,
+ my_well_formed_char_length_8bit,
+ my_copy_8bit,
+ my_wc_mb_bin, /* native_to_mb */
};
@@ -429,11 +441,10 @@ struct charset_info_st my_charset_latin1=
to_lower_latin1,
to_upper_latin1,
sort_order_latin1,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -445,6 +456,7 @@ struct charset_info_st my_charset_latin1=
255, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
&my_collation_8bit_simple_ci_handler
};
@@ -656,22 +668,25 @@ static int my_strnncollsp_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
}
-static size_t my_strnxfrm_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
+static size_t
+my_strnxfrm_latin1_de(CHARSET_INFO *cs,
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar* src, size_t srclen, uint flags)
{
- const uchar *de = dest + len;
- const uchar *se = src + srclen;
- for ( ; src < se && dest < de ; src++)
+ uchar *de= dst + dstlen;
+ const uchar *se= src + srclen;
+ uchar *d0= dst;
+ for ( ; src < se && dst < de && nweights; src++, nweights--)
{
- uchar chr=combo1map[*src];
- *dest++=chr;
- if ((chr=combo2map[*src]) && dest < de)
- *dest++=chr;
+ uchar chr= combo1map[*src];
+ *dst++= chr;
+ if ((chr= combo2map[*src]) && dst < de && nweights > 1)
+ {
+ *dst++= chr;
+ nweights--;
+ }
}
- if (dest < de)
- bfill(dest, de - dest, ' ');
- return (int) len;
+ return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0);
}
@@ -680,6 +695,8 @@ void my_hash_sort_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
ulong *nr1, ulong *nr2)
{
const uchar *end;
+ register ulong m1= *nr1, m2= *nr2;
+
/*
Remove end space. We have to do this to be able to compare
'AE' and 'Ä' as identical
@@ -689,14 +706,14 @@ void my_hash_sort_latin1_de(CHARSET_INFO *cs __attribute__((unused)),
for (; key < end ; key++)
{
uint X= (uint) combo1map[(uint) *key];
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * X) + (nr1[0] << 8);
- nr2[0]+=3;
+ MY_HASH_ADD(m1, m2, X);
if ((X= combo2map[*key]))
{
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) * X) + (nr1[0] << 8);
- nr2[0]+=3;
+ MY_HASH_ADD(m1, m2, X);
}
}
+ *nr1= m1;
+ *nr2= m2;
}
@@ -719,7 +736,7 @@ static MY_COLLATION_HANDLER my_collation_german2_ci_handler=
struct charset_info_st my_charset_latin1_german2_ci=
{
31,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM, /* state */
+ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_NON1TO1, /* state */
"latin1", /* cs name */
"latin1_german2_ci", /* name */
"", /* comment */
@@ -728,11 +745,10 @@ struct charset_info_st my_charset_latin1_german2_ci=
to_lower_latin1,
to_upper_latin1,
sort_order_latin1_de,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
2, /* strxfrm_multiply */
@@ -744,6 +760,7 @@ struct charset_info_st my_charset_latin1_german2_ci=
247, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
&my_collation_german2_ci_handler
};
@@ -761,11 +778,10 @@ struct charset_info_st my_charset_latin1_bin=
to_lower_latin1,
to_upper_latin1,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
cs_to_uni, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -777,6 +793,7 @@ struct charset_info_st my_charset_latin1_bin=
255, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
&my_collation_8bit_bin_handler
};
diff --git a/strings/ctype-mb.c b/strings/ctype-mb.c
index cf0515a31c9..3f8556fb872 100644
--- a/strings/ctype-mb.c
+++ b/strings/ctype-mb.c
@@ -62,90 +62,17 @@ size_t my_casedn_str_mb(CHARSET_INFO * cs, char *str)
}
-static inline MY_UNICASE_INFO*
+static inline MY_UNICASE_CHARACTER*
get_case_info_for_ch(CHARSET_INFO *cs, uint page, uint offs)
{
- MY_UNICASE_INFO *p;
- return cs->caseinfo ? ((p= cs->caseinfo[page]) ? &p[offs] : NULL) : NULL;
+ MY_UNICASE_CHARACTER *p;
+ return cs->caseinfo && (p= cs->caseinfo->page[page]) ? &p[offs] : NULL;
}
/*
- For character sets which don't change octet length in case conversion.
-*/
-size_t my_caseup_mb(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- register uint32 l;
- register char *srcend= src + srclen;
- register const uchar *map= cs->to_upper;
-
- DBUG_ASSERT(cs->caseup_multiply == 1);
- DBUG_ASSERT(src == dst && srclen == dstlen);
- DBUG_ASSERT(cs->mbmaxlen == 2);
-
- while (src < srcend)
- {
- if ((l=my_ismbchar(cs, src, srcend)))
- {
- MY_UNICASE_INFO *ch;
- if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
- {
- *src++= ch->toupper >> 8;
- *src++= ch->toupper & 0xFF;
- }
- else
- src+= l;
- }
- else
- {
- *src=(char) map[(uchar) *src];
- src++;
- }
- }
- return srclen;
-}
-
-
-size_t my_casedn_mb(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
-{
- register uint32 l;
- register char *srcend= src + srclen;
- register const uchar *map=cs->to_lower;
-
- DBUG_ASSERT(cs->casedn_multiply == 1);
- DBUG_ASSERT(src == dst && srclen == dstlen);
- DBUG_ASSERT(cs->mbmaxlen == 2);
-
- while (src < srcend)
- {
- if ((l= my_ismbchar(cs, src, srcend)))
- {
- MY_UNICASE_INFO *ch;
- if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
- {
- *src++= ch->tolower >> 8;
- *src++= ch->tolower & 0xFF;
- }
- else
- src+= l;
- }
- else
- {
- *src= (char) map[(uchar)*src];
- src++;
- }
- }
- return srclen;
-}
-
-
-/*
- Case folding functions for character set
- where case conversion can change string octet length.
+ Case folding functions for CJK character set.
+ Case conversion can optionally reduce string octet length.
For example, in EUCKR,
_euckr 0xA9A5 == "LATIN LETTER DOTLESS I" (Turkish letter)
is upper-cased to to
@@ -153,13 +80,14 @@ size_t my_casedn_mb(CHARSET_INFO * cs, char *src, size_t srclen,
Length is reduced in this example from two bytes to one byte.
*/
static size_t
-my_casefold_mb_varlen(CHARSET_INFO *cs,
- char *src, size_t srclen,
- char *dst, size_t dstlen __attribute__((unused)),
- const uchar *map,
- size_t is_upper)
+my_casefold_mb(CHARSET_INFO *cs,
+ const char *src, size_t srclen,
+ char *dst, size_t dstlen __attribute__((unused)),
+ const uchar *map,
+ size_t is_upper)
{
- char *srcend= src + srclen, *dst0= dst;
+ const char *srcend= src + srclen;
+ char *dst0= dst;
DBUG_ASSERT(cs->mbmaxlen == 2);
@@ -168,7 +96,7 @@ my_casefold_mb_varlen(CHARSET_INFO *cs,
size_t mblen= my_ismbchar(cs, src, srcend);
if (mblen)
{
- MY_UNICASE_INFO *ch;
+ MY_UNICASE_CHARACTER *ch;
if ((ch= get_case_info_for_ch(cs, (uchar) src[0], (uchar) src[1])))
{
int code= is_upper ? ch->toupper : ch->tolower;
@@ -193,22 +121,22 @@ my_casefold_mb_varlen(CHARSET_INFO *cs,
size_t
-my_casedn_mb_varlen(CHARSET_INFO * cs, char *src, size_t srclen,
+my_casedn_mb(CHARSET_INFO * cs, const char *src, size_t srclen,
char *dst, size_t dstlen)
{
DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply);
DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
- return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_lower, 0);
+ return my_casefold_mb(cs, src, srclen, dst, dstlen, cs->to_lower, 0);
}
size_t
-my_caseup_mb_varlen(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst, size_t dstlen)
+my_caseup_mb(CHARSET_INFO * cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply);
DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
- return my_casefold_mb_varlen(cs, src, srclen, dst, dstlen, cs->to_upper, 1);
+ return my_casefold_mb(cs, src, srclen, dst, dstlen, cs->to_upper, 1);
}
@@ -354,7 +282,7 @@ int my_wildcmp_mb_impl(CHARSET_INFO *cs,
if (tmp <= 0)
return (tmp);
}
- } while (str != str_end && wildstr[0] != w_many);
+ } while (str != str_end);
return(-1);
}
}
@@ -423,6 +351,99 @@ size_t my_well_formed_len_mb(CHARSET_INFO *cs, const char *b, const char *e,
}
+/*
+ Append a badly formed piece of string.
+ Bad bytes are fixed to '?'.
+
+ @param to The destination string
+ @param to_end The end of the destination string
+ @param from The source string
+ @param from_end The end of the source string
+ @param nchars Write not more than "nchars" characters.
+ @param status Copying status, must be previously initialized,
+ e.g. using well_formed_char_length() on the original
+ full source string.
+*/
+static size_t
+my_append_fix_badly_formed_tail(CHARSET_INFO *cs,
+ char *to, char *to_end,
+ const char *from, const char *from_end,
+ size_t nchars,
+ MY_STRCOPY_STATUS *status)
+{
+ char *to0= to;
+
+ for ( ; nchars; nchars--)
+ {
+ int chlen;
+ if ((chlen= cs->cset->charlen(cs, (const uchar*) from,
+ (const uchar *) from_end)) > 0)
+ {
+ /* Found a valid character */ /* chlen == 1..MBMAXLEN */
+ DBUG_ASSERT(chlen <= (int) cs->mbmaxlen);
+ if (to + chlen > to_end)
+ goto end; /* Does not fit to "to" */
+ memcpy(to, from, (size_t) chlen);
+ from+= chlen;
+ to+= chlen;
+ continue;
+ }
+ if (chlen == MY_CS_ILSEQ) /* chlen == 0 */
+ {
+ DBUG_ASSERT(from < from_end); /* Shouldn't get MY_CS_ILSEQ if empty */
+ goto bad;
+ }
+ /* Got an incomplete character */ /* chlen == MY_CS_TOOSMALLXXX */
+ DBUG_ASSERT(chlen >= MY_CS_TOOSMALL6);
+ DBUG_ASSERT(chlen <= MY_CS_TOOSMALL);
+ if (from >= from_end)
+ break; /* End of the source string */
+bad:
+ /* Bad byte sequence, or incomplete character found */
+ if (!status->m_well_formed_error_pos)
+ status->m_well_formed_error_pos= from;
+
+ if ((chlen= cs->cset->wc_mb(cs, '?', (uchar*) to, (uchar *) to_end)) <= 0)
+ break; /* Question mark does not fit into the destination */
+ to+= chlen;
+ from++;
+ }
+end:
+ status->m_source_end_pos= from;
+ return to - to0;
+}
+
+
+size_t
+my_copy_fix_mb(CHARSET_INFO *cs,
+ char *dst, size_t dst_length,
+ const char *src, size_t src_length,
+ size_t nchars, MY_STRCOPY_STATUS *status)
+{
+ size_t well_formed_nchars;
+ size_t well_formed_length;
+ size_t fixed_length;
+
+ set_if_smaller(src_length, dst_length);
+ well_formed_nchars= cs->cset->well_formed_char_length(cs,
+ src, src + src_length,
+ nchars, status);
+ DBUG_ASSERT(well_formed_nchars <= nchars);
+ memmove(dst, src, (well_formed_length= status->m_source_end_pos - src));
+ if (!status->m_well_formed_error_pos)
+ return well_formed_length;
+
+ fixed_length= my_append_fix_badly_formed_tail(cs,
+ dst + well_formed_length,
+ dst + dst_length,
+ src + well_formed_length,
+ src + src_length,
+ nchars - well_formed_nchars,
+ status);
+ return well_formed_length + fixed_length;
+}
+
+
uint my_instr_mb(CHARSET_INFO *cs,
const char *b, size_t b_length,
const char *s, size_t s_length,
@@ -486,7 +507,7 @@ my_strnncoll_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
const uchar *t, size_t tlen,
my_bool t_is_prefix)
{
- size_t len=min(slen,tlen);
+ size_t len=MY_MIN(slen,tlen);
int cmp= memcmp(s,t,len);
return cmp ? cmp : (int) ((t_is_prefix ? len : slen) - tlen);
}
@@ -531,7 +552,7 @@ my_strnncollsp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
diff_if_only_endspace_difference= 0;
#endif
- end= a + (length= min(a_length, b_length));
+ end= a + (length= MY_MIN(a_length, b_length));
while (a < end)
{
if (*a++ != *b++)
@@ -565,15 +586,106 @@ my_strnncollsp_mb_bin(CHARSET_INFO * cs __attribute__((unused)),
}
-static size_t my_strnxfrm_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t dstlen,
- const uchar *src, size_t srclen)
+/*
+ Copy one non-ascii character.
+ "dst" must have enough room for the character.
+ Note, we don't use sort_order[] in this macros.
+ This is correct even for case insensitive collations:
+ - basic Latin letters are processed outside this macros;
+ - for other characters sort_order[x] is equal to x.
+*/
+#define my_strnxfrm_mb_non_ascii_char(cs, dst, src, se) \
+{ \
+ switch (cs->cset->ismbchar(cs, (const char*) src, (const char*) se)) { \
+ case 4: \
+ *dst++= *src++; \
+ /* fall through */ \
+ case 3: \
+ *dst++= *src++; \
+ /* fall through */ \
+ case 2: \
+ *dst++= *src++; \
+ /* fall through */ \
+ case 0: \
+ *dst++= *src++; /* byte in range 0x80..0xFF which is not MB head */ \
+ } \
+}
+
+
+/*
+ For character sets with two or three byte multi-byte
+ characters having multibyte weights *equal* to their codes:
+ cp932, euckr, gb2312, sjis, eucjpms, ujis.
+*/
+size_t
+my_strnxfrm_mb(CHARSET_INFO *cs,
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- if (dest != src)
- memcpy(dest, src, min(dstlen, srclen));
- if (dstlen > srclen)
- bfill(dest + srclen, dstlen - srclen, ' ');
- return dstlen;
+ uchar *d0= dst;
+ uchar *de= dst + dstlen;
+ const uchar *se= src + srclen;
+ const uchar *sort_order= cs->sort_order;
+
+ DBUG_ASSERT(cs->mbmaxlen <= 4);
+
+ /*
+ If "srclen" is smaller than both "dstlen" and "nweights"
+ then we can run a simplified loop -
+ without checking "nweights" and "de".
+ */
+ if (dstlen >= srclen && nweights >= srclen)
+ {
+ if (sort_order)
+ {
+ /* Optimized version for a case insensitive collation */
+ for (; src < se; nweights--)
+ {
+ if (*src < 128) /* quickly catch ASCII characters */
+ *dst++= sort_order[*src++];
+ else
+ my_strnxfrm_mb_non_ascii_char(cs, dst, src, se);
+ }
+ }
+ else
+ {
+ /* Optimized version for a case sensitive collation (no sort_order) */
+ for (; src < se; nweights--)
+ {
+ if (*src < 128) /* quickly catch ASCII characters */
+ *dst++= *src++;
+ else
+ my_strnxfrm_mb_non_ascii_char(cs, dst, src, se);
+ }
+ }
+ goto pad;
+ }
+
+ /*
+ A thourough loop, checking all possible limits:
+ "se", "nweights" and "de".
+ */
+ for (; src < se && nweights && dst < de; nweights--)
+ {
+ int chlen;
+ if (*src < 128 ||
+ !(chlen= cs->cset->ismbchar(cs, (const char*) src, (const char*) se)))
+ {
+ /* Single byte character */
+ *dst++= sort_order ? sort_order[*src++] : *src++;
+ }
+ else
+ {
+ /* Multi-byte character */
+ int len= (dst + chlen <= de) ? chlen : de - dst;
+ memcpy(dst, src, len);
+ dst+= len;
+ src+= len;
+ }
+ }
+
+pad:
+ return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, de, nweights, flags, 0);
}
@@ -589,20 +701,20 @@ void
my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,ulong *nr1, ulong *nr2)
{
- const uchar *pos = key;
-
+ register ulong m1= *nr1, m2= *nr2;
+
/*
Remove trailing spaces. We have to do this to be able to compare
'A ' and 'A' as identical
*/
- key= skip_trailing_space(key, len);
+ const uchar *end = skip_trailing_space(key, len);
- for (; pos < (uchar*) key ; pos++)
+ for (; key < end ; key++)
{
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
+ MY_HASH_ADD(m1, m2, (uint)*key);
}
+ *nr1= m1;
+ *nr2= m2;
}
@@ -627,25 +739,8 @@ my_hash_sort_mb_bin(CHARSET_INFO *cs __attribute__((unused)),
static void pad_max_char(CHARSET_INFO *cs, char *str, char *end)
{
char buf[10];
- char buflen;
-
- if (!(cs->state & MY_CS_UNICODE))
- {
- if (cs->max_sort_char <= 255)
- {
- bfill(str, end - str, cs->max_sort_char);
- return;
- }
- buf[0]= cs->max_sort_char >> 8;
- buf[1]= cs->max_sort_char & 0xFF;
- buflen= 2;
- }
- else
- {
- buflen= cs->cset->wc_mb(cs, cs->max_sort_char, (uchar*) buf,
- (uchar*) buf + sizeof(buf));
- }
-
+ char buflen= cs->cset->native_to_mb(cs, cs->max_sort_char, (uchar*) buf,
+ (uchar*) buf + sizeof(buf));
DBUG_ASSERT(buflen > 0);
do
{
@@ -696,7 +791,7 @@ my_bool my_like_range_mb(CHARSET_INFO *cs,
char *min_end= min_str + res_length;
char *max_end= max_str + res_length;
size_t maxcharlen= res_length / cs->mbmaxlen;
- my_bool have_contractions= my_cs_have_contractions(cs);
+ const MY_CONTRACTIONS *contractions= my_charset_get_contractions(cs, 0);
for (; ptr != end && min_str != min_end && maxcharlen ; maxcharlen--)
{
@@ -764,8 +859,8 @@ fill_max_and_min:
'ab\min\min\min\min' and 'ab\max\max\max\max'.
*/
- if (have_contractions && ptr + 1 < end &&
- my_cs_can_be_contraction_head(cs, (uchar) *ptr))
+ if (contractions && ptr + 1 < end &&
+ my_uca_can_be_contraction_head(contractions, (uchar) *ptr))
{
/* Ptr[0] is a contraction head. */
@@ -787,8 +882,8 @@ fill_max_and_min:
is not a contraction, then we put only ptr[0],
and continue with ptr[1] on the next loop.
*/
- if (my_cs_can_be_contraction_tail(cs, (uchar) ptr[1]) &&
- my_cs_contraction2_weight(cs, (uchar) ptr[0], (uchar) ptr[1]))
+ if (my_uca_can_be_contraction_tail(contractions, (uchar) ptr[1]) &&
+ my_uca_contraction2_weight(contractions, (uchar) ptr[0], ptr[1]))
{
/* Contraction found */
if (maxcharlen == 1 || min_str + 1 >= min_end)
@@ -853,7 +948,7 @@ my_like_range_generic(CHARSET_INFO *cs,
char *max_end= max_str + res_length;
size_t charlen= res_length / cs->mbmaxlen;
size_t res_length_diff;
- my_bool have_contractions= my_cs_have_contractions(cs);
+ const MY_CONTRACTIONS *contractions= my_charset_get_contractions(cs, 0);
for ( ; charlen > 0; charlen--)
{
@@ -921,8 +1016,8 @@ my_like_range_generic(CHARSET_INFO *cs,
goto pad_min_max;
}
- if (have_contractions &&
- my_cs_can_be_contraction_head(cs, wc) &&
+ if (contractions &&
+ my_uca_can_be_contraction_head(contractions, wc) &&
(res= cs->cset->mb_wc(cs, &wc2, (uchar*) ptr, (uchar*) end)) > 0)
{
const uint16 *weight;
@@ -933,8 +1028,8 @@ my_like_range_generic(CHARSET_INFO *cs,
goto pad_min_max;
}
- if (my_cs_can_be_contraction_tail(cs, wc2) &&
- (weight= my_cs_contraction2_weight(cs, wc, wc2)) && weight[0])
+ if (my_uca_can_be_contraction_tail(contractions, wc2) &&
+ (weight= my_uca_contraction2_weight(contractions, wc, wc2)) && weight[0])
{
/* Contraction found */
if (charlen == 1)
@@ -1101,7 +1196,7 @@ static int my_wildcmp_mb_bin_impl(CHARSET_INFO *cs,
if (tmp <= 0)
return (tmp);
}
- } while (str != str_end && wildstr[0] != w_many);
+ } while (str != str_end);
return(-1);
}
}
@@ -1376,20 +1471,4 @@ int my_mb_ctype_mb(CHARSET_INFO *cs, int *ctype,
}
-MY_COLLATION_HANDLER my_collation_mb_bin_handler =
-{
- NULL, /* init */
- my_strnncoll_mb_bin,
- my_strnncollsp_mb_bin,
- my_strnxfrm_mb_bin,
- my_strnxfrmlen_simple,
- my_like_range_mb,
- my_wildcmp_mb_bin,
- my_strcasecmp_mb_bin,
- my_instr_mb,
- my_hash_sort_mb_bin,
- my_propagate_simple
-};
-
-
#endif
diff --git a/strings/ctype-mb.ic b/strings/ctype-mb.ic
new file mode 100644
index 00000000000..7e278ea386d
--- /dev/null
+++ b/strings/ctype-mb.ic
@@ -0,0 +1,324 @@
+/*
+ Copyright (c) 2015, MariaDB Foundation
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
+*/
+
+
+#ifndef MY_FUNCTION_NAME
+#error MY_FUNCTION_NAME is not defined
+#endif
+
+#if defined(IS_MB3_CHAR) && !defined(IS_MB2_CHAR)
+#error IS_MB3_CHAR is defined, while IS_MB2_CHAR is not!
+#endif
+
+#if defined(IS_MB4_CHAR) && !defined(IS_MB3_CHAR)
+#error IS_MB4_CHAR is defined, while IS_MB3_CHAR is not!
+#endif
+
+
+#ifdef DEFINE_ASIAN_ROUTINES
+#define DEFINE_WELL_FORMED_LEN
+#define DEFINE_WELL_FORMED_CHAR_LENGTH
+#define DEFINE_CHARLEN
+#define DEFINE_NATIVE_TO_MB_VARLEN
+#endif
+
+
+#ifdef DEFINE_CHARLEN
+/**
+ Returns length of the left-most character of a string.
+ @param cs - charset with mbminlen==1 and mbmaxlen<=4
+ @param b - the beginning of the string
+ @param e - the end of the string
+
+ @return MY_CS_ILSEQ if a bad byte sequence was found
+ @return MY_CS_TOOSMALL(N) if the string ended unexpectedly
+ @return >0 if a valid character was found
+*/
+static int
+MY_FUNCTION_NAME(charlen)(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *b, const uchar *e)
+{
+ DBUG_ASSERT(cs->mbminlen == 1);
+ DBUG_ASSERT(cs->mbmaxlen <= 4);
+
+ if (b >= e)
+ return MY_CS_TOOSMALL;
+ if ((uchar) b[0] < 128)
+ return 1; /* Single byte ASCII character */
+
+#ifdef IS_8BIT_CHAR
+ if (IS_8BIT_CHAR(b[0]))
+ {
+ /* Single byte non-ASCII character, e.g. half width kana in sjis */
+ return 1;
+ }
+#endif
+
+ if (b + 2 > e)
+ return MY_CS_TOOSMALLN(2);
+ if (IS_MB2_CHAR(b[0], b[1]))
+ return 2; /* Double byte character */
+
+#ifdef IS_MB3_CHAR
+ if (b + 3 > e)
+ return MY_CS_TOOSMALLN(3);
+ if (IS_MB3_CHAR(b[0], b[1], b[2]))
+ return 3; /* Three-byte character */
+#endif
+
+#ifdef IS_MB4_CHAR
+ if (b + 4 > e)
+ return MY_CS_TOOSMALLN(4);
+ if (IS_MB4_CHAR(b[0], b[1], b[2], b[3]))
+ return 4; /* Four-byte character */
+#endif
+
+ /* Wrong byte sequence */
+ return MY_CS_ILSEQ;
+}
+#endif /* DEFINE_WELL_FORMED_LEN */
+
+
+#ifdef DEFINE_WELL_FORMED_LEN
+/**
+ Returns well formed length of a character string with
+ variable character length for character sets with:
+ - mbminlen == 1
+ - mbmaxlen == 2, 3, or 4
+*/
+static size_t
+MY_FUNCTION_NAME(well_formed_len)(CHARSET_INFO *cs __attribute__((unused)),
+ const char *b, const char *e,
+ size_t nchars, int *error)
+{
+ const char *b0= b;
+
+ DBUG_ASSERT(cs->mbminlen == 1);
+ DBUG_ASSERT(cs->mbmaxlen <= 4);
+
+ for (*error= 0 ; b < e && nchars-- ; )
+ {
+ if ((uchar) b[0] < 128)
+ {
+ b++; /* Single byte ASCII character */
+ continue;
+ }
+
+ if (b + 2 <= e && IS_MB2_CHAR(b[0], b[1]))
+ {
+ b+= 2; /* Double byte character */
+ continue;
+ }
+
+#ifdef IS_MB3_CHAR
+ if (b + 3 <= e && IS_MB3_CHAR(b[0], b[1], b[2]))
+ {
+ b+= 3; /* Three-byte character */
+ continue;
+ }
+#endif
+
+#ifdef IS_MB4_CHAR
+ if (b + 4 <= e && IS_MB4_CHAR(b[0], b[1], b[2], b[3]))
+ {
+ b+= 4; /* Four-byte character */
+ continue;
+ }
+#endif
+
+#ifdef IS_8BIT_CHAR
+ if (IS_8BIT_CHAR(b[0]))
+ {
+ b++; /* Single byte non-ASCII character, e.g. half width kana in sjis */
+ continue;
+ }
+#endif
+
+ /* Wrong byte sequence */
+ *error= 1;
+ break;
+ }
+ return b - b0;
+}
+
+#endif /* DEFINE_WELL_FORMED_LEN */
+
+
+
+#ifdef DEFINE_WELL_FORMED_CHAR_LENGTH
+/**
+ Returns well formed length of a string
+ measured in characters (rather than in bytes).
+ Version for character sets that define IS_MB?_CHAR(), e.g. big5.
+*/
+static size_t
+MY_FUNCTION_NAME(well_formed_char_length)(CHARSET_INFO *cs __attribute__((unused)),
+ const char *b, const char *e,
+ size_t nchars,
+ MY_STRCOPY_STATUS *status)
+{
+ size_t nchars0= nchars;
+ for ( ; b < e && nchars ; nchars--)
+ {
+ if ((uchar) b[0] < 128)
+ {
+ b++; /* Single byte ASCII character */
+ continue;
+ }
+
+ if (b + 2 <= e && IS_MB2_CHAR(b[0], b[1]))
+ {
+ b+= 2; /* Double byte character */
+ continue;
+ }
+
+#ifdef IS_MB3_CHAR
+ if (b + 3 <= e && IS_MB3_CHAR(b[0], b[1], b[2]))
+ {
+ b+= 3; /* Three-byte character */
+ continue;
+ }
+#endif
+
+#ifdef IS_MB4_CHAR
+ if (b + 4 <= e && IS_MB4_CHAR(b[0], b[1], b[2], b[3]))
+ {
+ b+= 4; /* Four-byte character */
+ continue;
+ }
+#endif
+
+#ifdef IS_8BIT_CHAR
+ if (IS_8BIT_CHAR(b[0]))
+ {
+ b++; /* Single byte non-ASCII character, e.g. half width kana in sjis */
+ continue;
+ }
+#endif
+
+ /* Wrong byte sequence */
+ status->m_source_end_pos= status->m_well_formed_error_pos= b;
+ return nchars0 - nchars;
+ }
+ status->m_source_end_pos= b;
+ status->m_well_formed_error_pos= NULL;
+ return nchars0 - nchars;
+}
+#endif /* DEFINE_WELL_FORMED_CHAR_LENGTH */
+
+
+#ifdef DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+#ifndef CHARLEN
+#error CHARLEN is not defined
+#endif
+/**
+ Returns well formed length of a string
+ measured in characters (rather than in bytes).
+ Version for character sets that define CHARLEN(), e.g. utf8.
+ CHARLEN(cs,b,e) must use the same return code convension that mb_wc() does:
+ - a positive number in the range [1-mbmaxlen] if a valid
+ single-byte or multi-byte character was found
+ - MY_CS_ILSEQ (0) on a bad byte sequence
+ - MY_CS_TOOSMALLxx if the incoming sequence is incomplete
+*/
+static size_t
+MY_FUNCTION_NAME(well_formed_char_length)(CHARSET_INFO *cs __attribute__((unused)),
+ const char *b, const char *e,
+ size_t nchars,
+ MY_STRCOPY_STATUS *status)
+{
+ size_t nchars0= nchars;
+ int chlen;
+ for ( ; nchars ; nchars--, b+= chlen)
+ {
+ if ((chlen= CHARLEN(cs, (uchar*) b, (uchar*) e)) <= 0)
+ {
+ status->m_well_formed_error_pos= b < e ? b : NULL;
+ status->m_source_end_pos= b;
+ return nchars0 - nchars;
+ }
+ }
+ status->m_well_formed_error_pos= NULL;
+ status->m_source_end_pos= b;
+ return nchars0 - nchars;
+}
+#endif /* DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN */
+
+
+#ifdef DEFINE_NATIVE_TO_MB_VARLEN
+/*
+ Write a native 2-byte character.
+ If the full character does not fit, only the first byte is written.
+*/
+static inline int
+my_native_to_mb_fixed2(my_wc_t wc, uchar *s, uchar *e)
+{
+ /* The caller must insure there is a space for at least one byte */
+ DBUG_ASSERT(s < e);
+ s[0]= (uchar) (wc >> 8);
+ if (s + 2 > e)
+ return MY_CS_TOOSMALL2;
+ s[1]= wc & 0xFF;
+ return 2;
+}
+
+
+/*
+ Write a native 3-byte character.
+ If the full character does not fit, only the leading bytes are written.
+*/
+static inline int
+my_native_to_mb_fixed3(my_wc_t wc, uchar *s, uchar *e)
+{
+ /* The caller must insure there is a space for at least one byte */
+ DBUG_ASSERT(s < e);
+ s[0]= (uchar) (wc >> 16);
+ if (s + 2 > e)
+ return MY_CS_TOOSMALL2;
+ s[1]= (wc >> 8) & 0xFF;
+ if (s + 3 > e)
+ return MY_CS_TOOSMALL3;
+ s[2]= wc & 0xFF;
+ return 3;
+}
+
+
+/*
+ Write a native 1-byte or 2-byte or 3-byte character.
+*/
+
+static int
+MY_FUNCTION_NAME(native_to_mb)(CHARSET_INFO *cs __attribute__((unused)),
+ my_wc_t wc, uchar *s, uchar *e)
+{
+ if (s >= e)
+ return MY_CS_TOOSMALL;
+ if ((int) wc <= 0xFF)
+ {
+ s[0]= (uchar) wc;
+ return 1;
+ }
+#ifdef IS_MB3_HEAD
+ if (wc > 0xFFFF)
+ return my_native_to_mb_fixed3(wc, s, e);
+#endif
+ return my_native_to_mb_fixed2(wc, s, e);
+}
+#endif /* DEFINE_NATIVE_TO_MB_VARLEN */
+
+
+#undef MY_FUNCTION_NAME
diff --git a/strings/ctype-simple.c b/strings/ctype-simple.c
index e5a1471cf63..61d01cc6aef 100644
--- a/strings/ctype-simple.c
+++ b/strings/ctype-simple.c
@@ -72,27 +72,28 @@ size_t my_strnxfrmlen_simple(CHARSET_INFO *cs, size_t len)
size_t my_strnxfrm_simple(CHARSET_INFO * cs,
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
const uchar *map= cs->sort_order;
- size_t dstlen= len;
- set_if_smaller(len, srclen);
- if (dest != src)
+ uchar *d0= dst;
+ uint frmlen;
+ if ((frmlen= MY_MIN(dstlen, nweights)) > srclen)
+ frmlen= srclen;
+ if (dst != src)
{
const uchar *end;
- for ( end=src+len; src < end ; )
- *dest++= map[*src++];
+ for (end= src + frmlen; src < end;)
+ *dst++= map[*src++];
}
else
{
const uchar *end;
- for ( end=dest+len; dest < end ; dest++)
- *dest= (char) map[(uchar) *dest];
+ for (end= dst + frmlen; dst < end; dst++)
+ *dst= map[(uchar) *dst];
}
- if (dstlen > len)
- bfill(dest, dstlen - len, ' ');
- return dstlen;
+ return my_strxfrm_pad_desc_and_reverse(cs, d0, dst, d0 + dstlen,
+ nweights - frmlen, flags, 0);
}
@@ -159,7 +160,7 @@ int my_strnncollsp_simple(CHARSET_INFO * cs, const uchar *a, size_t a_length,
diff_if_only_endspace_difference= 0;
#endif
- end= a + (length= min(a_length, b_length));
+ end= a + (length= MY_MIN(a_length, b_length));
while (a < end)
{
if (map[*a++] != map[*b++])
@@ -213,28 +214,26 @@ size_t my_casedn_str_8bit(CHARSET_INFO * cs,char *str)
}
-size_t my_caseup_8bit(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+size_t my_caseup_8bit(CHARSET_INFO * cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
- char *end= src + srclen;
+ const char *end= src + srclen;
register const uchar *map= cs->to_upper;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ DBUG_ASSERT(srclen <= dstlen);
for ( ; src != end ; src++)
- *src= (char) map[(uchar) *src];
+ *dst++= (char) map[(uchar) *src];
return srclen;
}
-size_t my_casedn_8bit(CHARSET_INFO * cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+size_t my_casedn_8bit(CHARSET_INFO * cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
- char *end= src + srclen;
+ const char *end= src + srclen;
register const uchar *map=cs->to_lower;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ DBUG_ASSERT(srclen <= dstlen);
for ( ; src != end ; src++)
- *src= (char) map[(uchar) *src];
+ *dst++= (char) map[(uchar) *src];
return srclen;
}
@@ -247,6 +246,13 @@ int my_strcasecmp_8bit(CHARSET_INFO * cs,const char *s, const char *t)
}
+int my_charlen_8bit(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *str, const uchar *end)
+{
+ return str >= end ? MY_CS_TOOSMALL : 1;
+}
+
+
int my_mb_wc_8bit(CHARSET_INFO *cs,my_wc_t *wc,
const uchar *str,
const uchar *end __attribute__((unused)))
@@ -305,24 +311,48 @@ void my_hash_sort_simple(CHARSET_INFO *cs,
{
register const uchar *sort_order=cs->sort_order;
const uchar *end;
- ulong n1, n2;
+ register ulong m1= *nr1, m2= *nr2;
+ uint16 space_weight= sort_order[' '];
/*
- Remove end space. We have to do this to be able to compare
- 'A ' and 'A' as identical
+ Remove all trailing characters that are equal to space.
+ We have to do this to be able to compare 'A ' and 'A' as identical.
+
+ If the key is long enough, cut the trailing spaces (0x20) using an
+ optimized function implemented in skip_trailing_spaces().
+
+ "len > 16" is just some heuristic here.
+ Calling skip_triling_space() for short values is not desirable,
+ because its initialization block may be more expensive than the
+ performance gained.
*/
- end= skip_trailing_space(key, len);
- n1= *nr1;
- n2= *nr2;
+ end= len > 16 ? skip_trailing_space(key, len) : key + len;
+
+ /*
+ We removed all trailing characters that are binary equal to space 0x20.
+ Now remove all trailing characters that have weights equal to space.
+ Some 8bit simple collations may have such characters:
+ - cp1250_general_ci 0xA0 NO-BREAK SPACE == 0x20 SPACE
+ - cp1251_ukrainian_ci 0x60 GRAVE ACCENT == 0x20 SPACE
+ - koi8u_general_ci 0x60 GRAVE ACCENT == 0x20 SPACE
+ */
+
+ for ( ; key < end ; )
+ {
+ if (sort_order[*--end] != space_weight)
+ {
+ end++;
+ break;
+ }
+ }
+
for (; key < (uchar*) end ; key++)
{
- n1^=(ulong) ((((uint) n1 & 63)+n2) *
- ((uint) sort_order[(uint) *key])) + (n1 << 8);
- n2+=3;
+ MY_HASH_ADD(m1, m2, (uint) sort_order[(uint) *key]);
}
- *nr1= n1;
- *nr2= n2;
+ *nr1= m1;
+ *nr2= m2;
}
@@ -431,7 +461,6 @@ ulong my_strntoul_8bit(CHARSET_INFO *cs,
register uint cutlim;
register uint32 i;
register const char *s;
- register uchar c;
const char *save, *e;
int overflow;
@@ -466,8 +495,9 @@ ulong my_strntoul_8bit(CHARSET_INFO *cs,
overflow = 0;
i = 0;
- for (c = *s; s != e; c = *++s)
+ for ( ; s != e; ++s)
{
+ register uchar c= *s;
if (c>='0' && c<='9')
c -= '0';
else if (c>='A' && c<='Z')
@@ -769,7 +799,7 @@ size_t my_long10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)),
val= new_val;
}
- len= min(len, (size_t) (e-p));
+ len= MY_MIN(len, (size_t) (e-p));
memcpy(dst, p, len);
return len+sign;
}
@@ -823,7 +853,7 @@ size_t my_longlong10_to_str_8bit(CHARSET_INFO *cs __attribute__((unused)),
long_val= quo;
}
- len= min(len, (size_t) (e-p));
+ len= MY_MIN(len, (size_t) (e-p));
cnv:
memcpy(dst, p, len);
return len+sign;
@@ -911,9 +941,14 @@ int my_wildcmp_8bit_impl(CHARSET_INFO *cs,
cmp=likeconv(cs,cmp);
do
{
+ /*
+ Find the next character in the subject string equal to 'cmp', then
+ check recursively my_wildcmp_8bit_impl() for the pattern remainder.
+ */
while (str != str_end && (uchar) likeconv(cs,*str) != cmp)
str++;
- if (str++ == str_end) return(-1);
+ if (str++ == str_end)
+ return(-1); /* 'cmp' was not found in the subject string */
{
int tmp=my_wildcmp_8bit_impl(cs,str,str_end,
wildstr,wildend,escape,w_one,
@@ -921,7 +956,13 @@ int my_wildcmp_8bit_impl(CHARSET_INFO *cs,
if (tmp <= 0)
return(tmp);
}
- } while (str != str_end && wildstr[0] != w_many);
+ /*
+ The recursion call did not match. But it returned 1, which means
+ the pattern remainder has some non-special characters.
+ Continue, there is a chance that we'll find another 'cmp'
+ at a different position in the subject string.
+ */
+ } while (str != str_end);
return(-1);
}
}
@@ -1068,7 +1109,39 @@ size_t my_well_formed_len_8bit(CHARSET_INFO *cs __attribute__((unused)),
{
size_t nbytes= (size_t) (end-start);
*error= 0;
- return min(nbytes, nchars);
+ return MY_MIN(nbytes, nchars);
+}
+
+
+size_t
+my_well_formed_char_length_8bit(CHARSET_INFO *cs __attribute__((unused)),
+ const char *start, const char *end,
+ size_t nchars, MY_STRCOPY_STATUS *status)
+{
+ size_t nbytes= (size_t) (end - start);
+ size_t res= MY_MIN(nbytes, nchars);
+ status->m_well_formed_error_pos= NULL;
+ status->m_source_end_pos= start + res;
+ return res;
+}
+
+
+/*
+ Copy a 8-bit string. Not more than "nchars" character are copied.
+*/
+size_t
+my_copy_8bit(CHARSET_INFO *cs __attribute__((unused)),
+ char *dst, size_t dst_length,
+ const char *src, size_t src_length,
+ size_t nchars, MY_STRCOPY_STATUS *status)
+{
+ set_if_smaller(src_length, dst_length);
+ set_if_smaller(src_length, nchars);
+ if (src_length)
+ memmove(dst, src, src_length);
+ status->m_source_end_pos= src + src_length;
+ status->m_well_formed_error_pos= NULL;
+ return src_length;
}
@@ -1162,12 +1235,12 @@ static int pcmp(const void * f, const void * s)
return res;
}
-static my_bool create_fromuni(struct charset_info_st *cs,
- void *(*alloc)(size_t))
+static my_bool
+create_fromuni(struct charset_info_st *cs,
+ MY_CHARSET_LOADER *loader)
{
uni_idx idx[PLANE_NUM];
int i,n;
- struct my_uni_idx_st *tab_from_uni;
/*
Check that Unicode map is loaded.
@@ -1216,7 +1289,8 @@ static my_bool create_fromuni(struct charset_info_st *cs,
numchars=idx[i].uidx.to-idx[i].uidx.from+1;
if (!(idx[i].uidx.tab= tab= (uchar*)
- alloc(numchars * sizeof(*idx[i].uidx.tab))))
+ (loader->once_alloc) (numchars *
+ sizeof(*idx[i].uidx.tab))))
return TRUE;
bzero(tab,numchars*sizeof(*tab));
@@ -1227,32 +1301,53 @@ static my_bool create_fromuni(struct charset_info_st *cs,
if (wc >= idx[i].uidx.from && wc <= idx[i].uidx.to && wc)
{
int ofs= wc - idx[i].uidx.from;
- tab[ofs]= ch;
+ if (!tab[ofs] || tab[ofs] > 0x7F) /* Prefer ASCII*/
+ {
+ /*
+ Some character sets can have double encoding. For example,
+ in ARMSCII8, the following characters are encoded twice:
+
+ Encoding#1 Encoding#2 Unicode Character Name
+ ---------- ---------- ------- --------------
+ 0x27 0xFF U+0027 APOSTROPHE
+ 0x28 0xA5 U+0028 LEFT PARENTHESIS
+ 0x29 0xA4 U+0029 RIGHT PARENTHESIS
+ 0x2C 0xAB U+002C COMMA
+ 0x2D 0xAC U+002D HYPHEN-MINUS
+ 0x2E 0xA9 U+002E FULL STOP
+
+ That is, both 0x27 and 0xFF convert to Unicode U+0027.
+ When converting back from Unicode to ARMSCII,
+ we prefer the ASCII range, that is we want U+0027
+ to convert to 0x27 rather than to 0xFF.
+ */
+ tab[ofs]= ch;
+ }
}
}
}
/* Allocate and fill reverse table for each plane */
n=i;
- if (!(cs->tab_from_uni= tab_from_uni= (struct my_uni_idx_st*)
- alloc(sizeof(MY_UNI_IDX)*(n+1))))
+ if (!(cs->tab_from_uni= (MY_UNI_IDX *)
+ (loader->once_alloc)(sizeof(MY_UNI_IDX) * (n + 1))))
return TRUE;
for (i=0; i< n; i++)
- tab_from_uni[i]= idx[i].uidx;
+ ((struct my_uni_idx_st*)cs->tab_from_uni)[i]= idx[i].uidx;
/* Set end-of-list marker */
- bzero(&tab_from_uni[i],sizeof(MY_UNI_IDX));
+ bzero((char*) &cs->tab_from_uni[i],sizeof(MY_UNI_IDX));
return FALSE;
}
-static my_bool my_cset_init_8bit(struct charset_info_st *cs,
- void *(*alloc)(size_t))
+static my_bool
+my_cset_init_8bit(struct charset_info_st *cs, MY_CHARSET_LOADER *loader)
{
cs->caseup_multiply= 1;
cs->casedn_multiply= 1;
cs->pad_char= ' ';
- return create_fromuni(cs, alloc);
+ return create_fromuni(cs, loader);
}
static void set_max_sort_char(struct charset_info_st *cs)
@@ -1275,7 +1370,7 @@ static void set_max_sort_char(struct charset_info_st *cs)
}
static my_bool my_coll_init_simple(struct charset_info_st *cs,
- void *(*alloc)(size_t) __attribute__((unused)))
+ MY_CHARSET_LOADER *loader __attribute__((unused)))
{
set_max_sort_char(cs);
return FALSE;
@@ -1523,7 +1618,10 @@ exp: /* [ E [ <sign> ] <unsigned integer> ] */
if ((negative_exp= (*str == '-')) || *str=='+')
{
if (++str == end)
+ {
+ str-= 2; /* 'e-' or 'e+' not followed by digits */
goto ret_sign;
+ }
}
if (shift > 0 && !negative_exp)
goto ret_too_big;
@@ -1543,6 +1641,8 @@ exp: /* [ E [ <sign> ] <unsigned integer> ] */
}
shift+= negative_exp ? -exponent : exponent;
}
+ else
+ str--; /* 'e' not followed by digits */
}
if (shift == 0) /* No shift, check addon digit */
@@ -1693,6 +1793,145 @@ my_bool my_propagate_complex(CHARSET_INFO *cs __attribute__((unused)),
}
+/*
+ Normalize strxfrm flags
+
+ SYNOPSIS:
+ my_strxfrm_flag_normalize()
+ flags - non-normalized flags
+ nlevels - number of levels
+
+ NOTES:
+ If levels are omitted, then 1-maximum is assumed.
+ If any level number is greater than the maximum,
+ it is treated as the maximum.
+
+ RETURN
+ normalized flags
+*/
+
+uint my_strxfrm_flag_normalize(uint flags, uint maximum)
+{
+ DBUG_ASSERT(maximum >= 1 && maximum <= MY_STRXFRM_NLEVELS);
+
+ /* If levels are omitted, then 1-maximum is assumed*/
+ if (!(flags & MY_STRXFRM_LEVEL_ALL))
+ {
+ static uint def_level_flags[]= {0, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F };
+ uint flag_pad= flags &
+ (MY_STRXFRM_PAD_WITH_SPACE | MY_STRXFRM_PAD_TO_MAXLEN);
+ flags= def_level_flags[maximum] | flag_pad;
+ }
+ else
+ {
+ uint i;
+ uint flag_lev= flags & MY_STRXFRM_LEVEL_ALL;
+ uint flag_dsc= (flags >> MY_STRXFRM_DESC_SHIFT) & MY_STRXFRM_LEVEL_ALL;
+ uint flag_rev= (flags >> MY_STRXFRM_REVERSE_SHIFT) & MY_STRXFRM_LEVEL_ALL;
+ uint flag_pad= flags &
+ (MY_STRXFRM_PAD_WITH_SPACE | MY_STRXFRM_PAD_TO_MAXLEN);
+
+ /*
+ If any level number is greater than the maximum,
+ it is treated as the maximum.
+ */
+ for (maximum--, flags= 0, i= 0; i < MY_STRXFRM_NLEVELS; i++)
+ {
+ uint src_bit= 1 << i;
+ if (flag_lev & src_bit)
+ {
+ uint dst_bit= 1 << MY_MIN(i, maximum);
+ flags|= dst_bit;
+ flags|= (flag_dsc & dst_bit) << MY_STRXFRM_DESC_SHIFT;
+ flags|= (flag_rev & dst_bit) << MY_STRXFRM_REVERSE_SHIFT;
+ }
+ }
+ flags|= flag_pad;
+ }
+
+ return flags;
+}
+
+
+/*
+ Apply DESC and REVERSE collation rules.
+
+ SYNOPSIS:
+ my_strxfrm_desc_and_reverse()
+ str - pointer to string
+ strend - end of string
+ flags - flags
+ level - which level, starting from 0.
+
+ NOTES:
+ Apply DESC or REVERSE or both flags.
+
+ If DESC flag is given, then the weights
+ come out NOTed or negated for that level.
+
+ If REVERSE flags is given, then the weights come out in
+ reverse order for that level, that is, starting with
+ the last character and ending with the first character.
+
+ If nether DESC nor REVERSE flags are give,
+ the string is not changed.
+
+*/
+void
+my_strxfrm_desc_and_reverse(uchar *str, uchar *strend,
+ uint flags, uint level)
+{
+ if (flags & (MY_STRXFRM_DESC_LEVEL1 << level))
+ {
+ if (flags & (MY_STRXFRM_REVERSE_LEVEL1 << level))
+ {
+ for (strend--; str <= strend;)
+ {
+ uchar tmp= *str;
+ *str++= ~*strend;
+ *strend--= ~tmp;
+ }
+ }
+ else
+ {
+ for (; str < strend; str++)
+ *str= ~*str;
+ }
+ }
+ else if (flags & (MY_STRXFRM_REVERSE_LEVEL1 << level))
+ {
+ for (strend--; str < strend;)
+ {
+ uchar tmp= *str;
+ *str++= *strend;
+ *strend--= tmp;
+ }
+ }
+}
+
+
+size_t
+my_strxfrm_pad_desc_and_reverse(CHARSET_INFO *cs,
+ uchar *str, uchar *frmend, uchar *strend,
+ uint nweights, uint flags, uint level)
+{
+ if (nweights && frmend < strend && (flags & MY_STRXFRM_PAD_WITH_SPACE))
+ {
+ uint fill_length= MY_MIN((uint) (strend - frmend), nweights * cs->mbminlen);
+ cs->cset->fill(cs, (char*) frmend, fill_length, cs->pad_char);
+ frmend+= fill_length;
+ }
+ my_strxfrm_desc_and_reverse(str, frmend, flags, level);
+ if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && frmend < strend)
+ {
+ uint fill_length= strend - frmend;
+ cs->cset->fill(cs, (char*) frmend, fill_length, cs->pad_char);
+ frmend= strend;
+ }
+ return frmend - str;
+}
+
+
MY_CHARSET_HANDLER my_charset_8bit_handler=
{
my_cset_init_8bit,
@@ -1721,7 +1960,11 @@ MY_CHARSET_HANDLER my_charset_8bit_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_8bit,
+ my_well_formed_char_length_8bit,
+ my_copy_8bit,
+ my_wc_mb_bin, /* native_to_mb */
};
MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler =
diff --git a/strings/ctype-sjis.c b/strings/ctype-sjis.c
index dc6b234cf5c..f0f005685fe 100644
--- a/strings/ctype-sjis.c
+++ b/strings/ctype-sjis.c
@@ -176,10 +176,20 @@ static const uchar sort_order_sjis[]=
(uchar) '\370',(uchar) '\371',(uchar) '\372',(uchar) '\373',(uchar) '\374',(uchar) '\375',(uchar) '\376',(uchar) '\377'
};
-#define issjishead(c) ((0x81<=(c) && (c)<=0x9f) || \
- ((0xe0<=(c)) && (c)<=0xfc))
-#define issjistail(c) ((0x40<=(c) && (c)<=0x7e) || \
- (0x80<=(c) && (c)<=0xfc))
+#define issjishead(c) ((0x81 <= (uchar) (c) && (uchar) (c) <= 0x9f) || \
+ (0xe0 <= (uchar) (c) && (uchar) (c) <= 0xfc))
+#define issjistail(c) ((0x40 <= (uchar) (c) && (uchar) (c) <= 0x7e) || \
+ (0x80 <= (uchar) (c) && (uchar) (c) <= 0xfc))
+
+#define issjiskata(c) ((0xA1 <= (uchar) (c) && (uchar) (c) <= 0xDF))
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _sjis
+#define IS_8BIT_CHAR(x) issjiskata(x)
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80 || issjiskata(x))
+#define IS_MB2_CHAR(x,y) (issjishead(x) && issjistail(y))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
static uint ismbchar_sjis(CHARSET_INFO *cs __attribute__((unused)),
@@ -197,7 +207,7 @@ static uint mbcharlen_sjis(CHARSET_INFO *cs __attribute__((unused)),uint c)
#define sjiscode(c,d) ((((uint) (uchar)(c)) << 8) | (uint) (uchar) (d))
-static MY_UNICASE_INFO c81[256]=
+static MY_UNICASE_CHARACTER c81[256]=
{
/* 8100-810F */
{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,7 +417,7 @@ static MY_UNICASE_INFO c81[256]=
};
-static MY_UNICASE_INFO c82[256]=
+static MY_UNICASE_CHARACTER c82[256]=
{
/* 8200-820F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -615,7 +625,7 @@ static MY_UNICASE_INFO c82[256]=
};
-static MY_UNICASE_INFO c83[256]=
+static MY_UNICASE_CHARACTER c83[256]=
{
/* 8300-830F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -825,7 +835,7 @@ static MY_UNICASE_INFO c83[256]=
};
-static MY_UNICASE_INFO c84[256]=
+static MY_UNICASE_CHARACTER c84[256]=
{
/* 8400-840F */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -1035,7 +1045,7 @@ static MY_UNICASE_INFO c84[256]=
};
-static MY_UNICASE_INFO *my_caseinfo_sjis[256]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_sjis[256]=
{
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -1072,111 +1082,11 @@ static MY_UNICASE_INFO *my_caseinfo_sjis[256]=
};
-static int my_strnncoll_sjis_internal(CHARSET_INFO *cs,
- const uchar **a_res, size_t a_length,
- const uchar **b_res, size_t b_length)
-{
- const uchar *a= *a_res, *b= *b_res;
- const uchar *a_end= a + a_length;
- const uchar *b_end= b + b_length;
- while (a < a_end && b < b_end)
- {
- if (ismbchar_sjis(cs,(char*) a, (char*) a_end) &&
- ismbchar_sjis(cs,(char*) b, (char*) b_end))
- {
- uint a_char= sjiscode(*a, *(a+1));
- uint b_char= sjiscode(*b, *(b+1));
- if (a_char != b_char)
- return (int) a_char - (int) b_char;
- a += 2;
- b += 2;
- } else
- {
- if (sort_order_sjis[(uchar)*a] != sort_order_sjis[(uchar)*b])
- return sort_order_sjis[(uchar)*a] - sort_order_sjis[(uchar)*b];
- a++;
- b++;
- }
- }
- *a_res= a;
- *b_res= b;
- return 0;
-}
-
-
-static int my_strnncoll_sjis(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool b_is_prefix)
+static MY_UNICASE_INFO my_caseinfo_sjis=
{
- int res= my_strnncoll_sjis_internal(cs, &a, a_length, &b, b_length);
- if (b_is_prefix && a_length > b_length)
- a_length= b_length;
- return res ? res : (int) (a_length - b_length);
-}
-
-
-static int my_strnncollsp_sjis(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *a, size_t a_length,
- const uchar *b, size_t b_length,
- my_bool diff_if_only_endspace_difference)
-{
- const uchar *a_end= a + a_length, *b_end= b + b_length;
- int res= my_strnncoll_sjis_internal(cs, &a, a_length, &b, b_length);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- if (!res && (a != a_end || b != b_end))
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- /*
- Check the next not space character of the longer key. If it's < ' ',
- then it's smaller than the other key.
- */
- if (a == a_end)
- {
- /* put shorter key in a */
- a_end= b_end;
- a= b;
- swap= -1; /* swap sign of result */
- res= -res;
- }
- for (; a < a_end ; a++)
- {
- if (*a != ' ')
- return (*a < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-
-static size_t my_strnxfrm_sjis(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
-{
- uchar *d_end = dest + len;
- uchar *s_end = (uchar*) src + srclen;
- while (dest < d_end && src < s_end)
- {
- if (ismbchar_sjis(cs,(char*) src, (char*) s_end))
- {
- *dest++ = *src++;
- if (dest < d_end && src < s_end)
- *dest++ = *src++;
- }
- else
- *dest++ = sort_order_sjis[(uchar)*src++];
- }
- if (len > srclen)
- bfill(dest, len - srclen, ' ');
- return len;
-}
+ 0xFFFF,
+ my_caseinfo_pages_sjis
+};
/* SJIS->Unicode conversion table */
@@ -34105,54 +34015,37 @@ size_t my_numcells_sjis(CHARSET_INFO *cs __attribute__((unused)),
return clen;
}
+
/*
- Returns a well formed length of a SJIS string.
- CP932 additional characters are also accepted.
+ sjis_chinese_ci and sjis_bin sort character blocks in this order:
+ 1. [00..7F] - 7BIT characters (ASCII)
+ 2. [81..9F][40..7E,80..FC] - MB2 characters, part1
+ 3. [A1..DF] - 8BIT characters (Kana)
+ 4. [E0..FC][40..7E,80..FC] - MB2 characters, part2
*/
-static
-size_t my_well_formed_len_sjis(CHARSET_INFO *cs __attribute__((unused)),
- const char *b, const char *e,
- size_t pos, int *error)
-{
- const char *b0= b;
- *error= 0;
- while (pos-- && b < e)
- {
- if ((uchar) b[0] < 128)
- {
- /* Single byte ascii character */
- b++;
- }
- else if (issjishead((uchar)*b) && (e-b)>1 && issjistail((uchar)b[1]))
- {
- /* Double byte character */
- b+= 2;
- }
- else if (((uchar)*b) >= 0xA1 && ((uchar)*b) <= 0xDF)
- {
- /* Half width kana */
- b++;
- }
- else
- {
- /* Wrong byte sequence */
- *error= 1;
- break;
- }
- }
- return (size_t) (b - b0);
-}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _sjis_japanese_ci
+#define WEIGHT_PAD_SPACE (256 * (int) ' ')
+#define WEIGHT_MB1(x) (256 * (int) sort_order_sjis[(uchar) (x)])
+#define WEIGHT_MB2(x,y) (sjiscode(x, y))
+#include "strcoll.ic"
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _sjis_bin
+#define WEIGHT_PAD_SPACE (256 * (int) ' ')
+#define WEIGHT_MB1(x) (256 * (int) (uchar) (x))
+#define WEIGHT_MB2(x,y) (sjiscode(x, y))
+#include "strcoll.ic"
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+
+static MY_COLLATION_HANDLER my_collation_handler_sjis_japanese_ci=
{
- NULL, /* init */
- my_strnncoll_sjis,
- my_strnncollsp_sjis,
- my_strnxfrm_sjis,
+ NULL, /* init */
+ my_strnncoll_sjis_japanese_ci,
+ my_strnncollsp_sjis_japanese_ci,
+ my_strnxfrm_mb,
my_strnxfrmlen_simple,
my_like_range_mb,
- my_wildcmp_mb, /* wildcmp */
+ my_wildcmp_mb,
my_strcasecmp_8bit,
my_instr_mb,
my_hash_sort_simple,
@@ -34160,6 +34053,22 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
};
+static MY_COLLATION_HANDLER my_collation_handler_sjis_bin=
+{
+ NULL, /* init */
+ my_strnncoll_sjis_bin,
+ my_strnncollsp_sjis_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* init */
@@ -34188,7 +34097,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_sjis,
+ my_well_formed_char_length_sjis,
+ my_copy_fix_mb,
+ my_native_to_mb_sjis,
};
@@ -34204,11 +34117,10 @@ struct charset_info_st my_charset_sjis_japanese_ci=
to_lower_sjis,
to_upper_sjis,
sort_order_sjis,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_sjis, /* caseinfo */
+ &my_caseinfo_sjis, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -34220,8 +34132,9 @@ struct charset_info_st my_charset_sjis_japanese_ci=
0xFCFC, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_ci_handler
+ &my_collation_handler_sjis_japanese_ci
};
struct charset_info_st my_charset_sjis_bin=
@@ -34236,11 +34149,10 @@ struct charset_info_st my_charset_sjis_bin=
to_lower_sjis,
to_upper_sjis,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_sjis, /* caseinfo */
+ &my_caseinfo_sjis, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -34252,8 +34164,9 @@ struct charset_info_st my_charset_sjis_bin=
0xFCFC, /* max_sort_char */
' ', /* pad char */
1, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_mb_bin_handler
+ &my_collation_handler_sjis_bin
};
#endif
diff --git a/strings/ctype-tis620.c b/strings/ctype-tis620.c
index d97f8e5ff08..5284109b816 100644
--- a/strings/ctype-tis620.c
+++ b/strings/ctype-tis620.c
@@ -40,7 +40,6 @@
#ifdef HAVE_CHARSET_tis620
-#define BUFFER_MULTIPLY 4
#define M L_MIDDLE
#define U L_UPPER
#define L L_LOWER
@@ -525,7 +524,7 @@ int my_strnncoll_tis620(CHARSET_INFO *cs __attribute__((unused)),
tc1= buf;
if ((len1 + len2 +2) > (int) sizeof(buf))
- tc1= (uchar*) my_str_malloc(len1+len2+2);
+ tc1= (uchar*) my_malloc(len1+len2+2, MYF(MY_FAE));
tc2= tc1 + len1+1;
memcpy((char*) tc1, (char*) s1, len1);
tc1[len1]= 0; /* if length(s1)> len1, need to put 'end of string' */
@@ -535,7 +534,7 @@ int my_strnncoll_tis620(CHARSET_INFO *cs __attribute__((unused)),
thai2sortable(tc2, len2);
i= strcmp((char*)tc1, (char*)tc2);
if (tc1 != buf)
- my_str_free(tc1);
+ my_free(tc1);
return i;
}
@@ -556,7 +555,7 @@ int my_strnncollsp_tis620(CHARSET_INFO * cs __attribute__((unused)),
a= buf;
if ((a_length + b_length +2) > (int) sizeof(buf))
- alloced= a= (uchar*) my_str_malloc(a_length+b_length+2);
+ alloced= a= (uchar*) my_malloc(a_length+b_length+2, MYF(MY_FAE));
b= a + a_length+1;
memcpy((char*) a, (char*) a0, a_length);
@@ -566,7 +565,7 @@ int my_strnncollsp_tis620(CHARSET_INFO * cs __attribute__((unused)),
a_length= thai2sortable(a, a_length);
b_length= thai2sortable(b, b_length);
- end= a + (length= min(a_length, b_length));
+ end= a + (length= MY_MIN(a_length, b_length));
while (a < end)
{
if (*a++ != *b++)
@@ -605,7 +604,7 @@ int my_strnncollsp_tis620(CHARSET_INFO * cs __attribute__((unused)),
ret:
if (alloced)
- my_str_free(alloced);
+ my_free(alloced);
return res;
}
@@ -617,18 +616,26 @@ ret:
Ret: Conveted string size
*/
-static
-size_t my_strnxfrm_tis620(CHARSET_INFO *cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
+static size_t
+my_strnxfrm_tis620(CHARSET_INFO *cs,
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- size_t dstlen= len;
- len= (size_t) (strmake((char*) dest, (char*) src, min(len, srclen)) -
- (char*) dest);
- len= thai2sortable(dest, len);
- if (dstlen > len)
- bfill(dest + len, dstlen - len, ' ');
- return dstlen;
+ size_t len, dstlen0= dstlen;
+ len= (uint) (strmake((char*) dst, (char*) src, MY_MIN(dstlen, srclen)) -
+ (char*) dst);
+ len= thai2sortable(dst, len);
+ set_if_smaller(dstlen, nweights);
+ set_if_smaller(len, dstlen);
+ len= my_strxfrm_pad_desc_and_reverse(cs, dst, dst + len, dst + dstlen,
+ dstlen - len, flags, 0);
+ if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len < dstlen0)
+ {
+ uint fill_length= dstlen0 - len;
+ cs->cset->fill(cs, (char*) dst + len, fill_length, cs->pad_char);
+ len= dstlen0;
+ }
+ return len;
}
@@ -877,7 +884,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_8bit,
+ my_well_formed_char_length_8bit,
+ my_copy_8bit,
+ my_wc_mb_bin, /* native_to_mb */
};
@@ -885,7 +896,7 @@ static MY_CHARSET_HANDLER my_charset_handler=
struct charset_info_st my_charset_tis620_thai_ci=
{
18,0,0, /* number */
- MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM, /* state */
+ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_NON1TO1, /* state */
"tis620", /* cs name */
"tis620_thai_ci", /* name */
"", /* comment */
@@ -894,11 +905,10 @@ struct charset_info_st my_charset_tis620_thai_ci=
to_lower_tis620,
to_upper_tis620,
sort_order_tis620,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
4, /* strxfrm_multiply */
@@ -910,6 +920,7 @@ struct charset_info_st my_charset_tis620_thai_ci=
255, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
&my_collation_ci_handler
};
@@ -926,11 +937,10 @@ struct charset_info_st my_charset_tis620_bin=
to_lower_tis620,
to_upper_tis620,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -942,6 +952,7 @@ struct charset_info_st my_charset_tis620_bin=
255, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
&my_collation_8bit_bin_handler
};
diff --git a/strings/ctype-uca.c b/strings/ctype-uca.c
index b0a23abeca4..84a44b28b45 100644
--- a/strings/ctype-uca.c
+++ b/strings/ctype-uca.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2004, 2013, Oracle and/or its affiliates.
- Copyright (c) 2009, 2014, SkySQL Ab.
+ Copyright (c) 2009, 2015, MariaDB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -35,6 +35,8 @@
#include "strings_def.h"
#include <m_ctype.h>
+#define MY_CS_COMMON_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NON1TO1)
+
#define MY_UCA_CNT_FLAG_SIZE 4096
#define MY_UCA_CNT_FLAG_MASK 4095
#define MY_UCA_CNT_HEAD 1
@@ -46,7 +48,6 @@
#define MY_UCA_NCHARS 256
#define MY_UCA_CMASK 255
#define MY_UCA_PSHIFT 8
-#define MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT 0xFFFF
static const uint16 page000data[]= { /* 0000 (4 weights per char) */
0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000,
@@ -6526,6 +6527,23646 @@ NULL ,page0F9data,page0FAdata,page0FBdata,
page0FCdata,page0FDdata,page0FEdata,page0FFdata
};
+
+MY_UCA_INFO my_uca_v400=
+{
+ {
+ {
+ 0xFFFF, /* maxchar */
+ (uchar *) uca_length,
+ (uint16 **) uca_weight,
+ { /* Contractions: */
+ 0, /* nitems */
+ NULL, /* item */
+ NULL /* flags */
+ },
+ 0 /* levelno */
+ },
+ },
+
+ /* Logical positions */
+ 0x0009, /* first_non_ignorable p != ignore */
+ 0xA48C, /* last_non_ignorable Not a CJK and not UNASSIGNED */
+
+ 0x0332, /* first_primary_ignorable p == 0 */
+ 0x20EA, /* last_primary_ignorable */
+
+ 0x0000, /* first_secondary_ignorable p,s == 0 */
+ 0xFE73, /* last_secondary_ignorable p,s == 0 */
+
+ 0x0000, /* first_tertiary_ignorable p,s,t == 0 */
+ 0xFE73, /* last_tertiary_ignorable p,s,t == 0 */
+
+ 0x0000, /* first_trailing */
+ 0x0000, /* last_trailing */
+
+ 0x0009, /* first_variable */
+ 0x2183, /* last_variable */
+};
+
+/******************************************************/
+
+#define MY_UCA_CMASK 255
+#define MY_UCA_PSHIFT 8
+
+
+/* Created from allkeys.txt. Unicode version '5.2.0'. */
+
+static const uint16 uca520_p000[]= { /* 0000 (4 weights per char) */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0000 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0002 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0004 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0006 */
+0x0000,0x0000,0x0000,0x0000, 0x0201,0x0000,0x0000,0x0000, /* 0008 */
+0x0202,0x0000,0x0000,0x0000, 0x0203,0x0000,0x0000,0x0000, /* 000A */
+0x0204,0x0000,0x0000,0x0000, 0x0205,0x0000,0x0000,0x0000, /* 000C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 000E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0010 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0012 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0014 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0016 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0018 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001E */
+0x020A,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* 0020 */
+0x02F5,0x0000,0x0000,0x0000, 0x0362,0x0000,0x0000,0x0000, /* 0022 */
+0x11E1,0x0000,0x0000,0x0000, 0x0363,0x0000,0x0000,0x0000, /* 0024 */
+0x035F,0x0000,0x0000,0x0000, 0x02EE,0x0000,0x0000,0x0000, /* 0026 */
+0x02FF,0x0000,0x0000,0x0000, 0x0300,0x0000,0x0000,0x0000, /* 0028 */
+0x0357,0x0000,0x0000,0x0000, 0x0550,0x0000,0x0000,0x0000, /* 002A */
+0x0234,0x0000,0x0000,0x0000, 0x0223,0x0000,0x0000,0x0000, /* 002C */
+0x0281,0x0000,0x0000,0x0000, 0x035C,0x0000,0x0000,0x0000, /* 002E */
+0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 0030 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 0032 */
+0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 0034 */
+0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 0036 */
+0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 0038 */
+0x0247,0x0000,0x0000,0x0000, 0x0243,0x0000,0x0000,0x0000, /* 003A */
+0x0554,0x0000,0x0000,0x0000, 0x0555,0x0000,0x0000,0x0000, /* 003C */
+0x0556,0x0000,0x0000,0x0000, 0x0273,0x0000,0x0000,0x0000, /* 003E */
+0x0356,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0040 */
+0x1225,0x0000,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 0042 */
+0x1250,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 0044 */
+0x12A3,0x0000,0x0000,0x0000, 0x12B0,0x0000,0x0000,0x0000, /* 0046 */
+0x12D3,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0048 */
+0x1305,0x0000,0x0000,0x0000, 0x131E,0x0000,0x0000,0x0000, /* 004A */
+0x1330,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 004C */
+0x136D,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 004E */
+0x13B3,0x0000,0x0000,0x0000, 0x13C8,0x0000,0x0000,0x0000, /* 0050 */
+0x13DA,0x0000,0x0000,0x0000, 0x1410,0x0000,0x0000,0x0000, /* 0052 */
+0x1433,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0054 */
+0x147B,0x0000,0x0000,0x0000, 0x148D,0x0000,0x0000,0x0000, /* 0056 */
+0x1497,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 0058 */
+0x14AD,0x0000,0x0000,0x0000, 0x0301,0x0000,0x0000,0x0000, /* 005A */
+0x035E,0x0000,0x0000,0x0000, 0x0302,0x0000,0x0000,0x0000, /* 005C */
+0x0211,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* 005E */
+0x020E,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0060 */
+0x1225,0x0000,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 0062 */
+0x1250,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 0064 */
+0x12A3,0x0000,0x0000,0x0000, 0x12B0,0x0000,0x0000,0x0000, /* 0066 */
+0x12D3,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0068 */
+0x1305,0x0000,0x0000,0x0000, 0x131E,0x0000,0x0000,0x0000, /* 006A */
+0x1330,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 006C */
+0x136D,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 006E */
+0x13B3,0x0000,0x0000,0x0000, 0x13C8,0x0000,0x0000,0x0000, /* 0070 */
+0x13DA,0x0000,0x0000,0x0000, 0x1410,0x0000,0x0000,0x0000, /* 0072 */
+0x1433,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0074 */
+0x147B,0x0000,0x0000,0x0000, 0x148D,0x0000,0x0000,0x0000, /* 0076 */
+0x1497,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 0078 */
+0x14AD,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* 007A */
+0x0558,0x0000,0x0000,0x0000, 0x0304,0x0000,0x0000,0x0000, /* 007C */
+0x055B,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 007E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0080 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0082 */
+0x0000,0x0000,0x0000,0x0000, 0x0206,0x0000,0x0000,0x0000, /* 0084 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0086 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0088 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0090 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0092 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0094 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0096 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0098 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009E */
+0x020A,0x0000,0x0000,0x0000, 0x026F,0x0000,0x0000,0x0000, /* 00A0 */
+0x11E0,0x0000,0x0000,0x0000, 0x11E2,0x0000,0x0000,0x0000, /* 00A2 */
+0x11DF,0x0000,0x0000,0x0000, 0x11E3,0x0000,0x0000,0x0000, /* 00A4 */
+0x0559,0x0000,0x0000,0x0000, 0x0351,0x0000,0x0000,0x0000, /* 00A6 */
+0x0216,0x0000,0x0000,0x0000, 0x0354,0x0000,0x0000,0x0000, /* 00A8 */
+0x120F,0x0000,0x0000,0x0000, 0x02FD,0x0000,0x0000,0x0000, /* 00AA */
+0x0557,0x0000,0x0000,0x0000, 0x0222,0x0000,0x0000,0x0000, /* 00AC */
+0x0355,0x0000,0x0000,0x0000, 0x0212,0x0000,0x0000,0x0000, /* 00AE */
+0x044B,0x0000,0x0000,0x0000, 0x0551,0x0000,0x0000,0x0000, /* 00B0 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 00B2 */
+0x020F,0x0000,0x0000,0x0000, 0x1557,0x0000,0x0000,0x0000, /* 00B4 */
+0x0352,0x0000,0x0000,0x0000, 0x0292,0x0000,0x0000,0x0000, /* 00B6 */
+0x021B,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 00B8 */
+0x138E,0x0000,0x0000,0x0000, 0x02FE,0x0000,0x0000,0x0000, /* 00BA */
+0x1206,0x035D,0x1209,0x0000, 0x1206,0x035D,0x1207,0x0000, /* 00BC */
+0x1208,0x035D,0x1209,0x0000, 0x0274,0x0000,0x0000,0x0000, /* 00BE */
+0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C0 */
+0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C2 */
+0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00C4 */
+0x120F,0x126B,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 00C6 */
+0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00C8 */
+0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00CA */
+0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00CC */
+0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00CE */
+0x1250,0x0000,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 00D0 */
+0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00D2 */
+0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00D4 */
+0x138E,0x0000,0x0000,0x0000, 0x0553,0x0000,0x0000,0x0000, /* 00D6 */
+0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00D8 */
+0x1453,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00DA */
+0x1453,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 00DC */
+0x14E0,0x0000,0x0000,0x0000, 0x1410,0x1410,0x0000,0x0000, /* 00DE */
+0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E0 */
+0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E2 */
+0x120F,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 00E4 */
+0x120F,0x126B,0x0000,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 00E6 */
+0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00E8 */
+0x126B,0x0000,0x0000,0x0000, 0x126B,0x0000,0x0000,0x0000, /* 00EA */
+0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00EC */
+0x12EC,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 00EE */
+0x1250,0x0000,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 00F0 */
+0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00F2 */
+0x138E,0x0000,0x0000,0x0000, 0x138E,0x0000,0x0000,0x0000, /* 00F4 */
+0x138E,0x0000,0x0000,0x0000, 0x0552,0x0000,0x0000,0x0000, /* 00F6 */
+0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00F8 */
+0x1453,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 00FA */
+0x1453,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000, /* 00FC */
+0x14E0,0x0000,0x0000,0x0000, 0x149C,0x0000,0x0000,0x0000 /* 00FE */
+};
+
+static const uint16 uca520_p001[]= { /* 0100 (3 weights per char) */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0100 */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0103 */
+0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 0106 */
+0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 0109 */
+0x123D,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 010C */
+0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 010F */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0112 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0115 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0118 */
+0x126B,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 011B */
+0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 011E */
+0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 0121 */
+0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 0124 */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0127 */
+0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 012A */
+0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 012D */
+0x12EC,0x0000,0x0000, 0x12F0,0x0000,0x0000, 0x12EC,0x1305,0x0000, /* 0130 */
+0x12EC,0x1305,0x0000, 0x1305,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 0133 */
+0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x13D6,0x0000,0x0000, /* 0136 */
+0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 0139 */
+0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 013C */
+0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 013F */
+0x1330,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 0142 */
+0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 0145 */
+0x136D,0x0000,0x0000, 0x150B,0x136D,0x0000, 0x138A,0x0000,0x0000, /* 0148 */
+0x138A,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 014B */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 014E */
+0x138E,0x0000,0x0000, 0x138E,0x126B,0x0000, 0x138E,0x126B,0x0000, /* 0151 */
+0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 0154 */
+0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 0157 */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 015A */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 015D */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0160 */
+0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0163 */
+0x1438,0x0000,0x0000, 0x1438,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0166 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0169 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 016C */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 016F */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 0172 */
+0x148D,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 0175 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 0178 */
+0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 017B */
+0x14AD,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x122D,0x0000,0x0000, /* 017E */
+0x1235,0x0000,0x0000, 0x1239,0x0000,0x0000, 0x1239,0x0000,0x0000, /* 0181 */
+0x14FE,0x0000,0x0000, 0x14FE,0x0000,0x0000, 0x139A,0x0000,0x0000, /* 0184 */
+0x1246,0x0000,0x0000, 0x1246,0x0000,0x0000, 0x1258,0x0000,0x0000, /* 0187 */
+0x125C,0x0000,0x0000, 0x1261,0x0000,0x0000, 0x1261,0x0000,0x0000, /* 018A */
+0x14AD,0x148D,0x0000, 0x1276,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 018D */
+0x1280,0x0000,0x0000, 0x12AA,0x0000,0x0000, 0x12AA,0x0000,0x0000, /* 0190 */
+0x12C1,0x0000,0x0000, 0x12CB,0x0000,0x0000, 0x12DB,0x0000,0x0000, /* 0193 */
+0x1300,0x0000,0x0000, 0x12FA,0x0000,0x0000, 0x1324,0x0000,0x0000, /* 0196 */
+0x1324,0x0000,0x0000, 0x133B,0x0000,0x0000, 0x1357,0x0000,0x0000, /* 0199 */
+0x146D,0x0000,0x0000, 0x1378,0x0000,0x0000, 0x137C,0x0000,0x0000, /* 019C */
+0x13A5,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 019F */
+0x12CF,0x0000,0x0000, 0x12CF,0x0000,0x0000, 0x13BC,0x0000,0x0000, /* 01A2 */
+0x13BC,0x0000,0x0000, 0x13DE,0x0000,0x0000, 0x14F6,0x0000,0x0000, /* 01A5 */
+0x14F6,0x0000,0x0000, 0x1421,0x0000,0x0000, 0x1426,0x0000,0x0000, /* 01A8 */
+0x143E,0x0000,0x0000, 0x1442,0x0000,0x0000, 0x1442,0x0000,0x0000, /* 01AB */
+0x1446,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01AE */
+0x1476,0x0000,0x0000, 0x1482,0x0000,0x0000, 0x14A8,0x0000,0x0000, /* 01B1 */
+0x14A8,0x0000,0x0000, 0x14B2,0x0000,0x0000, 0x14B2,0x0000,0x0000, /* 01B4 */
+0x14CA,0x0000,0x0000, 0x14CF,0x0000,0x0000, 0x14CF,0x0000,0x0000, /* 01B7 */
+0x14D4,0x0000,0x0000, 0x14EF,0x0000,0x0000, 0x14FA,0x0000,0x0000, /* 01BA */
+0x14FA,0x0000,0x0000, 0x1433,0x1410,0x0000, 0x14E6,0x0000,0x0000, /* 01BD */
+0x1525,0x0000,0x0000, 0x1529,0x0000,0x0000, 0x152D,0x0000,0x0000, /* 01C0 */
+0x1531,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14AD,0x0000, /* 01C3 */
+0x1250,0x14AD,0x0000, 0x1330,0x1305,0x0000, 0x1330,0x1305,0x0000, /* 01C6 */
+0x1330,0x1305,0x0000, 0x136D,0x1305,0x0000, 0x136D,0x1305,0x0000, /* 01C9 */
+0x136D,0x1305,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01CC */
+0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 01CF */
+0x138E,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D2 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D5 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 01D8 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1276,0x0000,0x0000, /* 01DB */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01DE */
+0x120F,0x0000,0x0000, 0x120F,0x126B,0x0000, 0x120F,0x126B,0x0000, /* 01E1 */
+0x12BC,0x0000,0x0000, 0x12BC,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 01E4 */
+0x12B0,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 01E7 */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 01EA */
+0x138E,0x0000,0x0000, 0x14CA,0x0000,0x0000, 0x14CA,0x0000,0x0000, /* 01ED */
+0x1305,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14AD,0x0000, /* 01F0 */
+0x1250,0x14AD,0x0000, 0x12B0,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 01F3 */
+0x12DB,0x0000,0x0000, 0x14E6,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 01F6 */
+0x136D,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 01F9 */
+0x120F,0x126B,0x0000, 0x120F,0x126B,0x0000, 0x138E,0x0000,0x0000, /* 01FC */
+0x138E,0x0000,0x0000 };
+
+static const uint16 uca520_p002[]= { /* 0200 (3 weights per char) */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0200 */
+0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0203 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0206 */
+0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 0209 */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 020C */
+0x138E,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 020F */
+0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0212 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 0215 */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 0218 */
+0x1433,0x0000,0x0000, 0x14DC,0x0000,0x0000, 0x14DC,0x0000,0x0000, /* 021B */
+0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x137C,0x0000,0x0000, /* 021E */
+0x1265,0x0000,0x0000, 0x13AE,0x0000,0x0000, 0x13AE,0x0000,0x0000, /* 0221 */
+0x14B8,0x0000,0x0000, 0x14B8,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 0224 */
+0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 0227 */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 022A */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 022D */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 0230 */
+0x149C,0x0000,0x0000, 0x134D,0x0000,0x0000, 0x1385,0x0000,0x0000, /* 0233 */
+0x144A,0x0000,0x0000, 0x1309,0x0000,0x0000, 0x1250,0x1225,0x0000, /* 0236 */
+0x13C8,0x13B3,0x0000, 0x1214,0x0000,0x0000, 0x1242,0x0000,0x0000, /* 0239 */
+0x1242,0x0000,0x0000, 0x133B,0x0000,0x0000, 0x143C,0x0000,0x0000, /* 023C */
+0x141B,0x0000,0x0000, 0x14C4,0x0000,0x0000, 0x1506,0x0000,0x0000, /* 023F */
+0x1506,0x0000,0x0000, 0x122D,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 0242 */
+0x1489,0x0000,0x0000, 0x1270,0x0000,0x0000, 0x1270,0x0000,0x0000, /* 0245 */
+0x130E,0x0000,0x0000, 0x130E,0x0000,0x0000, 0x13D2,0x0000,0x0000, /* 0248 */
+0x13D2,0x0000,0x0000, 0x13E4,0x0000,0x0000, 0x13E4,0x0000,0x0000, /* 024B */
+0x14A4,0x0000,0x0000, 0x14A4,0x0000,0x0000, 0x1218,0x0000,0x0000, /* 024E */
+0x121C,0x0000,0x0000, 0x1221,0x0000,0x0000, 0x1235,0x0000,0x0000, /* 0251 */
+0x139A,0x0000,0x0000, 0x124A,0x0000,0x0000, 0x1258,0x0000,0x0000, /* 0254 */
+0x125C,0x0000,0x0000, 0x1285,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 0257 */
+0x1289,0x0000,0x0000, 0x1280,0x0000,0x0000, 0x128D,0x0000,0x0000, /* 025A */
+0x1293,0x0000,0x0000, 0x1297,0x0000,0x0000, 0x1316,0x0000,0x0000, /* 025D */
+0x12C1,0x0000,0x0000, 0x12B4,0x0000,0x0000, 0x12B8,0x0000,0x0000, /* 0260 */
+0x12CB,0x0000,0x0000, 0x129F,0x0000,0x0000, 0x1461,0x0000,0x0000, /* 0263 */
+0x12DF,0x0000,0x0000, 0x12E6,0x0000,0x0000, 0x12FA,0x0000,0x0000, /* 0266 */
+0x1300,0x0000,0x0000, 0x12F4,0x0000,0x0000, 0x1340,0x0000,0x0000, /* 0269 */
+0x1344,0x0000,0x0000, 0x1349,0x0000,0x0000, 0x1352,0x0000,0x0000, /* 026C */
+0x146D,0x0000,0x0000, 0x1472,0x0000,0x0000, 0x1366,0x0000,0x0000, /* 026F */
+0x1378,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1371,0x0000,0x0000, /* 0272 */
+0x13A5,0x0000,0x0000, 0x1394,0x0000,0x0000, 0x13AA,0x0000,0x0000, /* 0275 */
+0x13C3,0x0000,0x0000, 0x13E9,0x0000,0x0000, 0x13EE,0x0000,0x0000, /* 0278 */
+0x13F3,0x0000,0x0000, 0x13F8,0x0000,0x0000, 0x13FC,0x0000,0x0000, /* 027B */
+0x1400,0x0000,0x0000, 0x1405,0x0000,0x0000, 0x13DE,0x0000,0x0000, /* 027E */
+0x1409,0x0000,0x0000, 0x1417,0x0000,0x0000, 0x1421,0x0000,0x0000, /* 0281 */
+0x131A,0x0000,0x0000, 0x142A,0x0000,0x0000, 0x142F,0x0000,0x0000, /* 0284 */
+0x144F,0x0000,0x0000, 0x1446,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 0287 */
+0x1476,0x0000,0x0000, 0x1482,0x0000,0x0000, 0x1489,0x0000,0x0000, /* 028A */
+0x1493,0x0000,0x0000, 0x135B,0x0000,0x0000, 0x14A0,0x0000,0x0000, /* 028D */
+0x14BC,0x0000,0x0000, 0x14C0,0x0000,0x0000, 0x14CA,0x0000,0x0000, /* 0290 */
+0x14D8,0x0000,0x0000, 0x1502,0x0000,0x0000, 0x1510,0x0000,0x0000, /* 0293 */
+0x1521,0x0000,0x0000, 0x1535,0x0000,0x0000, 0x1539,0x0000,0x0000, /* 0296 */
+0x1229,0x0000,0x0000, 0x129B,0x0000,0x0000, 0x12C5,0x0000,0x0000, /* 0299 */
+0x12D7,0x0000,0x0000, 0x1312,0x0000,0x0000, 0x132C,0x0000,0x0000, /* 029C */
+0x1334,0x0000,0x0000, 0x13CE,0x0000,0x0000, 0x1519,0x0000,0x0000, /* 029F */
+0x151D,0x0000,0x0000, 0x1250,0x14AD,0x0000, 0x1250,0x14CA,0x0000, /* 02A2 */
+0x1250,0x14C0,0x0000, 0x1433,0x1410,0x0000, 0x1433,0x1421,0x0000, /* 02A5 */
+0x1433,0x124A,0x0000, 0x12A3,0x138A,0x0000, 0x1330,0x1410,0x0000, /* 02A8 */
+0x1330,0x14AD,0x0000, 0x153D,0x0000,0x0000, 0x1541,0x0000,0x0000, /* 02AB */
+0x1465,0x0000,0x0000, 0x1469,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 02AE */
+0x12DF,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 02B1 */
+0x13E9,0x0000,0x0000, 0x13F3,0x0000,0x0000, 0x1409,0x0000,0x0000, /* 02B4 */
+0x148D,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x03E9,0x0000,0x0000, /* 02B7 */
+0x03EB,0x0000,0x0000, 0x12EA,0x0000,0x0000, 0x150B,0x0000,0x0000, /* 02BA */
+0x12EB,0x0000,0x0000, 0x150D,0x0000,0x0000, 0x1514,0x0000,0x0000, /* 02BD */
+0x150A,0x0000,0x0000, 0x1515,0x0000,0x0000, 0x03EC,0x0000,0x0000, /* 02C0 */
+0x03ED,0x0000,0x0000, 0x03EE,0x0000,0x0000, 0x03EF,0x0000,0x0000, /* 02C3 */
+0x03F0,0x0000,0x0000, 0x03F1,0x0000,0x0000, 0x03F2,0x0000,0x0000, /* 02C6 */
+0x03F3,0x0000,0x0000, 0x03F4,0x0000,0x0000, 0x03F5,0x0000,0x0000, /* 02C9 */
+0x03F6,0x0000,0x0000, 0x03F7,0x0000,0x0000, 0x03F8,0x0000,0x0000, /* 02CC */
+0x03F9,0x0000,0x0000, 0x11CE,0x0000,0x0000, 0x11CF,0x0000,0x0000, /* 02CF */
+0x03FA,0x0000,0x0000, 0x03FB,0x0000,0x0000, 0x03FC,0x0000,0x0000, /* 02D2 */
+0x03FD,0x0000,0x0000, 0x03FE,0x0000,0x0000, 0x03FF,0x0000,0x0000, /* 02D5 */
+0x0214,0x0000,0x0000, 0x0215,0x0000,0x0000, 0x0217,0x0000,0x0000, /* 02D8 */
+0x021C,0x0000,0x0000, 0x0210,0x0000,0x0000, 0x0218,0x0000,0x0000, /* 02DB */
+0x0400,0x0000,0x0000, 0x0401,0x0000,0x0000, 0x12CB,0x0000,0x0000, /* 02DE */
+0x1330,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 02E1 */
+0x1510,0x0000,0x0000, 0x0402,0x0000,0x0000, 0x0403,0x0000,0x0000, /* 02E4 */
+0x0404,0x0000,0x0000, 0x0405,0x0000,0x0000, 0x0406,0x0000,0x0000, /* 02E7 */
+0x0407,0x0000,0x0000, 0x0408,0x0000,0x0000, 0x0409,0x0000,0x0000, /* 02EA */
+0x040A,0x0000,0x0000, 0x150C,0x0000,0x0000, 0x040B,0x0000,0x0000, /* 02ED */
+0x040C,0x0000,0x0000, 0x040D,0x0000,0x0000, 0x040E,0x0000,0x0000, /* 02F0 */
+0x040F,0x0000,0x0000, 0x0410,0x0000,0x0000, 0x0411,0x0000,0x0000, /* 02F3 */
+0x0412,0x0000,0x0000, 0x0413,0x0000,0x0000, 0x0414,0x0000,0x0000, /* 02F6 */
+0x0415,0x0000,0x0000, 0x0416,0x0000,0x0000, 0x0417,0x0000,0x0000, /* 02F9 */
+0x0418,0x0000,0x0000, 0x0419,0x0000,0x0000, 0x041A,0x0000,0x0000, /* 02FC */
+0x041B,0x0000,0x0000 };
+
+static const uint16 uca520_p003[]= { /* 0300 (4 weights per char) */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0300 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0302 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0304 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0306 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0308 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 030E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0310 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0312 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0314 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0316 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0318 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 031E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0320 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0322 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0324 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0326 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0328 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 032E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0330 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0332 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0334 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0336 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0338 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 033E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0340 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0342 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0344 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0346 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0348 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0350 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0352 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0354 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0356 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0358 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 035E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0360 */
+0x0000,0x0000,0x0000,0x0000, 0x120F,0x0000,0x0000,0x0000, /* 0362 */
+0x126B,0x0000,0x0000,0x0000, 0x12EC,0x0000,0x0000,0x0000, /* 0364 */
+0x138E,0x0000,0x0000,0x0000, 0x1453,0x0000,0x0000,0x0000, /* 0366 */
+0x123D,0x0000,0x0000,0x0000, 0x1250,0x0000,0x0000,0x0000, /* 0368 */
+0x12D3,0x0000,0x0000,0x0000, 0x135F,0x0000,0x0000,0x0000, /* 036A */
+0x13DA,0x0000,0x0000,0x0000, 0x1433,0x0000,0x0000,0x0000, /* 036C */
+0x147B,0x0000,0x0000,0x0000, 0x1497,0x0000,0x0000,0x0000, /* 036E */
+0x154F,0x0000,0x0000,0x0000, 0x154F,0x0000,0x0000,0x0000, /* 0370 */
+0x156F,0x0000,0x0000,0x0000, 0x156F,0x0000,0x0000,0x0000, /* 0372 */
+0x03E9,0x0000,0x0000,0x0000, 0x03EA,0x0000,0x0000,0x0000, /* 0374 */
+0x154C,0x0000,0x0000,0x0000, 0x154C,0x0000,0x0000,0x0000, /* 0376 */
+0xFBC0,0x8378,0x0000,0x0000, 0xFBC0,0x8379,0x0000,0x0000, /* 0378 */
+0x1552,0x0000,0x0000,0x0000, 0x1565,0x0000,0x0000,0x0000, /* 037A */
+0x1564,0x0000,0x0000,0x0000, 0x1566,0x0000,0x0000,0x0000, /* 037C */
+0x0243,0x0000,0x0000,0x0000, 0xFBC0,0x837F,0x0000,0x0000, /* 037E */
+0xFBC0,0x8380,0x0000,0x0000, 0xFBC0,0x8381,0x0000,0x0000, /* 0380 */
+0xFBC0,0x8382,0x0000,0x0000, 0xFBC0,0x8383,0x0000,0x0000, /* 0382 */
+0x020F,0x0000,0x0000,0x0000, 0x0216,0x0000,0x0000,0x0000, /* 0384 */
+0x1545,0x0000,0x0000,0x0000, 0x0292,0x0000,0x0000,0x0000, /* 0386 */
+0x154A,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 0388 */
+0x1552,0x0000,0x0000,0x0000, 0xFBC0,0x838B,0x0000,0x0000, /* 038A */
+0x155A,0x0000,0x0000,0x0000, 0xFBC0,0x838D,0x0000,0x0000, /* 038C */
+0x1568,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 038E */
+0x1552,0x0000,0x0000,0x0000, 0x1545,0x0000,0x0000,0x0000, /* 0390 */
+0x1546,0x0000,0x0000,0x0000, 0x1547,0x0000,0x0000,0x0000, /* 0392 */
+0x1549,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 0394 */
+0x154E,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 0396 */
+0x1551,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 0398 */
+0x1554,0x0000,0x0000,0x0000, 0x1555,0x0000,0x0000,0x0000, /* 039A */
+0x1557,0x0000,0x0000,0x0000, 0x1558,0x0000,0x0000,0x0000, /* 039C */
+0x1559,0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000,0x0000, /* 039E */
+0x155B,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03A0 */
+0xFBC0,0x83A2,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03A2 */
+0x1567,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03A4 */
+0x1569,0x0000,0x0000,0x0000, 0x156A,0x0000,0x0000,0x0000, /* 03A6 */
+0x156B,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 03A8 */
+0x1552,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03AA */
+0x1545,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03AC */
+0x1550,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 03AE */
+0x1568,0x0000,0x0000,0x0000, 0x1545,0x0000,0x0000,0x0000, /* 03B0 */
+0x1546,0x0000,0x0000,0x0000, 0x1547,0x0000,0x0000,0x0000, /* 03B2 */
+0x1549,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03B4 */
+0x154E,0x0000,0x0000,0x0000, 0x1550,0x0000,0x0000,0x0000, /* 03B6 */
+0x1551,0x0000,0x0000,0x0000, 0x1552,0x0000,0x0000,0x0000, /* 03B8 */
+0x1554,0x0000,0x0000,0x0000, 0x1555,0x0000,0x0000,0x0000, /* 03BA */
+0x1557,0x0000,0x0000,0x0000, 0x1558,0x0000,0x0000,0x0000, /* 03BC */
+0x1559,0x0000,0x0000,0x0000, 0x155A,0x0000,0x0000,0x0000, /* 03BE */
+0x155B,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03C0 */
+0x1563,0x0000,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03C2 */
+0x1567,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03C4 */
+0x1569,0x0000,0x0000,0x0000, 0x156A,0x0000,0x0000,0x0000, /* 03C6 */
+0x156B,0x0000,0x0000,0x0000, 0x156D,0x0000,0x0000,0x0000, /* 03C8 */
+0x1552,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03CA */
+0x155A,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03CC */
+0x156D,0x0000,0x0000,0x0000, 0x1554,0x1545,0x1552,0x0000, /* 03CE */
+0x1546,0x0000,0x0000,0x0000, 0x1551,0x0000,0x0000,0x0000, /* 03D0 */
+0x1568,0x0000,0x0000,0x0000, 0x1568,0x0000,0x0000,0x0000, /* 03D2 */
+0x1568,0x0000,0x0000,0x0000, 0x1569,0x0000,0x0000,0x0000, /* 03D4 */
+0x155B,0x0000,0x0000,0x0000, 0x1554,0x1545,0x1552,0x0000, /* 03D6 */
+0x155F,0x0000,0x0000,0x0000, 0x155F,0x0000,0x0000,0x0000, /* 03D8 */
+0x154D,0x0000,0x0000,0x0000, 0x154D,0x0000,0x0000,0x0000, /* 03DA */
+0x154B,0x0000,0x0000,0x0000, 0x154B,0x0000,0x0000,0x0000, /* 03DC */
+0x155E,0x0000,0x0000,0x0000, 0x155E,0x0000,0x0000,0x0000, /* 03DE */
+0x156E,0x0000,0x0000,0x0000, 0x156E,0x0000,0x0000,0x0000, /* 03E0 */
+0x1590,0x0000,0x0000,0x0000, 0x1590,0x0000,0x0000,0x0000, /* 03E2 */
+0x1595,0x0000,0x0000,0x0000, 0x1595,0x0000,0x0000,0x0000, /* 03E4 */
+0x1596,0x0000,0x0000,0x0000, 0x1596,0x0000,0x0000,0x0000, /* 03E6 */
+0x1598,0x0000,0x0000,0x0000, 0x1598,0x0000,0x0000,0x0000, /* 03E8 */
+0x159F,0x0000,0x0000,0x0000, 0x159F,0x0000,0x0000,0x0000, /* 03EA */
+0x15A2,0x0000,0x0000,0x0000, 0x15A2,0x0000,0x0000,0x0000, /* 03EC */
+0x15A6,0x0000,0x0000,0x0000, 0x15A6,0x0000,0x0000,0x0000, /* 03EE */
+0x1554,0x0000,0x0000,0x0000, 0x1560,0x0000,0x0000,0x0000, /* 03F0 */
+0x1563,0x0000,0x0000,0x0000, 0x1553,0x0000,0x0000,0x0000, /* 03F2 */
+0x1551,0x0000,0x0000,0x0000, 0x154A,0x0000,0x0000,0x0000, /* 03F4 */
+0x054B,0x0000,0x0000,0x0000, 0x1570,0x0000,0x0000,0x0000, /* 03F6 */
+0x1570,0x0000,0x0000,0x0000, 0x1563,0x0000,0x0000,0x0000, /* 03F8 */
+0x155D,0x0000,0x0000,0x0000, 0x155D,0x0000,0x0000,0x0000, /* 03FA */
+0x1562,0x0000,0x0000,0x0000, 0x1565,0x0000,0x0000,0x0000, /* 03FC */
+0x1564,0x0000,0x0000,0x0000, 0x1566,0x0000,0x0000,0x0000 /* 03FE */
+};
+
+static const uint16 uca520_p004[]= { /* 0400 (2 weights per char) */
+0x15F4,0x0000, 0x15F4,0x0000, 0x15E6,0x0000, 0x15EC,0x0000, /* 0400 */
+0x15FC,0x0000, 0x1619,0x0000, 0x1631,0x0000, 0x1636,0x0000, /* 0404 */
+0x163E,0x0000, 0x1668,0x0000, 0x168D,0x0000, 0x16CC,0x0000, /* 0408 */
+0x16D0,0x0000, 0x1625,0x0000, 0x16D8,0x0000, 0x1743,0x0000, /* 040C */
+0x15AC,0x0000, 0x15C4,0x0000, 0x15C8,0x0000, 0x15CC,0x0000, /* 0410 */
+0x15E0,0x0000, 0x15F4,0x0000, 0x1600,0x0000, 0x160D,0x0000, /* 0414 */
+0x1625,0x0000, 0x163A,0x0000, 0x1643,0x0000, 0x165D,0x0000, /* 0418 */
+0x166F,0x0000, 0x1678,0x0000, 0x1692,0x0000, 0x16A2,0x0000, /* 041C */
+0x16AF,0x0000, 0x16B8,0x0000, 0x16C1,0x0000, 0x16D4,0x0000, /* 0420 */
+0x16F1,0x0000, 0x16F5,0x0000, 0x171B,0x0000, 0x1725,0x0000, /* 0424 */
+0x1747,0x0000, 0x174C,0x0000, 0x1753,0x0000, 0x1758,0x0000, /* 0428 */
+0x1760,0x0000, 0x176D,0x0000, 0x1775,0x0000, 0x177B,0x0000, /* 042C */
+0x15AC,0x0000, 0x15C4,0x0000, 0x15C8,0x0000, 0x15CC,0x0000, /* 0430 */
+0x15E0,0x0000, 0x15F4,0x0000, 0x1600,0x0000, 0x160D,0x0000, /* 0434 */
+0x1625,0x0000, 0x163A,0x0000, 0x1643,0x0000, 0x165D,0x0000, /* 0438 */
+0x166F,0x0000, 0x1678,0x0000, 0x1692,0x0000, 0x16A2,0x0000, /* 043C */
+0x16AF,0x0000, 0x16B8,0x0000, 0x16C1,0x0000, 0x16D4,0x0000, /* 0440 */
+0x16F1,0x0000, 0x16F5,0x0000, 0x171B,0x0000, 0x1725,0x0000, /* 0444 */
+0x1747,0x0000, 0x174C,0x0000, 0x1753,0x0000, 0x1758,0x0000, /* 0448 */
+0x1760,0x0000, 0x176D,0x0000, 0x1775,0x0000, 0x177B,0x0000, /* 044C */
+0x15F4,0x0000, 0x15F4,0x0000, 0x15E6,0x0000, 0x15EC,0x0000, /* 0450 */
+0x15FC,0x0000, 0x1619,0x0000, 0x1631,0x0000, 0x1636,0x0000, /* 0454 */
+0x163E,0x0000, 0x1668,0x0000, 0x168D,0x0000, 0x16CC,0x0000, /* 0458 */
+0x16D0,0x0000, 0x1625,0x0000, 0x16D8,0x0000, 0x1743,0x0000, /* 045C */
+0x170A,0x0000, 0x170A,0x0000, 0x1768,0x0000, 0x1768,0x0000, /* 0460 */
+0x1780,0x0000, 0x1780,0x0000, 0x1784,0x0000, 0x1784,0x0000, /* 0464 */
+0x178E,0x0000, 0x178E,0x0000, 0x1789,0x0000, 0x1789,0x0000, /* 0468 */
+0x1793,0x0000, 0x1793,0x0000, 0x1797,0x0000, 0x1797,0x0000, /* 046C */
+0x179B,0x0000, 0x179B,0x0000, 0x179F,0x0000, 0x179F,0x0000, /* 0470 */
+0x17A3,0x0000, 0x17A3,0x0000, 0x17A7,0x0000, 0x17A7,0x0000, /* 0474 */
+0x16ED,0x0000, 0x16ED,0x0000, 0x1717,0x0000, 0x1717,0x0000, /* 0478 */
+0x1713,0x0000, 0x1713,0x0000, 0x170E,0x0000, 0x170E,0x0000, /* 047C */
+0x16AB,0x0000, 0x16AB,0x0000, 0x044C,0x0000, 0x0000,0x0000, /* 0480 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 0484 */
+0x0000,0x0000, 0x0000,0x0000, 0x1629,0x0000, 0x1629,0x0000, /* 0488 */
+0x1764,0x0000, 0x1764,0x0000, 0x16B3,0x0000, 0x16B3,0x0000, /* 048C */
+0x15CC,0x0000, 0x15CC,0x0000, 0x15D0,0x0000, 0x15D0,0x0000, /* 0490 */
+0x15D8,0x0000, 0x15D8,0x0000, 0x1609,0x0000, 0x1609,0x0000, /* 0494 */
+0x15F0,0x0000, 0x15F0,0x0000, 0x1647,0x0000, 0x1647,0x0000, /* 0498 */
+0x1657,0x0000, 0x1657,0x0000, 0x1653,0x0000, 0x1653,0x0000, /* 049C */
+0x164F,0x0000, 0x164F,0x0000, 0x1680,0x0000, 0x1680,0x0000, /* 04A0 */
+0x1689,0x0000, 0x1689,0x0000, 0x16A7,0x0000, 0x16A7,0x0000, /* 04A4 */
+0x17AC,0x0000, 0x17AC,0x0000, 0x16BD,0x0000, 0x16BD,0x0000, /* 04A8 */
+0x16C7,0x0000, 0x16C7,0x0000, 0x16E4,0x0000, 0x16E4,0x0000, /* 04AC */
+0x16E8,0x0000, 0x16E8,0x0000, 0x1701,0x0000, 0x1701,0x0000, /* 04B0 */
+0x1720,0x0000, 0x1720,0x0000, 0x172E,0x0000, 0x172E,0x0000, /* 04B4 */
+0x1736,0x0000, 0x1736,0x0000, 0x1705,0x0000, 0x1705,0x0000, /* 04B8 */
+0x173B,0x0000, 0x173B,0x0000, 0x173F,0x0000, 0x173F,0x0000, /* 04BC */
+0x17B1,0x0000, 0x1600,0x0000, 0x1600,0x0000, 0x164B,0x0000, /* 04C0 */
+0x164B,0x0000, 0x1662,0x0000, 0x1662,0x0000, 0x1684,0x0000, /* 04C4 */
+0x1684,0x0000, 0x167C,0x0000, 0x167C,0x0000, 0x1732,0x0000, /* 04C8 */
+0x1732,0x0000, 0x1673,0x0000, 0x1673,0x0000, 0x17B1,0x0000, /* 04CC */
+0x15B0,0x0000, 0x15B0,0x0000, 0x15B4,0x0000, 0x15B4,0x0000, /* 04D0 */
+0x15C0,0x0000, 0x15C0,0x0000, 0x15F8,0x0000, 0x15F8,0x0000, /* 04D4 */
+0x15B8,0x0000, 0x15B8,0x0000, 0x15BC,0x0000, 0x15BC,0x0000, /* 04D8 */
+0x1605,0x0000, 0x1605,0x0000, 0x1614,0x0000, 0x1614,0x0000, /* 04DC */
+0x161E,0x0000, 0x161E,0x0000, 0x1625,0x0000, 0x1625,0x0000, /* 04E0 */
+0x162D,0x0000, 0x162D,0x0000, 0x1696,0x0000, 0x1696,0x0000, /* 04E4 */
+0x169A,0x0000, 0x169A,0x0000, 0x169E,0x0000, 0x169E,0x0000, /* 04E8 */
+0x1771,0x0000, 0x1771,0x0000, 0x16D4,0x0000, 0x16D4,0x0000, /* 04EC */
+0x16DC,0x0000, 0x16DC,0x0000, 0x16E0,0x0000, 0x16E0,0x0000, /* 04F0 */
+0x172A,0x0000, 0x172A,0x0000, 0x15DC,0x0000, 0x15DC,0x0000, /* 04F4 */
+0x175C,0x0000, 0x175C,0x0000, 0x15D4,0x0000, 0x15D4,0x0000, /* 04F8 */
+0x16F9,0x0000, 0x16F9,0x0000, 0x16FD,0x0000, 0x16FD,0x0000 /* 04FC */
+};
+
+static const uint16 uca520_p005[]= { /* 0500 (3 weights per char) */
+0x15E4,0x0000,0x0000, 0x15E4,0x0000,0x0000, 0x15EB,0x0000,0x0000, /* 0500 */
+0x15EB,0x0000,0x0000, 0x1612,0x0000,0x0000, 0x1612,0x0000,0x0000, /* 0503 */
+0x1623,0x0000,0x0000, 0x1623,0x0000,0x0000, 0x166D,0x0000,0x0000, /* 0506 */
+0x166D,0x0000,0x0000, 0x1691,0x0000,0x0000, 0x1691,0x0000,0x0000, /* 0509 */
+0x16BC,0x0000,0x0000, 0x16BC,0x0000,0x0000, 0x16C6,0x0000,0x0000, /* 050C */
+0x16C6,0x0000,0x0000, 0x1613,0x0000,0x0000, 0x1613,0x0000,0x0000, /* 050F */
+0x1666,0x0000,0x0000, 0x1666,0x0000,0x0000, 0x166E,0x0000,0x0000, /* 0512 */
+0x166E,0x0000,0x0000, 0x16B7,0x0000,0x0000, 0x16B7,0x0000,0x0000, /* 0515 */
+0x177F,0x0000,0x0000, 0x177F,0x0000,0x0000, 0x165C,0x0000,0x0000, /* 0518 */
+0x165C,0x0000,0x0000, 0x17B0,0x0000,0x0000, 0x17B0,0x0000,0x0000, /* 051B */
+0x165B,0x0000,0x0000, 0x165B,0x0000,0x0000, 0x1667,0x0000,0x0000, /* 051E */
+0x1667,0x0000,0x0000, 0x1688,0x0000,0x0000, 0x1688,0x0000,0x0000, /* 0521 */
+0x16A6,0x0000,0x0000, 0x16A6,0x0000,0x0000, 0xFBC0,0x8526,0x0000, /* 0524 */
+0xFBC0,0x8527,0x0000, 0xFBC0,0x8528,0x0000, 0xFBC0,0x8529,0x0000, /* 0527 */
+0xFBC0,0x852A,0x0000, 0xFBC0,0x852B,0x0000, 0xFBC0,0x852C,0x0000, /* 052A */
+0xFBC0,0x852D,0x0000, 0xFBC0,0x852E,0x0000, 0xFBC0,0x852F,0x0000, /* 052D */
+0xFBC0,0x8530,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000, /* 0530 */
+0x1837,0x0000,0x0000, 0x1838,0x0000,0x0000, 0x1839,0x0000,0x0000, /* 0533 */
+0x183A,0x0000,0x0000, 0x183B,0x0000,0x0000, 0x183C,0x0000,0x0000, /* 0536 */
+0x183D,0x0000,0x0000, 0x183E,0x0000,0x0000, 0x183F,0x0000,0x0000, /* 0539 */
+0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000, /* 053C */
+0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000, /* 053F */
+0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000, /* 0542 */
+0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000, /* 0545 */
+0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000, 0x184E,0x0000,0x0000, /* 0548 */
+0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000, /* 054B */
+0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0x1854,0x0000,0x0000, /* 054E */
+0x1855,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1857,0x0000,0x0000, /* 0551 */
+0x1858,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185A,0x0000,0x0000, /* 0554 */
+0xFBC0,0x8557,0x0000, 0xFBC0,0x8558,0x0000, 0x185B,0x0000,0x0000, /* 0557 */
+0x0392,0x0000,0x0000, 0x0393,0x0000,0x0000, 0x0270,0x0000,0x0000, /* 055A */
+0x0235,0x0000,0x0000, 0x0276,0x0000,0x0000, 0x0394,0x0000,0x0000, /* 055D */
+0xFBC0,0x8560,0x0000, 0x1835,0x0000,0x0000, 0x1836,0x0000,0x0000, /* 0560 */
+0x1837,0x0000,0x0000, 0x1838,0x0000,0x0000, 0x1839,0x0000,0x0000, /* 0563 */
+0x183A,0x0000,0x0000, 0x183B,0x0000,0x0000, 0x183C,0x0000,0x0000, /* 0566 */
+0x183D,0x0000,0x0000, 0x183E,0x0000,0x0000, 0x183F,0x0000,0x0000, /* 0569 */
+0x1840,0x0000,0x0000, 0x1841,0x0000,0x0000, 0x1842,0x0000,0x0000, /* 056C */
+0x1843,0x0000,0x0000, 0x1844,0x0000,0x0000, 0x1845,0x0000,0x0000, /* 056F */
+0x1846,0x0000,0x0000, 0x1847,0x0000,0x0000, 0x1848,0x0000,0x0000, /* 0572 */
+0x1849,0x0000,0x0000, 0x184A,0x0000,0x0000, 0x184B,0x0000,0x0000, /* 0575 */
+0x184C,0x0000,0x0000, 0x184D,0x0000,0x0000, 0x184E,0x0000,0x0000, /* 0578 */
+0x184F,0x0000,0x0000, 0x1850,0x0000,0x0000, 0x1851,0x0000,0x0000, /* 057B */
+0x1852,0x0000,0x0000, 0x1853,0x0000,0x0000, 0x1854,0x0000,0x0000, /* 057E */
+0x1855,0x0000,0x0000, 0x1856,0x0000,0x0000, 0x1857,0x0000,0x0000, /* 0581 */
+0x1858,0x0000,0x0000, 0x1859,0x0000,0x0000, 0x185A,0x0000,0x0000, /* 0584 */
+0x1839,0x1856,0x0000, 0xFBC0,0x8588,0x0000, 0x0248,0x0000,0x0000, /* 0587 */
+0x0224,0x0000,0x0000, 0xFBC0,0x858B,0x0000, 0xFBC0,0x858C,0x0000, /* 058A */
+0xFBC0,0x858D,0x0000, 0xFBC0,0x858E,0x0000, 0xFBC0,0x858F,0x0000, /* 058D */
+0xFBC0,0x8590,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0590 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0593 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0596 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0599 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A2 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05AB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05AE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B1 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05B7 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05BA */
+0x0000,0x0000,0x0000, 0x0395,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05BD */
+0x0396,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05C0 */
+0x0397,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05C3 */
+0x0398,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x85C8,0x0000, /* 05C6 */
+0xFBC0,0x85C9,0x0000, 0xFBC0,0x85CA,0x0000, 0xFBC0,0x85CB,0x0000, /* 05C9 */
+0xFBC0,0x85CC,0x0000, 0xFBC0,0x85CD,0x0000, 0xFBC0,0x85CE,0x0000, /* 05CC */
+0xFBC0,0x85CF,0x0000, 0x185C,0x0000,0x0000, 0x185D,0x0000,0x0000, /* 05CF */
+0x185E,0x0000,0x0000, 0x185F,0x0000,0x0000, 0x1860,0x0000,0x0000, /* 05D2 */
+0x1861,0x0000,0x0000, 0x1862,0x0000,0x0000, 0x1863,0x0000,0x0000, /* 05D5 */
+0x1864,0x0000,0x0000, 0x1865,0x0000,0x0000, 0x1866,0x0000,0x0000, /* 05D8 */
+0x1866,0x0000,0x0000, 0x1867,0x0000,0x0000, 0x1868,0x0000,0x0000, /* 05DB */
+0x1868,0x0000,0x0000, 0x1869,0x0000,0x0000, 0x1869,0x0000,0x0000, /* 05DE */
+0x186A,0x0000,0x0000, 0x186B,0x0000,0x0000, 0x186C,0x0000,0x0000, /* 05E1 */
+0x186C,0x0000,0x0000, 0x186D,0x0000,0x0000, 0x186D,0x0000,0x0000, /* 05E4 */
+0x186E,0x0000,0x0000, 0x186F,0x0000,0x0000, 0x1870,0x0000,0x0000, /* 05E7 */
+0x1871,0x0000,0x0000, 0xFBC0,0x85EB,0x0000, 0xFBC0,0x85EC,0x0000, /* 05EA */
+0xFBC0,0x85ED,0x0000, 0xFBC0,0x85EE,0x0000, 0xFBC0,0x85EF,0x0000, /* 05ED */
+0x1861,0x1861,0x0000, 0x1861,0x1865,0x0000, 0x1865,0x1865,0x0000, /* 05F0 */
+0x0399,0x0000,0x0000, 0x039A,0x0000,0x0000, 0xFBC0,0x85F5,0x0000, /* 05F3 */
+0xFBC0,0x85F6,0x0000, 0xFBC0,0x85F7,0x0000, 0xFBC0,0x85F8,0x0000, /* 05F6 */
+0xFBC0,0x85F9,0x0000, 0xFBC0,0x85FA,0x0000, 0xFBC0,0x85FB,0x0000, /* 05F9 */
+0xFBC0,0x85FC,0x0000, 0xFBC0,0x85FD,0x0000, 0xFBC0,0x85FE,0x0000, /* 05FC */
+0xFBC0,0x85FF,0x0000 };
+
+static const uint16 uca520_p006[]= { /* 0600 (3 weights per char) */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0600 */
+0x0000,0x0000,0x0000, 0xFBC0,0x8604,0x0000, 0xFBC0,0x8605,0x0000, /* 0603 */
+0x0566,0x0000,0x0000, 0x0568,0x0000,0x0000, 0x044D,0x0000,0x0000, /* 0606 */
+0x0366,0x0000,0x0000, 0x0368,0x0000,0x0000, 0x11E4,0x0000,0x0000, /* 0609 */
+0x0236,0x0000,0x0000, 0x0237,0x0000,0x0000, 0x044E,0x0000,0x0000, /* 060C */
+0x044F,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 060F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0612 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0615 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0618 */
+0x0244,0x0000,0x0000, 0xFBC0,0x861C,0x0000, 0xFBC0,0x861D,0x0000, /* 061B */
+0x0249,0x0000,0x0000, 0x0277,0x0000,0x0000, 0xFBC0,0x8620,0x0000, /* 061E */
+0x18A2,0x0000,0x0000, 0x18A3,0x0000,0x0000, 0x18A4,0x0000,0x0000, /* 0621 */
+0x18A7,0x0000,0x0000, 0x18A8,0x0000,0x0000, 0x18AC,0x0000,0x0000, /* 0624 */
+0x18AD,0x0000,0x0000, 0x18AF,0x0000,0x0000, 0x18BA,0x0000,0x0000, /* 0627 */
+0x18BB,0x0000,0x0000, 0x18BC,0x0000,0x0000, 0x18C2,0x0000,0x0000, /* 062A */
+0x18C8,0x0000,0x0000, 0x18C9,0x0000,0x0000, 0x18D3,0x0000,0x0000, /* 062D */
+0x18D4,0x0000,0x0000, 0x18E1,0x0000,0x0000, 0x18E2,0x0000,0x0000, /* 0630 */
+0x18F1,0x0000,0x0000, 0x18F2,0x0000,0x0000, 0x18FC,0x0000,0x0000, /* 0633 */
+0x18FD,0x0000,0x0000, 0x1901,0x0000,0x0000, 0x1902,0x0000,0x0000, /* 0636 */
+0x1904,0x0000,0x0000, 0x1905,0x0000,0x0000, 0x1927,0x0000,0x0000, /* 0639 */
+0x1928,0x0000,0x0000, 0x1956,0x0000,0x0000, 0x1957,0x0000,0x0000, /* 063C */
+0x1958,0x0000,0x0000, 0x020C,0x0000,0x0000, 0x190B,0x0000,0x0000, /* 063F */
+0x1915,0x0000,0x0000, 0x1918,0x0000,0x0000, 0x192B,0x0000,0x0000, /* 0642 */
+0x1931,0x0000,0x0000, 0x1934,0x0000,0x0000, 0x193D,0x0000,0x0000, /* 0645 */
+0x1943,0x0000,0x0000, 0x194F,0x0000,0x0000, 0x1950,0x0000,0x0000, /* 0648 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 064B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 064E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0651 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0654 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0657 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 065A */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x865F,0x0000, /* 065D */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0660 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0663 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0666 */
+0x120E,0x0000,0x0000, 0x0364,0x0000,0x0000, 0x0238,0x0000,0x0000, /* 0669 */
+0x0239,0x0000,0x0000, 0x035A,0x0000,0x0000, 0x18AE,0x0000,0x0000, /* 066C */
+0x1914,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A6,0x0000,0x0000, /* 066F */
+0x18A5,0x0000,0x0000, 0x18A9,0x0000,0x0000, 0x18A2,0x0000,0x0000, /* 0672 */
+0x18AD,0x18A2,0x0000, 0x1943,0x18A2,0x0000, 0x1947,0x18A2,0x0000, /* 0675 */
+0x1950,0x18A2,0x0000, 0x18BD,0x0000,0x0000, 0x18BE,0x0000,0x0000, /* 0678 */
+0x18B0,0x0000,0x0000, 0x18BF,0x0000,0x0000, 0x18C0,0x0000,0x0000, /* 067B */
+0x18B1,0x0000,0x0000, 0x18C1,0x0000,0x0000, 0x18B2,0x0000,0x0000, /* 067E */
+0x18CA,0x0000,0x0000, 0x18CB,0x0000,0x0000, 0x18C3,0x0000,0x0000, /* 0681 */
+0x18C4,0x0000,0x0000, 0x18CC,0x0000,0x0000, 0x18C5,0x0000,0x0000, /* 0684 */
+0x18C7,0x0000,0x0000, 0x18D5,0x0000,0x0000, 0x18D6,0x0000,0x0000, /* 0687 */
+0x18D7,0x0000,0x0000, 0x18D8,0x0000,0x0000, 0x18D9,0x0000,0x0000, /* 068A */
+0x18DA,0x0000,0x0000, 0x18DB,0x0000,0x0000, 0x18DC,0x0000,0x0000, /* 068D */
+0x18DD,0x0000,0x0000, 0x18E3,0x0000,0x0000, 0x18E4,0x0000,0x0000, /* 0690 */
+0x18E5,0x0000,0x0000, 0x18E6,0x0000,0x0000, 0x18E7,0x0000,0x0000, /* 0693 */
+0x18E8,0x0000,0x0000, 0x18E9,0x0000,0x0000, 0x18EA,0x0000,0x0000, /* 0696 */
+0x18EB,0x0000,0x0000, 0x18F3,0x0000,0x0000, 0x18F4,0x0000,0x0000, /* 0699 */
+0x18F5,0x0000,0x0000, 0x18FE,0x0000,0x0000, 0x18FF,0x0000,0x0000, /* 069C */
+0x1903,0x0000,0x0000, 0x1906,0x0000,0x0000, 0x190C,0x0000,0x0000, /* 069F */
+0x190D,0x0000,0x0000, 0x190E,0x0000,0x0000, 0x190F,0x0000,0x0000, /* 06A2 */
+0x1910,0x0000,0x0000, 0x1911,0x0000,0x0000, 0x1916,0x0000,0x0000, /* 06A5 */
+0x1917,0x0000,0x0000, 0x1919,0x0000,0x0000, 0x191A,0x0000,0x0000, /* 06A8 */
+0x191B,0x0000,0x0000, 0x191C,0x0000,0x0000, 0x191E,0x0000,0x0000, /* 06AB */
+0x191F,0x0000,0x0000, 0x1920,0x0000,0x0000, 0x1921,0x0000,0x0000, /* 06AE */
+0x1922,0x0000,0x0000, 0x1923,0x0000,0x0000, 0x1924,0x0000,0x0000, /* 06B1 */
+0x1925,0x0000,0x0000, 0x192C,0x0000,0x0000, 0x192D,0x0000,0x0000, /* 06B4 */
+0x192E,0x0000,0x0000, 0x192F,0x0000,0x0000, 0x1939,0x0000,0x0000, /* 06B7 */
+0x1935,0x0000,0x0000, 0x1936,0x0000,0x0000, 0x1937,0x0000,0x0000, /* 06BA */
+0x1938,0x0000,0x0000, 0x193E,0x0000,0x0000, 0x18C6,0x0000,0x0000, /* 06BD */
+0x1942,0x0000,0x0000, 0x193F,0x0000,0x0000, 0x193F,0x0000,0x0000, /* 06C0 */
+0x1940,0x0000,0x0000, 0x1944,0x0000,0x0000, 0x1945,0x0000,0x0000, /* 06C3 */
+0x1946,0x0000,0x0000, 0x1947,0x0000,0x0000, 0x1948,0x0000,0x0000, /* 06C6 */
+0x1949,0x0000,0x0000, 0x194A,0x0000,0x0000, 0x194B,0x0000,0x0000, /* 06C9 */
+0x1951,0x0000,0x0000, 0x1952,0x0000,0x0000, 0x1953,0x0000,0x0000, /* 06CC */
+0x194C,0x0000,0x0000, 0x1954,0x0000,0x0000, 0x1955,0x0000,0x0000, /* 06CF */
+0x195C,0x0000,0x0000, 0x195C,0x0000,0x0000, 0x0283,0x0000,0x0000, /* 06D2 */
+0x1942,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06E1 */
+0x0000,0x0000,0x0000, 0x1943,0x0000,0x0000, 0x1950,0x0000,0x0000, /* 06E4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0450,0x0000,0x0000, /* 06E7 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06EA */
+0x0000,0x0000,0x0000, 0x18DE,0x0000,0x0000, 0x18EC,0x0000,0x0000, /* 06ED */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 06F0 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 06F3 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 06F6 */
+0x120E,0x0000,0x0000, 0x18F6,0x0000,0x0000, 0x1900,0x0000,0x0000, /* 06F9 */
+0x1907,0x0000,0x0000, 0x18A2,0x0000,0x0000, 0x1931,0x0000,0x0000, /* 06FC */
+0x1941,0x0000,0x0000 };
+
+static const uint16 uca520_p007[]= { /* 0700 (3 weights per char) */
+0x02B5,0x0000,0x0000, 0x0284,0x0000,0x0000, 0x0285,0x0000,0x0000, /* 0700 */
+0x024A,0x0000,0x0000, 0x024B,0x0000,0x0000, 0x024C,0x0000,0x0000, /* 0703 */
+0x024D,0x0000,0x0000, 0x024E,0x0000,0x0000, 0x024F,0x0000,0x0000, /* 0706 */
+0x0278,0x0000,0x0000, 0x039B,0x0000,0x0000, 0x039C,0x0000,0x0000, /* 0709 */
+0x039D,0x0000,0x0000, 0x039E,0x0000,0x0000, 0xFBC0,0x870E,0x0000, /* 070C */
+0x0000,0x0000,0x0000, 0x195F,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 070F */
+0x1960,0x0000,0x0000, 0x1961,0x0000,0x0000, 0x1961,0x0000,0x0000, /* 0712 */
+0x1963,0x0000,0x0000, 0x1962,0x0000,0x0000, 0x1964,0x0000,0x0000, /* 0715 */
+0x1965,0x0000,0x0000, 0x1966,0x0000,0x0000, 0x1968,0x0000,0x0000, /* 0718 */
+0x1969,0x0000,0x0000, 0x1969,0x0000,0x0000, 0x196A,0x0000,0x0000, /* 071B */
+0x196B,0x0000,0x0000, 0x196C,0x0000,0x0000, 0x196E,0x0000,0x0000, /* 071E */
+0x196F,0x0000,0x0000, 0x1970,0x0000,0x0000, 0x1971,0x0000,0x0000, /* 0721 */
+0x1971,0x0000,0x0000, 0x1972,0x0000,0x0000, 0x1973,0x0000,0x0000, /* 0724 */
+0x1973,0x0000,0x0000, 0x1975,0x0000,0x0000, 0x1976,0x0000,0x0000, /* 0727 */
+0x1977,0x0000,0x0000, 0x1978,0x0000,0x0000, 0x1979,0x0000,0x0000, /* 072A */
+0x1960,0x0000,0x0000, 0x1961,0x0000,0x0000, 0x1963,0x0000,0x0000, /* 072D */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0730 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0733 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0736 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0739 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 073C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 073F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0742 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0745 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0748 */
+0xFBC0,0x874B,0x0000, 0xFBC0,0x874C,0x0000, 0x1967,0x0000,0x0000, /* 074B */
+0x196D,0x0000,0x0000, 0x1974,0x0000,0x0000, 0x18B3,0x0000,0x0000, /* 074E */
+0x18B4,0x0000,0x0000, 0x18B5,0x0000,0x0000, 0x18B6,0x0000,0x0000, /* 0751 */
+0x18B7,0x0000,0x0000, 0x18B8,0x0000,0x0000, 0x18B9,0x0000,0x0000, /* 0754 */
+0x18CD,0x0000,0x0000, 0x18CE,0x0000,0x0000, 0x18DF,0x0000,0x0000, /* 0757 */
+0x18E0,0x0000,0x0000, 0x18ED,0x0000,0x0000, 0x18F7,0x0000,0x0000, /* 075A */
+0x1908,0x0000,0x0000, 0x1909,0x0000,0x0000, 0x190A,0x0000,0x0000, /* 075D */
+0x1912,0x0000,0x0000, 0x1913,0x0000,0x0000, 0x1926,0x0000,0x0000, /* 0760 */
+0x1929,0x0000,0x0000, 0x192A,0x0000,0x0000, 0x1932,0x0000,0x0000, /* 0763 */
+0x1933,0x0000,0x0000, 0x193A,0x0000,0x0000, 0x193B,0x0000,0x0000, /* 0766 */
+0x193C,0x0000,0x0000, 0x1930,0x0000,0x0000, 0x18EE,0x0000,0x0000, /* 0769 */
+0x18EF,0x0000,0x0000, 0x18F8,0x0000,0x0000, 0x18CF,0x0000,0x0000, /* 076C */
+0x18D0,0x0000,0x0000, 0x18F9,0x0000,0x0000, 0x18F0,0x0000,0x0000, /* 076F */
+0x18D1,0x0000,0x0000, 0x18AA,0x0000,0x0000, 0x18AB,0x0000,0x0000, /* 0772 */
+0x1959,0x0000,0x0000, 0x195A,0x0000,0x0000, 0x195B,0x0000,0x0000, /* 0775 */
+0x194D,0x0000,0x0000, 0x194E,0x0000,0x0000, 0x195D,0x0000,0x0000, /* 0778 */
+0x195E,0x0000,0x0000, 0x18D2,0x0000,0x0000, 0x18FA,0x0000,0x0000, /* 077B */
+0x18FB,0x0000,0x0000, 0x191D,0x0000,0x0000, 0x197A,0x0000,0x0000, /* 077E */
+0x197D,0x0000,0x0000, 0x197E,0x0000,0x0000, 0x197F,0x0000,0x0000, /* 0781 */
+0x1981,0x0000,0x0000, 0x1982,0x0000,0x0000, 0x1983,0x0000,0x0000, /* 0784 */
+0x1984,0x0000,0x0000, 0x1987,0x0000,0x0000, 0x1989,0x0000,0x0000, /* 0787 */
+0x198A,0x0000,0x0000, 0x198B,0x0000,0x0000, 0x198D,0x0000,0x0000, /* 078A */
+0x1991,0x0000,0x0000, 0x1992,0x0000,0x0000, 0x1994,0x0000,0x0000, /* 078D */
+0x1995,0x0000,0x0000, 0x1999,0x0000,0x0000, 0x199A,0x0000,0x0000, /* 0790 */
+0x199B,0x0000,0x0000, 0x199C,0x0000,0x0000, 0x199D,0x0000,0x0000, /* 0793 */
+0x199E,0x0000,0x0000, 0x199F,0x0000,0x0000, 0x198E,0x0000,0x0000, /* 0796 */
+0x197B,0x0000,0x0000, 0x197C,0x0000,0x0000, 0x198C,0x0000,0x0000, /* 0799 */
+0x1980,0x0000,0x0000, 0x1996,0x0000,0x0000, 0x1997,0x0000,0x0000, /* 079C */
+0x1998,0x0000,0x0000, 0x198F,0x0000,0x0000, 0x1990,0x0000,0x0000, /* 079F */
+0x1985,0x0000,0x0000, 0x1986,0x0000,0x0000, 0x1993,0x0000,0x0000, /* 07A2 */
+0x1988,0x0000,0x0000, 0x19A1,0x0000,0x0000, 0x19A2,0x0000,0x0000, /* 07A5 */
+0x19A3,0x0000,0x0000, 0x19A4,0x0000,0x0000, 0x19A5,0x0000,0x0000, /* 07A8 */
+0x19A6,0x0000,0x0000, 0x19A7,0x0000,0x0000, 0x19A8,0x0000,0x0000, /* 07AB */
+0x19A9,0x0000,0x0000, 0x19AA,0x0000,0x0000, 0x19AB,0x0000,0x0000, /* 07AE */
+0x19A0,0x0000,0x0000, 0xFBC0,0x87B2,0x0000, 0xFBC0,0x87B3,0x0000, /* 07B1 */
+0xFBC0,0x87B4,0x0000, 0xFBC0,0x87B5,0x0000, 0xFBC0,0x87B6,0x0000, /* 07B4 */
+0xFBC0,0x87B7,0x0000, 0xFBC0,0x87B8,0x0000, 0xFBC0,0x87B9,0x0000, /* 07B7 */
+0xFBC0,0x87BA,0x0000, 0xFBC0,0x87BB,0x0000, 0xFBC0,0x87BC,0x0000, /* 07BA */
+0xFBC0,0x87BD,0x0000, 0xFBC0,0x87BE,0x0000, 0xFBC0,0x87BF,0x0000, /* 07BD */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 07C0 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 07C3 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 07C6 */
+0x120E,0x0000,0x0000, 0x19AC,0x0000,0x0000, 0x19AD,0x0000,0x0000, /* 07C9 */
+0x19AE,0x0000,0x0000, 0x19AF,0x0000,0x0000, 0x19B0,0x0000,0x0000, /* 07CC */
+0x19B1,0x0000,0x0000, 0x19B2,0x0000,0x0000, 0x19B3,0x0000,0x0000, /* 07CF */
+0x19B4,0x0000,0x0000, 0x19B5,0x0000,0x0000, 0x19B6,0x0000,0x0000, /* 07D2 */
+0x19B7,0x0000,0x0000, 0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, /* 07D5 */
+0x19BA,0x0000,0x0000, 0x19BB,0x0000,0x0000, 0x19BC,0x0000,0x0000, /* 07D8 */
+0x19BD,0x0000,0x0000, 0x19BE,0x0000,0x0000, 0x19BF,0x0000,0x0000, /* 07DB */
+0x19C0,0x0000,0x0000, 0x19C1,0x0000,0x0000, 0x19C2,0x0000,0x0000, /* 07DE */
+0x19C3,0x0000,0x0000, 0x19C4,0x0000,0x0000, 0x19C5,0x0000,0x0000, /* 07E1 */
+0x19C6,0x0000,0x0000, 0x19C7,0x0000,0x0000, 0x19C8,0x0000,0x0000, /* 07E4 */
+0x19C9,0x0000,0x0000, 0x19B8,0x0000,0x0000, 0x19B9,0x0000,0x0000, /* 07E7 */
+0x19BB,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07EA */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07ED */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 07F0 */
+0x0000,0x0000,0x0000, 0x19CA,0x0000,0x0000, 0x19CB,0x0000,0x0000, /* 07F3 */
+0x0452,0x0000,0x0000, 0x02B6,0x0000,0x0000, 0x023A,0x0000,0x0000, /* 07F6 */
+0x0271,0x0000,0x0000, 0x020D,0x0000,0x0000, 0xFBC0,0x87FB,0x0000, /* 07F9 */
+0xFBC0,0x87FC,0x0000, 0xFBC0,0x87FD,0x0000, 0xFBC0,0x87FE,0x0000, /* 07FC */
+0xFBC0,0x87FF,0x0000 };
+
+static const uint16 uca520_p008[]= { /* 0800 (3 weights per char) */
+0x1888,0x0000,0x0000, 0x1889,0x0000,0x0000, 0x188A,0x0000,0x0000, /* 0800 */
+0x188B,0x0000,0x0000, 0x188C,0x0000,0x0000, 0x188D,0x0000,0x0000, /* 0803 */
+0x188E,0x0000,0x0000, 0x188F,0x0000,0x0000, 0x1890,0x0000,0x0000, /* 0806 */
+0x1891,0x0000,0x0000, 0x1892,0x0000,0x0000, 0x1893,0x0000,0x0000, /* 0809 */
+0x1894,0x0000,0x0000, 0x1895,0x0000,0x0000, 0x1896,0x0000,0x0000, /* 080C */
+0x1897,0x0000,0x0000, 0x1898,0x0000,0x0000, 0x1899,0x0000,0x0000, /* 080F */
+0x189A,0x0000,0x0000, 0x189B,0x0000,0x0000, 0x189C,0x0000,0x0000, /* 0812 */
+0x189D,0x0000,0x0000, 0x189E,0x0000,0x0000, 0x189F,0x0000,0x0000, /* 0815 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x18A0,0x0000,0x0000, /* 0818 */
+0x18A1,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 081B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 081E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0821 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0824 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0827 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 082A */
+0x0000,0x0000,0x0000, 0xFBC0,0x882E,0x0000, 0xFBC0,0x882F,0x0000, /* 082D */
+0x0250,0x0000,0x0000, 0x0251,0x0000,0x0000, 0x0252,0x0000,0x0000, /* 0830 */
+0x0253,0x0000,0x0000, 0x0254,0x0000,0x0000, 0x0255,0x0000,0x0000, /* 0833 */
+0x0256,0x0000,0x0000, 0x0257,0x0000,0x0000, 0x0258,0x0000,0x0000, /* 0836 */
+0x0259,0x0000,0x0000, 0x025A,0x0000,0x0000, 0x025B,0x0000,0x0000, /* 0839 */
+0x025C,0x0000,0x0000, 0x025D,0x0000,0x0000, 0x025E,0x0000,0x0000, /* 083C */
+0xFBC0,0x883F,0x0000, 0xFBC0,0x8840,0x0000, 0xFBC0,0x8841,0x0000, /* 083F */
+0xFBC0,0x8842,0x0000, 0xFBC0,0x8843,0x0000, 0xFBC0,0x8844,0x0000, /* 0842 */
+0xFBC0,0x8845,0x0000, 0xFBC0,0x8846,0x0000, 0xFBC0,0x8847,0x0000, /* 0845 */
+0xFBC0,0x8848,0x0000, 0xFBC0,0x8849,0x0000, 0xFBC0,0x884A,0x0000, /* 0848 */
+0xFBC0,0x884B,0x0000, 0xFBC0,0x884C,0x0000, 0xFBC0,0x884D,0x0000, /* 084B */
+0xFBC0,0x884E,0x0000, 0xFBC0,0x884F,0x0000, 0xFBC0,0x8850,0x0000, /* 084E */
+0xFBC0,0x8851,0x0000, 0xFBC0,0x8852,0x0000, 0xFBC0,0x8853,0x0000, /* 0851 */
+0xFBC0,0x8854,0x0000, 0xFBC0,0x8855,0x0000, 0xFBC0,0x8856,0x0000, /* 0854 */
+0xFBC0,0x8857,0x0000, 0xFBC0,0x8858,0x0000, 0xFBC0,0x8859,0x0000, /* 0857 */
+0xFBC0,0x885A,0x0000, 0xFBC0,0x885B,0x0000, 0xFBC0,0x885C,0x0000, /* 085A */
+0xFBC0,0x885D,0x0000, 0xFBC0,0x885E,0x0000, 0xFBC0,0x885F,0x0000, /* 085D */
+0xFBC0,0x8860,0x0000, 0xFBC0,0x8861,0x0000, 0xFBC0,0x8862,0x0000, /* 0860 */
+0xFBC0,0x8863,0x0000, 0xFBC0,0x8864,0x0000, 0xFBC0,0x8865,0x0000, /* 0863 */
+0xFBC0,0x8866,0x0000, 0xFBC0,0x8867,0x0000, 0xFBC0,0x8868,0x0000, /* 0866 */
+0xFBC0,0x8869,0x0000, 0xFBC0,0x886A,0x0000, 0xFBC0,0x886B,0x0000, /* 0869 */
+0xFBC0,0x886C,0x0000, 0xFBC0,0x886D,0x0000, 0xFBC0,0x886E,0x0000, /* 086C */
+0xFBC0,0x886F,0x0000, 0xFBC0,0x8870,0x0000, 0xFBC0,0x8871,0x0000, /* 086F */
+0xFBC0,0x8872,0x0000, 0xFBC0,0x8873,0x0000, 0xFBC0,0x8874,0x0000, /* 0872 */
+0xFBC0,0x8875,0x0000, 0xFBC0,0x8876,0x0000, 0xFBC0,0x8877,0x0000, /* 0875 */
+0xFBC0,0x8878,0x0000, 0xFBC0,0x8879,0x0000, 0xFBC0,0x887A,0x0000, /* 0878 */
+0xFBC0,0x887B,0x0000, 0xFBC0,0x887C,0x0000, 0xFBC0,0x887D,0x0000, /* 087B */
+0xFBC0,0x887E,0x0000, 0xFBC0,0x887F,0x0000, 0xFBC0,0x8880,0x0000, /* 087E */
+0xFBC0,0x8881,0x0000, 0xFBC0,0x8882,0x0000, 0xFBC0,0x8883,0x0000, /* 0881 */
+0xFBC0,0x8884,0x0000, 0xFBC0,0x8885,0x0000, 0xFBC0,0x8886,0x0000, /* 0884 */
+0xFBC0,0x8887,0x0000, 0xFBC0,0x8888,0x0000, 0xFBC0,0x8889,0x0000, /* 0887 */
+0xFBC0,0x888A,0x0000, 0xFBC0,0x888B,0x0000, 0xFBC0,0x888C,0x0000, /* 088A */
+0xFBC0,0x888D,0x0000, 0xFBC0,0x888E,0x0000, 0xFBC0,0x888F,0x0000, /* 088D */
+0xFBC0,0x8890,0x0000, 0xFBC0,0x8891,0x0000, 0xFBC0,0x8892,0x0000, /* 0890 */
+0xFBC0,0x8893,0x0000, 0xFBC0,0x8894,0x0000, 0xFBC0,0x8895,0x0000, /* 0893 */
+0xFBC0,0x8896,0x0000, 0xFBC0,0x8897,0x0000, 0xFBC0,0x8898,0x0000, /* 0896 */
+0xFBC0,0x8899,0x0000, 0xFBC0,0x889A,0x0000, 0xFBC0,0x889B,0x0000, /* 0899 */
+0xFBC0,0x889C,0x0000, 0xFBC0,0x889D,0x0000, 0xFBC0,0x889E,0x0000, /* 089C */
+0xFBC0,0x889F,0x0000, 0xFBC0,0x88A0,0x0000, 0xFBC0,0x88A1,0x0000, /* 089F */
+0xFBC0,0x88A2,0x0000, 0xFBC0,0x88A3,0x0000, 0xFBC0,0x88A4,0x0000, /* 08A2 */
+0xFBC0,0x88A5,0x0000, 0xFBC0,0x88A6,0x0000, 0xFBC0,0x88A7,0x0000, /* 08A5 */
+0xFBC0,0x88A8,0x0000, 0xFBC0,0x88A9,0x0000, 0xFBC0,0x88AA,0x0000, /* 08A8 */
+0xFBC0,0x88AB,0x0000, 0xFBC0,0x88AC,0x0000, 0xFBC0,0x88AD,0x0000, /* 08AB */
+0xFBC0,0x88AE,0x0000, 0xFBC0,0x88AF,0x0000, 0xFBC0,0x88B0,0x0000, /* 08AE */
+0xFBC0,0x88B1,0x0000, 0xFBC0,0x88B2,0x0000, 0xFBC0,0x88B3,0x0000, /* 08B1 */
+0xFBC0,0x88B4,0x0000, 0xFBC0,0x88B5,0x0000, 0xFBC0,0x88B6,0x0000, /* 08B4 */
+0xFBC0,0x88B7,0x0000, 0xFBC0,0x88B8,0x0000, 0xFBC0,0x88B9,0x0000, /* 08B7 */
+0xFBC0,0x88BA,0x0000, 0xFBC0,0x88BB,0x0000, 0xFBC0,0x88BC,0x0000, /* 08BA */
+0xFBC0,0x88BD,0x0000, 0xFBC0,0x88BE,0x0000, 0xFBC0,0x88BF,0x0000, /* 08BD */
+0xFBC0,0x88C0,0x0000, 0xFBC0,0x88C1,0x0000, 0xFBC0,0x88C2,0x0000, /* 08C0 */
+0xFBC0,0x88C3,0x0000, 0xFBC0,0x88C4,0x0000, 0xFBC0,0x88C5,0x0000, /* 08C3 */
+0xFBC0,0x88C6,0x0000, 0xFBC0,0x88C7,0x0000, 0xFBC0,0x88C8,0x0000, /* 08C6 */
+0xFBC0,0x88C9,0x0000, 0xFBC0,0x88CA,0x0000, 0xFBC0,0x88CB,0x0000, /* 08C9 */
+0xFBC0,0x88CC,0x0000, 0xFBC0,0x88CD,0x0000, 0xFBC0,0x88CE,0x0000, /* 08CC */
+0xFBC0,0x88CF,0x0000, 0xFBC0,0x88D0,0x0000, 0xFBC0,0x88D1,0x0000, /* 08CF */
+0xFBC0,0x88D2,0x0000, 0xFBC0,0x88D3,0x0000, 0xFBC0,0x88D4,0x0000, /* 08D2 */
+0xFBC0,0x88D5,0x0000, 0xFBC0,0x88D6,0x0000, 0xFBC0,0x88D7,0x0000, /* 08D5 */
+0xFBC0,0x88D8,0x0000, 0xFBC0,0x88D9,0x0000, 0xFBC0,0x88DA,0x0000, /* 08D8 */
+0xFBC0,0x88DB,0x0000, 0xFBC0,0x88DC,0x0000, 0xFBC0,0x88DD,0x0000, /* 08DB */
+0xFBC0,0x88DE,0x0000, 0xFBC0,0x88DF,0x0000, 0xFBC0,0x88E0,0x0000, /* 08DE */
+0xFBC0,0x88E1,0x0000, 0xFBC0,0x88E2,0x0000, 0xFBC0,0x88E3,0x0000, /* 08E1 */
+0xFBC0,0x88E4,0x0000, 0xFBC0,0x88E5,0x0000, 0xFBC0,0x88E6,0x0000, /* 08E4 */
+0xFBC0,0x88E7,0x0000, 0xFBC0,0x88E8,0x0000, 0xFBC0,0x88E9,0x0000, /* 08E7 */
+0xFBC0,0x88EA,0x0000, 0xFBC0,0x88EB,0x0000, 0xFBC0,0x88EC,0x0000, /* 08EA */
+0xFBC0,0x88ED,0x0000, 0xFBC0,0x88EE,0x0000, 0xFBC0,0x88EF,0x0000, /* 08ED */
+0xFBC0,0x88F0,0x0000, 0xFBC0,0x88F1,0x0000, 0xFBC0,0x88F2,0x0000, /* 08F0 */
+0xFBC0,0x88F3,0x0000, 0xFBC0,0x88F4,0x0000, 0xFBC0,0x88F5,0x0000, /* 08F3 */
+0xFBC0,0x88F6,0x0000, 0xFBC0,0x88F7,0x0000, 0xFBC0,0x88F8,0x0000, /* 08F6 */
+0xFBC0,0x88F9,0x0000, 0xFBC0,0x88FA,0x0000, 0xFBC0,0x88FB,0x0000, /* 08F9 */
+0xFBC0,0x88FC,0x0000, 0xFBC0,0x88FD,0x0000, 0xFBC0,0x88FE,0x0000, /* 08FC */
+0xFBC0,0x88FF,0x0000 };
+
+static const uint16 uca520_p009[]= { /* 0900 (3 weights per char) */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0900 */
+0x0000,0x0000,0x0000, 0x1BAA,0x0000,0x0000, 0x1BAB,0x0000,0x0000, /* 0903 */
+0x1BAC,0x0000,0x0000, 0x1BAD,0x0000,0x0000, 0x1BAE,0x0000,0x0000, /* 0906 */
+0x1BAF,0x0000,0x0000, 0x1BB0,0x0000,0x0000, 0x1BB1,0x0000,0x0000, /* 0909 */
+0x1BB3,0x0000,0x0000, 0x1BB5,0x0000,0x0000, 0x1BB6,0x0000,0x0000, /* 090C */
+0x1BB7,0x0000,0x0000, 0x1BB8,0x0000,0x0000, 0x1BB9,0x0000,0x0000, /* 090F */
+0x1BBA,0x0000,0x0000, 0x1BBB,0x0000,0x0000, 0x1BBC,0x0000,0x0000, /* 0912 */
+0x1BBD,0x0000,0x0000, 0x1BBE,0x0000,0x0000, 0x1BBF,0x0000,0x0000, /* 0915 */
+0x1BC1,0x0000,0x0000, 0x1BC2,0x0000,0x0000, 0x1BC3,0x0000,0x0000, /* 0918 */
+0x1BC4,0x0000,0x0000, 0x1BC5,0x0000,0x0000, 0x1BC8,0x0000,0x0000, /* 091B */
+0x1BC9,0x0000,0x0000, 0x1BCA,0x0000,0x0000, 0x1BCB,0x0000,0x0000, /* 091E */
+0x1BCC,0x0000,0x0000, 0x1BCE,0x0000,0x0000, 0x1BCF,0x0000,0x0000, /* 0921 */
+0x1BD0,0x0000,0x0000, 0x1BD1,0x0000,0x0000, 0x1BD2,0x0000,0x0000, /* 0924 */
+0x1BD3,0x0000,0x0000, 0x1BD4,0x0000,0x0000, 0x1BD4,0x0000,0x0000, /* 0927 */
+0x1BD5,0x0000,0x0000, 0x1BD6,0x0000,0x0000, 0x1BD7,0x0000,0x0000, /* 092A */
+0x1BD9,0x0000,0x0000, 0x1BDA,0x0000,0x0000, 0x1BDB,0x0000,0x0000, /* 092D */
+0x1BDD,0x0000,0x0000, 0x1BDD,0x0000,0x0000, 0x1BDE,0x0000,0x0000, /* 0930 */
+0x1BDF,0x0000,0x0000, 0x1BDF,0x0000,0x0000, 0x1BE0,0x0000,0x0000, /* 0933 */
+0x1BE1,0x0000,0x0000, 0x1BE2,0x0000,0x0000, 0x1BE3,0x0000,0x0000, /* 0936 */
+0x1BE4,0x0000,0x0000, 0xFBC0,0x893A,0x0000, 0xFBC0,0x893B,0x0000, /* 0939 */
+0x0000,0x0000,0x0000, 0x1BE5,0x0000,0x0000, 0x1BEA,0x0000,0x0000, /* 093C */
+0x1BEB,0x0000,0x0000, 0x1BEC,0x0000,0x0000, 0x1BED,0x0000,0x0000, /* 093F */
+0x1BEE,0x0000,0x0000, 0x1BEF,0x0000,0x0000, 0x1BF0,0x0000,0x0000, /* 0942 */
+0x1BF3,0x0000,0x0000, 0x1BF5,0x0000,0x0000, 0x1BF6,0x0000,0x0000, /* 0945 */
+0x1BF8,0x0000,0x0000, 0x1BF9,0x0000,0x0000, 0x1BFA,0x0000,0x0000, /* 0948 */
+0x1BFB,0x0000,0x0000, 0x1BFC,0x0000,0x0000, 0x1BFD,0x0000,0x0000, /* 094B */
+0x1BF7,0x0000,0x0000, 0xFBC0,0x894F,0x0000, 0x1BA8,0x0000,0x0000, /* 094E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0951 */
+0x0000,0x0000,0x0000, 0x1BF4,0x0000,0x0000, 0xFBC0,0x8956,0x0000, /* 0954 */
+0xFBC0,0x8957,0x0000, 0x1BBD,0x0000,0x0000, 0x1BBE,0x0000,0x0000, /* 0957 */
+0x1BBF,0x0000,0x0000, 0x1BC5,0x0000,0x0000, 0x1BCC,0x0000,0x0000, /* 095A */
+0x1BCE,0x0000,0x0000, 0x1BD6,0x0000,0x0000, 0x1BDB,0x0000,0x0000, /* 095D */
+0x1BB2,0x0000,0x0000, 0x1BB4,0x0000,0x0000, 0x1BF1,0x0000,0x0000, /* 0960 */
+0x1BF2,0x0000,0x0000, 0x0294,0x0000,0x0000, 0x0295,0x0000,0x0000, /* 0963 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0966 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0969 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 096C */
+0x120E,0x0000,0x0000, 0x03A1,0x0000,0x0000, 0x11D0,0x0000,0x0000, /* 096F */
+0x1BA9,0x0000,0x0000, 0xFBC0,0x8973,0x0000, 0xFBC0,0x8974,0x0000, /* 0972 */
+0xFBC0,0x8975,0x0000, 0xFBC0,0x8976,0x0000, 0xFBC0,0x8977,0x0000, /* 0975 */
+0xFBC0,0x8978,0x0000, 0x1BC6,0x0000,0x0000, 0x1BDC,0x0000,0x0000, /* 0978 */
+0x1BC0,0x0000,0x0000, 0x1BC7,0x0000,0x0000, 0x1BE6,0x0000,0x0000, /* 097B */
+0x1BCD,0x0000,0x0000, 0x1BD8,0x0000,0x0000, 0xFBC0,0x8980,0x0000, /* 097E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0981 */
+0xFBC0,0x8984,0x0000, 0x1BFE,0x0000,0x0000, 0x1BFF,0x0000,0x0000, /* 0984 */
+0x1C00,0x0000,0x0000, 0x1C01,0x0000,0x0000, 0x1C02,0x0000,0x0000, /* 0987 */
+0x1C03,0x0000,0x0000, 0x1C04,0x0000,0x0000, 0x1C06,0x0000,0x0000, /* 098A */
+0xFBC0,0x898D,0x0000, 0xFBC0,0x898E,0x0000, 0x1C08,0x0000,0x0000, /* 098D */
+0x1C09,0x0000,0x0000, 0xFBC0,0x8991,0x0000, 0xFBC0,0x8992,0x0000, /* 0990 */
+0x1C0A,0x0000,0x0000, 0x1C0B,0x0000,0x0000, 0x1C0C,0x0000,0x0000, /* 0993 */
+0x1C0D,0x0000,0x0000, 0x1C0E,0x0000,0x0000, 0x1C0F,0x0000,0x0000, /* 0996 */
+0x1C10,0x0000,0x0000, 0x1C11,0x0000,0x0000, 0x1C12,0x0000,0x0000, /* 0999 */
+0x1C13,0x0000,0x0000, 0x1C14,0x0000,0x0000, 0x1C15,0x0000,0x0000, /* 099C */
+0x1C16,0x0000,0x0000, 0x1C17,0x0000,0x0000, 0x1C18,0x0000,0x0000, /* 099F */
+0x1C19,0x0000,0x0000, 0x1C1A,0x0000,0x0000, 0x1C1B,0x0000,0x0000, /* 09A2 */
+0x1C1C,0x0000,0x0000, 0x1C1D,0x0000,0x0000, 0x1C1E,0x0000,0x0000, /* 09A5 */
+0x1C1F,0x0000,0x0000, 0xFBC0,0x89A9,0x0000, 0x1C20,0x0000,0x0000, /* 09A8 */
+0x1C21,0x0000,0x0000, 0x1C22,0x0000,0x0000, 0x1C23,0x0000,0x0000, /* 09AB */
+0x1C24,0x0000,0x0000, 0x1C25,0x0000,0x0000, 0x1C26,0x0000,0x0000, /* 09AE */
+0xFBC0,0x89B1,0x0000, 0x1C28,0x0000,0x0000, 0xFBC0,0x89B3,0x0000, /* 09B1 */
+0xFBC0,0x89B4,0x0000, 0xFBC0,0x89B5,0x0000, 0x1C2A,0x0000,0x0000, /* 09B4 */
+0x1C2B,0x0000,0x0000, 0x1C2C,0x0000,0x0000, 0x1C2D,0x0000,0x0000, /* 09B7 */
+0xFBC0,0x89BA,0x0000, 0xFBC0,0x89BB,0x0000, 0x0000,0x0000,0x0000, /* 09BA */
+0x1C2E,0x0000,0x0000, 0x1C2F,0x0000,0x0000, 0x1C30,0x0000,0x0000, /* 09BD */
+0x1C31,0x0000,0x0000, 0x1C32,0x0000,0x0000, 0x1C33,0x0000,0x0000, /* 09C0 */
+0x1C34,0x0000,0x0000, 0x1C35,0x0000,0x0000, 0xFBC0,0x89C5,0x0000, /* 09C3 */
+0xFBC0,0x89C6,0x0000, 0x1C38,0x0000,0x0000, 0x1C39,0x0000,0x0000, /* 09C6 */
+0xFBC0,0x89C9,0x0000, 0xFBC0,0x89CA,0x0000, 0x1C3A,0x0000,0x0000, /* 09C9 */
+0x1C3B,0x0000,0x0000, 0x1C3C,0x0000,0x0000, 0x1C1B,0x1C3C,0x0000, /* 09CC */
+0xFBC0,0x89CF,0x0000, 0xFBC0,0x89D0,0x0000, 0xFBC0,0x89D1,0x0000, /* 09CF */
+0xFBC0,0x89D2,0x0000, 0xFBC0,0x89D3,0x0000, 0xFBC0,0x89D4,0x0000, /* 09D2 */
+0xFBC0,0x89D5,0x0000, 0xFBC0,0x89D6,0x0000, 0x1C3D,0x0000,0x0000, /* 09D5 */
+0xFBC0,0x89D8,0x0000, 0xFBC0,0x89D9,0x0000, 0xFBC0,0x89DA,0x0000, /* 09D8 */
+0xFBC0,0x89DB,0x0000, 0x1C18,0x0000,0x0000, 0x1C19,0x0000,0x0000, /* 09DB */
+0xFBC0,0x89DE,0x0000, 0x1C25,0x0000,0x0000, 0x1C05,0x0000,0x0000, /* 09DE */
+0x1C07,0x0000,0x0000, 0x1C36,0x0000,0x0000, 0x1C37,0x0000,0x0000, /* 09E1 */
+0xFBC0,0x89E4,0x0000, 0xFBC0,0x89E5,0x0000, 0x1205,0x0000,0x0000, /* 09E4 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 09E7 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 09EA */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 09ED */
+0x1C27,0x0000,0x0000, 0x1C29,0x0000,0x0000, 0x11E5,0x0000,0x0000, /* 09F0 */
+0x11E6,0x0000,0x0000, 0x1110,0x0000,0x0000, 0x1111,0x0000,0x0000, /* 09F3 */
+0x1112,0x0000,0x0000, 0x1113,0x0000,0x0000, 0x1114,0x0000,0x0000, /* 09F6 */
+0x1115,0x0000,0x0000, 0x0453,0x0000,0x0000, 0x11E7,0x0000,0x0000, /* 09F9 */
+0xFBC0,0x89FC,0x0000, 0xFBC0,0x89FD,0x0000, 0xFBC0,0x89FE,0x0000, /* 09FC */
+0xFBC0,0x89FF,0x0000 };
+
+static const uint16 uca520_p00A[]= { /* 0A00 (3 weights per char) */
+0xFBC0,0x8A00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A00 */
+0x0000,0x0000,0x0000, 0xFBC0,0x8A04,0x0000, 0x1C43,0x0000,0x0000, /* 0A03 */
+0x1C44,0x0000,0x0000, 0x1C48,0x0000,0x0000, 0x1C49,0x0000,0x0000, /* 0A06 */
+0x1C40,0x0000,0x0000, 0x1C41,0x0000,0x0000, 0xFBC0,0x8A0B,0x0000, /* 0A09 */
+0xFBC0,0x8A0C,0x0000, 0xFBC0,0x8A0D,0x0000, 0xFBC0,0x8A0E,0x0000, /* 0A0C */
+0x1C4A,0x0000,0x0000, 0x1C45,0x0000,0x0000, 0xFBC0,0x8A11,0x0000, /* 0A0F */
+0xFBC0,0x8A12,0x0000, 0x1C42,0x0000,0x0000, 0x1C46,0x0000,0x0000, /* 0A12 */
+0x1C4E,0x0000,0x0000, 0x1C4F,0x0000,0x0000, 0x1C50,0x0000,0x0000, /* 0A15 */
+0x1C51,0x0000,0x0000, 0x1C52,0x0000,0x0000, 0x1C53,0x0000,0x0000, /* 0A18 */
+0x1C54,0x0000,0x0000, 0x1C55,0x0000,0x0000, 0x1C56,0x0000,0x0000, /* 0A1B */
+0x1C57,0x0000,0x0000, 0x1C58,0x0000,0x0000, 0x1C59,0x0000,0x0000, /* 0A1E */
+0x1C5A,0x0000,0x0000, 0x1C5B,0x0000,0x0000, 0x1C5C,0x0000,0x0000, /* 0A21 */
+0x1C5D,0x0000,0x0000, 0x1C5E,0x0000,0x0000, 0x1C5F,0x0000,0x0000, /* 0A24 */
+0x1C60,0x0000,0x0000, 0x1C61,0x0000,0x0000, 0xFBC0,0x8A29,0x0000, /* 0A27 */
+0x1C62,0x0000,0x0000, 0x1C63,0x0000,0x0000, 0x1C64,0x0000,0x0000, /* 0A2A */
+0x1C65,0x0000,0x0000, 0x1C66,0x0000,0x0000, 0x1C67,0x0000,0x0000, /* 0A2D */
+0x1C69,0x0000,0x0000, 0xFBC0,0x8A31,0x0000, 0x1C6A,0x0000,0x0000, /* 0A30 */
+0x1C6A,0x0000,0x0000, 0xFBC0,0x8A34,0x0000, 0x1C6B,0x0000,0x0000, /* 0A33 */
+0x1C4B,0x0000,0x0000, 0xFBC0,0x8A37,0x0000, 0x1C4B,0x0000,0x0000, /* 0A36 */
+0x1C4C,0x0000,0x0000, 0xFBC0,0x8A3A,0x0000, 0xFBC0,0x8A3B,0x0000, /* 0A39 */
+0x0000,0x0000,0x0000, 0xFBC0,0x8A3D,0x0000, 0x1C6D,0x0000,0x0000, /* 0A3C */
+0x1C6E,0x0000,0x0000, 0x1C6F,0x0000,0x0000, 0x1C70,0x0000,0x0000, /* 0A3F */
+0x1C71,0x0000,0x0000, 0xFBC0,0x8A43,0x0000, 0xFBC0,0x8A44,0x0000, /* 0A42 */
+0xFBC0,0x8A45,0x0000, 0xFBC0,0x8A46,0x0000, 0x1C72,0x0000,0x0000, /* 0A45 */
+0x1C73,0x0000,0x0000, 0xFBC0,0x8A49,0x0000, 0xFBC0,0x8A4A,0x0000, /* 0A48 */
+0x1C74,0x0000,0x0000, 0x1C75,0x0000,0x0000, 0x1C76,0x0000,0x0000, /* 0A4B */
+0xFBC0,0x8A4E,0x0000, 0xFBC0,0x8A4F,0x0000, 0xFBC0,0x8A50,0x0000, /* 0A4E */
+0x1C4D,0x0000,0x0000, 0xFBC0,0x8A52,0x0000, 0xFBC0,0x8A53,0x0000, /* 0A51 */
+0xFBC0,0x8A54,0x0000, 0xFBC0,0x8A55,0x0000, 0xFBC0,0x8A56,0x0000, /* 0A54 */
+0xFBC0,0x8A57,0x0000, 0xFBC0,0x8A58,0x0000, 0x1C4F,0x0000,0x0000, /* 0A57 */
+0x1C50,0x0000,0x0000, 0x1C55,0x0000,0x0000, 0x1C6C,0x0000,0x0000, /* 0A5A */
+0xFBC0,0x8A5D,0x0000, 0x1C63,0x0000,0x0000, 0xFBC0,0x8A5F,0x0000, /* 0A5D */
+0xFBC0,0x8A60,0x0000, 0xFBC0,0x8A61,0x0000, 0xFBC0,0x8A62,0x0000, /* 0A60 */
+0xFBC0,0x8A63,0x0000, 0xFBC0,0x8A64,0x0000, 0xFBC0,0x8A65,0x0000, /* 0A63 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0A66 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0A69 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0A6C */
+0x120E,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A6F */
+0x1C47,0x0000,0x0000, 0x1C3F,0x0000,0x0000, 0x1C3E,0x0000,0x0000, /* 0A72 */
+0x1C68,0x0000,0x0000, 0xFBC0,0x8A76,0x0000, 0xFBC0,0x8A77,0x0000, /* 0A75 */
+0xFBC0,0x8A78,0x0000, 0xFBC0,0x8A79,0x0000, 0xFBC0,0x8A7A,0x0000, /* 0A78 */
+0xFBC0,0x8A7B,0x0000, 0xFBC0,0x8A7C,0x0000, 0xFBC0,0x8A7D,0x0000, /* 0A7B */
+0xFBC0,0x8A7E,0x0000, 0xFBC0,0x8A7F,0x0000, 0xFBC0,0x8A80,0x0000, /* 0A7E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0A81 */
+0xFBC0,0x8A84,0x0000, 0x1C78,0x0000,0x0000, 0x1C79,0x0000,0x0000, /* 0A84 */
+0x1C7A,0x0000,0x0000, 0x1C7B,0x0000,0x0000, 0x1C7C,0x0000,0x0000, /* 0A87 */
+0x1C7D,0x0000,0x0000, 0x1C7E,0x0000,0x0000, 0x1C80,0x0000,0x0000, /* 0A8A */
+0x1C82,0x0000,0x0000, 0xFBC0,0x8A8E,0x0000, 0x1C83,0x0000,0x0000, /* 0A8D */
+0x1C84,0x0000,0x0000, 0x1C85,0x0000,0x0000, 0xFBC0,0x8A92,0x0000, /* 0A90 */
+0x1C86,0x0000,0x0000, 0x1C87,0x0000,0x0000, 0x1C88,0x0000,0x0000, /* 0A93 */
+0x1C89,0x0000,0x0000, 0x1C8A,0x0000,0x0000, 0x1C8B,0x0000,0x0000, /* 0A96 */
+0x1C8C,0x0000,0x0000, 0x1C8D,0x0000,0x0000, 0x1C8E,0x0000,0x0000, /* 0A99 */
+0x1C8F,0x0000,0x0000, 0x1C90,0x0000,0x0000, 0x1C91,0x0000,0x0000, /* 0A9C */
+0x1C92,0x0000,0x0000, 0x1C93,0x0000,0x0000, 0x1C94,0x0000,0x0000, /* 0A9F */
+0x1C95,0x0000,0x0000, 0x1C96,0x0000,0x0000, 0x1C97,0x0000,0x0000, /* 0AA2 */
+0x1C98,0x0000,0x0000, 0x1C99,0x0000,0x0000, 0x1C9A,0x0000,0x0000, /* 0AA5 */
+0x1C9B,0x0000,0x0000, 0xFBC0,0x8AA9,0x0000, 0x1C9C,0x0000,0x0000, /* 0AA8 */
+0x1C9D,0x0000,0x0000, 0x1C9E,0x0000,0x0000, 0x1C9F,0x0000,0x0000, /* 0AAB */
+0x1CA0,0x0000,0x0000, 0x1CA1,0x0000,0x0000, 0x1CA2,0x0000,0x0000, /* 0AAE */
+0xFBC0,0x8AB1,0x0000, 0x1CA3,0x0000,0x0000, 0x1CA9,0x0000,0x0000, /* 0AB1 */
+0xFBC0,0x8AB4,0x0000, 0x1CA4,0x0000,0x0000, 0x1CA5,0x0000,0x0000, /* 0AB4 */
+0x1CA6,0x0000,0x0000, 0x1CA7,0x0000,0x0000, 0x1CA8,0x0000,0x0000, /* 0AB7 */
+0xFBC0,0x8ABA,0x0000, 0xFBC0,0x8ABB,0x0000, 0x0000,0x0000,0x0000, /* 0ABA */
+0x1CAA,0x0000,0x0000, 0x1CAB,0x0000,0x0000, 0x1CAC,0x0000,0x0000, /* 0ABD */
+0x1CAD,0x0000,0x0000, 0x1CAE,0x0000,0x0000, 0x1CAF,0x0000,0x0000, /* 0AC0 */
+0x1CB0,0x0000,0x0000, 0x1CB1,0x0000,0x0000, 0x1CB4,0x0000,0x0000, /* 0AC3 */
+0xFBC0,0x8AC6,0x0000, 0x1CB5,0x0000,0x0000, 0x1CB6,0x0000,0x0000, /* 0AC6 */
+0x1CB7,0x0000,0x0000, 0xFBC0,0x8ACA,0x0000, 0x1CB8,0x0000,0x0000, /* 0AC9 */
+0x1CB9,0x0000,0x0000, 0x1CBA,0x0000,0x0000, 0xFBC0,0x8ACE,0x0000, /* 0ACC */
+0xFBC0,0x8ACF,0x0000, 0x1C77,0x0000,0x0000, 0xFBC0,0x8AD1,0x0000, /* 0ACF */
+0xFBC0,0x8AD2,0x0000, 0xFBC0,0x8AD3,0x0000, 0xFBC0,0x8AD4,0x0000, /* 0AD2 */
+0xFBC0,0x8AD5,0x0000, 0xFBC0,0x8AD6,0x0000, 0xFBC0,0x8AD7,0x0000, /* 0AD5 */
+0xFBC0,0x8AD8,0x0000, 0xFBC0,0x8AD9,0x0000, 0xFBC0,0x8ADA,0x0000, /* 0AD8 */
+0xFBC0,0x8ADB,0x0000, 0xFBC0,0x8ADC,0x0000, 0xFBC0,0x8ADD,0x0000, /* 0ADB */
+0xFBC0,0x8ADE,0x0000, 0xFBC0,0x8ADF,0x0000, 0x1C7F,0x0000,0x0000, /* 0ADE */
+0x1C81,0x0000,0x0000, 0x1CB2,0x0000,0x0000, 0x1CB3,0x0000,0x0000, /* 0AE1 */
+0xFBC0,0x8AE4,0x0000, 0xFBC0,0x8AE5,0x0000, 0x1205,0x0000,0x0000, /* 0AE4 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0AE7 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0AEA */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0AED */
+0xFBC0,0x8AF0,0x0000, 0x11E8,0x0000,0x0000, 0xFBC0,0x8AF2,0x0000, /* 0AF0 */
+0xFBC0,0x8AF3,0x0000, 0xFBC0,0x8AF4,0x0000, 0xFBC0,0x8AF5,0x0000, /* 0AF3 */
+0xFBC0,0x8AF6,0x0000, 0xFBC0,0x8AF7,0x0000, 0xFBC0,0x8AF8,0x0000, /* 0AF6 */
+0xFBC0,0x8AF9,0x0000, 0xFBC0,0x8AFA,0x0000, 0xFBC0,0x8AFB,0x0000, /* 0AF9 */
+0xFBC0,0x8AFC,0x0000, 0xFBC0,0x8AFD,0x0000, 0xFBC0,0x8AFE,0x0000, /* 0AFC */
+0xFBC0,0x8AFF,0x0000 };
+
+static const uint16 uca520_p00B[]= { /* 0B00 (3 weights per char) */
+0xFBC0,0x8B00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0B00 */
+0x0000,0x0000,0x0000, 0xFBC0,0x8B04,0x0000, 0x1CBB,0x0000,0x0000, /* 0B03 */
+0x1CBC,0x0000,0x0000, 0x1CBD,0x0000,0x0000, 0x1CBE,0x0000,0x0000, /* 0B06 */
+0x1CBF,0x0000,0x0000, 0x1CC0,0x0000,0x0000, 0x1CC1,0x0000,0x0000, /* 0B09 */
+0x1CC3,0x0000,0x0000, 0xFBC0,0x8B0D,0x0000, 0xFBC0,0x8B0E,0x0000, /* 0B0C */
+0x1CC5,0x0000,0x0000, 0x1CC6,0x0000,0x0000, 0xFBC0,0x8B11,0x0000, /* 0B0F */
+0xFBC0,0x8B12,0x0000, 0x1CC7,0x0000,0x0000, 0x1CC8,0x0000,0x0000, /* 0B12 */
+0x1CC9,0x0000,0x0000, 0x1CCA,0x0000,0x0000, 0x1CCB,0x0000,0x0000, /* 0B15 */
+0x1CCC,0x0000,0x0000, 0x1CCD,0x0000,0x0000, 0x1CCE,0x0000,0x0000, /* 0B18 */
+0x1CCF,0x0000,0x0000, 0x1CD0,0x0000,0x0000, 0x1CD1,0x0000,0x0000, /* 0B1B */
+0x1CD2,0x0000,0x0000, 0x1CD3,0x0000,0x0000, 0x1CD4,0x0000,0x0000, /* 0B1E */
+0x1CD5,0x0000,0x0000, 0x1CD6,0x0000,0x0000, 0x1CD7,0x0000,0x0000, /* 0B21 */
+0x1CD8,0x0000,0x0000, 0x1CD9,0x0000,0x0000, 0x1CDA,0x0000,0x0000, /* 0B24 */
+0x1CDB,0x0000,0x0000, 0x1CDC,0x0000,0x0000, 0xFBC0,0x8B29,0x0000, /* 0B27 */
+0x1CDD,0x0000,0x0000, 0x1CDE,0x0000,0x0000, 0x1CDF,0x0000,0x0000, /* 0B2A */
+0x1CE0,0x0000,0x0000, 0x1CE1,0x0000,0x0000, 0x1CE2,0x0000,0x0000, /* 0B2D */
+0x1CE4,0x0000,0x0000, 0xFBC0,0x8B31,0x0000, 0x1CE5,0x0000,0x0000, /* 0B30 */
+0x1CE6,0x0000,0x0000, 0xFBC0,0x8B34,0x0000, 0x1CE7,0x0000,0x0000, /* 0B33 */
+0x1CE9,0x0000,0x0000, 0x1CEA,0x0000,0x0000, 0x1CEB,0x0000,0x0000, /* 0B36 */
+0x1CEC,0x0000,0x0000, 0xFBC0,0x8B3A,0x0000, 0xFBC0,0x8B3B,0x0000, /* 0B39 */
+0x0000,0x0000,0x0000, 0x1CED,0x0000,0x0000, 0x1CEE,0x0000,0x0000, /* 0B3C */
+0x1CEF,0x0000,0x0000, 0x1CF0,0x0000,0x0000, 0x1CF1,0x0000,0x0000, /* 0B3F */
+0x1CF2,0x0000,0x0000, 0x1CF3,0x0000,0x0000, 0x1CF4,0x0000,0x0000, /* 0B42 */
+0xFBC0,0x8B45,0x0000, 0xFBC0,0x8B46,0x0000, 0x1CF7,0x0000,0x0000, /* 0B45 */
+0x1CF8,0x0000,0x0000, 0xFBC0,0x8B49,0x0000, 0xFBC0,0x8B4A,0x0000, /* 0B48 */
+0x1CF9,0x0000,0x0000, 0x1CFA,0x0000,0x0000, 0x1CFB,0x0000,0x0000, /* 0B4B */
+0xFBC0,0x8B4E,0x0000, 0xFBC0,0x8B4F,0x0000, 0xFBC0,0x8B50,0x0000, /* 0B4E */
+0xFBC0,0x8B51,0x0000, 0xFBC0,0x8B52,0x0000, 0xFBC0,0x8B53,0x0000, /* 0B51 */
+0xFBC0,0x8B54,0x0000, 0xFBC0,0x8B55,0x0000, 0x1CFC,0x0000,0x0000, /* 0B54 */
+0x1CFD,0x0000,0x0000, 0xFBC0,0x8B58,0x0000, 0xFBC0,0x8B59,0x0000, /* 0B57 */
+0xFBC0,0x8B5A,0x0000, 0xFBC0,0x8B5B,0x0000, 0x1CD5,0x0000,0x0000, /* 0B5A */
+0x1CD6,0x0000,0x0000, 0xFBC0,0x8B5E,0x0000, 0x1CE3,0x0000,0x0000, /* 0B5D */
+0x1CC2,0x0000,0x0000, 0x1CC4,0x0000,0x0000, 0x1CF5,0x0000,0x0000, /* 0B60 */
+0x1CF6,0x0000,0x0000, 0xFBC0,0x8B64,0x0000, 0xFBC0,0x8B65,0x0000, /* 0B63 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0B66 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0B69 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0B6C */
+0x120E,0x0000,0x0000, 0x0454,0x0000,0x0000, 0x1CE8,0x0000,0x0000, /* 0B6F */
+0xFBC0,0x8B72,0x0000, 0xFBC0,0x8B73,0x0000, 0xFBC0,0x8B74,0x0000, /* 0B72 */
+0xFBC0,0x8B75,0x0000, 0xFBC0,0x8B76,0x0000, 0xFBC0,0x8B77,0x0000, /* 0B75 */
+0xFBC0,0x8B78,0x0000, 0xFBC0,0x8B79,0x0000, 0xFBC0,0x8B7A,0x0000, /* 0B78 */
+0xFBC0,0x8B7B,0x0000, 0xFBC0,0x8B7C,0x0000, 0xFBC0,0x8B7D,0x0000, /* 0B7B */
+0xFBC0,0x8B7E,0x0000, 0xFBC0,0x8B7F,0x0000, 0xFBC0,0x8B80,0x0000, /* 0B7E */
+0xFBC0,0x8B81,0x0000, 0x0000,0x0000,0x0000, 0x1D0B,0x0000,0x0000, /* 0B81 */
+0xFBC0,0x8B84,0x0000, 0x1CFF,0x0000,0x0000, 0x1D00,0x0000,0x0000, /* 0B84 */
+0x1D01,0x0000,0x0000, 0x1D02,0x0000,0x0000, 0x1D03,0x0000,0x0000, /* 0B87 */
+0x1D04,0x0000,0x0000, 0xFBC0,0x8B8B,0x0000, 0xFBC0,0x8B8C,0x0000, /* 0B8A */
+0xFBC0,0x8B8D,0x0000, 0x1D05,0x0000,0x0000, 0x1D06,0x0000,0x0000, /* 0B8D */
+0x1D07,0x0000,0x0000, 0xFBC0,0x8B91,0x0000, 0x1D08,0x0000,0x0000, /* 0B90 */
+0x1D09,0x0000,0x0000, 0x1D0A,0x0000,0x0000, 0x1D0C,0x0000,0x0000, /* 0B93 */
+0xFBC0,0x8B96,0x0000, 0xFBC0,0x8B97,0x0000, 0xFBC0,0x8B98,0x0000, /* 0B96 */
+0x1D0D,0x0000,0x0000, 0x1D0E,0x0000,0x0000, 0xFBC0,0x8B9B,0x0000, /* 0B99 */
+0x1D1E,0x0000,0x0000, 0xFBC0,0x8B9D,0x0000, 0x1D0F,0x0000,0x0000, /* 0B9C */
+0x1D10,0x0000,0x0000, 0xFBC0,0x8BA0,0x0000, 0xFBC0,0x8BA1,0x0000, /* 0B9F */
+0xFBC0,0x8BA2,0x0000, 0x1D11,0x0000,0x0000, 0x1D12,0x0000,0x0000, /* 0BA2 */
+0xFBC0,0x8BA5,0x0000, 0xFBC0,0x8BA6,0x0000, 0xFBC0,0x8BA7,0x0000, /* 0BA5 */
+0x1D13,0x0000,0x0000, 0x1D1D,0x0000,0x0000, 0x1D14,0x0000,0x0000, /* 0BA8 */
+0xFBC0,0x8BAB,0x0000, 0xFBC0,0x8BAC,0x0000, 0xFBC0,0x8BAD,0x0000, /* 0BAB */
+0x1D15,0x0000,0x0000, 0x1D16,0x0000,0x0000, 0x1D17,0x0000,0x0000, /* 0BAE */
+0x1D1C,0x0000,0x0000, 0x1D18,0x0000,0x0000, 0x1D1B,0x0000,0x0000, /* 0BB1 */
+0x1D1A,0x0000,0x0000, 0x1D19,0x0000,0x0000, 0x1D1F,0x0000,0x0000, /* 0BB4 */
+0x1D20,0x0000,0x0000, 0x1D21,0x0000,0x0000, 0x1D22,0x0000,0x0000, /* 0BB7 */
+0xFBC0,0x8BBA,0x0000, 0xFBC0,0x8BBB,0x0000, 0xFBC0,0x8BBC,0x0000, /* 0BBA */
+0xFBC0,0x8BBD,0x0000, 0x1D23,0x0000,0x0000, 0x1D24,0x0000,0x0000, /* 0BBD */
+0x1D25,0x0000,0x0000, 0x1D26,0x0000,0x0000, 0x1D27,0x0000,0x0000, /* 0BC0 */
+0xFBC0,0x8BC3,0x0000, 0xFBC0,0x8BC4,0x0000, 0xFBC0,0x8BC5,0x0000, /* 0BC3 */
+0x1D28,0x0000,0x0000, 0x1D29,0x0000,0x0000, 0x1D2A,0x0000,0x0000, /* 0BC6 */
+0xFBC0,0x8BC9,0x0000, 0x1D2B,0x0000,0x0000, 0x1D2C,0x0000,0x0000, /* 0BC9 */
+0x1D2D,0x0000,0x0000, 0x1D2E,0x0000,0x0000, 0xFBC0,0x8BCE,0x0000, /* 0BCC */
+0xFBC0,0x8BCF,0x0000, 0x1CFE,0x0000,0x0000, 0xFBC0,0x8BD1,0x0000, /* 0BCF */
+0xFBC0,0x8BD2,0x0000, 0xFBC0,0x8BD3,0x0000, 0xFBC0,0x8BD4,0x0000, /* 0BD2 */
+0xFBC0,0x8BD5,0x0000, 0xFBC0,0x8BD6,0x0000, 0x1D2F,0x0000,0x0000, /* 0BD5 */
+0xFBC0,0x8BD8,0x0000, 0xFBC0,0x8BD9,0x0000, 0xFBC0,0x8BDA,0x0000, /* 0BD8 */
+0xFBC0,0x8BDB,0x0000, 0xFBC0,0x8BDC,0x0000, 0xFBC0,0x8BDD,0x0000, /* 0BDB */
+0xFBC0,0x8BDE,0x0000, 0xFBC0,0x8BDF,0x0000, 0xFBC0,0x8BE0,0x0000, /* 0BDE */
+0xFBC0,0x8BE1,0x0000, 0xFBC0,0x8BE2,0x0000, 0xFBC0,0x8BE3,0x0000, /* 0BE1 */
+0xFBC0,0x8BE4,0x0000, 0xFBC0,0x8BE5,0x0000, 0x1205,0x0000,0x0000, /* 0BE4 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0BE7 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0BEA */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0BED */
+0x111C,0x0000,0x0000, 0x111D,0x0000,0x0000, 0x111E,0x0000,0x0000, /* 0BF0 */
+0x0455,0x0000,0x0000, 0x0456,0x0000,0x0000, 0x0457,0x0000,0x0000, /* 0BF3 */
+0x0458,0x0000,0x0000, 0x0459,0x0000,0x0000, 0x045A,0x0000,0x0000, /* 0BF6 */
+0x11EA,0x0000,0x0000, 0x045B,0x0000,0x0000, 0xFBC0,0x8BFB,0x0000, /* 0BF9 */
+0xFBC0,0x8BFC,0x0000, 0xFBC0,0x8BFD,0x0000, 0xFBC0,0x8BFE,0x0000, /* 0BFC */
+0xFBC0,0x8BFF,0x0000 };
+
+static const uint16 uca520_p00C[]= { /* 0C00 (3 weights per char) */
+0xFBC0,0x8C00,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0C00 */
+0x0000,0x0000,0x0000, 0xFBC0,0x8C04,0x0000, 0x1D30,0x0000,0x0000, /* 0C03 */
+0x1D31,0x0000,0x0000, 0x1D32,0x0000,0x0000, 0x1D33,0x0000,0x0000, /* 0C06 */
+0x1D34,0x0000,0x0000, 0x1D35,0x0000,0x0000, 0x1D36,0x0000,0x0000, /* 0C09 */
+0x1D38,0x0000,0x0000, 0xFBC0,0x8C0D,0x0000, 0x1D3A,0x0000,0x0000, /* 0C0C */
+0x1D3B,0x0000,0x0000, 0x1D3C,0x0000,0x0000, 0xFBC0,0x8C11,0x0000, /* 0C0F */
+0x1D3D,0x0000,0x0000, 0x1D3E,0x0000,0x0000, 0x1D3F,0x0000,0x0000, /* 0C12 */
+0x1D40,0x0000,0x0000, 0x1D41,0x0000,0x0000, 0x1D42,0x0000,0x0000, /* 0C15 */
+0x1D43,0x0000,0x0000, 0x1D44,0x0000,0x0000, 0x1D45,0x0000,0x0000, /* 0C18 */
+0x1D47,0x0000,0x0000, 0x1D48,0x0000,0x0000, 0x1D4A,0x0000,0x0000, /* 0C1B */
+0x1D4B,0x0000,0x0000, 0x1D4C,0x0000,0x0000, 0x1D4D,0x0000,0x0000, /* 0C1E */
+0x1D4E,0x0000,0x0000, 0x1D4F,0x0000,0x0000, 0x1D50,0x0000,0x0000, /* 0C21 */
+0x1D51,0x0000,0x0000, 0x1D52,0x0000,0x0000, 0x1D53,0x0000,0x0000, /* 0C24 */
+0x1D54,0x0000,0x0000, 0x1D55,0x0000,0x0000, 0xFBC0,0x8C29,0x0000, /* 0C27 */
+0x1D56,0x0000,0x0000, 0x1D57,0x0000,0x0000, 0x1D58,0x0000,0x0000, /* 0C2A */
+0x1D59,0x0000,0x0000, 0x1D5A,0x0000,0x0000, 0x1D5B,0x0000,0x0000, /* 0C2D */
+0x1D5C,0x0000,0x0000, 0x1D5D,0x0000,0x0000, 0x1D5E,0x0000,0x0000, /* 0C30 */
+0x1D64,0x0000,0x0000, 0xFBC0,0x8C34,0x0000, 0x1D5F,0x0000,0x0000, /* 0C33 */
+0x1D60,0x0000,0x0000, 0x1D61,0x0000,0x0000, 0x1D62,0x0000,0x0000, /* 0C36 */
+0x1D63,0x0000,0x0000, 0xFBC0,0x8C3A,0x0000, 0xFBC0,0x8C3B,0x0000, /* 0C39 */
+0xFBC0,0x8C3C,0x0000, 0x1D65,0x0000,0x0000, 0x1D66,0x0000,0x0000, /* 0C3C */
+0x1D67,0x0000,0x0000, 0x1D68,0x0000,0x0000, 0x1D69,0x0000,0x0000, /* 0C3F */
+0x1D6A,0x0000,0x0000, 0x1D6B,0x0000,0x0000, 0x1D6C,0x0000,0x0000, /* 0C42 */
+0xFBC0,0x8C45,0x0000, 0x1D6F,0x0000,0x0000, 0x1D70,0x0000,0x0000, /* 0C45 */
+0x1D71,0x0000,0x0000, 0xFBC0,0x8C49,0x0000, 0x1D72,0x0000,0x0000, /* 0C48 */
+0x1D73,0x0000,0x0000, 0x1D74,0x0000,0x0000, 0x1D75,0x0000,0x0000, /* 0C4B */
+0xFBC0,0x8C4E,0x0000, 0xFBC0,0x8C4F,0x0000, 0xFBC0,0x8C50,0x0000, /* 0C4E */
+0xFBC0,0x8C51,0x0000, 0xFBC0,0x8C52,0x0000, 0xFBC0,0x8C53,0x0000, /* 0C51 */
+0xFBC0,0x8C54,0x0000, 0x1D76,0x0000,0x0000, 0x1D77,0x0000,0x0000, /* 0C54 */
+0xFBC0,0x8C57,0x0000, 0x1D46,0x0000,0x0000, 0x1D49,0x0000,0x0000, /* 0C57 */
+0xFBC0,0x8C5A,0x0000, 0xFBC0,0x8C5B,0x0000, 0xFBC0,0x8C5C,0x0000, /* 0C5A */
+0xFBC0,0x8C5D,0x0000, 0xFBC0,0x8C5E,0x0000, 0xFBC0,0x8C5F,0x0000, /* 0C5D */
+0x1D37,0x0000,0x0000, 0x1D39,0x0000,0x0000, 0x1D6D,0x0000,0x0000, /* 0C60 */
+0x1D6E,0x0000,0x0000, 0xFBC0,0x8C64,0x0000, 0xFBC0,0x8C65,0x0000, /* 0C63 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C66 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0C69 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0C6C */
+0x120E,0x0000,0x0000, 0xFBC0,0x8C70,0x0000, 0xFBC0,0x8C71,0x0000, /* 0C6F */
+0xFBC0,0x8C72,0x0000, 0xFBC0,0x8C73,0x0000, 0xFBC0,0x8C74,0x0000, /* 0C72 */
+0xFBC0,0x8C75,0x0000, 0xFBC0,0x8C76,0x0000, 0xFBC0,0x8C77,0x0000, /* 0C75 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C78 */
+0x1208,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0C7B */
+0x1208,0x0000,0x0000, 0x045C,0x0000,0x0000, 0xFBC0,0x8C80,0x0000, /* 0C7E */
+0xFBC0,0x8C81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0C81 */
+0xFBC0,0x8C84,0x0000, 0x1D78,0x0000,0x0000, 0x1D79,0x0000,0x0000, /* 0C84 */
+0x1D7A,0x0000,0x0000, 0x1D7B,0x0000,0x0000, 0x1D7C,0x0000,0x0000, /* 0C87 */
+0x1D7D,0x0000,0x0000, 0x1D7E,0x0000,0x0000, 0x1D80,0x0000,0x0000, /* 0C8A */
+0xFBC0,0x8C8D,0x0000, 0x1D82,0x0000,0x0000, 0x1D83,0x0000,0x0000, /* 0C8D */
+0x1D84,0x0000,0x0000, 0xFBC0,0x8C91,0x0000, 0x1D85,0x0000,0x0000, /* 0C90 */
+0x1D86,0x0000,0x0000, 0x1D87,0x0000,0x0000, 0x1D88,0x0000,0x0000, /* 0C93 */
+0x1D89,0x0000,0x0000, 0x1D8A,0x0000,0x0000, 0x1D8B,0x0000,0x0000, /* 0C96 */
+0x1D8C,0x0000,0x0000, 0x1D8D,0x0000,0x0000, 0x1D8E,0x0000,0x0000, /* 0C99 */
+0x1D8F,0x0000,0x0000, 0x1D90,0x0000,0x0000, 0x1D91,0x0000,0x0000, /* 0C9C */
+0x1D92,0x0000,0x0000, 0x1D93,0x0000,0x0000, 0x1D94,0x0000,0x0000, /* 0C9F */
+0x1D95,0x0000,0x0000, 0x1D96,0x0000,0x0000, 0x1D97,0x0000,0x0000, /* 0CA2 */
+0x1D98,0x0000,0x0000, 0x1D99,0x0000,0x0000, 0x1D9A,0x0000,0x0000, /* 0CA5 */
+0x1D9B,0x0000,0x0000, 0xFBC0,0x8CA9,0x0000, 0x1D9C,0x0000,0x0000, /* 0CA8 */
+0x1D9D,0x0000,0x0000, 0x1D9E,0x0000,0x0000, 0x1D9F,0x0000,0x0000, /* 0CAB */
+0x1DA0,0x0000,0x0000, 0x1DA1,0x0000,0x0000, 0x1DA2,0x0000,0x0000, /* 0CAE */
+0x1DA3,0x0000,0x0000, 0x1DA4,0x0000,0x0000, 0x1DAA,0x0000,0x0000, /* 0CB1 */
+0xFBC0,0x8CB4,0x0000, 0x1DA5,0x0000,0x0000, 0x1DA6,0x0000,0x0000, /* 0CB4 */
+0x1DA7,0x0000,0x0000, 0x1DA8,0x0000,0x0000, 0x1DA9,0x0000,0x0000, /* 0CB7 */
+0xFBC0,0x8CBA,0x0000, 0xFBC0,0x8CBB,0x0000, 0x0000,0x0000,0x0000, /* 0CBA */
+0x1DAC,0x0000,0x0000, 0x1DAD,0x0000,0x0000, 0x1DAE,0x0000,0x0000, /* 0CBD */
+0x1DAF,0x0000,0x0000, 0x1DB0,0x0000,0x0000, 0x1DB1,0x0000,0x0000, /* 0CC0 */
+0x1DB2,0x0000,0x0000, 0x1DB3,0x0000,0x0000, 0xFBC0,0x8CC5,0x0000, /* 0CC3 */
+0x1DB6,0x0000,0x0000, 0x1DB7,0x0000,0x0000, 0x1DB8,0x0000,0x0000, /* 0CC6 */
+0xFBC0,0x8CC9,0x0000, 0x1DB9,0x0000,0x0000, 0x1DBA,0x0000,0x0000, /* 0CC9 */
+0x1DBB,0x0000,0x0000, 0x1DBC,0x0000,0x0000, 0xFBC0,0x8CCE,0x0000, /* 0CCC */
+0xFBC0,0x8CCF,0x0000, 0xFBC0,0x8CD0,0x0000, 0xFBC0,0x8CD1,0x0000, /* 0CCF */
+0xFBC0,0x8CD2,0x0000, 0xFBC0,0x8CD3,0x0000, 0xFBC0,0x8CD4,0x0000, /* 0CD2 */
+0x1DBD,0x0000,0x0000, 0x1DBE,0x0000,0x0000, 0xFBC0,0x8CD7,0x0000, /* 0CD5 */
+0xFBC0,0x8CD8,0x0000, 0xFBC0,0x8CD9,0x0000, 0xFBC0,0x8CDA,0x0000, /* 0CD8 */
+0xFBC0,0x8CDB,0x0000, 0xFBC0,0x8CDC,0x0000, 0xFBC0,0x8CDD,0x0000, /* 0CDB */
+0x1DAB,0x0000,0x0000, 0xFBC0,0x8CDF,0x0000, 0x1D7F,0x0000,0x0000, /* 0CDE */
+0x1D81,0x0000,0x0000, 0x1DB4,0x0000,0x0000, 0x1DB5,0x0000,0x0000, /* 0CE1 */
+0xFBC0,0x8CE4,0x0000, 0xFBC0,0x8CE5,0x0000, 0x1205,0x0000,0x0000, /* 0CE4 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0CE7 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0CEA */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0CED */
+0xFBC0,0x8CF0,0x0000, 0x045D,0x0000,0x0000, 0x045E,0x0000,0x0000, /* 0CF0 */
+0xFBC0,0x8CF3,0x0000, 0xFBC0,0x8CF4,0x0000, 0xFBC0,0x8CF5,0x0000, /* 0CF3 */
+0xFBC0,0x8CF6,0x0000, 0xFBC0,0x8CF7,0x0000, 0xFBC0,0x8CF8,0x0000, /* 0CF6 */
+0xFBC0,0x8CF9,0x0000, 0xFBC0,0x8CFA,0x0000, 0xFBC0,0x8CFB,0x0000, /* 0CF9 */
+0xFBC0,0x8CFC,0x0000, 0xFBC0,0x8CFD,0x0000, 0xFBC0,0x8CFE,0x0000, /* 0CFC */
+0xFBC0,0x8CFF,0x0000 };
+
+static const uint16 uca520_p00D[]= { /* 0D00 (3 weights per char) */
+0xFBC0,0x8D00,0x0000, 0xFBC0,0x8D01,0x0000, 0x0000,0x0000,0x0000, /* 0D00 */
+0x0000,0x0000,0x0000, 0xFBC0,0x8D04,0x0000, 0x1DBF,0x0000,0x0000, /* 0D03 */
+0x1DC0,0x0000,0x0000, 0x1DC1,0x0000,0x0000, 0x1DC2,0x0000,0x0000, /* 0D06 */
+0x1DC3,0x0000,0x0000, 0x1DC4,0x0000,0x0000, 0x1DC5,0x0000,0x0000, /* 0D09 */
+0x1DC7,0x0000,0x0000, 0xFBC0,0x8D0D,0x0000, 0x1DC9,0x0000,0x0000, /* 0D0C */
+0x1DCA,0x0000,0x0000, 0x1DCB,0x0000,0x0000, 0xFBC0,0x8D11,0x0000, /* 0D0F */
+0x1DCC,0x0000,0x0000, 0x1DCD,0x0000,0x0000, 0x1DCE,0x0000,0x0000, /* 0D12 */
+0x1DCF,0x0000,0x0000, 0x1DD0,0x0000,0x0000, 0x1DD1,0x0000,0x0000, /* 0D15 */
+0x1DD2,0x0000,0x0000, 0x1DD3,0x0000,0x0000, 0x1DD4,0x0000,0x0000, /* 0D18 */
+0x1DD5,0x0000,0x0000, 0x1DD6,0x0000,0x0000, 0x1DD7,0x0000,0x0000, /* 0D1B */
+0x1DD8,0x0000,0x0000, 0x1DD9,0x0000,0x0000, 0x1DDA,0x0000,0x0000, /* 0D1E */
+0x1DDB,0x0000,0x0000, 0x1DDC,0x0000,0x0000, 0x1DDD,0x0000,0x0000, /* 0D21 */
+0x1DDE,0x0000,0x0000, 0x1DDF,0x0000,0x0000, 0x1DE0,0x0000,0x0000, /* 0D24 */
+0x1DE1,0x0000,0x0000, 0x1DE2,0x0000,0x0000, 0xFBC0,0x8D29,0x0000, /* 0D27 */
+0x1DE3,0x0000,0x0000, 0x1DE4,0x0000,0x0000, 0x1DE5,0x0000,0x0000, /* 0D2A */
+0x1DE6,0x0000,0x0000, 0x1DE7,0x0000,0x0000, 0x1DE8,0x0000,0x0000, /* 0D2D */
+0x1DE9,0x0000,0x0000, 0x1DF2,0x0000,0x0000, 0x1DEA,0x0000,0x0000, /* 0D30 */
+0x1DF0,0x0000,0x0000, 0x1DF1,0x0000,0x0000, 0x1DEB,0x0000,0x0000, /* 0D33 */
+0x1DEC,0x0000,0x0000, 0x1DED,0x0000,0x0000, 0x1DEE,0x0000,0x0000, /* 0D36 */
+0x1DEF,0x0000,0x0000, 0xFBC0,0x8D3A,0x0000, 0xFBC0,0x8D3B,0x0000, /* 0D39 */
+0xFBC0,0x8D3C,0x0000, 0x1DF3,0x0000,0x0000, 0x1DF4,0x0000,0x0000, /* 0D3C */
+0x1DF5,0x0000,0x0000, 0x1DF6,0x0000,0x0000, 0x1DF7,0x0000,0x0000, /* 0D3F */
+0x1DF8,0x0000,0x0000, 0x1DF9,0x0000,0x0000, 0x1DFA,0x0000,0x0000, /* 0D42 */
+0xFBC0,0x8D45,0x0000, 0x1DFD,0x0000,0x0000, 0x1DFE,0x0000,0x0000, /* 0D45 */
+0x1DFF,0x0000,0x0000, 0xFBC0,0x8D49,0x0000, 0x1E00,0x0000,0x0000, /* 0D48 */
+0x1E01,0x0000,0x0000, 0x1E02,0x0000,0x0000, 0x1E04,0x0000,0x0000, /* 0D4B */
+0xFBC0,0x8D4E,0x0000, 0xFBC0,0x8D4F,0x0000, 0xFBC0,0x8D50,0x0000, /* 0D4E */
+0xFBC0,0x8D51,0x0000, 0xFBC0,0x8D52,0x0000, 0xFBC0,0x8D53,0x0000, /* 0D51 */
+0xFBC0,0x8D54,0x0000, 0xFBC0,0x8D55,0x0000, 0xFBC0,0x8D56,0x0000, /* 0D54 */
+0x1E03,0x0000,0x0000, 0xFBC0,0x8D58,0x0000, 0xFBC0,0x8D59,0x0000, /* 0D57 */
+0xFBC0,0x8D5A,0x0000, 0xFBC0,0x8D5B,0x0000, 0xFBC0,0x8D5C,0x0000, /* 0D5A */
+0xFBC0,0x8D5D,0x0000, 0xFBC0,0x8D5E,0x0000, 0xFBC0,0x8D5F,0x0000, /* 0D5D */
+0x1DC6,0x0000,0x0000, 0x1DC8,0x0000,0x0000, 0x1DFB,0x0000,0x0000, /* 0D60 */
+0x1DFC,0x0000,0x0000, 0xFBC0,0x8D64,0x0000, 0xFBC0,0x8D65,0x0000, /* 0D63 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 0D66 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 0D69 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 0D6C */
+0x120E,0x0000,0x0000, 0x111F,0x0000,0x0000, 0x1120,0x0000,0x0000, /* 0D6F */
+0x1121,0x0000,0x0000, 0x1122,0x0000,0x0000, 0x1123,0x0000,0x0000, /* 0D72 */
+0x1124,0x0000,0x0000, 0xFBC0,0x8D76,0x0000, 0xFBC0,0x8D77,0x0000, /* 0D75 */
+0xFBC0,0x8D78,0x0000, 0x045F,0x0000,0x0000, 0x1DDD,0x1E04,0x0000, /* 0D78 */
+0x1DE2,0x1E04,0x0000, 0x1DE9,0x1E04,0x0000, 0x1DEA,0x1E04,0x0000, /* 0D7B */
+0x1DF0,0x1E04,0x0000, 0x1DCF,0x1E04,0x0000, 0xFBC0,0x8D80,0x0000, /* 0D7E */
+0xFBC0,0x8D81,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0D81 */
+0xFBC0,0x8D84,0x0000, 0x1E05,0x0000,0x0000, 0x1E06,0x0000,0x0000, /* 0D84 */
+0x1E07,0x0000,0x0000, 0x1E08,0x0000,0x0000, 0x1E09,0x0000,0x0000, /* 0D87 */
+0x1E0A,0x0000,0x0000, 0x1E0B,0x0000,0x0000, 0x1E0C,0x0000,0x0000, /* 0D8A */
+0x1E0D,0x0000,0x0000, 0x1E0E,0x0000,0x0000, 0x1E0F,0x0000,0x0000, /* 0D8D */
+0x1E10,0x0000,0x0000, 0x1E11,0x0000,0x0000, 0x1E12,0x0000,0x0000, /* 0D90 */
+0x1E13,0x0000,0x0000, 0x1E14,0x0000,0x0000, 0x1E15,0x0000,0x0000, /* 0D93 */
+0x1E16,0x0000,0x0000, 0xFBC0,0x8D97,0x0000, 0xFBC0,0x8D98,0x0000, /* 0D96 */
+0xFBC0,0x8D99,0x0000, 0x1E17,0x0000,0x0000, 0x1E18,0x0000,0x0000, /* 0D99 */
+0x1E19,0x0000,0x0000, 0x1E1A,0x0000,0x0000, 0x1E1B,0x0000,0x0000, /* 0D9C */
+0x1E1C,0x0000,0x0000, 0x1E1D,0x0000,0x0000, 0x1E1E,0x0000,0x0000, /* 0D9F */
+0x1E1F,0x0000,0x0000, 0x1E20,0x0000,0x0000, 0x1E21,0x0000,0x0000, /* 0DA2 */
+0x1E22,0x0000,0x0000, 0x1E23,0x0000,0x0000, 0x1E24,0x0000,0x0000, /* 0DA5 */
+0x1E25,0x0000,0x0000, 0x1E26,0x0000,0x0000, 0x1E27,0x0000,0x0000, /* 0DA8 */
+0x1E28,0x0000,0x0000, 0x1E29,0x0000,0x0000, 0x1E2A,0x0000,0x0000, /* 0DAB */
+0x1E2B,0x0000,0x0000, 0x1E2C,0x0000,0x0000, 0x1E2D,0x0000,0x0000, /* 0DAE */
+0x1E2E,0x0000,0x0000, 0xFBC0,0x8DB2,0x0000, 0x1E2F,0x0000,0x0000, /* 0DB1 */
+0x1E30,0x0000,0x0000, 0x1E31,0x0000,0x0000, 0x1E32,0x0000,0x0000, /* 0DB4 */
+0x1E33,0x0000,0x0000, 0x1E34,0x0000,0x0000, 0x1E35,0x0000,0x0000, /* 0DB7 */
+0x1E36,0x0000,0x0000, 0x1E37,0x0000,0x0000, 0xFBC0,0x8DBC,0x0000, /* 0DBA */
+0x1E38,0x0000,0x0000, 0xFBC0,0x8DBE,0x0000, 0xFBC0,0x8DBF,0x0000, /* 0DBD */
+0x1E39,0x0000,0x0000, 0x1E3A,0x0000,0x0000, 0x1E3B,0x0000,0x0000, /* 0DC0 */
+0x1E3C,0x0000,0x0000, 0x1E3D,0x0000,0x0000, 0x1E3E,0x0000,0x0000, /* 0DC3 */
+0x1E3F,0x0000,0x0000, 0xFBC0,0x8DC7,0x0000, 0xFBC0,0x8DC8,0x0000, /* 0DC6 */
+0xFBC0,0x8DC9,0x0000, 0x1E51,0x0000,0x0000, 0xFBC0,0x8DCB,0x0000, /* 0DC9 */
+0xFBC0,0x8DCC,0x0000, 0xFBC0,0x8DCD,0x0000, 0xFBC0,0x8DCE,0x0000, /* 0DCC */
+0x1E40,0x0000,0x0000, 0x1E41,0x0000,0x0000, 0x1E42,0x0000,0x0000, /* 0DCF */
+0x1E43,0x0000,0x0000, 0x1E44,0x0000,0x0000, 0x1E45,0x0000,0x0000, /* 0DD2 */
+0xFBC0,0x8DD5,0x0000, 0x1E46,0x0000,0x0000, 0xFBC0,0x8DD7,0x0000, /* 0DD5 */
+0x1E47,0x0000,0x0000, 0x1E4B,0x0000,0x0000, 0x1E4C,0x0000,0x0000, /* 0DD8 */
+0x1E4D,0x0000,0x0000, 0x1E4E,0x0000,0x0000, 0x1E4F,0x0000,0x0000, /* 0DDB */
+0x1E50,0x0000,0x0000, 0x1E49,0x0000,0x0000, 0xFBC0,0x8DE0,0x0000, /* 0DDE */
+0xFBC0,0x8DE1,0x0000, 0xFBC0,0x8DE2,0x0000, 0xFBC0,0x8DE3,0x0000, /* 0DE1 */
+0xFBC0,0x8DE4,0x0000, 0xFBC0,0x8DE5,0x0000, 0xFBC0,0x8DE6,0x0000, /* 0DE4 */
+0xFBC0,0x8DE7,0x0000, 0xFBC0,0x8DE8,0x0000, 0xFBC0,0x8DE9,0x0000, /* 0DE7 */
+0xFBC0,0x8DEA,0x0000, 0xFBC0,0x8DEB,0x0000, 0xFBC0,0x8DEC,0x0000, /* 0DEA */
+0xFBC0,0x8DED,0x0000, 0xFBC0,0x8DEE,0x0000, 0xFBC0,0x8DEF,0x0000, /* 0DED */
+0xFBC0,0x8DF0,0x0000, 0xFBC0,0x8DF1,0x0000, 0x1E48,0x0000,0x0000, /* 0DF0 */
+0x1E4A,0x0000,0x0000, 0x03A5,0x0000,0x0000, 0xFBC0,0x8DF5,0x0000, /* 0DF3 */
+0xFBC0,0x8DF6,0x0000, 0xFBC0,0x8DF7,0x0000, 0xFBC0,0x8DF8,0x0000, /* 0DF6 */
+0xFBC0,0x8DF9,0x0000, 0xFBC0,0x8DFA,0x0000, 0xFBC0,0x8DFB,0x0000, /* 0DF9 */
+0xFBC0,0x8DFC,0x0000, 0xFBC0,0x8DFD,0x0000, 0xFBC0,0x8DFE,0x0000, /* 0DFC */
+0xFBC0,0x8DFF,0x0000 };
+
+static const uint16 uca520_p00E[]= { /* 0E00 (3 weights per char) */
+0xFBC0,0x8E00,0x0000, 0x1F70,0x0000,0x0000, 0x1F71,0x0000,0x0000, /* 0E00 */
+0x1F72,0x0000,0x0000, 0x1F73,0x0000,0x0000, 0x1F74,0x0000,0x0000, /* 0E03 */
+0x1F75,0x0000,0x0000, 0x1F76,0x0000,0x0000, 0x1F77,0x0000,0x0000, /* 0E06 */
+0x1F78,0x0000,0x0000, 0x1F79,0x0000,0x0000, 0x1F7A,0x0000,0x0000, /* 0E09 */
+0x1F7B,0x0000,0x0000, 0x1F7C,0x0000,0x0000, 0x1F7D,0x0000,0x0000, /* 0E0C */
+0x1F7E,0x0000,0x0000, 0x1F7F,0x0000,0x0000, 0x1F80,0x0000,0x0000, /* 0E0F */
+0x1F81,0x0000,0x0000, 0x1F82,0x0000,0x0000, 0x1F83,0x0000,0x0000, /* 0E12 */
+0x1F84,0x0000,0x0000, 0x1F85,0x0000,0x0000, 0x1F86,0x0000,0x0000, /* 0E15 */
+0x1F87,0x0000,0x0000, 0x1F88,0x0000,0x0000, 0x1F89,0x0000,0x0000, /* 0E18 */
+0x1F8A,0x0000,0x0000, 0x1F8B,0x0000,0x0000, 0x1F8C,0x0000,0x0000, /* 0E1B */
+0x1F8D,0x0000,0x0000, 0x1F8E,0x0000,0x0000, 0x1F8F,0x0000,0x0000, /* 0E1E */
+0x1F90,0x0000,0x0000, 0x1F91,0x0000,0x0000, 0x1F92,0x0000,0x0000, /* 0E21 */
+0x1F93,0x0000,0x0000, 0x1F94,0x0000,0x0000, 0x1F95,0x0000,0x0000, /* 0E24 */
+0x1F96,0x0000,0x0000, 0x1F97,0x0000,0x0000, 0x1F98,0x0000,0x0000, /* 0E27 */
+0x1F99,0x0000,0x0000, 0x1F9A,0x0000,0x0000, 0x1F9B,0x0000,0x0000, /* 0E2A */
+0x1F9C,0x0000,0x0000, 0x1F9D,0x0000,0x0000, 0x1F9E,0x0000,0x0000, /* 0E2D */
+0x1F9F,0x0000,0x0000, 0x1FA0,0x0000,0x0000, 0x1FA1,0x0000,0x0000, /* 0E30 */
+0x1FA2,0x0000,0x0000, 0x1FA3,0x0000,0x0000, 0x1FA4,0x0000,0x0000, /* 0E33 */
+0x1FA5,0x0000,0x0000, 0x1FA6,0x0000,0x0000, 0x1FA7,0x0000,0x0000, /* 0E36 */
+0x1FA8,0x0000,0x0000, 0x1FA9,0x0000,0x0000, 0xFBC0,0x8E3B,0x0000, /* 0E39 */
+0xFBC0,0x8E3C,0x0000, 0xFBC0,0x8E3D,0x0000, 0xFBC0,0x8E3E,0x0000, /* 0E3C */
+0x11EB,0x0000,0x0000, 0x1FAA,0x0000,0x0000, 0x1FAB,0x0000,0x0000, /* 0E3F */
+0x1FAC,0x0000,0x0000, 0x1FAD,0x0000,0x0000, 0x1FAE,0x0000,0x0000, /* 0E42 */
+0x1FAF,0x0000,0x0000, 0x11D1,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E45 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E48 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0E4B */
+0x0000,0x0000,0x0000, 0x0467,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 0E4E */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0E51 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0E54 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0E57 */
+0x03A6,0x0000,0x0000, 0x03A7,0x0000,0x0000, 0xFBC0,0x8E5C,0x0000, /* 0E5A */
+0xFBC0,0x8E5D,0x0000, 0xFBC0,0x8E5E,0x0000, 0xFBC0,0x8E5F,0x0000, /* 0E5D */
+0xFBC0,0x8E60,0x0000, 0xFBC0,0x8E61,0x0000, 0xFBC0,0x8E62,0x0000, /* 0E60 */
+0xFBC0,0x8E63,0x0000, 0xFBC0,0x8E64,0x0000, 0xFBC0,0x8E65,0x0000, /* 0E63 */
+0xFBC0,0x8E66,0x0000, 0xFBC0,0x8E67,0x0000, 0xFBC0,0x8E68,0x0000, /* 0E66 */
+0xFBC0,0x8E69,0x0000, 0xFBC0,0x8E6A,0x0000, 0xFBC0,0x8E6B,0x0000, /* 0E69 */
+0xFBC0,0x8E6C,0x0000, 0xFBC0,0x8E6D,0x0000, 0xFBC0,0x8E6E,0x0000, /* 0E6C */
+0xFBC0,0x8E6F,0x0000, 0xFBC0,0x8E70,0x0000, 0xFBC0,0x8E71,0x0000, /* 0E6F */
+0xFBC0,0x8E72,0x0000, 0xFBC0,0x8E73,0x0000, 0xFBC0,0x8E74,0x0000, /* 0E72 */
+0xFBC0,0x8E75,0x0000, 0xFBC0,0x8E76,0x0000, 0xFBC0,0x8E77,0x0000, /* 0E75 */
+0xFBC0,0x8E78,0x0000, 0xFBC0,0x8E79,0x0000, 0xFBC0,0x8E7A,0x0000, /* 0E78 */
+0xFBC0,0x8E7B,0x0000, 0xFBC0,0x8E7C,0x0000, 0xFBC0,0x8E7D,0x0000, /* 0E7B */
+0xFBC0,0x8E7E,0x0000, 0xFBC0,0x8E7F,0x0000, 0xFBC0,0x8E80,0x0000, /* 0E7E */
+0x1FB0,0x0000,0x0000, 0x1FB1,0x0000,0x0000, 0xFBC0,0x8E83,0x0000, /* 0E81 */
+0x1FB2,0x0000,0x0000, 0xFBC0,0x8E85,0x0000, 0xFBC0,0x8E86,0x0000, /* 0E84 */
+0x1FB3,0x0000,0x0000, 0x1FB4,0x0000,0x0000, 0xFBC0,0x8E89,0x0000, /* 0E87 */
+0x1FB6,0x0000,0x0000, 0xFBC0,0x8E8B,0x0000, 0xFBC0,0x8E8C,0x0000, /* 0E8A */
+0x1FB7,0x0000,0x0000, 0xFBC0,0x8E8E,0x0000, 0xFBC0,0x8E8F,0x0000, /* 0E8D */
+0xFBC0,0x8E90,0x0000, 0xFBC0,0x8E91,0x0000, 0xFBC0,0x8E92,0x0000, /* 0E90 */
+0xFBC0,0x8E93,0x0000, 0x1FB8,0x0000,0x0000, 0x1FB9,0x0000,0x0000, /* 0E93 */
+0x1FBA,0x0000,0x0000, 0x1FBB,0x0000,0x0000, 0xFBC0,0x8E98,0x0000, /* 0E96 */
+0x1FBC,0x0000,0x0000, 0x1FBD,0x0000,0x0000, 0x1FBE,0x0000,0x0000, /* 0E99 */
+0x1FBF,0x0000,0x0000, 0x1FC0,0x0000,0x0000, 0x1FC1,0x0000,0x0000, /* 0E9C */
+0x1FC2,0x0000,0x0000, 0xFBC0,0x8EA0,0x0000, 0x1FC3,0x0000,0x0000, /* 0E9F */
+0x1FC4,0x0000,0x0000, 0x1FC5,0x0000,0x0000, 0xFBC0,0x8EA4,0x0000, /* 0EA2 */
+0x1FC6,0x0000,0x0000, 0xFBC0,0x8EA6,0x0000, 0x1FC7,0x0000,0x0000, /* 0EA5 */
+0xFBC0,0x8EA8,0x0000, 0xFBC0,0x8EA9,0x0000, 0x1FB5,0x0000,0x0000, /* 0EA8 */
+0x1FC8,0x0000,0x0000, 0xFBC0,0x8EAC,0x0000, 0x1FC9,0x0000,0x0000, /* 0EAB */
+0x1FCA,0x0000,0x0000, 0x1FCB,0x0000,0x0000, 0x1FCC,0x0000,0x0000, /* 0EAE */
+0x1FCD,0x0000,0x0000, 0x1FCE,0x0000,0x0000, 0x1FCF,0x0000,0x0000, /* 0EB1 */
+0x1FD0,0x0000,0x0000, 0x1FD1,0x0000,0x0000, 0x1FD2,0x0000,0x0000, /* 0EB4 */
+0x1FD3,0x0000,0x0000, 0x1FD4,0x0000,0x0000, 0x1FD5,0x0000,0x0000, /* 0EB7 */
+0xFBC0,0x8EBA,0x0000, 0x1FD6,0x0000,0x0000, 0x1FD7,0x0000,0x0000, /* 0EBA */
+0x1FD8,0x0000,0x0000, 0xFBC0,0x8EBE,0x0000, 0xFBC0,0x8EBF,0x0000, /* 0EBD */
+0x1FD9,0x0000,0x0000, 0x1FDA,0x0000,0x0000, 0x1FDB,0x0000,0x0000, /* 0EC0 */
+0x1FDC,0x0000,0x0000, 0x1FDD,0x0000,0x0000, 0xFBC0,0x8EC5,0x0000, /* 0EC3 */
+0x11D2,0x0000,0x0000, 0xFBC0,0x8EC7,0x0000, 0x0000,0x0000,0x0000, /* 0EC6 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0EC9 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x8ECE,0x0000, /* 0ECC */
+0xFBC0,0x8ECF,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 0ECF */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 0ED2 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 0ED5 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x8EDA,0x0000, /* 0ED8 */
+0xFBC0,0x8EDB,0x0000, 0x1FC8,0x1FBC,0x0000, 0x1FC8,0x1FC3,0x0000, /* 0EDB */
+0xFBC0,0x8EDE,0x0000, 0xFBC0,0x8EDF,0x0000, 0xFBC0,0x8EE0,0x0000, /* 0EDE */
+0xFBC0,0x8EE1,0x0000, 0xFBC0,0x8EE2,0x0000, 0xFBC0,0x8EE3,0x0000, /* 0EE1 */
+0xFBC0,0x8EE4,0x0000, 0xFBC0,0x8EE5,0x0000, 0xFBC0,0x8EE6,0x0000, /* 0EE4 */
+0xFBC0,0x8EE7,0x0000, 0xFBC0,0x8EE8,0x0000, 0xFBC0,0x8EE9,0x0000, /* 0EE7 */
+0xFBC0,0x8EEA,0x0000, 0xFBC0,0x8EEB,0x0000, 0xFBC0,0x8EEC,0x0000, /* 0EEA */
+0xFBC0,0x8EED,0x0000, 0xFBC0,0x8EEE,0x0000, 0xFBC0,0x8EEF,0x0000, /* 0EED */
+0xFBC0,0x8EF0,0x0000, 0xFBC0,0x8EF1,0x0000, 0xFBC0,0x8EF2,0x0000, /* 0EF0 */
+0xFBC0,0x8EF3,0x0000, 0xFBC0,0x8EF4,0x0000, 0xFBC0,0x8EF5,0x0000, /* 0EF3 */
+0xFBC0,0x8EF6,0x0000, 0xFBC0,0x8EF7,0x0000, 0xFBC0,0x8EF8,0x0000, /* 0EF6 */
+0xFBC0,0x8EF9,0x0000, 0xFBC0,0x8EFA,0x0000, 0xFBC0,0x8EFB,0x0000, /* 0EF9 */
+0xFBC0,0x8EFC,0x0000, 0xFBC0,0x8EFD,0x0000, 0xFBC0,0x8EFE,0x0000, /* 0EFC */
+0xFBC0,0x8EFF,0x0000 };
+
+static const uint16 uca520_p00F[]= { /* 0F00 (3 weights per char) */
+0x2067,0x207A,0x0000, 0x0468,0x0000,0x0000, 0x0469,0x0000,0x0000, /* 0F00 */
+0x046A,0x0000,0x0000, 0x03AA,0x0000,0x0000, 0x03AB,0x0000,0x0000, /* 0F03 */
+0x03AC,0x0000,0x0000, 0x03AD,0x0000,0x0000, 0x03AE,0x0000,0x0000, /* 0F06 */
+0x03AF,0x0000,0x0000, 0x03B0,0x0000,0x0000, 0x03B3,0x0000,0x0000, /* 0F09 */
+0x03B3,0x0000,0x0000, 0x03B4,0x0000,0x0000, 0x03B5,0x0000,0x0000, /* 0F0C */
+0x03B6,0x0000,0x0000, 0x03B7,0x0000,0x0000, 0x03B8,0x0000,0x0000, /* 0F0F */
+0x03B9,0x0000,0x0000, 0x046B,0x0000,0x0000, 0x0266,0x0000,0x0000, /* 0F12 */
+0x046C,0x0000,0x0000, 0x046D,0x0000,0x0000, 0x046E,0x0000,0x0000, /* 0F15 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x046F,0x0000,0x0000, /* 0F18 */
+0x0470,0x0000,0x0000, 0x0471,0x0000,0x0000, 0x0472,0x0000,0x0000, /* 0F1B */
+0x0473,0x0000,0x0000, 0x0474,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 0F1E */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0F21 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0F24 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0F27 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 0F2A */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 0F2D */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 0F30 */
+0x1205,0x0000,0x0000, 0x0475,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F33 */
+0x0476,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0477,0x0000,0x0000, /* 0F36 */
+0x0000,0x0000,0x0000, 0x0305,0x0000,0x0000, 0x0306,0x0000,0x0000, /* 0F39 */
+0x0307,0x0000,0x0000, 0x0308,0x0000,0x0000, 0x0478,0x0000,0x0000, /* 0F3C */
+0x0479,0x0000,0x0000, 0x2021,0x0000,0x0000, 0x2024,0x0000,0x0000, /* 0F3F */
+0x2026,0x0000,0x0000, 0x2026,0x2066,0x0000, 0x2028,0x0000,0x0000, /* 0F42 */
+0x202A,0x0000,0x0000, 0x202C,0x0000,0x0000, 0x202E,0x0000,0x0000, /* 0F45 */
+0xFBC0,0x8F48,0x0000, 0x2030,0x0000,0x0000, 0x2032,0x0000,0x0000, /* 0F48 */
+0x2034,0x0000,0x0000, 0x2036,0x0000,0x0000, 0x2036,0x2066,0x0000, /* 0F4B */
+0x2038,0x0000,0x0000, 0x203A,0x0000,0x0000, 0x203C,0x0000,0x0000, /* 0F4E */
+0x203E,0x0000,0x0000, 0x203E,0x2066,0x0000, 0x2040,0x0000,0x0000, /* 0F51 */
+0x2042,0x0000,0x0000, 0x2044,0x0000,0x0000, 0x2046,0x0000,0x0000, /* 0F54 */
+0x2046,0x2066,0x0000, 0x2048,0x0000,0x0000, 0x204A,0x0000,0x0000, /* 0F57 */
+0x204C,0x0000,0x0000, 0x204E,0x0000,0x0000, 0x204E,0x2066,0x0000, /* 0F5A */
+0x2050,0x0000,0x0000, 0x2052,0x0000,0x0000, 0x2054,0x0000,0x0000, /* 0F5D */
+0x2056,0x0000,0x0000, 0x2058,0x0000,0x0000, 0x205A,0x0000,0x0000, /* 0F60 */
+0x205D,0x0000,0x0000, 0x205F,0x0000,0x0000, 0x2061,0x0000,0x0000, /* 0F63 */
+0x2063,0x0000,0x0000, 0x2065,0x0000,0x0000, 0x2067,0x0000,0x0000, /* 0F66 */
+0x2021,0x2062,0x0000, 0x205A,0x0000,0x0000, 0x2023,0x0000,0x0000, /* 0F69 */
+0x205C,0x0000,0x0000, 0xFBC0,0x8F6D,0x0000, 0xFBC0,0x8F6E,0x0000, /* 0F6C */
+0xFBC0,0x8F6F,0x0000, 0xFBC0,0x8F70,0x0000, 0x206D,0x0000,0x0000, /* 0F6F */
+0x206E,0x0000,0x0000, 0x206F,0x0000,0x0000, 0x2072,0x0000,0x0000, /* 0F72 */
+0x2073,0x0000,0x0000, 0x2074,0x0000,0x0000, 0x2075,0x0000,0x0000, /* 0F75 */
+0x2076,0x0000,0x0000, 0x2077,0x0000,0x0000, 0x2078,0x0000,0x0000, /* 0F78 */
+0x2079,0x0000,0x0000, 0x207A,0x0000,0x0000, 0x207B,0x0000,0x0000, /* 0F7B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x2070,0x0000,0x0000, /* 0F7E */
+0x2071,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F81 */
+0x207C,0x0000,0x0000, 0x03BA,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0F84 */
+0x0000,0x0000,0x0000, 0x2069,0x0000,0x0000, 0x206A,0x0000,0x0000, /* 0F87 */
+0x206B,0x0000,0x0000, 0x206C,0x0000,0x0000, 0xFBC0,0x8F8C,0x0000, /* 0F8A */
+0xFBC0,0x8F8D,0x0000, 0xFBC0,0x8F8E,0x0000, 0xFBC0,0x8F8F,0x0000, /* 0F8D */
+0x2022,0x0000,0x0000, 0x2025,0x0000,0x0000, 0x2027,0x0000,0x0000, /* 0F90 */
+0x2027,0x2066,0x0000, 0x2029,0x0000,0x0000, 0x202B,0x0000,0x0000, /* 0F93 */
+0x202D,0x0000,0x0000, 0x202F,0x0000,0x0000, 0xFBC0,0x8F98,0x0000, /* 0F96 */
+0x2031,0x0000,0x0000, 0x2033,0x0000,0x0000, 0x2035,0x0000,0x0000, /* 0F99 */
+0x2037,0x0000,0x0000, 0x2037,0x2066,0x0000, 0x2039,0x0000,0x0000, /* 0F9C */
+0x203B,0x0000,0x0000, 0x203D,0x0000,0x0000, 0x203F,0x0000,0x0000, /* 0F9F */
+0x203F,0x2066,0x0000, 0x2041,0x0000,0x0000, 0x2043,0x0000,0x0000, /* 0FA2 */
+0x2045,0x0000,0x0000, 0x2047,0x0000,0x0000, 0x2047,0x2066,0x0000, /* 0FA5 */
+0x2049,0x0000,0x0000, 0x204B,0x0000,0x0000, 0x204D,0x0000,0x0000, /* 0FA8 */
+0x204F,0x0000,0x0000, 0x204F,0x2066,0x0000, 0x2051,0x0000,0x0000, /* 0FAB */
+0x2053,0x0000,0x0000, 0x2055,0x0000,0x0000, 0x2057,0x0000,0x0000, /* 0FAE */
+0x2059,0x0000,0x0000, 0x205B,0x0000,0x0000, 0x205E,0x0000,0x0000, /* 0FB1 */
+0x2060,0x0000,0x0000, 0x2062,0x0000,0x0000, 0x2064,0x0000,0x0000, /* 0FB4 */
+0x2066,0x0000,0x0000, 0x2068,0x0000,0x0000, 0x2022,0x2062,0x0000, /* 0FB7 */
+0x2051,0x0000,0x0000, 0x2059,0x0000,0x0000, 0x205B,0x0000,0x0000, /* 0FBA */
+0xFBC0,0x8FBD,0x0000, 0x047A,0x0000,0x0000, 0x047B,0x0000,0x0000, /* 0FBD */
+0x047C,0x0000,0x0000, 0x047D,0x0000,0x0000, 0x047E,0x0000,0x0000, /* 0FC0 */
+0x047F,0x0000,0x0000, 0x0480,0x0000,0x0000, 0x0481,0x0000,0x0000, /* 0FC3 */
+0x0000,0x0000,0x0000, 0x0482,0x0000,0x0000, 0x0483,0x0000,0x0000, /* 0FC6 */
+0x0484,0x0000,0x0000, 0x0485,0x0000,0x0000, 0x0486,0x0000,0x0000, /* 0FC9 */
+0x0487,0x0000,0x0000, 0xFBC0,0x8FCD,0x0000, 0x0488,0x0000,0x0000, /* 0FCC */
+0x0489,0x0000,0x0000, 0x03B1,0x0000,0x0000, 0x03B2,0x0000,0x0000, /* 0FCF */
+0x03BB,0x0000,0x0000, 0x03BC,0x0000,0x0000, 0x03BD,0x0000,0x0000, /* 0FD2 */
+0x048A,0x0000,0x0000, 0x048B,0x0000,0x0000, 0x048C,0x0000,0x0000, /* 0FD5 */
+0x048D,0x0000,0x0000, 0xFBC0,0x8FD9,0x0000, 0xFBC0,0x8FDA,0x0000, /* 0FD8 */
+0xFBC0,0x8FDB,0x0000, 0xFBC0,0x8FDC,0x0000, 0xFBC0,0x8FDD,0x0000, /* 0FDB */
+0xFBC0,0x8FDE,0x0000, 0xFBC0,0x8FDF,0x0000, 0xFBC0,0x8FE0,0x0000, /* 0FDE */
+0xFBC0,0x8FE1,0x0000, 0xFBC0,0x8FE2,0x0000, 0xFBC0,0x8FE3,0x0000, /* 0FE1 */
+0xFBC0,0x8FE4,0x0000, 0xFBC0,0x8FE5,0x0000, 0xFBC0,0x8FE6,0x0000, /* 0FE4 */
+0xFBC0,0x8FE7,0x0000, 0xFBC0,0x8FE8,0x0000, 0xFBC0,0x8FE9,0x0000, /* 0FE7 */
+0xFBC0,0x8FEA,0x0000, 0xFBC0,0x8FEB,0x0000, 0xFBC0,0x8FEC,0x0000, /* 0FEA */
+0xFBC0,0x8FED,0x0000, 0xFBC0,0x8FEE,0x0000, 0xFBC0,0x8FEF,0x0000, /* 0FED */
+0xFBC0,0x8FF0,0x0000, 0xFBC0,0x8FF1,0x0000, 0xFBC0,0x8FF2,0x0000, /* 0FF0 */
+0xFBC0,0x8FF3,0x0000, 0xFBC0,0x8FF4,0x0000, 0xFBC0,0x8FF5,0x0000, /* 0FF3 */
+0xFBC0,0x8FF6,0x0000, 0xFBC0,0x8FF7,0x0000, 0xFBC0,0x8FF8,0x0000, /* 0FF6 */
+0xFBC0,0x8FF9,0x0000, 0xFBC0,0x8FFA,0x0000, 0xFBC0,0x8FFB,0x0000, /* 0FF9 */
+0xFBC0,0x8FFC,0x0000, 0xFBC0,0x8FFD,0x0000, 0xFBC0,0x8FFE,0x0000, /* 0FFC */
+0xFBC0,0x8FFF,0x0000 };
+
+static const uint16 uca520_p010[]= { /* 1000 (4 weights per char) */
+0x21CD,0x0000,0x0000,0x0000, 0x21CF,0x0000,0x0000,0x0000, /* 1000 */
+0x21D1,0x0000,0x0000,0x0000, 0x21D4,0x0000,0x0000,0x0000, /* 1002 */
+0x21D5,0x0000,0x0000,0x0000, 0x21D7,0x0000,0x0000,0x0000, /* 1004 */
+0x21DA,0x0000,0x0000,0x0000, 0x21DC,0x0000,0x0000,0x0000, /* 1006 */
+0x21E0,0x0000,0x0000,0x0000, 0x21E4,0x0000,0x0000,0x0000, /* 1008 */
+0x21E7,0x0000,0x0000,0x0000, 0x21E8,0x0000,0x0000,0x0000, /* 100A */
+0x21EA,0x0000,0x0000,0x0000, 0x21EC,0x0000,0x0000,0x0000, /* 100C */
+0x21EE,0x0000,0x0000,0x0000, 0x21F0,0x0000,0x0000,0x0000, /* 100E */
+0x21F2,0x0000,0x0000,0x0000, 0x21F3,0x0000,0x0000,0x0000, /* 1010 */
+0x21F4,0x0000,0x0000,0x0000, 0x21F6,0x0000,0x0000,0x0000, /* 1012 */
+0x21F8,0x0000,0x0000,0x0000, 0x21FC,0x0000,0x0000,0x0000, /* 1014 */
+0x21FD,0x0000,0x0000,0x0000, 0x2202,0x0000,0x0000,0x0000, /* 1016 */
+0x2204,0x0000,0x0000,0x0000, 0x2205,0x0000,0x0000,0x0000, /* 1018 */
+0x2207,0x0000,0x0000,0x0000, 0x2209,0x0000,0x0000,0x0000, /* 101A */
+0x220D,0x0000,0x0000,0x0000, 0x220F,0x0000,0x0000,0x0000, /* 101C */
+0x2216,0x0000,0x0000,0x0000, 0x2218,0x0000,0x0000,0x0000, /* 101E */
+0x221E,0x0000,0x0000,0x0000, 0x2224,0x0000,0x0000,0x0000, /* 1020 */
+0x2225,0x0000,0x0000,0x0000, 0x2226,0x0000,0x0000,0x0000, /* 1022 */
+0x2227,0x0000,0x0000,0x0000, 0x2228,0x0000,0x0000,0x0000, /* 1024 */
+0x2229,0x0000,0x0000,0x0000, 0x222E,0x0000,0x0000,0x0000, /* 1026 */
+0x222F,0x0000,0x0000,0x0000, 0x2230,0x0000,0x0000,0x0000, /* 1028 */
+0x2231,0x0000,0x0000,0x0000, 0x2232,0x0000,0x0000,0x0000, /* 102A */
+0x2232,0x0000,0x0000,0x0000, 0x2236,0x0000,0x0000,0x0000, /* 102C */
+0x2238,0x0000,0x0000,0x0000, 0x223A,0x0000,0x0000,0x0000, /* 102E */
+0x223D,0x0000,0x0000,0x0000, 0x2242,0x0000,0x0000,0x0000, /* 1030 */
+0x2246,0x0000,0x0000,0x0000, 0x2239,0x0000,0x0000,0x0000, /* 1032 */
+0x2248,0x0000,0x0000,0x0000, 0x2244,0x0000,0x0000,0x0000, /* 1034 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1036 */
+0x0000,0x0000,0x0000,0x0000, 0x224D,0x0000,0x0000,0x0000, /* 1038 */
+0x224E,0x0000,0x0000,0x0000, 0x2208,0x0000,0x0000,0x0000, /* 103A */
+0x220C,0x0000,0x0000,0x0000, 0x2210,0x0000,0x0000,0x0000, /* 103C */
+0x221B,0x0000,0x0000,0x0000, 0x2216,0x224D,0x2216,0x0000, /* 103E */
+0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1040 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1042 */
+0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1044 */
+0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1046 */
+0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1048 */
+0x029F,0x0000,0x0000,0x0000, 0x02A0,0x0000,0x0000,0x0000, /* 104A */
+0x03C2,0x0000,0x0000,0x0000, 0x03C3,0x0000,0x0000,0x0000, /* 104C */
+0x03C4,0x0000,0x0000,0x0000, 0x03C5,0x0000,0x0000,0x0000, /* 104E */
+0x2213,0x0000,0x0000,0x0000, 0x2214,0x0000,0x0000,0x0000, /* 1050 */
+0x222A,0x0000,0x0000,0x0000, 0x222B,0x0000,0x0000,0x0000, /* 1052 */
+0x222C,0x0000,0x0000,0x0000, 0x222D,0x0000,0x0000,0x0000, /* 1054 */
+0x223E,0x0000,0x0000,0x0000, 0x223F,0x0000,0x0000,0x0000, /* 1056 */
+0x2240,0x0000,0x0000,0x0000, 0x2241,0x0000,0x0000,0x0000, /* 1058 */
+0x21D6,0x0000,0x0000,0x0000, 0x21E1,0x0000,0x0000,0x0000, /* 105A */
+0x221F,0x0000,0x0000,0x0000, 0x2220,0x0000,0x0000,0x0000, /* 105C */
+0x21FB,0x0000,0x0000,0x0000, 0x2206,0x0000,0x0000,0x0000, /* 105E */
+0x220E,0x0000,0x0000,0x0000, 0x21E3,0x0000,0x0000,0x0000, /* 1060 */
+0x2249,0x0000,0x0000,0x0000, 0x224F,0x0000,0x0000,0x0000, /* 1062 */
+0x2250,0x0000,0x0000,0x0000, 0x2215,0x0000,0x0000,0x0000, /* 1064 */
+0x2223,0x0000,0x0000,0x0000, 0x224A,0x0000,0x0000,0x0000, /* 1066 */
+0x224B,0x0000,0x0000,0x0000, 0x2251,0x0000,0x0000,0x0000, /* 1068 */
+0x2252,0x0000,0x0000,0x0000, 0x2253,0x0000,0x0000,0x0000, /* 106A */
+0x2254,0x0000,0x0000,0x0000, 0x2255,0x0000,0x0000,0x0000, /* 106C */
+0x21F1,0x0000,0x0000,0x0000, 0x2221,0x0000,0x0000,0x0000, /* 106E */
+0x2222,0x0000,0x0000,0x0000, 0x2237,0x0000,0x0000,0x0000, /* 1070 */
+0x2234,0x0000,0x0000,0x0000, 0x223B,0x0000,0x0000,0x0000, /* 1072 */
+0x223C,0x0000,0x0000,0x0000, 0x21CE,0x0000,0x0000,0x0000, /* 1074 */
+0x21D0,0x0000,0x0000,0x0000, 0x21D2,0x0000,0x0000,0x0000, /* 1076 */
+0x21D8,0x0000,0x0000,0x0000, 0x21DE,0x0000,0x0000,0x0000, /* 1078 */
+0x21E5,0x0000,0x0000,0x0000, 0x21F5,0x0000,0x0000,0x0000, /* 107A */
+0x21F9,0x0000,0x0000,0x0000, 0x21FE,0x0000,0x0000,0x0000, /* 107C */
+0x21FF,0x0000,0x0000,0x0000, 0x2203,0x0000,0x0000,0x0000, /* 107E */
+0x2212,0x0000,0x0000,0x0000, 0x2219,0x0000,0x0000,0x0000, /* 1080 */
+0x2211,0x0000,0x0000,0x0000, 0x2233,0x0000,0x0000,0x0000, /* 1082 */
+0x2243,0x0000,0x0000,0x0000, 0x2245,0x0000,0x0000,0x0000, /* 1084 */
+0x224C,0x0000,0x0000,0x0000, 0x2256,0x0000,0x0000,0x0000, /* 1086 */
+0x2258,0x0000,0x0000,0x0000, 0x225A,0x0000,0x0000,0x0000, /* 1088 */
+0x225B,0x0000,0x0000,0x0000, 0x2257,0x0000,0x0000,0x0000, /* 108A */
+0x2259,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 108C */
+0x2201,0x0000,0x0000,0x0000, 0x225C,0x0000,0x0000,0x0000, /* 108E */
+0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1090 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1092 */
+0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1094 */
+0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1096 */
+0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1098 */
+0x225D,0x0000,0x0000,0x0000, 0x225E,0x0000,0x0000,0x0000, /* 109A */
+0x2235,0x0000,0x0000,0x0000, 0x2247,0x0000,0x0000,0x0000, /* 109C */
+0x03C6,0x0000,0x0000,0x0000, 0x03C7,0x0000,0x0000,0x0000, /* 109E */
+0x17E5,0x0000,0x0000,0x0000, 0x17E7,0x0000,0x0000,0x0000, /* 10A0 */
+0x17E9,0x0000,0x0000,0x0000, 0x17EB,0x0000,0x0000,0x0000, /* 10A2 */
+0x17ED,0x0000,0x0000,0x0000, 0x17EF,0x0000,0x0000,0x0000, /* 10A4 */
+0x17F1,0x0000,0x0000,0x0000, 0x17F5,0x0000,0x0000,0x0000, /* 10A6 */
+0x17F7,0x0000,0x0000,0x0000, 0x17F9,0x0000,0x0000,0x0000, /* 10A8 */
+0x17FB,0x0000,0x0000,0x0000, 0x17FD,0x0000,0x0000,0x0000, /* 10AA */
+0x17FF,0x0000,0x0000,0x0000, 0x1803,0x0000,0x0000,0x0000, /* 10AC */
+0x1805,0x0000,0x0000,0x0000, 0x1807,0x0000,0x0000,0x0000, /* 10AE */
+0x1809,0x0000,0x0000,0x0000, 0x180B,0x0000,0x0000,0x0000, /* 10B0 */
+0x180D,0x0000,0x0000,0x0000, 0x1811,0x0000,0x0000,0x0000, /* 10B2 */
+0x1813,0x0000,0x0000,0x0000, 0x1815,0x0000,0x0000,0x0000, /* 10B4 */
+0x1817,0x0000,0x0000,0x0000, 0x1819,0x0000,0x0000,0x0000, /* 10B6 */
+0x181B,0x0000,0x0000,0x0000, 0x181D,0x0000,0x0000,0x0000, /* 10B8 */
+0x181F,0x0000,0x0000,0x0000, 0x1821,0x0000,0x0000,0x0000, /* 10BA */
+0x1823,0x0000,0x0000,0x0000, 0x1825,0x0000,0x0000,0x0000, /* 10BC */
+0x1827,0x0000,0x0000,0x0000, 0x182B,0x0000,0x0000,0x0000, /* 10BE */
+0x182D,0x0000,0x0000,0x0000, 0x17F3,0x0000,0x0000,0x0000, /* 10C0 */
+0x1801,0x0000,0x0000,0x0000, 0x180F,0x0000,0x0000,0x0000, /* 10C2 */
+0x1829,0x0000,0x0000,0x0000, 0x182F,0x0000,0x0000,0x0000, /* 10C4 */
+0xFBC0,0x90C6,0x0000,0x0000, 0xFBC0,0x90C7,0x0000,0x0000, /* 10C6 */
+0xFBC0,0x90C8,0x0000,0x0000, 0xFBC0,0x90C9,0x0000,0x0000, /* 10C8 */
+0xFBC0,0x90CA,0x0000,0x0000, 0xFBC0,0x90CB,0x0000,0x0000, /* 10CA */
+0xFBC0,0x90CC,0x0000,0x0000, 0xFBC0,0x90CD,0x0000,0x0000, /* 10CC */
+0xFBC0,0x90CE,0x0000,0x0000, 0xFBC0,0x90CF,0x0000,0x0000, /* 10CE */
+0x17E4,0x0000,0x0000,0x0000, 0x17E6,0x0000,0x0000,0x0000, /* 10D0 */
+0x17E8,0x0000,0x0000,0x0000, 0x17EA,0x0000,0x0000,0x0000, /* 10D2 */
+0x17EC,0x0000,0x0000,0x0000, 0x17EE,0x0000,0x0000,0x0000, /* 10D4 */
+0x17F0,0x0000,0x0000,0x0000, 0x17F4,0x0000,0x0000,0x0000, /* 10D6 */
+0x17F6,0x0000,0x0000,0x0000, 0x17F8,0x0000,0x0000,0x0000, /* 10D8 */
+0x17FA,0x0000,0x0000,0x0000, 0x17FC,0x0000,0x0000,0x0000, /* 10DA */
+0x17FE,0x0000,0x0000,0x0000, 0x1802,0x0000,0x0000,0x0000, /* 10DC */
+0x1804,0x0000,0x0000,0x0000, 0x1806,0x0000,0x0000,0x0000, /* 10DE */
+0x1808,0x0000,0x0000,0x0000, 0x180A,0x0000,0x0000,0x0000, /* 10E0 */
+0x180C,0x0000,0x0000,0x0000, 0x1810,0x0000,0x0000,0x0000, /* 10E2 */
+0x1812,0x0000,0x0000,0x0000, 0x1814,0x0000,0x0000,0x0000, /* 10E4 */
+0x1816,0x0000,0x0000,0x0000, 0x1818,0x0000,0x0000,0x0000, /* 10E6 */
+0x181A,0x0000,0x0000,0x0000, 0x181C,0x0000,0x0000,0x0000, /* 10E8 */
+0x181E,0x0000,0x0000,0x0000, 0x1820,0x0000,0x0000,0x0000, /* 10EA */
+0x1822,0x0000,0x0000,0x0000, 0x1824,0x0000,0x0000,0x0000, /* 10EC */
+0x1826,0x0000,0x0000,0x0000, 0x182A,0x0000,0x0000,0x0000, /* 10EE */
+0x182C,0x0000,0x0000,0x0000, 0x17F2,0x0000,0x0000,0x0000, /* 10F0 */
+0x1800,0x0000,0x0000,0x0000, 0x180E,0x0000,0x0000,0x0000, /* 10F2 */
+0x1828,0x0000,0x0000,0x0000, 0x182E,0x0000,0x0000,0x0000, /* 10F4 */
+0x1830,0x0000,0x0000,0x0000, 0x1831,0x0000,0x0000,0x0000, /* 10F6 */
+0x1832,0x0000,0x0000,0x0000, 0x1833,0x0000,0x0000,0x0000, /* 10F8 */
+0x1834,0x0000,0x0000,0x0000, 0x02B7,0x0000,0x0000,0x0000, /* 10FA */
+0x17FE,0x0000,0x0000,0x0000, 0xFBC0,0x90FD,0x0000,0x0000, /* 10FC */
+0xFBC0,0x90FE,0x0000,0x0000, 0xFBC0,0x90FF,0x0000,0x0000 /* 10FE */
+};
+
+static const uint16 uca520_p011[]= { /* 1100 (2 weights per char) */
+0x29B0,0x0000, 0x29B1,0x0000, 0x29B2,0x0000, 0x29B3,0x0000, /* 1100 */
+0x29B4,0x0000, 0x29B5,0x0000, 0x29B6,0x0000, 0x29B7,0x0000, /* 1104 */
+0x29B8,0x0000, 0x29B9,0x0000, 0x29BA,0x0000, 0x29BB,0x0000, /* 1108 */
+0x29BC,0x0000, 0x29BD,0x0000, 0x29BE,0x0000, 0x29BF,0x0000, /* 110C */
+0x29C0,0x0000, 0x29C1,0x0000, 0x29C2,0x0000, 0x29C3,0x0000, /* 1110 */
+0x29C4,0x0000, 0x29C5,0x0000, 0x29C6,0x0000, 0x29C7,0x0000, /* 1114 */
+0x29C8,0x0000, 0x29C9,0x0000, 0x29CA,0x0000, 0x29CB,0x0000, /* 1118 */
+0x29CC,0x0000, 0x29CD,0x0000, 0x29CE,0x0000, 0x29CF,0x0000, /* 111C */
+0x29D0,0x0000, 0x29D1,0x0000, 0x29D2,0x0000, 0x29D3,0x0000, /* 1120 */
+0x29D4,0x0000, 0x29D5,0x0000, 0x29D6,0x0000, 0x29D7,0x0000, /* 1124 */
+0x29D8,0x0000, 0x29D9,0x0000, 0x29DA,0x0000, 0x29DB,0x0000, /* 1128 */
+0x29DC,0x0000, 0x29DD,0x0000, 0x29DE,0x0000, 0x29DF,0x0000, /* 112C */
+0x29E0,0x0000, 0x29E1,0x0000, 0x29E2,0x0000, 0x29E3,0x0000, /* 1130 */
+0x29E4,0x0000, 0x29E5,0x0000, 0x29E6,0x0000, 0x29E7,0x0000, /* 1134 */
+0x29E8,0x0000, 0x29E9,0x0000, 0x29EA,0x0000, 0x29EB,0x0000, /* 1138 */
+0x29EC,0x0000, 0x29ED,0x0000, 0x29EE,0x0000, 0x29EF,0x0000, /* 113C */
+0x29F0,0x0000, 0x29F1,0x0000, 0x29F2,0x0000, 0x29F3,0x0000, /* 1140 */
+0x29F4,0x0000, 0x29F5,0x0000, 0x29F6,0x0000, 0x29F7,0x0000, /* 1144 */
+0x29F8,0x0000, 0x29F9,0x0000, 0x29FA,0x0000, 0x29FB,0x0000, /* 1148 */
+0x29FC,0x0000, 0x29FD,0x0000, 0x29FE,0x0000, 0x29FF,0x0000, /* 114C */
+0x2A00,0x0000, 0x2A01,0x0000, 0x2A02,0x0000, 0x2A03,0x0000, /* 1150 */
+0x2A04,0x0000, 0x2A05,0x0000, 0x2A06,0x0000, 0x2A07,0x0000, /* 1154 */
+0x2A08,0x0000, 0x2A09,0x0000, 0x2A0A,0x0000, 0x2A0B,0x0000, /* 1158 */
+0x2A0C,0x0000, 0x2A0D,0x0000, 0x2A0E,0x0000, 0x2A2C,0x0000, /* 115C */
+0x2A2D,0x0000, 0x2A2E,0x0000, 0x2A2F,0x0000, 0x2A30,0x0000, /* 1160 */
+0x2A31,0x0000, 0x2A32,0x0000, 0x2A33,0x0000, 0x2A34,0x0000, /* 1164 */
+0x2A35,0x0000, 0x2A36,0x0000, 0x2A37,0x0000, 0x2A38,0x0000, /* 1168 */
+0x2A39,0x0000, 0x2A3A,0x0000, 0x2A3B,0x0000, 0x2A3C,0x0000, /* 116C */
+0x2A3D,0x0000, 0x2A3E,0x0000, 0x2A3F,0x0000, 0x2A40,0x0000, /* 1170 */
+0x2A41,0x0000, 0x2A42,0x0000, 0x2A43,0x0000, 0x2A44,0x0000, /* 1174 */
+0x2A45,0x0000, 0x2A46,0x0000, 0x2A47,0x0000, 0x2A48,0x0000, /* 1178 */
+0x2A49,0x0000, 0x2A4A,0x0000, 0x2A4B,0x0000, 0x2A4C,0x0000, /* 117C */
+0x2A4D,0x0000, 0x2A4E,0x0000, 0x2A4F,0x0000, 0x2A50,0x0000, /* 1180 */
+0x2A51,0x0000, 0x2A52,0x0000, 0x2A53,0x0000, 0x2A54,0x0000, /* 1184 */
+0x2A55,0x0000, 0x2A56,0x0000, 0x2A57,0x0000, 0x2A58,0x0000, /* 1188 */
+0x2A59,0x0000, 0x2A5A,0x0000, 0x2A5B,0x0000, 0x2A5C,0x0000, /* 118C */
+0x2A5D,0x0000, 0x2A5E,0x0000, 0x2A5F,0x0000, 0x2A60,0x0000, /* 1190 */
+0x2A61,0x0000, 0x2A62,0x0000, 0x2A63,0x0000, 0x2A64,0x0000, /* 1194 */
+0x2A65,0x0000, 0x2A66,0x0000, 0x2A67,0x0000, 0x2A68,0x0000, /* 1198 */
+0x2A69,0x0000, 0x2A6A,0x0000, 0x2A6B,0x0000, 0x2A6C,0x0000, /* 119C */
+0x2A6D,0x0000, 0x2A6E,0x0000, 0x2A6F,0x0000, 0x2A70,0x0000, /* 11A0 */
+0x2A71,0x0000, 0x2A72,0x0000, 0x2A73,0x0000, 0x2A74,0x0000, /* 11A4 */
+0x2A8C,0x0000, 0x2A8D,0x0000, 0x2A8E,0x0000, 0x2A8F,0x0000, /* 11A8 */
+0x2A90,0x0000, 0x2A91,0x0000, 0x2A92,0x0000, 0x2A93,0x0000, /* 11AC */
+0x2A94,0x0000, 0x2A95,0x0000, 0x2A96,0x0000, 0x2A97,0x0000, /* 11B0 */
+0x2A98,0x0000, 0x2A99,0x0000, 0x2A9A,0x0000, 0x2A9B,0x0000, /* 11B4 */
+0x2A9C,0x0000, 0x2A9D,0x0000, 0x2A9E,0x0000, 0x2A9F,0x0000, /* 11B8 */
+0x2AA0,0x0000, 0x2AA1,0x0000, 0x2AA2,0x0000, 0x2AA3,0x0000, /* 11BC */
+0x2AA4,0x0000, 0x2AA5,0x0000, 0x2AA6,0x0000, 0x2AA7,0x0000, /* 11C0 */
+0x2AA8,0x0000, 0x2AA9,0x0000, 0x2AAA,0x0000, 0x2AAB,0x0000, /* 11C4 */
+0x2AAC,0x0000, 0x2AAD,0x0000, 0x2AAE,0x0000, 0x2AAF,0x0000, /* 11C8 */
+0x2AB0,0x0000, 0x2AB1,0x0000, 0x2AB2,0x0000, 0x2AB3,0x0000, /* 11CC */
+0x2AB4,0x0000, 0x2AB5,0x0000, 0x2AB6,0x0000, 0x2AB7,0x0000, /* 11D0 */
+0x2AB8,0x0000, 0x2AB9,0x0000, 0x2ABA,0x0000, 0x2ABB,0x0000, /* 11D4 */
+0x2ABC,0x0000, 0x2ABD,0x0000, 0x2ABE,0x0000, 0x2ABF,0x0000, /* 11D8 */
+0x2AC0,0x0000, 0x2AC1,0x0000, 0x2AC2,0x0000, 0x2AC3,0x0000, /* 11DC */
+0x2AC4,0x0000, 0x2AC5,0x0000, 0x2AC6,0x0000, 0x2AC7,0x0000, /* 11E0 */
+0x2AC8,0x0000, 0x2AC9,0x0000, 0x2ACA,0x0000, 0x2ACB,0x0000, /* 11E4 */
+0x2ACC,0x0000, 0x2ACD,0x0000, 0x2ACE,0x0000, 0x2ACF,0x0000, /* 11E8 */
+0x2AD0,0x0000, 0x2AD1,0x0000, 0x2AD2,0x0000, 0x2AD3,0x0000, /* 11EC */
+0x2AD4,0x0000, 0x2AD5,0x0000, 0x2AD6,0x0000, 0x2AD7,0x0000, /* 11F0 */
+0x2AD8,0x0000, 0x2AD9,0x0000, 0x2ADA,0x0000, 0x2ADB,0x0000, /* 11F4 */
+0x2ADC,0x0000, 0x2ADD,0x0000, 0x2ADE,0x0000, 0x2ADF,0x0000, /* 11F8 */
+0x2AE0,0x0000, 0x2AE1,0x0000, 0x2AE2,0x0000, 0x2AE3,0x0000 /* 11FC */
+};
+
+static const uint16 uca520_p012[]= { /* 1200 (3 weights per char) */
+0x1A03,0x0000,0x0000, 0x1A04,0x0000,0x0000, 0x1A05,0x0000,0x0000, /* 1200 */
+0x1A06,0x0000,0x0000, 0x1A07,0x0000,0x0000, 0x1A08,0x0000,0x0000, /* 1203 */
+0x1A09,0x0000,0x0000, 0x1A0A,0x0000,0x0000, 0x1A0B,0x0000,0x0000, /* 1206 */
+0x1A0C,0x0000,0x0000, 0x1A0D,0x0000,0x0000, 0x1A0E,0x0000,0x0000, /* 1209 */
+0x1A0F,0x0000,0x0000, 0x1A10,0x0000,0x0000, 0x1A11,0x0000,0x0000, /* 120C */
+0x1A12,0x0000,0x0000, 0x1A14,0x0000,0x0000, 0x1A15,0x0000,0x0000, /* 120F */
+0x1A16,0x0000,0x0000, 0x1A17,0x0000,0x0000, 0x1A18,0x0000,0x0000, /* 1212 */
+0x1A19,0x0000,0x0000, 0x1A1A,0x0000,0x0000, 0x1A1B,0x0000,0x0000, /* 1215 */
+0x1A1C,0x0000,0x0000, 0x1A1D,0x0000,0x0000, 0x1A1E,0x0000,0x0000, /* 1218 */
+0x1A1F,0x0000,0x0000, 0x1A20,0x0000,0x0000, 0x1A21,0x0000,0x0000, /* 121B */
+0x1A22,0x0000,0x0000, 0x1A23,0x0000,0x0000, 0x1A29,0x0000,0x0000, /* 121E */
+0x1A2A,0x0000,0x0000, 0x1A2B,0x0000,0x0000, 0x1A2C,0x0000,0x0000, /* 1221 */
+0x1A2D,0x0000,0x0000, 0x1A2E,0x0000,0x0000, 0x1A2F,0x0000,0x0000, /* 1224 */
+0x1A30,0x0000,0x0000, 0x1A31,0x0000,0x0000, 0x1A32,0x0000,0x0000, /* 1227 */
+0x1A33,0x0000,0x0000, 0x1A34,0x0000,0x0000, 0x1A35,0x0000,0x0000, /* 122A */
+0x1A36,0x0000,0x0000, 0x1A37,0x0000,0x0000, 0x1A38,0x0000,0x0000, /* 122D */
+0x1A3A,0x0000,0x0000, 0x1A3B,0x0000,0x0000, 0x1A3C,0x0000,0x0000, /* 1230 */
+0x1A3D,0x0000,0x0000, 0x1A3E,0x0000,0x0000, 0x1A3F,0x0000,0x0000, /* 1233 */
+0x1A40,0x0000,0x0000, 0x1A41,0x0000,0x0000, 0x1A43,0x0000,0x0000, /* 1236 */
+0x1A44,0x0000,0x0000, 0x1A45,0x0000,0x0000, 0x1A46,0x0000,0x0000, /* 1239 */
+0x1A47,0x0000,0x0000, 0x1A48,0x0000,0x0000, 0x1A49,0x0000,0x0000, /* 123C */
+0x1A4A,0x0000,0x0000, 0x1A4C,0x0000,0x0000, 0x1A4D,0x0000,0x0000, /* 123F */
+0x1A4E,0x0000,0x0000, 0x1A4F,0x0000,0x0000, 0x1A50,0x0000,0x0000, /* 1242 */
+0x1A51,0x0000,0x0000, 0x1A52,0x0000,0x0000, 0x1A53,0x0000,0x0000, /* 1245 */
+0x1A54,0x0000,0x0000, 0xFBC0,0x9249,0x0000, 0x1A55,0x0000,0x0000, /* 1248 */
+0x1A56,0x0000,0x0000, 0x1A57,0x0000,0x0000, 0x1A58,0x0000,0x0000, /* 124B */
+0xFBC0,0x924E,0x0000, 0xFBC0,0x924F,0x0000, 0x1A59,0x0000,0x0000, /* 124E */
+0x1A5A,0x0000,0x0000, 0x1A5B,0x0000,0x0000, 0x1A5C,0x0000,0x0000, /* 1251 */
+0x1A5D,0x0000,0x0000, 0x1A5E,0x0000,0x0000, 0x1A5F,0x0000,0x0000, /* 1254 */
+0xFBC0,0x9257,0x0000, 0x1A60,0x0000,0x0000, 0xFBC0,0x9259,0x0000, /* 1257 */
+0x1A61,0x0000,0x0000, 0x1A62,0x0000,0x0000, 0x1A63,0x0000,0x0000, /* 125A */
+0x1A64,0x0000,0x0000, 0xFBC0,0x925E,0x0000, 0xFBC0,0x925F,0x0000, /* 125D */
+0x1A65,0x0000,0x0000, 0x1A66,0x0000,0x0000, 0x1A67,0x0000,0x0000, /* 1260 */
+0x1A68,0x0000,0x0000, 0x1A69,0x0000,0x0000, 0x1A6A,0x0000,0x0000, /* 1263 */
+0x1A6B,0x0000,0x0000, 0x1A6C,0x0000,0x0000, 0x1A72,0x0000,0x0000, /* 1266 */
+0x1A73,0x0000,0x0000, 0x1A74,0x0000,0x0000, 0x1A75,0x0000,0x0000, /* 1269 */
+0x1A76,0x0000,0x0000, 0x1A77,0x0000,0x0000, 0x1A78,0x0000,0x0000, /* 126C */
+0x1A79,0x0000,0x0000, 0x1A7A,0x0000,0x0000, 0x1A7B,0x0000,0x0000, /* 126F */
+0x1A7C,0x0000,0x0000, 0x1A7D,0x0000,0x0000, 0x1A7E,0x0000,0x0000, /* 1272 */
+0x1A7F,0x0000,0x0000, 0x1A80,0x0000,0x0000, 0x1A81,0x0000,0x0000, /* 1275 */
+0x1A83,0x0000,0x0000, 0x1A84,0x0000,0x0000, 0x1A85,0x0000,0x0000, /* 1278 */
+0x1A86,0x0000,0x0000, 0x1A87,0x0000,0x0000, 0x1A88,0x0000,0x0000, /* 127B */
+0x1A89,0x0000,0x0000, 0x1A8A,0x0000,0x0000, 0x1A8C,0x0000,0x0000, /* 127E */
+0x1A8D,0x0000,0x0000, 0x1A8E,0x0000,0x0000, 0x1A8F,0x0000,0x0000, /* 1281 */
+0x1A90,0x0000,0x0000, 0x1A91,0x0000,0x0000, 0x1A92,0x0000,0x0000, /* 1284 */
+0x1A93,0x0000,0x0000, 0x1A94,0x0000,0x0000, 0xFBC0,0x9289,0x0000, /* 1287 */
+0x1A95,0x0000,0x0000, 0x1A96,0x0000,0x0000, 0x1A97,0x0000,0x0000, /* 128A */
+0x1A98,0x0000,0x0000, 0xFBC0,0x928E,0x0000, 0xFBC0,0x928F,0x0000, /* 128D */
+0x1A99,0x0000,0x0000, 0x1A9A,0x0000,0x0000, 0x1A9B,0x0000,0x0000, /* 1290 */
+0x1A9C,0x0000,0x0000, 0x1A9D,0x0000,0x0000, 0x1A9E,0x0000,0x0000, /* 1293 */
+0x1A9F,0x0000,0x0000, 0x1AA0,0x0000,0x0000, 0x1AA2,0x0000,0x0000, /* 1296 */
+0x1AA3,0x0000,0x0000, 0x1AA4,0x0000,0x0000, 0x1AA5,0x0000,0x0000, /* 1299 */
+0x1AA6,0x0000,0x0000, 0x1AA7,0x0000,0x0000, 0x1AA8,0x0000,0x0000, /* 129C */
+0x1AA9,0x0000,0x0000, 0x1AAB,0x0000,0x0000, 0x1AAC,0x0000,0x0000, /* 129F */
+0x1AAD,0x0000,0x0000, 0x1AAE,0x0000,0x0000, 0x1AAF,0x0000,0x0000, /* 12A2 */
+0x1AB0,0x0000,0x0000, 0x1AB1,0x0000,0x0000, 0x1AB2,0x0000,0x0000, /* 12A5 */
+0x1AB4,0x0000,0x0000, 0x1AB5,0x0000,0x0000, 0x1AB6,0x0000,0x0000, /* 12A8 */
+0x1AB7,0x0000,0x0000, 0x1AB8,0x0000,0x0000, 0x1AB9,0x0000,0x0000, /* 12AB */
+0x1ABA,0x0000,0x0000, 0x1ABB,0x0000,0x0000, 0x1ABC,0x0000,0x0000, /* 12AE */
+0xFBC0,0x92B1,0x0000, 0x1ABD,0x0000,0x0000, 0x1ABE,0x0000,0x0000, /* 12B1 */
+0x1ABF,0x0000,0x0000, 0x1AC0,0x0000,0x0000, 0xFBC0,0x92B6,0x0000, /* 12B4 */
+0xFBC0,0x92B7,0x0000, 0x1AC1,0x0000,0x0000, 0x1AC2,0x0000,0x0000, /* 12B7 */
+0x1AC3,0x0000,0x0000, 0x1AC4,0x0000,0x0000, 0x1AC5,0x0000,0x0000, /* 12BA */
+0x1AC6,0x0000,0x0000, 0x1AC7,0x0000,0x0000, 0xFBC0,0x92BF,0x0000, /* 12BD */
+0x1AC8,0x0000,0x0000, 0xFBC0,0x92C1,0x0000, 0x1AC9,0x0000,0x0000, /* 12C0 */
+0x1ACA,0x0000,0x0000, 0x1ACB,0x0000,0x0000, 0x1ACC,0x0000,0x0000, /* 12C3 */
+0xFBC0,0x92C6,0x0000, 0xFBC0,0x92C7,0x0000, 0x1ACD,0x0000,0x0000, /* 12C6 */
+0x1ACE,0x0000,0x0000, 0x1ACF,0x0000,0x0000, 0x1AD0,0x0000,0x0000, /* 12C9 */
+0x1AD1,0x0000,0x0000, 0x1AD2,0x0000,0x0000, 0x1AD3,0x0000,0x0000, /* 12CC */
+0x1AD4,0x0000,0x0000, 0x1AD5,0x0000,0x0000, 0x1AD6,0x0000,0x0000, /* 12CF */
+0x1AD7,0x0000,0x0000, 0x1AD8,0x0000,0x0000, 0x1AD9,0x0000,0x0000, /* 12D2 */
+0x1ADA,0x0000,0x0000, 0x1ADB,0x0000,0x0000, 0xFBC0,0x92D7,0x0000, /* 12D5 */
+0x1ADC,0x0000,0x0000, 0x1ADD,0x0000,0x0000, 0x1ADE,0x0000,0x0000, /* 12D8 */
+0x1ADF,0x0000,0x0000, 0x1AE0,0x0000,0x0000, 0x1AE1,0x0000,0x0000, /* 12DB */
+0x1AE2,0x0000,0x0000, 0x1AE3,0x0000,0x0000, 0x1AE5,0x0000,0x0000, /* 12DE */
+0x1AE6,0x0000,0x0000, 0x1AE7,0x0000,0x0000, 0x1AE8,0x0000,0x0000, /* 12E1 */
+0x1AE9,0x0000,0x0000, 0x1AEA,0x0000,0x0000, 0x1AEB,0x0000,0x0000, /* 12E4 */
+0x1AEC,0x0000,0x0000, 0x1AED,0x0000,0x0000, 0x1AEE,0x0000,0x0000, /* 12E7 */
+0x1AEF,0x0000,0x0000, 0x1AF0,0x0000,0x0000, 0x1AF1,0x0000,0x0000, /* 12EA */
+0x1AF2,0x0000,0x0000, 0x1AF3,0x0000,0x0000, 0x1AF4,0x0000,0x0000, /* 12ED */
+0x1AF5,0x0000,0x0000, 0x1AF6,0x0000,0x0000, 0x1AF7,0x0000,0x0000, /* 12F0 */
+0x1AF8,0x0000,0x0000, 0x1AF9,0x0000,0x0000, 0x1AFA,0x0000,0x0000, /* 12F3 */
+0x1AFB,0x0000,0x0000, 0x1AFC,0x0000,0x0000, 0x1AFE,0x0000,0x0000, /* 12F6 */
+0x1AFF,0x0000,0x0000, 0x1B00,0x0000,0x0000, 0x1B01,0x0000,0x0000, /* 12F9 */
+0x1B02,0x0000,0x0000, 0x1B03,0x0000,0x0000, 0x1B04,0x0000,0x0000, /* 12FC */
+0x1B05,0x0000,0x0000 };
+
+static const uint16 uca520_p013[]= { /* 1300 (3 weights per char) */
+0x1B07,0x0000,0x0000, 0x1B08,0x0000,0x0000, 0x1B09,0x0000,0x0000, /* 1300 */
+0x1B0A,0x0000,0x0000, 0x1B0B,0x0000,0x0000, 0x1B0C,0x0000,0x0000, /* 1303 */
+0x1B0D,0x0000,0x0000, 0x1B0E,0x0000,0x0000, 0x1B10,0x0000,0x0000, /* 1306 */
+0x1B11,0x0000,0x0000, 0x1B12,0x0000,0x0000, 0x1B13,0x0000,0x0000, /* 1309 */
+0x1B14,0x0000,0x0000, 0x1B15,0x0000,0x0000, 0x1B16,0x0000,0x0000, /* 130C */
+0x1B17,0x0000,0x0000, 0x1B18,0x0000,0x0000, 0xFBC0,0x9311,0x0000, /* 130F */
+0x1B19,0x0000,0x0000, 0x1B1A,0x0000,0x0000, 0x1B1B,0x0000,0x0000, /* 1312 */
+0x1B1C,0x0000,0x0000, 0xFBC0,0x9316,0x0000, 0xFBC0,0x9317,0x0000, /* 1315 */
+0x1B1D,0x0000,0x0000, 0x1B1E,0x0000,0x0000, 0x1B1F,0x0000,0x0000, /* 1318 */
+0x1B20,0x0000,0x0000, 0x1B21,0x0000,0x0000, 0x1B22,0x0000,0x0000, /* 131B */
+0x1B23,0x0000,0x0000, 0x1B24,0x0000,0x0000, 0x1B29,0x0000,0x0000, /* 131E */
+0x1B2A,0x0000,0x0000, 0x1B2B,0x0000,0x0000, 0x1B2C,0x0000,0x0000, /* 1321 */
+0x1B2D,0x0000,0x0000, 0x1B2E,0x0000,0x0000, 0x1B2F,0x0000,0x0000, /* 1324 */
+0x1B30,0x0000,0x0000, 0x1B32,0x0000,0x0000, 0x1B33,0x0000,0x0000, /* 1327 */
+0x1B34,0x0000,0x0000, 0x1B35,0x0000,0x0000, 0x1B36,0x0000,0x0000, /* 132A */
+0x1B37,0x0000,0x0000, 0x1B38,0x0000,0x0000, 0x1B39,0x0000,0x0000, /* 132D */
+0x1B3B,0x0000,0x0000, 0x1B3C,0x0000,0x0000, 0x1B3D,0x0000,0x0000, /* 1330 */
+0x1B3E,0x0000,0x0000, 0x1B3F,0x0000,0x0000, 0x1B40,0x0000,0x0000, /* 1333 */
+0x1B41,0x0000,0x0000, 0x1B42,0x0000,0x0000, 0x1B44,0x0000,0x0000, /* 1336 */
+0x1B45,0x0000,0x0000, 0x1B46,0x0000,0x0000, 0x1B47,0x0000,0x0000, /* 1339 */
+0x1B48,0x0000,0x0000, 0x1B49,0x0000,0x0000, 0x1B4A,0x0000,0x0000, /* 133C */
+0x1B4B,0x0000,0x0000, 0x1B4C,0x0000,0x0000, 0x1B4D,0x0000,0x0000, /* 133F */
+0x1B4E,0x0000,0x0000, 0x1B4F,0x0000,0x0000, 0x1B50,0x0000,0x0000, /* 1342 */
+0x1B51,0x0000,0x0000, 0x1B52,0x0000,0x0000, 0x1B53,0x0000,0x0000, /* 1345 */
+0x1B54,0x0000,0x0000, 0x1B55,0x0000,0x0000, 0x1B56,0x0000,0x0000, /* 1348 */
+0x1B57,0x0000,0x0000, 0x1B58,0x0000,0x0000, 0x1B59,0x0000,0x0000, /* 134B */
+0x1B5A,0x0000,0x0000, 0x1B5B,0x0000,0x0000, 0x1B60,0x0000,0x0000, /* 134E */
+0x1B61,0x0000,0x0000, 0x1B62,0x0000,0x0000, 0x1B63,0x0000,0x0000, /* 1351 */
+0x1B64,0x0000,0x0000, 0x1B65,0x0000,0x0000, 0x1B66,0x0000,0x0000, /* 1354 */
+0x1B67,0x0000,0x0000, 0x1B6D,0x0000,0x0000, 0x1B6E,0x0000,0x0000, /* 1357 */
+0x1B6F,0x0000,0x0000, 0xFBC0,0x935B,0x0000, 0xFBC0,0x935C,0x0000, /* 135A */
+0xFBC0,0x935D,0x0000, 0xFBC0,0x935E,0x0000, 0x0000,0x0000,0x0000, /* 135D */
+0x02B8,0x0000,0x0000, 0x025F,0x0000,0x0000, 0x0286,0x0000,0x0000, /* 1360 */
+0x0260,0x0000,0x0000, 0x0261,0x0000,0x0000, 0x0262,0x0000,0x0000, /* 1363 */
+0x0263,0x0000,0x0000, 0x0279,0x0000,0x0000, 0x02B9,0x0000,0x0000, /* 1366 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1369 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 136C */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 136F */
+0x1125,0x0000,0x0000, 0x1126,0x0000,0x0000, 0x1127,0x0000,0x0000, /* 1372 */
+0x1128,0x0000,0x0000, 0x1129,0x0000,0x0000, 0x112A,0x0000,0x0000, /* 1375 */
+0x112B,0x0000,0x0000, 0x112C,0x0000,0x0000, 0x112D,0x0000,0x0000, /* 1378 */
+0x112E,0x0000,0x0000, 0x112F,0x0000,0x0000, 0xFBC0,0x937D,0x0000, /* 137B */
+0xFBC0,0x937E,0x0000, 0xFBC0,0x937F,0x0000, 0x1A24,0x0000,0x0000, /* 137E */
+0x1A25,0x0000,0x0000, 0x1A26,0x0000,0x0000, 0x1A27,0x0000,0x0000, /* 1381 */
+0x1A6D,0x0000,0x0000, 0x1A6E,0x0000,0x0000, 0x1A6F,0x0000,0x0000, /* 1384 */
+0x1A70,0x0000,0x0000, 0x1B5C,0x0000,0x0000, 0x1B5D,0x0000,0x0000, /* 1387 */
+0x1B5E,0x0000,0x0000, 0x1B5F,0x0000,0x0000, 0x1B68,0x0000,0x0000, /* 138A */
+0x1B69,0x0000,0x0000, 0x1B6A,0x0000,0x0000, 0x1B6B,0x0000,0x0000, /* 138D */
+0x041C,0x0000,0x0000, 0x041D,0x0000,0x0000, 0x041E,0x0000,0x0000, /* 1390 */
+0x041F,0x0000,0x0000, 0x0420,0x0000,0x0000, 0x0421,0x0000,0x0000, /* 1393 */
+0x0422,0x0000,0x0000, 0x0423,0x0000,0x0000, 0x0424,0x0000,0x0000, /* 1396 */
+0x0425,0x0000,0x0000, 0xFBC0,0x939A,0x0000, 0xFBC0,0x939B,0x0000, /* 1399 */
+0xFBC0,0x939C,0x0000, 0xFBC0,0x939D,0x0000, 0xFBC0,0x939E,0x0000, /* 139C */
+0xFBC0,0x939F,0x0000, 0x24CE,0x0000,0x0000, 0x24CF,0x0000,0x0000, /* 139F */
+0x24D0,0x0000,0x0000, 0x24D1,0x0000,0x0000, 0x24D2,0x0000,0x0000, /* 13A2 */
+0x24D3,0x0000,0x0000, 0x24D4,0x0000,0x0000, 0x24D5,0x0000,0x0000, /* 13A5 */
+0x24D6,0x0000,0x0000, 0x24D7,0x0000,0x0000, 0x24D8,0x0000,0x0000, /* 13A8 */
+0x24D9,0x0000,0x0000, 0x24DA,0x0000,0x0000, 0x24DB,0x0000,0x0000, /* 13AB */
+0x24DC,0x0000,0x0000, 0x24DD,0x0000,0x0000, 0x24DE,0x0000,0x0000, /* 13AE */
+0x24DF,0x0000,0x0000, 0x24E0,0x0000,0x0000, 0x24E1,0x0000,0x0000, /* 13B1 */
+0x24E2,0x0000,0x0000, 0x24E3,0x0000,0x0000, 0x24E4,0x0000,0x0000, /* 13B4 */
+0x24E5,0x0000,0x0000, 0x24E6,0x0000,0x0000, 0x24E7,0x0000,0x0000, /* 13B7 */
+0x24E8,0x0000,0x0000, 0x24E9,0x0000,0x0000, 0x24EA,0x0000,0x0000, /* 13BA */
+0x24EB,0x0000,0x0000, 0x24EC,0x0000,0x0000, 0x24ED,0x0000,0x0000, /* 13BD */
+0x24EE,0x0000,0x0000, 0x24EF,0x0000,0x0000, 0x24F0,0x0000,0x0000, /* 13C0 */
+0x24F1,0x0000,0x0000, 0x24F2,0x0000,0x0000, 0x24F3,0x0000,0x0000, /* 13C3 */
+0x24F4,0x0000,0x0000, 0x24F5,0x0000,0x0000, 0x24F6,0x0000,0x0000, /* 13C6 */
+0x24F7,0x0000,0x0000, 0x24F8,0x0000,0x0000, 0x24F9,0x0000,0x0000, /* 13C9 */
+0x24FA,0x0000,0x0000, 0x24FB,0x0000,0x0000, 0x24FC,0x0000,0x0000, /* 13CC */
+0x24FD,0x0000,0x0000, 0x24FE,0x0000,0x0000, 0x24FF,0x0000,0x0000, /* 13CF */
+0x2500,0x0000,0x0000, 0x2501,0x0000,0x0000, 0x2502,0x0000,0x0000, /* 13D2 */
+0x2503,0x0000,0x0000, 0x2504,0x0000,0x0000, 0x2505,0x0000,0x0000, /* 13D5 */
+0x2506,0x0000,0x0000, 0x2507,0x0000,0x0000, 0x2508,0x0000,0x0000, /* 13D8 */
+0x2509,0x0000,0x0000, 0x250A,0x0000,0x0000, 0x250B,0x0000,0x0000, /* 13DB */
+0x250C,0x0000,0x0000, 0x250D,0x0000,0x0000, 0x250E,0x0000,0x0000, /* 13DE */
+0x250F,0x0000,0x0000, 0x2510,0x0000,0x0000, 0x2511,0x0000,0x0000, /* 13E1 */
+0x2512,0x0000,0x0000, 0x2513,0x0000,0x0000, 0x2514,0x0000,0x0000, /* 13E4 */
+0x2515,0x0000,0x0000, 0x2516,0x0000,0x0000, 0x2517,0x0000,0x0000, /* 13E7 */
+0x2518,0x0000,0x0000, 0x2519,0x0000,0x0000, 0x251A,0x0000,0x0000, /* 13EA */
+0x251B,0x0000,0x0000, 0x251C,0x0000,0x0000, 0x251D,0x0000,0x0000, /* 13ED */
+0x251E,0x0000,0x0000, 0x251F,0x0000,0x0000, 0x2520,0x0000,0x0000, /* 13F0 */
+0x2521,0x0000,0x0000, 0x2522,0x0000,0x0000, 0xFBC0,0x93F5,0x0000, /* 13F3 */
+0xFBC0,0x93F6,0x0000, 0xFBC0,0x93F7,0x0000, 0xFBC0,0x93F8,0x0000, /* 13F6 */
+0xFBC0,0x93F9,0x0000, 0xFBC0,0x93FA,0x0000, 0xFBC0,0x93FB,0x0000, /* 13F9 */
+0xFBC0,0x93FC,0x0000, 0xFBC0,0x93FD,0x0000, 0xFBC0,0x93FE,0x0000, /* 13FC */
+0xFBC0,0x93FF,0x0000 };
+
+static const uint16 uca520_p014[]= { /* 1400 (2 weights per char) */
+0x0225,0x0000, 0x2523,0x0000, 0x2524,0x0000, 0x2525,0x0000, /* 1400 */
+0x2526,0x0000, 0x2527,0x0000, 0x2528,0x0000, 0x2529,0x0000, /* 1404 */
+0x252A,0x0000, 0x252B,0x0000, 0x252C,0x0000, 0x252D,0x0000, /* 1408 */
+0x252E,0x0000, 0x252F,0x0000, 0x2530,0x0000, 0x2531,0x0000, /* 140C */
+0x2532,0x0000, 0x2533,0x0000, 0x2534,0x0000, 0x2535,0x0000, /* 1410 */
+0x2536,0x0000, 0x2537,0x0000, 0x2538,0x0000, 0x2539,0x0000, /* 1414 */
+0x253A,0x0000, 0x253B,0x0000, 0x253C,0x0000, 0x253D,0x0000, /* 1418 */
+0x253E,0x0000, 0x253F,0x0000, 0x2540,0x0000, 0x2541,0x0000, /* 141C */
+0x2542,0x0000, 0x2543,0x0000, 0x2544,0x0000, 0x2545,0x0000, /* 1420 */
+0x2546,0x0000, 0x2547,0x0000, 0x2548,0x0000, 0x2549,0x0000, /* 1424 */
+0x254A,0x0000, 0x254B,0x0000, 0x254C,0x0000, 0x254D,0x0000, /* 1428 */
+0x254E,0x0000, 0x254F,0x0000, 0x2550,0x0000, 0x2551,0x0000, /* 142C */
+0x2552,0x0000, 0x2553,0x0000, 0x2554,0x0000, 0x2555,0x0000, /* 1430 */
+0x2556,0x0000, 0x2557,0x0000, 0x2558,0x0000, 0x2559,0x0000, /* 1434 */
+0x255A,0x0000, 0x255B,0x0000, 0x255C,0x0000, 0x255D,0x0000, /* 1438 */
+0x255E,0x0000, 0x255F,0x0000, 0x2560,0x0000, 0x2561,0x0000, /* 143C */
+0x2562,0x0000, 0x2563,0x0000, 0x2564,0x0000, 0x2565,0x0000, /* 1440 */
+0x2566,0x0000, 0x2567,0x0000, 0x2568,0x0000, 0x2569,0x0000, /* 1444 */
+0x256A,0x0000, 0x256B,0x0000, 0x256C,0x0000, 0x256D,0x0000, /* 1448 */
+0x256E,0x0000, 0x256F,0x0000, 0x2570,0x0000, 0x2571,0x0000, /* 144C */
+0x2572,0x0000, 0x2573,0x0000, 0x2574,0x0000, 0x2575,0x0000, /* 1450 */
+0x2576,0x0000, 0x2577,0x0000, 0x2578,0x0000, 0x2579,0x0000, /* 1454 */
+0x257A,0x0000, 0x257B,0x0000, 0x257C,0x0000, 0x257D,0x0000, /* 1458 */
+0x257E,0x0000, 0x257F,0x0000, 0x2580,0x0000, 0x2581,0x0000, /* 145C */
+0x2582,0x0000, 0x2583,0x0000, 0x2584,0x0000, 0x2585,0x0000, /* 1460 */
+0x2586,0x0000, 0x2587,0x0000, 0x2588,0x0000, 0x2589,0x0000, /* 1464 */
+0x258A,0x0000, 0x258B,0x0000, 0x258C,0x0000, 0x258D,0x0000, /* 1468 */
+0x258E,0x0000, 0x258F,0x0000, 0x2590,0x0000, 0x2591,0x0000, /* 146C */
+0x2592,0x0000, 0x2593,0x0000, 0x2594,0x0000, 0x2595,0x0000, /* 1470 */
+0x2596,0x0000, 0x2597,0x0000, 0x2598,0x0000, 0x2599,0x0000, /* 1474 */
+0x259A,0x0000, 0x259B,0x0000, 0x259C,0x0000, 0x259D,0x0000, /* 1478 */
+0x259E,0x0000, 0x259F,0x0000, 0x25A0,0x0000, 0x25A1,0x0000, /* 147C */
+0x25A2,0x0000, 0x25A3,0x0000, 0x25A4,0x0000, 0x25A5,0x0000, /* 1480 */
+0x25A6,0x0000, 0x25A7,0x0000, 0x25A8,0x0000, 0x25A9,0x0000, /* 1484 */
+0x25AA,0x0000, 0x25AB,0x0000, 0x25AC,0x0000, 0x25AD,0x0000, /* 1488 */
+0x25AE,0x0000, 0x25AF,0x0000, 0x25B0,0x0000, 0x25B1,0x0000, /* 148C */
+0x25B2,0x0000, 0x25B3,0x0000, 0x25B4,0x0000, 0x25B5,0x0000, /* 1490 */
+0x25B6,0x0000, 0x25B7,0x0000, 0x25B8,0x0000, 0x25B9,0x0000, /* 1494 */
+0x25BA,0x0000, 0x25BB,0x0000, 0x25BC,0x0000, 0x25BD,0x0000, /* 1498 */
+0x25BE,0x0000, 0x25BF,0x0000, 0x25C0,0x0000, 0x25C1,0x0000, /* 149C */
+0x25C2,0x0000, 0x25C3,0x0000, 0x25C4,0x0000, 0x25C5,0x0000, /* 14A0 */
+0x25C6,0x0000, 0x25C7,0x0000, 0x25C8,0x0000, 0x25C9,0x0000, /* 14A4 */
+0x25CA,0x0000, 0x25CB,0x0000, 0x25CC,0x0000, 0x25CD,0x0000, /* 14A8 */
+0x25CE,0x0000, 0x25CF,0x0000, 0x25D0,0x0000, 0x25D1,0x0000, /* 14AC */
+0x25D2,0x0000, 0x25D3,0x0000, 0x25D4,0x0000, 0x25D5,0x0000, /* 14B0 */
+0x25D6,0x0000, 0x25D7,0x0000, 0x25D8,0x0000, 0x25D9,0x0000, /* 14B4 */
+0x25DA,0x0000, 0x25DB,0x0000, 0x25DC,0x0000, 0x25DD,0x0000, /* 14B8 */
+0x25DE,0x0000, 0x25DF,0x0000, 0x25E0,0x0000, 0x25E1,0x0000, /* 14BC */
+0x25E2,0x0000, 0x25E3,0x0000, 0x25E4,0x0000, 0x25E5,0x0000, /* 14C0 */
+0x25E6,0x0000, 0x25E7,0x0000, 0x25E8,0x0000, 0x25E9,0x0000, /* 14C4 */
+0x25EA,0x0000, 0x25EB,0x0000, 0x25EC,0x0000, 0x25ED,0x0000, /* 14C8 */
+0x25EE,0x0000, 0x25EF,0x0000, 0x25F0,0x0000, 0x25F1,0x0000, /* 14CC */
+0x25F2,0x0000, 0x25F3,0x0000, 0x25F4,0x0000, 0x25F5,0x0000, /* 14D0 */
+0x25F6,0x0000, 0x25F7,0x0000, 0x25F8,0x0000, 0x25F9,0x0000, /* 14D4 */
+0x25FA,0x0000, 0x25FB,0x0000, 0x25FC,0x0000, 0x25FD,0x0000, /* 14D8 */
+0x25FE,0x0000, 0x25FF,0x0000, 0x2600,0x0000, 0x2601,0x0000, /* 14DC */
+0x2602,0x0000, 0x2603,0x0000, 0x2604,0x0000, 0x2605,0x0000, /* 14E0 */
+0x2606,0x0000, 0x2607,0x0000, 0x2608,0x0000, 0x2609,0x0000, /* 14E4 */
+0x260A,0x0000, 0x260B,0x0000, 0x260C,0x0000, 0x260D,0x0000, /* 14E8 */
+0x260E,0x0000, 0x260F,0x0000, 0x2610,0x0000, 0x2611,0x0000, /* 14EC */
+0x2612,0x0000, 0x2613,0x0000, 0x2614,0x0000, 0x2615,0x0000, /* 14F0 */
+0x2616,0x0000, 0x2617,0x0000, 0x2618,0x0000, 0x2619,0x0000, /* 14F4 */
+0x261A,0x0000, 0x261B,0x0000, 0x261C,0x0000, 0x261D,0x0000, /* 14F8 */
+0x261E,0x0000, 0x261F,0x0000, 0x2620,0x0000, 0x2621,0x0000 /* 14FC */
+};
+
+static const uint16 uca520_p015[]= { /* 1500 (2 weights per char) */
+0x2622,0x0000, 0x2623,0x0000, 0x2624,0x0000, 0x2625,0x0000, /* 1500 */
+0x2626,0x0000, 0x2627,0x0000, 0x2628,0x0000, 0x2629,0x0000, /* 1504 */
+0x262A,0x0000, 0x262B,0x0000, 0x262C,0x0000, 0x262D,0x0000, /* 1508 */
+0x262E,0x0000, 0x262F,0x0000, 0x2630,0x0000, 0x2631,0x0000, /* 150C */
+0x2632,0x0000, 0x2633,0x0000, 0x2634,0x0000, 0x2635,0x0000, /* 1510 */
+0x2636,0x0000, 0x2637,0x0000, 0x2638,0x0000, 0x2639,0x0000, /* 1514 */
+0x263A,0x0000, 0x263B,0x0000, 0x263C,0x0000, 0x263D,0x0000, /* 1518 */
+0x263E,0x0000, 0x263F,0x0000, 0x2640,0x0000, 0x2641,0x0000, /* 151C */
+0x2642,0x0000, 0x2643,0x0000, 0x2644,0x0000, 0x2645,0x0000, /* 1520 */
+0x2646,0x0000, 0x2647,0x0000, 0x2648,0x0000, 0x2649,0x0000, /* 1524 */
+0x264A,0x0000, 0x264B,0x0000, 0x264C,0x0000, 0x264D,0x0000, /* 1528 */
+0x264E,0x0000, 0x264F,0x0000, 0x2650,0x0000, 0x2651,0x0000, /* 152C */
+0x2652,0x0000, 0x2653,0x0000, 0x2654,0x0000, 0x2655,0x0000, /* 1530 */
+0x2656,0x0000, 0x2657,0x0000, 0x2658,0x0000, 0x2659,0x0000, /* 1534 */
+0x265A,0x0000, 0x265B,0x0000, 0x265C,0x0000, 0x265D,0x0000, /* 1538 */
+0x265E,0x0000, 0x265F,0x0000, 0x2660,0x0000, 0x2661,0x0000, /* 153C */
+0x2662,0x0000, 0x2663,0x0000, 0x2664,0x0000, 0x2665,0x0000, /* 1540 */
+0x2666,0x0000, 0x2667,0x0000, 0x2668,0x0000, 0x2669,0x0000, /* 1544 */
+0x266A,0x0000, 0x266B,0x0000, 0x266C,0x0000, 0x266D,0x0000, /* 1548 */
+0x266E,0x0000, 0x266F,0x0000, 0x2670,0x0000, 0x2671,0x0000, /* 154C */
+0x2672,0x0000, 0x2673,0x0000, 0x2674,0x0000, 0x2675,0x0000, /* 1550 */
+0x2676,0x0000, 0x2677,0x0000, 0x2678,0x0000, 0x2679,0x0000, /* 1554 */
+0x267A,0x0000, 0x267B,0x0000, 0x267C,0x0000, 0x267D,0x0000, /* 1558 */
+0x267E,0x0000, 0x267F,0x0000, 0x2680,0x0000, 0x2681,0x0000, /* 155C */
+0x2682,0x0000, 0x2683,0x0000, 0x2684,0x0000, 0x2685,0x0000, /* 1560 */
+0x2686,0x0000, 0x2687,0x0000, 0x2688,0x0000, 0x2689,0x0000, /* 1564 */
+0x268A,0x0000, 0x268B,0x0000, 0x268C,0x0000, 0x268D,0x0000, /* 1568 */
+0x268E,0x0000, 0x268F,0x0000, 0x2690,0x0000, 0x2691,0x0000, /* 156C */
+0x2692,0x0000, 0x2693,0x0000, 0x2694,0x0000, 0x2695,0x0000, /* 1570 */
+0x2696,0x0000, 0x2697,0x0000, 0x2698,0x0000, 0x2699,0x0000, /* 1574 */
+0x269A,0x0000, 0x269B,0x0000, 0x269C,0x0000, 0x269D,0x0000, /* 1578 */
+0x26D0,0x0000, 0x269E,0x0000, 0x26A0,0x0000, 0x26A1,0x0000, /* 157C */
+0x26A2,0x0000, 0x26A3,0x0000, 0x26A4,0x0000, 0x26A5,0x0000, /* 1580 */
+0x26A6,0x0000, 0x26A7,0x0000, 0x26A8,0x0000, 0x26A9,0x0000, /* 1584 */
+0x26AA,0x0000, 0x26AB,0x0000, 0x26AC,0x0000, 0x26AD,0x0000, /* 1588 */
+0x26AE,0x0000, 0x26AF,0x0000, 0x26B1,0x0000, 0x26B2,0x0000, /* 158C */
+0x26B3,0x0000, 0x26B4,0x0000, 0x26B5,0x0000, 0x26B6,0x0000, /* 1590 */
+0x26B7,0x0000, 0x26B8,0x0000, 0x26BF,0x0000, 0x26C0,0x0000, /* 1594 */
+0x26C1,0x0000, 0x26C2,0x0000, 0x26C3,0x0000, 0x26C4,0x0000, /* 1598 */
+0x26C5,0x0000, 0x26C6,0x0000, 0x26C7,0x0000, 0x26C8,0x0000, /* 159C */
+0x26C9,0x0000, 0x26CA,0x0000, 0x26CB,0x0000, 0x26CC,0x0000, /* 15A0 */
+0x26CD,0x0000, 0x26CE,0x0000, 0x26CF,0x0000, 0x26D1,0x0000, /* 15A4 */
+0x26D2,0x0000, 0x26D3,0x0000, 0x26D4,0x0000, 0x26D5,0x0000, /* 15A8 */
+0x26D6,0x0000, 0x26D7,0x0000, 0x26D8,0x0000, 0x26D9,0x0000, /* 15AC */
+0x26DA,0x0000, 0x26DB,0x0000, 0x26DC,0x0000, 0x26DD,0x0000, /* 15B0 */
+0x26DE,0x0000, 0x26DF,0x0000, 0x26E0,0x0000, 0x26E1,0x0000, /* 15B4 */
+0x26E2,0x0000, 0x26E3,0x0000, 0x26E4,0x0000, 0x26E5,0x0000, /* 15B8 */
+0x26E6,0x0000, 0x26E7,0x0000, 0x26E8,0x0000, 0x26E9,0x0000, /* 15BC */
+0x26EA,0x0000, 0x26EB,0x0000, 0x26EC,0x0000, 0x26ED,0x0000, /* 15C0 */
+0x26EE,0x0000, 0x26EF,0x0000, 0x26F0,0x0000, 0x26F1,0x0000, /* 15C4 */
+0x26F2,0x0000, 0x26F3,0x0000, 0x26F4,0x0000, 0x26F5,0x0000, /* 15C8 */
+0x26F6,0x0000, 0x26F7,0x0000, 0x26F8,0x0000, 0x26F9,0x0000, /* 15CC */
+0x26FA,0x0000, 0x26FB,0x0000, 0x26FC,0x0000, 0x26FD,0x0000, /* 15D0 */
+0x26FE,0x0000, 0x26FF,0x0000, 0x2700,0x0000, 0x2701,0x0000, /* 15D4 */
+0x2702,0x0000, 0x2703,0x0000, 0x2704,0x0000, 0x2705,0x0000, /* 15D8 */
+0x2706,0x0000, 0x2707,0x0000, 0x2708,0x0000, 0x2709,0x0000, /* 15DC */
+0x270A,0x0000, 0x270B,0x0000, 0x270C,0x0000, 0x270D,0x0000, /* 15E0 */
+0x270E,0x0000, 0x270F,0x0000, 0x2710,0x0000, 0x2711,0x0000, /* 15E4 */
+0x2712,0x0000, 0x2713,0x0000, 0x2714,0x0000, 0x2715,0x0000, /* 15E8 */
+0x2716,0x0000, 0x2717,0x0000, 0x2718,0x0000, 0x2719,0x0000, /* 15EC */
+0x271A,0x0000, 0x271B,0x0000, 0x271C,0x0000, 0x271D,0x0000, /* 15F0 */
+0x271E,0x0000, 0x271F,0x0000, 0x2720,0x0000, 0x2721,0x0000, /* 15F4 */
+0x2722,0x0000, 0x2723,0x0000, 0x2724,0x0000, 0x2725,0x0000, /* 15F8 */
+0x2726,0x0000, 0x2727,0x0000, 0x2728,0x0000, 0x2729,0x0000 /* 15FC */
+};
+
+static const uint16 uca520_p016[]= { /* 1600 (3 weights per char) */
+0x272A,0x0000,0x0000, 0x272B,0x0000,0x0000, 0x272C,0x0000,0x0000, /* 1600 */
+0x272D,0x0000,0x0000, 0x272E,0x0000,0x0000, 0x272F,0x0000,0x0000, /* 1603 */
+0x2730,0x0000,0x0000, 0x2731,0x0000,0x0000, 0x2732,0x0000,0x0000, /* 1606 */
+0x2733,0x0000,0x0000, 0x2734,0x0000,0x0000, 0x2735,0x0000,0x0000, /* 1609 */
+0x2736,0x0000,0x0000, 0x2737,0x0000,0x0000, 0x2738,0x0000,0x0000, /* 160C */
+0x2739,0x0000,0x0000, 0x273A,0x0000,0x0000, 0x273B,0x0000,0x0000, /* 160F */
+0x273C,0x0000,0x0000, 0x273D,0x0000,0x0000, 0x273E,0x0000,0x0000, /* 1612 */
+0x273F,0x0000,0x0000, 0x2740,0x0000,0x0000, 0x2741,0x0000,0x0000, /* 1615 */
+0x2742,0x0000,0x0000, 0x2743,0x0000,0x0000, 0x2744,0x0000,0x0000, /* 1618 */
+0x2745,0x0000,0x0000, 0x2746,0x0000,0x0000, 0x2747,0x0000,0x0000, /* 161B */
+0x2748,0x0000,0x0000, 0x2749,0x0000,0x0000, 0x274A,0x0000,0x0000, /* 161E */
+0x274B,0x0000,0x0000, 0x274C,0x0000,0x0000, 0x274D,0x0000,0x0000, /* 1621 */
+0x274E,0x0000,0x0000, 0x274F,0x0000,0x0000, 0x2750,0x0000,0x0000, /* 1624 */
+0x2751,0x0000,0x0000, 0x2752,0x0000,0x0000, 0x2753,0x0000,0x0000, /* 1627 */
+0x2754,0x0000,0x0000, 0x2755,0x0000,0x0000, 0x2756,0x0000,0x0000, /* 162A */
+0x2757,0x0000,0x0000, 0x2758,0x0000,0x0000, 0x2759,0x0000,0x0000, /* 162D */
+0x275A,0x0000,0x0000, 0x275B,0x0000,0x0000, 0x275C,0x0000,0x0000, /* 1630 */
+0x275D,0x0000,0x0000, 0x275E,0x0000,0x0000, 0x275F,0x0000,0x0000, /* 1633 */
+0x2760,0x0000,0x0000, 0x2761,0x0000,0x0000, 0x2762,0x0000,0x0000, /* 1636 */
+0x2763,0x0000,0x0000, 0x2764,0x0000,0x0000, 0x2765,0x0000,0x0000, /* 1639 */
+0x2766,0x0000,0x0000, 0x2767,0x0000,0x0000, 0x2768,0x0000,0x0000, /* 163C */
+0x2769,0x0000,0x0000, 0x276A,0x0000,0x0000, 0x276B,0x0000,0x0000, /* 163F */
+0x276C,0x0000,0x0000, 0x276D,0x0000,0x0000, 0x276E,0x0000,0x0000, /* 1642 */
+0x276F,0x0000,0x0000, 0x2770,0x0000,0x0000, 0x2771,0x0000,0x0000, /* 1645 */
+0x2772,0x0000,0x0000, 0x2773,0x0000,0x0000, 0x2774,0x0000,0x0000, /* 1648 */
+0x2775,0x0000,0x0000, 0x2776,0x0000,0x0000, 0x2777,0x0000,0x0000, /* 164B */
+0x2778,0x0000,0x0000, 0x2779,0x0000,0x0000, 0x277A,0x0000,0x0000, /* 164E */
+0x277B,0x0000,0x0000, 0x277C,0x0000,0x0000, 0x277D,0x0000,0x0000, /* 1651 */
+0x277E,0x0000,0x0000, 0x277F,0x0000,0x0000, 0x2780,0x0000,0x0000, /* 1654 */
+0x2781,0x0000,0x0000, 0x2782,0x0000,0x0000, 0x2783,0x0000,0x0000, /* 1657 */
+0x2784,0x0000,0x0000, 0x2785,0x0000,0x0000, 0x2786,0x0000,0x0000, /* 165A */
+0x2787,0x0000,0x0000, 0x2788,0x0000,0x0000, 0x2789,0x0000,0x0000, /* 165D */
+0x278A,0x0000,0x0000, 0x278B,0x0000,0x0000, 0x278C,0x0000,0x0000, /* 1660 */
+0x278D,0x0000,0x0000, 0x278E,0x0000,0x0000, 0x278F,0x0000,0x0000, /* 1663 */
+0x2790,0x0000,0x0000, 0x2791,0x0000,0x0000, 0x2792,0x0000,0x0000, /* 1666 */
+0x2793,0x0000,0x0000, 0x2794,0x0000,0x0000, 0x2795,0x0000,0x0000, /* 1669 */
+0x2796,0x0000,0x0000, 0x03D8,0x0000,0x0000, 0x0289,0x0000,0x0000, /* 166C */
+0x269F,0x0000,0x0000, 0x26B0,0x0000,0x0000, 0x26B9,0x0000,0x0000, /* 166F */
+0x26BA,0x0000,0x0000, 0x26BB,0x0000,0x0000, 0x26BC,0x0000,0x0000, /* 1672 */
+0x26BD,0x0000,0x0000, 0x26BE,0x0000,0x0000, 0x2797,0x0000,0x0000, /* 1675 */
+0x2798,0x0000,0x0000, 0x2799,0x0000,0x0000, 0x279A,0x0000,0x0000, /* 1678 */
+0x279B,0x0000,0x0000, 0x279C,0x0000,0x0000, 0x279D,0x0000,0x0000, /* 167B */
+0x279E,0x0000,0x0000, 0x279F,0x0000,0x0000, 0x020B,0x0000,0x0000, /* 167E */
+0x27E6,0x0000,0x0000, 0x27E7,0x0000,0x0000, 0x27E8,0x0000,0x0000, /* 1681 */
+0x27E9,0x0000,0x0000, 0x27EA,0x0000,0x0000, 0x27EB,0x0000,0x0000, /* 1684 */
+0x27EC,0x0000,0x0000, 0x27ED,0x0000,0x0000, 0x27EE,0x0000,0x0000, /* 1687 */
+0x27EF,0x0000,0x0000, 0x27F0,0x0000,0x0000, 0x27F1,0x0000,0x0000, /* 168A */
+0x27F2,0x0000,0x0000, 0x27F3,0x0000,0x0000, 0x27F4,0x0000,0x0000, /* 168D */
+0x27F5,0x0000,0x0000, 0x27F6,0x0000,0x0000, 0x27F7,0x0000,0x0000, /* 1690 */
+0x27F8,0x0000,0x0000, 0x27F9,0x0000,0x0000, 0x27FA,0x0000,0x0000, /* 1693 */
+0x27FB,0x0000,0x0000, 0x27FC,0x0000,0x0000, 0x27FD,0x0000,0x0000, /* 1696 */
+0x27FE,0x0000,0x0000, 0x27FF,0x0000,0x0000, 0x0309,0x0000,0x0000, /* 1699 */
+0x030A,0x0000,0x0000, 0xFBC0,0x969D,0x0000, 0xFBC0,0x969E,0x0000, /* 169C */
+0xFBC0,0x969F,0x0000, 0x2800,0x0000,0x0000, 0x2800,0x0000,0x0000, /* 169F */
+0x2801,0x0000,0x0000, 0x281D,0x0000,0x0000, 0x2801,0x0000,0x0000, /* 16A2 */
+0x2801,0x0000,0x0000, 0x2802,0x0000,0x0000, 0x2802,0x0000,0x0000, /* 16A5 */
+0x2803,0x0000,0x0000, 0x2803,0x0000,0x0000, 0x281B,0x0000,0x0000, /* 16A8 */
+0x281C,0x0000,0x0000, 0x2803,0x0000,0x0000, 0x2803,0x0000,0x0000, /* 16AB */
+0x2803,0x0000,0x0000, 0x2804,0x0000,0x0000, 0x2805,0x0000,0x0000, /* 16AE */
+0x2806,0x0000,0x0000, 0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, /* 16B1 */
+0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, 0x2807,0x0000,0x0000, /* 16B4 */
+0x2808,0x0000,0x0000, 0x2820,0x0000,0x0000, 0x2809,0x0000,0x0000, /* 16B7 */
+0x280A,0x0000,0x0000, 0x280A,0x0000,0x0000, 0x280A,0x0000,0x0000, /* 16BA */
+0x280A,0x0000,0x0000, 0x280B,0x0000,0x0000, 0x280B,0x0000,0x0000, /* 16BD */
+0x280B,0x0000,0x0000, 0x280C,0x0000,0x0000, 0x280C,0x0000,0x0000, /* 16C0 */
+0x280D,0x0000,0x0000, 0x280D,0x0000,0x0000, 0x280E,0x0000,0x0000, /* 16C3 */
+0x280E,0x0000,0x0000, 0x280F,0x0000,0x0000, 0x2810,0x0000,0x0000, /* 16C6 */
+0x2811,0x0000,0x0000, 0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, /* 16C9 */
+0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, 0x2812,0x0000,0x0000, /* 16CC */
+0x2813,0x0000,0x0000, 0x2813,0x0000,0x0000, 0x2813,0x0000,0x0000, /* 16CF */
+0x2814,0x0000,0x0000, 0x2814,0x0000,0x0000, 0x2814,0x0000,0x0000, /* 16D2 */
+0x2810,0x0000,0x0000, 0x2815,0x0000,0x0000, 0x2816,0x0000,0x0000, /* 16D5 */
+0x2816,0x0000,0x0000, 0x2816,0x0000,0x0000, 0x2817,0x0000,0x0000, /* 16D8 */
+0x2817,0x0000,0x0000, 0x2818,0x0000,0x0000, 0x2818,0x0000,0x0000, /* 16DB */
+0x2819,0x0000,0x0000, 0x281A,0x0000,0x0000, 0x281E,0x0000,0x0000, /* 16DE */
+0x2822,0x0000,0x0000, 0x2823,0x0000,0x0000, 0x281F,0x0000,0x0000, /* 16E1 */
+0x2821,0x0000,0x0000, 0x2824,0x0000,0x0000, 0x2825,0x0000,0x0000, /* 16E4 */
+0x2825,0x0000,0x0000, 0x2825,0x0000,0x0000, 0x2809,0x0000,0x0000, /* 16E7 */
+0x2812,0x0000,0x0000, 0x026A,0x0000,0x0000, 0x026B,0x0000,0x0000, /* 16EA */
+0x026C,0x0000,0x0000, 0x280E,0x2817,0x0000, 0x2816,0x2816,0x0000, /* 16ED */
+0x2802,0x2802,0x0000, 0xFBC0,0x96F1,0x0000, 0xFBC0,0x96F2,0x0000, /* 16F0 */
+0xFBC0,0x96F3,0x0000, 0xFBC0,0x96F4,0x0000, 0xFBC0,0x96F5,0x0000, /* 16F3 */
+0xFBC0,0x96F6,0x0000, 0xFBC0,0x96F7,0x0000, 0xFBC0,0x96F8,0x0000, /* 16F6 */
+0xFBC0,0x96F9,0x0000, 0xFBC0,0x96FA,0x0000, 0xFBC0,0x96FB,0x0000, /* 16F9 */
+0xFBC0,0x96FC,0x0000, 0xFBC0,0x96FD,0x0000, 0xFBC0,0x96FE,0x0000, /* 16FC */
+0xFBC0,0x96FF,0x0000 };
+
+static const uint16 uca520_p017[]= { /* 1700 (3 weights per char) */
+0x211D,0x0000,0x0000, 0x211E,0x0000,0x0000, 0x211F,0x0000,0x0000, /* 1700 */
+0x2120,0x0000,0x0000, 0x2121,0x0000,0x0000, 0x2122,0x0000,0x0000, /* 1703 */
+0x2123,0x0000,0x0000, 0x2124,0x0000,0x0000, 0x2125,0x0000,0x0000, /* 1706 */
+0x2126,0x0000,0x0000, 0x2127,0x0000,0x0000, 0x2128,0x0000,0x0000, /* 1709 */
+0x2129,0x0000,0x0000, 0xFBC0,0x970D,0x0000, 0x212A,0x0000,0x0000, /* 170C */
+0x212B,0x0000,0x0000, 0x212C,0x0000,0x0000, 0x212D,0x0000,0x0000, /* 170F */
+0x212E,0x0000,0x0000, 0x212F,0x0000,0x0000, 0x2130,0x0000,0x0000, /* 1712 */
+0xFBC0,0x9715,0x0000, 0xFBC0,0x9716,0x0000, 0xFBC0,0x9717,0x0000, /* 1715 */
+0xFBC0,0x9718,0x0000, 0xFBC0,0x9719,0x0000, 0xFBC0,0x971A,0x0000, /* 1718 */
+0xFBC0,0x971B,0x0000, 0xFBC0,0x971C,0x0000, 0xFBC0,0x971D,0x0000, /* 171B */
+0xFBC0,0x971E,0x0000, 0xFBC0,0x971F,0x0000, 0x2131,0x0000,0x0000, /* 171E */
+0x2132,0x0000,0x0000, 0x2133,0x0000,0x0000, 0x2134,0x0000,0x0000, /* 1721 */
+0x2135,0x0000,0x0000, 0x2136,0x0000,0x0000, 0x2137,0x0000,0x0000, /* 1724 */
+0x2138,0x0000,0x0000, 0x2139,0x0000,0x0000, 0x213A,0x0000,0x0000, /* 1727 */
+0x213B,0x0000,0x0000, 0x213C,0x0000,0x0000, 0x213D,0x0000,0x0000, /* 172A */
+0x213E,0x0000,0x0000, 0x213F,0x0000,0x0000, 0x2140,0x0000,0x0000, /* 172D */
+0x2141,0x0000,0x0000, 0x2142,0x0000,0x0000, 0x2143,0x0000,0x0000, /* 1730 */
+0x2144,0x0000,0x0000, 0x2145,0x0000,0x0000, 0x029C,0x0000,0x0000, /* 1733 */
+0x029D,0x0000,0x0000, 0xFBC0,0x9737,0x0000, 0xFBC0,0x9738,0x0000, /* 1736 */
+0xFBC0,0x9739,0x0000, 0xFBC0,0x973A,0x0000, 0xFBC0,0x973B,0x0000, /* 1739 */
+0xFBC0,0x973C,0x0000, 0xFBC0,0x973D,0x0000, 0xFBC0,0x973E,0x0000, /* 173C */
+0xFBC0,0x973F,0x0000, 0x2146,0x0000,0x0000, 0x2147,0x0000,0x0000, /* 173F */
+0x2148,0x0000,0x0000, 0x2149,0x0000,0x0000, 0x214A,0x0000,0x0000, /* 1742 */
+0x214B,0x0000,0x0000, 0x214C,0x0000,0x0000, 0x214D,0x0000,0x0000, /* 1745 */
+0x214E,0x0000,0x0000, 0x214F,0x0000,0x0000, 0x2150,0x0000,0x0000, /* 1748 */
+0x2151,0x0000,0x0000, 0x2152,0x0000,0x0000, 0x2153,0x0000,0x0000, /* 174B */
+0x2154,0x0000,0x0000, 0x2155,0x0000,0x0000, 0x2156,0x0000,0x0000, /* 174E */
+0x2157,0x0000,0x0000, 0x2158,0x0000,0x0000, 0x2159,0x0000,0x0000, /* 1751 */
+0xFBC0,0x9754,0x0000, 0xFBC0,0x9755,0x0000, 0xFBC0,0x9756,0x0000, /* 1754 */
+0xFBC0,0x9757,0x0000, 0xFBC0,0x9758,0x0000, 0xFBC0,0x9759,0x0000, /* 1757 */
+0xFBC0,0x975A,0x0000, 0xFBC0,0x975B,0x0000, 0xFBC0,0x975C,0x0000, /* 175A */
+0xFBC0,0x975D,0x0000, 0xFBC0,0x975E,0x0000, 0xFBC0,0x975F,0x0000, /* 175D */
+0x215A,0x0000,0x0000, 0x215B,0x0000,0x0000, 0x215C,0x0000,0x0000, /* 1760 */
+0x215D,0x0000,0x0000, 0x215E,0x0000,0x0000, 0x215F,0x0000,0x0000, /* 1763 */
+0x2160,0x0000,0x0000, 0x2161,0x0000,0x0000, 0x2162,0x0000,0x0000, /* 1766 */
+0x2163,0x0000,0x0000, 0x2164,0x0000,0x0000, 0x2165,0x0000,0x0000, /* 1769 */
+0x2166,0x0000,0x0000, 0xFBC0,0x976D,0x0000, 0x2167,0x0000,0x0000, /* 176C */
+0x2168,0x0000,0x0000, 0x2169,0x0000,0x0000, 0xFBC0,0x9771,0x0000, /* 176F */
+0x216A,0x0000,0x0000, 0x216B,0x0000,0x0000, 0xFBC0,0x9774,0x0000, /* 1772 */
+0xFBC0,0x9775,0x0000, 0xFBC0,0x9776,0x0000, 0xFBC0,0x9777,0x0000, /* 1775 */
+0xFBC0,0x9778,0x0000, 0xFBC0,0x9779,0x0000, 0xFBC0,0x977A,0x0000, /* 1778 */
+0xFBC0,0x977B,0x0000, 0xFBC0,0x977C,0x0000, 0xFBC0,0x977D,0x0000, /* 177B */
+0xFBC0,0x977E,0x0000, 0xFBC0,0x977F,0x0000, 0x2263,0x0000,0x0000, /* 177E */
+0x2264,0x0000,0x0000, 0x2265,0x0000,0x0000, 0x2266,0x0000,0x0000, /* 1781 */
+0x2267,0x0000,0x0000, 0x2268,0x0000,0x0000, 0x2269,0x0000,0x0000, /* 1784 */
+0x226A,0x0000,0x0000, 0x226B,0x0000,0x0000, 0x226C,0x0000,0x0000, /* 1787 */
+0x226D,0x0000,0x0000, 0x226E,0x0000,0x0000, 0x226F,0x0000,0x0000, /* 178A */
+0x2270,0x0000,0x0000, 0x2271,0x0000,0x0000, 0x2272,0x0000,0x0000, /* 178D */
+0x2273,0x0000,0x0000, 0x2274,0x0000,0x0000, 0x2275,0x0000,0x0000, /* 1790 */
+0x2276,0x0000,0x0000, 0x2277,0x0000,0x0000, 0x2278,0x0000,0x0000, /* 1793 */
+0x2279,0x0000,0x0000, 0x227A,0x0000,0x0000, 0x227B,0x0000,0x0000, /* 1796 */
+0x227C,0x0000,0x0000, 0x227D,0x0000,0x0000, 0x227E,0x0000,0x0000, /* 1799 */
+0x227F,0x0000,0x0000, 0x2280,0x0000,0x0000, 0x2281,0x0000,0x0000, /* 179C */
+0x2282,0x0000,0x0000, 0x2283,0x0000,0x0000, 0x2284,0x0000,0x0000, /* 179F */
+0x2285,0x0000,0x0000, 0x2287,0x0000,0x0000, 0x2288,0x0000,0x0000, /* 17A2 */
+0x2289,0x0000,0x0000, 0x228A,0x0000,0x0000, 0x228B,0x0000,0x0000, /* 17A5 */
+0x228C,0x0000,0x0000, 0x228D,0x0000,0x0000, 0x228E,0x0000,0x0000, /* 17A8 */
+0x228F,0x0000,0x0000, 0x2290,0x0000,0x0000, 0x2291,0x0000,0x0000, /* 17AB */
+0x2292,0x0000,0x0000, 0x2293,0x0000,0x0000, 0x2294,0x0000,0x0000, /* 17AE */
+0x2295,0x0000,0x0000, 0x2296,0x0000,0x0000, 0x2297,0x0000,0x0000, /* 17B1 */
+0x2298,0x0000,0x0000, 0x2299,0x0000,0x0000, 0x229A,0x0000,0x0000, /* 17B4 */
+0x229B,0x0000,0x0000, 0x229C,0x0000,0x0000, 0x229D,0x0000,0x0000, /* 17B7 */
+0x229E,0x0000,0x0000, 0x229F,0x0000,0x0000, 0x22A0,0x0000,0x0000, /* 17BA */
+0x22A1,0x0000,0x0000, 0x22A2,0x0000,0x0000, 0x22A3,0x0000,0x0000, /* 17BD */
+0x22A4,0x0000,0x0000, 0x22A5,0x0000,0x0000, 0x22A6,0x0000,0x0000, /* 17C0 */
+0x22A7,0x0000,0x0000, 0x22A8,0x0000,0x0000, 0x22A9,0x0000,0x0000, /* 17C3 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17C6 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17C9 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17CC */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17CF */
+0x22AA,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x02A1,0x0000,0x0000, /* 17D2 */
+0x02A2,0x0000,0x0000, 0x0267,0x0000,0x0000, 0x03CB,0x0000,0x0000, /* 17D5 */
+0x03CC,0x0000,0x0000, 0x03CD,0x0000,0x0000, 0x03CE,0x0000,0x0000, /* 17D8 */
+0x11EC,0x0000,0x0000, 0x2286,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 17DB */
+0xFBC0,0x97DE,0x0000, 0xFBC0,0x97DF,0x0000, 0x1205,0x0000,0x0000, /* 17DE */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 17E1 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 17E4 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 17E7 */
+0xFBC0,0x97EA,0x0000, 0xFBC0,0x97EB,0x0000, 0xFBC0,0x97EC,0x0000, /* 17EA */
+0xFBC0,0x97ED,0x0000, 0xFBC0,0x97EE,0x0000, 0xFBC0,0x97EF,0x0000, /* 17ED */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 17F0 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 17F3 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 17F6 */
+0x120E,0x0000,0x0000, 0xFBC0,0x97FA,0x0000, 0xFBC0,0x97FB,0x0000, /* 17F9 */
+0xFBC0,0x97FC,0x0000, 0xFBC0,0x97FD,0x0000, 0xFBC0,0x97FE,0x0000, /* 17FC */
+0xFBC0,0x97FF,0x0000 };
+
+static const uint16 uca520_p018[]= { /* 1800 (3 weights per char) */
+0x039F,0x0000,0x0000, 0x0282,0x0000,0x0000, 0x023B,0x0000,0x0000, /* 1800 */
+0x0287,0x0000,0x0000, 0x0264,0x0000,0x0000, 0x0265,0x0000,0x0000, /* 1803 */
+0x0227,0x0000,0x0000, 0x0228,0x0000,0x0000, 0x023C,0x0000,0x0000, /* 1806 */
+0x0288,0x0000,0x0000, 0x03A0,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1809 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0207,0x0000,0x0000, /* 180C */
+0xFBC0,0x980F,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 180F */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1812 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1815 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x981A,0x0000, /* 1818 */
+0xFBC0,0x981B,0x0000, 0xFBC0,0x981C,0x0000, 0xFBC0,0x981D,0x0000, /* 181B */
+0xFBC0,0x981E,0x0000, 0xFBC0,0x981F,0x0000, 0x242F,0x0000,0x0000, /* 181E */
+0x2431,0x0000,0x0000, 0x2434,0x0000,0x0000, 0x243A,0x0000,0x0000, /* 1821 */
+0x243C,0x0000,0x0000, 0x243F,0x0000,0x0000, 0x2441,0x0000,0x0000, /* 1824 */
+0x2444,0x0000,0x0000, 0x2445,0x0000,0x0000, 0x2446,0x0000,0x0000, /* 1827 */
+0x244B,0x0000,0x0000, 0x244D,0x0000,0x0000, 0x2450,0x0000,0x0000, /* 182A */
+0x2452,0x0000,0x0000, 0x2457,0x0000,0x0000, 0x2459,0x0000,0x0000, /* 182D */
+0x245A,0x0000,0x0000, 0x245B,0x0000,0x0000, 0x2462,0x0000,0x0000, /* 1830 */
+0x2465,0x0000,0x0000, 0x2468,0x0000,0x0000, 0x246D,0x0000,0x0000, /* 1833 */
+0x2471,0x0000,0x0000, 0x2474,0x0000,0x0000, 0x2476,0x0000,0x0000, /* 1836 */
+0x2478,0x0000,0x0000, 0x247B,0x0000,0x0000, 0x2480,0x0000,0x0000, /* 1839 */
+0x2481,0x0000,0x0000, 0x2484,0x0000,0x0000, 0x2488,0x0000,0x0000, /* 183C */
+0x248B,0x0000,0x0000, 0x248C,0x0000,0x0000, 0x248D,0x0000,0x0000, /* 183F */
+0x248E,0x0000,0x0000, 0x242E,0x0000,0x0000, 0x2432,0x0000,0x0000, /* 1842 */
+0x2435,0x0000,0x0000, 0x243B,0x0000,0x0000, 0x243D,0x0000,0x0000, /* 1845 */
+0x2440,0x0000,0x0000, 0x2442,0x0000,0x0000, 0x2447,0x0000,0x0000, /* 1848 */
+0x244C,0x0000,0x0000, 0x244E,0x0000,0x0000, 0x2451,0x0000,0x0000, /* 184B */
+0x2453,0x0000,0x0000, 0x2458,0x0000,0x0000, 0x2463,0x0000,0x0000, /* 184E */
+0x2466,0x0000,0x0000, 0x2469,0x0000,0x0000, 0x246E,0x0000,0x0000, /* 1851 */
+0x2482,0x0000,0x0000, 0x2472,0x0000,0x0000, 0x2477,0x0000,0x0000, /* 1854 */
+0x247C,0x0000,0x0000, 0x2486,0x0000,0x0000, 0x2489,0x0000,0x0000, /* 1857 */
+0x248F,0x0000,0x0000, 0x2490,0x0000,0x0000, 0x246B,0x0000,0x0000, /* 185A */
+0x2433,0x0000,0x0000, 0x2436,0x0000,0x0000, 0x2439,0x0000,0x0000, /* 185D */
+0x2443,0x0000,0x0000, 0x243E,0x0000,0x0000, 0x2448,0x0000,0x0000, /* 1860 */
+0x247D,0x0000,0x0000, 0x2454,0x0000,0x0000, 0x2456,0x0000,0x0000, /* 1863 */
+0x244F,0x0000,0x0000, 0x245C,0x0000,0x0000, 0x2464,0x0000,0x0000, /* 1866 */
+0x2467,0x0000,0x0000, 0x246F,0x0000,0x0000, 0x2479,0x0000,0x0000, /* 1869 */
+0x2487,0x0000,0x0000, 0x248A,0x0000,0x0000, 0x2483,0x0000,0x0000, /* 186C */
+0x2485,0x0000,0x0000, 0x2491,0x0000,0x0000, 0x246A,0x0000,0x0000, /* 186F */
+0x2473,0x0000,0x0000, 0x2437,0x0000,0x0000, 0x247E,0x0000,0x0000, /* 1872 */
+0x2475,0x0000,0x0000, 0x247A,0x0000,0x0000, 0x2470,0x0000,0x0000, /* 1875 */
+0xFBC0,0x9878,0x0000, 0xFBC0,0x9879,0x0000, 0xFBC0,0x987A,0x0000, /* 1878 */
+0xFBC0,0x987B,0x0000, 0xFBC0,0x987C,0x0000, 0xFBC0,0x987D,0x0000, /* 187B */
+0xFBC0,0x987E,0x0000, 0xFBC0,0x987F,0x0000, 0x2427,0x0000,0x0000, /* 187E */
+0x2428,0x0000,0x0000, 0x2429,0x0000,0x0000, 0x242A,0x0000,0x0000, /* 1881 */
+0x242B,0x0000,0x0000, 0x242C,0x0000,0x0000, 0x242D,0x0000,0x0000, /* 1884 */
+0x2430,0x0000,0x0000, 0x2438,0x0000,0x0000, 0x247F,0x0000,0x0000, /* 1887 */
+0x2449,0x0000,0x0000, 0x246C,0x0000,0x0000, 0x2492,0x0000,0x0000, /* 188A */
+0x2494,0x0000,0x0000, 0x2495,0x0000,0x0000, 0x2497,0x0000,0x0000, /* 188D */
+0x2498,0x0000,0x0000, 0x249B,0x0000,0x0000, 0x249D,0x0000,0x0000, /* 1890 */
+0x249E,0x0000,0x0000, 0x24A0,0x0000,0x0000, 0x24A2,0x0000,0x0000, /* 1893 */
+0x24A4,0x0000,0x0000, 0x24A5,0x0000,0x0000, 0x2499,0x0000,0x0000, /* 1896 */
+0x24A3,0x0000,0x0000, 0x2455,0x0000,0x0000, 0x244A,0x0000,0x0000, /* 1899 */
+0x245D,0x0000,0x0000, 0x245E,0x0000,0x0000, 0x2493,0x0000,0x0000, /* 189C */
+0x2496,0x0000,0x0000, 0x249A,0x0000,0x0000, 0x249C,0x0000,0x0000, /* 189F */
+0x245F,0x0000,0x0000, 0x24A1,0x0000,0x0000, 0x2460,0x0000,0x0000, /* 18A2 */
+0x2461,0x0000,0x0000, 0x24A6,0x0000,0x0000, 0x24A7,0x0000,0x0000, /* 18A5 */
+0x249F,0x0000,0x0000, 0x24A9,0x0000,0x0000, 0x24A8,0x0000,0x0000, /* 18A8 */
+0xFBC0,0x98AB,0x0000, 0xFBC0,0x98AC,0x0000, 0xFBC0,0x98AD,0x0000, /* 18AB */
+0xFBC0,0x98AE,0x0000, 0xFBC0,0x98AF,0x0000, 0x27A0,0x0000,0x0000, /* 18AE */
+0x27A1,0x0000,0x0000, 0x27A2,0x0000,0x0000, 0x27A3,0x0000,0x0000, /* 18B1 */
+0x27A4,0x0000,0x0000, 0x27A5,0x0000,0x0000, 0x27A6,0x0000,0x0000, /* 18B4 */
+0x27A7,0x0000,0x0000, 0x27A8,0x0000,0x0000, 0x27A9,0x0000,0x0000, /* 18B7 */
+0x27AA,0x0000,0x0000, 0x27AB,0x0000,0x0000, 0x27AC,0x0000,0x0000, /* 18BA */
+0x27AD,0x0000,0x0000, 0x27AE,0x0000,0x0000, 0x27AF,0x0000,0x0000, /* 18BD */
+0x27B0,0x0000,0x0000, 0x27B1,0x0000,0x0000, 0x27B2,0x0000,0x0000, /* 18C0 */
+0x27B3,0x0000,0x0000, 0x27B4,0x0000,0x0000, 0x27B5,0x0000,0x0000, /* 18C3 */
+0x27B6,0x0000,0x0000, 0x27B7,0x0000,0x0000, 0x27B8,0x0000,0x0000, /* 18C6 */
+0x27B9,0x0000,0x0000, 0x27BA,0x0000,0x0000, 0x27BB,0x0000,0x0000, /* 18C9 */
+0x27BC,0x0000,0x0000, 0x27BD,0x0000,0x0000, 0x27BE,0x0000,0x0000, /* 18CC */
+0x27BF,0x0000,0x0000, 0x27C0,0x0000,0x0000, 0x27C1,0x0000,0x0000, /* 18CF */
+0x27C2,0x0000,0x0000, 0x27C3,0x0000,0x0000, 0x27C4,0x0000,0x0000, /* 18D2 */
+0x27C5,0x0000,0x0000, 0x27C6,0x0000,0x0000, 0x27C7,0x0000,0x0000, /* 18D5 */
+0x27C8,0x0000,0x0000, 0x27C9,0x0000,0x0000, 0x27CA,0x0000,0x0000, /* 18D8 */
+0x27CB,0x0000,0x0000, 0x27CC,0x0000,0x0000, 0x27CD,0x0000,0x0000, /* 18DB */
+0x27CE,0x0000,0x0000, 0x27CF,0x0000,0x0000, 0x27D0,0x0000,0x0000, /* 18DE */
+0x27D1,0x0000,0x0000, 0x27D2,0x0000,0x0000, 0x27D3,0x0000,0x0000, /* 18E1 */
+0x27D4,0x0000,0x0000, 0x27D5,0x0000,0x0000, 0x27D6,0x0000,0x0000, /* 18E4 */
+0x27D7,0x0000,0x0000, 0x27D8,0x0000,0x0000, 0x27D9,0x0000,0x0000, /* 18E7 */
+0x27DA,0x0000,0x0000, 0x27DB,0x0000,0x0000, 0x27DC,0x0000,0x0000, /* 18EA */
+0x27DD,0x0000,0x0000, 0x27DE,0x0000,0x0000, 0x27DF,0x0000,0x0000, /* 18ED */
+0x27E0,0x0000,0x0000, 0x27E1,0x0000,0x0000, 0x27E2,0x0000,0x0000, /* 18F0 */
+0x27E3,0x0000,0x0000, 0x27E4,0x0000,0x0000, 0x27E5,0x0000,0x0000, /* 18F3 */
+0xFBC0,0x98F6,0x0000, 0xFBC0,0x98F7,0x0000, 0xFBC0,0x98F8,0x0000, /* 18F6 */
+0xFBC0,0x98F9,0x0000, 0xFBC0,0x98FA,0x0000, 0xFBC0,0x98FB,0x0000, /* 18F9 */
+0xFBC0,0x98FC,0x0000, 0xFBC0,0x98FD,0x0000, 0xFBC0,0x98FE,0x0000, /* 18FC */
+0xFBC0,0x98FF,0x0000 };
+
+static const uint16 uca520_p019[]= { /* 1900 (4 weights per char) */
+0x20EB,0x0000,0x0000,0x0000, 0x20EC,0x0000,0x0000,0x0000, /* 1900 */
+0x20ED,0x0000,0x0000,0x0000, 0x20EE,0x0000,0x0000,0x0000, /* 1902 */
+0x20EF,0x0000,0x0000,0x0000, 0x20F0,0x0000,0x0000,0x0000, /* 1904 */
+0x20F1,0x0000,0x0000,0x0000, 0x20F2,0x0000,0x0000,0x0000, /* 1906 */
+0x20F3,0x0000,0x0000,0x0000, 0x20F4,0x0000,0x0000,0x0000, /* 1908 */
+0x20F5,0x0000,0x0000,0x0000, 0x20F6,0x0000,0x0000,0x0000, /* 190A */
+0x20F7,0x0000,0x0000,0x0000, 0x20F8,0x0000,0x0000,0x0000, /* 190C */
+0x20F9,0x0000,0x0000,0x0000, 0x20FA,0x0000,0x0000,0x0000, /* 190E */
+0x20FB,0x0000,0x0000,0x0000, 0x20FC,0x0000,0x0000,0x0000, /* 1910 */
+0x20FD,0x0000,0x0000,0x0000, 0x20FE,0x0000,0x0000,0x0000, /* 1912 */
+0x20FF,0x0000,0x0000,0x0000, 0x2100,0x0000,0x0000,0x0000, /* 1914 */
+0x2101,0x0000,0x0000,0x0000, 0x2102,0x0000,0x0000,0x0000, /* 1916 */
+0x2103,0x0000,0x0000,0x0000, 0x2104,0x0000,0x0000,0x0000, /* 1918 */
+0x2105,0x0000,0x0000,0x0000, 0x2106,0x0000,0x0000,0x0000, /* 191A */
+0x2107,0x0000,0x0000,0x0000, 0xFBC0,0x991D,0x0000,0x0000, /* 191C */
+0xFBC0,0x991E,0x0000,0x0000, 0xFBC0,0x991F,0x0000,0x0000, /* 191E */
+0x2108,0x0000,0x0000,0x0000, 0x2109,0x0000,0x0000,0x0000, /* 1920 */
+0x210A,0x0000,0x0000,0x0000, 0x210B,0x0000,0x0000,0x0000, /* 1922 */
+0x210C,0x0000,0x0000,0x0000, 0x210D,0x0000,0x0000,0x0000, /* 1924 */
+0x210E,0x0000,0x0000,0x0000, 0x210F,0x0000,0x0000,0x0000, /* 1926 */
+0x2110,0x0000,0x0000,0x0000, 0x2111,0x0000,0x0000,0x0000, /* 1928 */
+0x2112,0x0000,0x0000,0x0000, 0x2113,0x0000,0x0000,0x0000, /* 192A */
+0xFBC0,0x992C,0x0000,0x0000, 0xFBC0,0x992D,0x0000,0x0000, /* 192C */
+0xFBC0,0x992E,0x0000,0x0000, 0xFBC0,0x992F,0x0000,0x0000, /* 192E */
+0x2114,0x0000,0x0000,0x0000, 0x2115,0x0000,0x0000,0x0000, /* 1930 */
+0x2116,0x0000,0x0000,0x0000, 0x2117,0x0000,0x0000,0x0000, /* 1932 */
+0x2118,0x0000,0x0000,0x0000, 0x2119,0x0000,0x0000,0x0000, /* 1934 */
+0x211A,0x0000,0x0000,0x0000, 0x211B,0x0000,0x0000,0x0000, /* 1936 */
+0x211C,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1938 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 193A */
+0xFBC0,0x993C,0x0000,0x0000, 0xFBC0,0x993D,0x0000,0x0000, /* 193C */
+0xFBC0,0x993E,0x0000,0x0000, 0xFBC0,0x993F,0x0000,0x0000, /* 193E */
+0x03C1,0x0000,0x0000,0x0000, 0xFBC0,0x9941,0x0000,0x0000, /* 1940 */
+0xFBC0,0x9942,0x0000,0x0000, 0xFBC0,0x9943,0x0000,0x0000, /* 1942 */
+0x0272,0x0000,0x0000,0x0000, 0x027A,0x0000,0x0000,0x0000, /* 1944 */
+0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1946 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1948 */
+0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 194A */
+0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 194C */
+0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 194E */
+0x22AB,0x0000,0x0000,0x0000, 0x22AC,0x0000,0x0000,0x0000, /* 1950 */
+0x22AD,0x0000,0x0000,0x0000, 0x22AE,0x0000,0x0000,0x0000, /* 1952 */
+0x22AF,0x0000,0x0000,0x0000, 0x22B0,0x0000,0x0000,0x0000, /* 1954 */
+0x22B1,0x0000,0x0000,0x0000, 0x22B2,0x0000,0x0000,0x0000, /* 1956 */
+0x22B3,0x0000,0x0000,0x0000, 0x22B4,0x0000,0x0000,0x0000, /* 1958 */
+0x22B5,0x0000,0x0000,0x0000, 0x22B6,0x0000,0x0000,0x0000, /* 195A */
+0x22B7,0x0000,0x0000,0x0000, 0x22B8,0x0000,0x0000,0x0000, /* 195C */
+0x22B9,0x0000,0x0000,0x0000, 0x22BA,0x0000,0x0000,0x0000, /* 195E */
+0x22BB,0x0000,0x0000,0x0000, 0x22BC,0x0000,0x0000,0x0000, /* 1960 */
+0x22BD,0x0000,0x0000,0x0000, 0x22BE,0x0000,0x0000,0x0000, /* 1962 */
+0x22BF,0x0000,0x0000,0x0000, 0x22C0,0x0000,0x0000,0x0000, /* 1964 */
+0x22C1,0x0000,0x0000,0x0000, 0x22C2,0x0000,0x0000,0x0000, /* 1966 */
+0x22C3,0x0000,0x0000,0x0000, 0x22C4,0x0000,0x0000,0x0000, /* 1968 */
+0x22C5,0x0000,0x0000,0x0000, 0x22C6,0x0000,0x0000,0x0000, /* 196A */
+0x22C7,0x0000,0x0000,0x0000, 0x22C8,0x0000,0x0000,0x0000, /* 196C */
+0xFBC0,0x996E,0x0000,0x0000, 0xFBC0,0x996F,0x0000,0x0000, /* 196E */
+0x22C9,0x0000,0x0000,0x0000, 0x22CA,0x0000,0x0000,0x0000, /* 1970 */
+0x22CB,0x0000,0x0000,0x0000, 0x22CC,0x0000,0x0000,0x0000, /* 1972 */
+0x22CD,0x0000,0x0000,0x0000, 0xFBC0,0x9975,0x0000,0x0000, /* 1974 */
+0xFBC0,0x9976,0x0000,0x0000, 0xFBC0,0x9977,0x0000,0x0000, /* 1976 */
+0xFBC0,0x9978,0x0000,0x0000, 0xFBC0,0x9979,0x0000,0x0000, /* 1978 */
+0xFBC0,0x997A,0x0000,0x0000, 0xFBC0,0x997B,0x0000,0x0000, /* 197A */
+0xFBC0,0x997C,0x0000,0x0000, 0xFBC0,0x997D,0x0000,0x0000, /* 197C */
+0xFBC0,0x997E,0x0000,0x0000, 0xFBC0,0x997F,0x0000,0x0000, /* 197E */
+0x22CE,0x0000,0x0000,0x0000, 0x22CF,0x0000,0x0000,0x0000, /* 1980 */
+0x22D0,0x0000,0x0000,0x0000, 0x22D1,0x0000,0x0000,0x0000, /* 1982 */
+0x22D2,0x0000,0x0000,0x0000, 0x22D3,0x0000,0x0000,0x0000, /* 1984 */
+0x22D4,0x0000,0x0000,0x0000, 0x22D5,0x0000,0x0000,0x0000, /* 1986 */
+0x22D6,0x0000,0x0000,0x0000, 0x22D7,0x0000,0x0000,0x0000, /* 1988 */
+0x22D8,0x0000,0x0000,0x0000, 0x22D9,0x0000,0x0000,0x0000, /* 198A */
+0x22DA,0x0000,0x0000,0x0000, 0x22DB,0x0000,0x0000,0x0000, /* 198C */
+0x22DC,0x0000,0x0000,0x0000, 0x22DD,0x0000,0x0000,0x0000, /* 198E */
+0x22DE,0x0000,0x0000,0x0000, 0x22DF,0x0000,0x0000,0x0000, /* 1990 */
+0x22E0,0x0000,0x0000,0x0000, 0x22E1,0x0000,0x0000,0x0000, /* 1992 */
+0x22E2,0x0000,0x0000,0x0000, 0x22E3,0x0000,0x0000,0x0000, /* 1994 */
+0x22E4,0x0000,0x0000,0x0000, 0x22E5,0x0000,0x0000,0x0000, /* 1996 */
+0x22E6,0x0000,0x0000,0x0000, 0x22E7,0x0000,0x0000,0x0000, /* 1998 */
+0x22E8,0x0000,0x0000,0x0000, 0x22E9,0x0000,0x0000,0x0000, /* 199A */
+0x22EA,0x0000,0x0000,0x0000, 0x22EB,0x0000,0x0000,0x0000, /* 199C */
+0x22EC,0x0000,0x0000,0x0000, 0x22ED,0x0000,0x0000,0x0000, /* 199E */
+0x22EE,0x0000,0x0000,0x0000, 0x22EF,0x0000,0x0000,0x0000, /* 19A0 */
+0x22F0,0x0000,0x0000,0x0000, 0x22F1,0x0000,0x0000,0x0000, /* 19A2 */
+0x22F2,0x0000,0x0000,0x0000, 0x22F3,0x0000,0x0000,0x0000, /* 19A4 */
+0x22F4,0x0000,0x0000,0x0000, 0x22F5,0x0000,0x0000,0x0000, /* 19A6 */
+0x22F6,0x0000,0x0000,0x0000, 0x22F7,0x0000,0x0000,0x0000, /* 19A8 */
+0x22F8,0x0000,0x0000,0x0000, 0x22F9,0x0000,0x0000,0x0000, /* 19AA */
+0xFBC0,0x99AC,0x0000,0x0000, 0xFBC0,0x99AD,0x0000,0x0000, /* 19AC */
+0xFBC0,0x99AE,0x0000,0x0000, 0xFBC0,0x99AF,0x0000,0x0000, /* 19AE */
+0x22FA,0x0000,0x0000,0x0000, 0x22FB,0x0000,0x0000,0x0000, /* 19B0 */
+0x22FC,0x0000,0x0000,0x0000, 0x22FD,0x0000,0x0000,0x0000, /* 19B2 */
+0x22FE,0x0000,0x0000,0x0000, 0x22FF,0x0000,0x0000,0x0000, /* 19B4 */
+0x2300,0x0000,0x0000,0x0000, 0x2301,0x0000,0x0000,0x0000, /* 19B6 */
+0x2302,0x0000,0x0000,0x0000, 0x2303,0x0000,0x0000,0x0000, /* 19B8 */
+0x2304,0x0000,0x0000,0x0000, 0x2305,0x0000,0x0000,0x0000, /* 19BA */
+0x2306,0x0000,0x0000,0x0000, 0x2307,0x0000,0x0000,0x0000, /* 19BC */
+0x2308,0x0000,0x0000,0x0000, 0x2309,0x0000,0x0000,0x0000, /* 19BE */
+0x230A,0x0000,0x0000,0x0000, 0x230B,0x0000,0x0000,0x0000, /* 19C0 */
+0x230C,0x0000,0x0000,0x0000, 0x230D,0x0000,0x0000,0x0000, /* 19C2 */
+0x230E,0x0000,0x0000,0x0000, 0x230F,0x0000,0x0000,0x0000, /* 19C4 */
+0x2310,0x0000,0x0000,0x0000, 0x2311,0x0000,0x0000,0x0000, /* 19C6 */
+0x2312,0x0000,0x0000,0x0000, 0x2313,0x0000,0x0000,0x0000, /* 19C8 */
+0xFBC0,0x99CA,0x0000,0x0000, 0xFBC0,0x99CB,0x0000,0x0000, /* 19CA */
+0xFBC0,0x99CC,0x0000,0x0000, 0xFBC0,0x99CD,0x0000,0x0000, /* 19CC */
+0xFBC0,0x99CE,0x0000,0x0000, 0xFBC0,0x99CF,0x0000,0x0000, /* 19CE */
+0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 19D0 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 19D2 */
+0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 19D4 */
+0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 19D6 */
+0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 19D8 */
+0x1206,0x0000,0x0000,0x0000, 0xFBC0,0x99DB,0x0000,0x0000, /* 19DA */
+0xFBC0,0x99DC,0x0000,0x0000, 0xFBC0,0x99DD,0x0000,0x0000, /* 19DC */
+0x22EA,0x2300,0x0000,0x0000, 0x22EA,0x2300,0x230B,0x0000, /* 19DE */
+0x048E,0x0000,0x0000,0x0000, 0x048F,0x0000,0x0000,0x0000, /* 19E0 */
+0x0490,0x0000,0x0000,0x0000, 0x0491,0x0000,0x0000,0x0000, /* 19E2 */
+0x0492,0x0000,0x0000,0x0000, 0x0493,0x0000,0x0000,0x0000, /* 19E4 */
+0x0494,0x0000,0x0000,0x0000, 0x0495,0x0000,0x0000,0x0000, /* 19E6 */
+0x0496,0x0000,0x0000,0x0000, 0x0497,0x0000,0x0000,0x0000, /* 19E8 */
+0x0498,0x0000,0x0000,0x0000, 0x0499,0x0000,0x0000,0x0000, /* 19EA */
+0x049A,0x0000,0x0000,0x0000, 0x049B,0x0000,0x0000,0x0000, /* 19EC */
+0x049C,0x0000,0x0000,0x0000, 0x049D,0x0000,0x0000,0x0000, /* 19EE */
+0x049E,0x0000,0x0000,0x0000, 0x049F,0x0000,0x0000,0x0000, /* 19F0 */
+0x04A0,0x0000,0x0000,0x0000, 0x04A1,0x0000,0x0000,0x0000, /* 19F2 */
+0x04A2,0x0000,0x0000,0x0000, 0x04A3,0x0000,0x0000,0x0000, /* 19F4 */
+0x04A4,0x0000,0x0000,0x0000, 0x04A5,0x0000,0x0000,0x0000, /* 19F6 */
+0x04A6,0x0000,0x0000,0x0000, 0x04A7,0x0000,0x0000,0x0000, /* 19F8 */
+0x04A8,0x0000,0x0000,0x0000, 0x04A9,0x0000,0x0000,0x0000, /* 19FA */
+0x04AA,0x0000,0x0000,0x0000, 0x04AB,0x0000,0x0000,0x0000, /* 19FC */
+0x04AC,0x0000,0x0000,0x0000, 0x04AD,0x0000,0x0000,0x0000 /* 19FE */
+};
+
+static const uint16 uca520_p01A[]= { /* 1A00 (4 weights per char) */
+0x216C,0x0000,0x0000,0x0000, 0x216D,0x0000,0x0000,0x0000, /* 1A00 */
+0x216E,0x0000,0x0000,0x0000, 0x216F,0x0000,0x0000,0x0000, /* 1A02 */
+0x2170,0x0000,0x0000,0x0000, 0x2171,0x0000,0x0000,0x0000, /* 1A04 */
+0x2172,0x0000,0x0000,0x0000, 0x2173,0x0000,0x0000,0x0000, /* 1A06 */
+0x2174,0x0000,0x0000,0x0000, 0x2175,0x0000,0x0000,0x0000, /* 1A08 */
+0x2176,0x0000,0x0000,0x0000, 0x2177,0x0000,0x0000,0x0000, /* 1A0A */
+0x2178,0x0000,0x0000,0x0000, 0x2179,0x0000,0x0000,0x0000, /* 1A0C */
+0x217A,0x0000,0x0000,0x0000, 0x217B,0x0000,0x0000,0x0000, /* 1A0E */
+0x217C,0x0000,0x0000,0x0000, 0x217D,0x0000,0x0000,0x0000, /* 1A10 */
+0x217E,0x0000,0x0000,0x0000, 0x217F,0x0000,0x0000,0x0000, /* 1A12 */
+0x2180,0x0000,0x0000,0x0000, 0x2181,0x0000,0x0000,0x0000, /* 1A14 */
+0x2182,0x0000,0x0000,0x0000, 0x2183,0x0000,0x0000,0x0000, /* 1A16 */
+0x2184,0x0000,0x0000,0x0000, 0x2185,0x0000,0x0000,0x0000, /* 1A18 */
+0x2186,0x0000,0x0000,0x0000, 0x2187,0x0000,0x0000,0x0000, /* 1A1A */
+0xFBC0,0x9A1C,0x0000,0x0000, 0xFBC0,0x9A1D,0x0000,0x0000, /* 1A1C */
+0x02BA,0x0000,0x0000,0x0000, 0x02BB,0x0000,0x0000,0x0000, /* 1A1E */
+0x2314,0x0000,0x0000,0x0000, 0x2315,0x0000,0x0000,0x0000, /* 1A20 */
+0x2316,0x0000,0x0000,0x0000, 0x2317,0x0000,0x0000,0x0000, /* 1A22 */
+0x2318,0x0000,0x0000,0x0000, 0x2319,0x0000,0x0000,0x0000, /* 1A24 */
+0x231A,0x0000,0x0000,0x0000, 0x231B,0x0000,0x0000,0x0000, /* 1A26 */
+0x231C,0x0000,0x0000,0x0000, 0x231D,0x0000,0x0000,0x0000, /* 1A28 */
+0x231E,0x0000,0x0000,0x0000, 0x231F,0x0000,0x0000,0x0000, /* 1A2A */
+0x2320,0x0000,0x0000,0x0000, 0x2321,0x0000,0x0000,0x0000, /* 1A2C */
+0x2322,0x0000,0x0000,0x0000, 0x2323,0x0000,0x0000,0x0000, /* 1A2E */
+0x2324,0x0000,0x0000,0x0000, 0x2325,0x0000,0x0000,0x0000, /* 1A30 */
+0x2326,0x0000,0x0000,0x0000, 0x2327,0x0000,0x0000,0x0000, /* 1A32 */
+0x2328,0x0000,0x0000,0x0000, 0x2329,0x0000,0x0000,0x0000, /* 1A34 */
+0x232A,0x0000,0x0000,0x0000, 0x232B,0x0000,0x0000,0x0000, /* 1A36 */
+0x232C,0x0000,0x0000,0x0000, 0x232D,0x0000,0x0000,0x0000, /* 1A38 */
+0x232E,0x0000,0x0000,0x0000, 0x232F,0x0000,0x0000,0x0000, /* 1A3A */
+0x2330,0x0000,0x0000,0x0000, 0x2331,0x0000,0x0000,0x0000, /* 1A3C */
+0x2332,0x0000,0x0000,0x0000, 0x2333,0x0000,0x0000,0x0000, /* 1A3E */
+0x2334,0x0000,0x0000,0x0000, 0x2335,0x0000,0x0000,0x0000, /* 1A40 */
+0x2336,0x0000,0x0000,0x0000, 0x2337,0x0000,0x0000,0x0000, /* 1A42 */
+0x2338,0x0000,0x0000,0x0000, 0x2339,0x0000,0x0000,0x0000, /* 1A44 */
+0x233A,0x0000,0x0000,0x0000, 0x233B,0x0000,0x0000,0x0000, /* 1A46 */
+0x233C,0x0000,0x0000,0x0000, 0x233D,0x0000,0x0000,0x0000, /* 1A48 */
+0x233E,0x0000,0x0000,0x0000, 0x233F,0x0000,0x0000,0x0000, /* 1A4A */
+0x2340,0x0000,0x0000,0x0000, 0x2349,0x0000,0x0000,0x0000, /* 1A4C */
+0x234A,0x0000,0x0000,0x0000, 0x234B,0x0000,0x0000,0x0000, /* 1A4E */
+0x234C,0x0000,0x0000,0x0000, 0x234D,0x0000,0x0000,0x0000, /* 1A50 */
+0x234E,0x0000,0x0000,0x0000, 0x2341,0x0000,0x0000,0x0000, /* 1A52 */
+0x233A,0x2360,0x233A,0x0000, 0x2343,0x0000,0x0000,0x0000, /* 1A54 */
+0x2344,0x0000,0x0000,0x0000, 0x2345,0x0000,0x0000,0x0000, /* 1A56 */
+0x231A,0x0000,0x0000,0x0000, 0x231A,0x0000,0x0000,0x0000, /* 1A58 */
+0x232F,0x0000,0x0000,0x0000, 0x232F,0x0000,0x0000,0x0000, /* 1A5A */
+0x2346,0x0000,0x0000,0x0000, 0x2347,0x0000,0x0000,0x0000, /* 1A5C */
+0x2348,0x0000,0x0000,0x0000, 0xFBC0,0x9A5F,0x0000,0x0000, /* 1A5E */
+0x2360,0x0000,0x0000,0x0000, 0x234F,0x0000,0x0000,0x0000, /* 1A60 */
+0x2351,0x0000,0x0000,0x0000, 0x2352,0x0000,0x0000,0x0000, /* 1A62 */
+0x2352,0x0000,0x0000,0x0000, 0x2353,0x0000,0x0000,0x0000, /* 1A64 */
+0x2354,0x0000,0x0000,0x0000, 0x2355,0x0000,0x0000,0x0000, /* 1A66 */
+0x2356,0x0000,0x0000,0x0000, 0x2357,0x0000,0x0000,0x0000, /* 1A68 */
+0x2358,0x0000,0x0000,0x0000, 0x2342,0x0000,0x0000,0x0000, /* 1A6A */
+0x2350,0x0000,0x0000,0x0000, 0x235F,0x0000,0x0000,0x0000, /* 1A6C */
+0x2359,0x0000,0x0000,0x0000, 0x235A,0x0000,0x0000,0x0000, /* 1A6E */
+0x235C,0x0000,0x0000,0x0000, 0x235D,0x0000,0x0000,0x0000, /* 1A70 */
+0x235E,0x0000,0x0000,0x0000, 0x235B,0x0000,0x0000,0x0000, /* 1A72 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A74 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A76 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A78 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A7A */
+0x0000,0x0000,0x0000,0x0000, 0xFBC0,0x9A7D,0x0000,0x0000, /* 1A7C */
+0xFBC0,0x9A7E,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A7E */
+0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1A80 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1A82 */
+0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1A84 */
+0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1A86 */
+0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1A88 */
+0xFBC0,0x9A8A,0x0000,0x0000, 0xFBC0,0x9A8B,0x0000,0x0000, /* 1A8A */
+0xFBC0,0x9A8C,0x0000,0x0000, 0xFBC0,0x9A8D,0x0000,0x0000, /* 1A8C */
+0xFBC0,0x9A8E,0x0000,0x0000, 0xFBC0,0x9A8F,0x0000,0x0000, /* 1A8E */
+0x1205,0x0000,0x0000,0x0000, 0x1206,0x0000,0x0000,0x0000, /* 1A90 */
+0x1207,0x0000,0x0000,0x0000, 0x1208,0x0000,0x0000,0x0000, /* 1A92 */
+0x1209,0x0000,0x0000,0x0000, 0x120A,0x0000,0x0000,0x0000, /* 1A94 */
+0x120B,0x0000,0x0000,0x0000, 0x120C,0x0000,0x0000,0x0000, /* 1A96 */
+0x120D,0x0000,0x0000,0x0000, 0x120E,0x0000,0x0000,0x0000, /* 1A98 */
+0xFBC0,0x9A9A,0x0000,0x0000, 0xFBC0,0x9A9B,0x0000,0x0000, /* 1A9A */
+0xFBC0,0x9A9C,0x0000,0x0000, 0xFBC0,0x9A9D,0x0000,0x0000, /* 1A9C */
+0xFBC0,0x9A9E,0x0000,0x0000, 0xFBC0,0x9A9F,0x0000,0x0000, /* 1A9E */
+0x03CF,0x0000,0x0000,0x0000, 0x03D0,0x0000,0x0000,0x0000, /* 1AA0 */
+0x03D1,0x0000,0x0000,0x0000, 0x03D2,0x0000,0x0000,0x0000, /* 1AA2 */
+0x03D3,0x0000,0x0000,0x0000, 0x03D4,0x0000,0x0000,0x0000, /* 1AA4 */
+0x03D5,0x0000,0x0000,0x0000, 0x11D3,0x0000,0x0000,0x0000, /* 1AA6 */
+0x02A3,0x0000,0x0000,0x0000, 0x02A4,0x0000,0x0000,0x0000, /* 1AA8 */
+0x02A5,0x0000,0x0000,0x0000, 0x02A6,0x0000,0x0000,0x0000, /* 1AAA */
+0x03D6,0x0000,0x0000,0x0000, 0x03D7,0x0000,0x0000,0x0000, /* 1AAC */
+0xFBC0,0x9AAE,0x0000,0x0000, 0xFBC0,0x9AAF,0x0000,0x0000, /* 1AAE */
+0xFBC0,0x9AB0,0x0000,0x0000, 0xFBC0,0x9AB1,0x0000,0x0000, /* 1AB0 */
+0xFBC0,0x9AB2,0x0000,0x0000, 0xFBC0,0x9AB3,0x0000,0x0000, /* 1AB2 */
+0xFBC0,0x9AB4,0x0000,0x0000, 0xFBC0,0x9AB5,0x0000,0x0000, /* 1AB4 */
+0xFBC0,0x9AB6,0x0000,0x0000, 0xFBC0,0x9AB7,0x0000,0x0000, /* 1AB6 */
+0xFBC0,0x9AB8,0x0000,0x0000, 0xFBC0,0x9AB9,0x0000,0x0000, /* 1AB8 */
+0xFBC0,0x9ABA,0x0000,0x0000, 0xFBC0,0x9ABB,0x0000,0x0000, /* 1ABA */
+0xFBC0,0x9ABC,0x0000,0x0000, 0xFBC0,0x9ABD,0x0000,0x0000, /* 1ABC */
+0xFBC0,0x9ABE,0x0000,0x0000, 0xFBC0,0x9ABF,0x0000,0x0000, /* 1ABE */
+0xFBC0,0x9AC0,0x0000,0x0000, 0xFBC0,0x9AC1,0x0000,0x0000, /* 1AC0 */
+0xFBC0,0x9AC2,0x0000,0x0000, 0xFBC0,0x9AC3,0x0000,0x0000, /* 1AC2 */
+0xFBC0,0x9AC4,0x0000,0x0000, 0xFBC0,0x9AC5,0x0000,0x0000, /* 1AC4 */
+0xFBC0,0x9AC6,0x0000,0x0000, 0xFBC0,0x9AC7,0x0000,0x0000, /* 1AC6 */
+0xFBC0,0x9AC8,0x0000,0x0000, 0xFBC0,0x9AC9,0x0000,0x0000, /* 1AC8 */
+0xFBC0,0x9ACA,0x0000,0x0000, 0xFBC0,0x9ACB,0x0000,0x0000, /* 1ACA */
+0xFBC0,0x9ACC,0x0000,0x0000, 0xFBC0,0x9ACD,0x0000,0x0000, /* 1ACC */
+0xFBC0,0x9ACE,0x0000,0x0000, 0xFBC0,0x9ACF,0x0000,0x0000, /* 1ACE */
+0xFBC0,0x9AD0,0x0000,0x0000, 0xFBC0,0x9AD1,0x0000,0x0000, /* 1AD0 */
+0xFBC0,0x9AD2,0x0000,0x0000, 0xFBC0,0x9AD3,0x0000,0x0000, /* 1AD2 */
+0xFBC0,0x9AD4,0x0000,0x0000, 0xFBC0,0x9AD5,0x0000,0x0000, /* 1AD4 */
+0xFBC0,0x9AD6,0x0000,0x0000, 0xFBC0,0x9AD7,0x0000,0x0000, /* 1AD6 */
+0xFBC0,0x9AD8,0x0000,0x0000, 0xFBC0,0x9AD9,0x0000,0x0000, /* 1AD8 */
+0xFBC0,0x9ADA,0x0000,0x0000, 0xFBC0,0x9ADB,0x0000,0x0000, /* 1ADA */
+0xFBC0,0x9ADC,0x0000,0x0000, 0xFBC0,0x9ADD,0x0000,0x0000, /* 1ADC */
+0xFBC0,0x9ADE,0x0000,0x0000, 0xFBC0,0x9ADF,0x0000,0x0000, /* 1ADE */
+0xFBC0,0x9AE0,0x0000,0x0000, 0xFBC0,0x9AE1,0x0000,0x0000, /* 1AE0 */
+0xFBC0,0x9AE2,0x0000,0x0000, 0xFBC0,0x9AE3,0x0000,0x0000, /* 1AE2 */
+0xFBC0,0x9AE4,0x0000,0x0000, 0xFBC0,0x9AE5,0x0000,0x0000, /* 1AE4 */
+0xFBC0,0x9AE6,0x0000,0x0000, 0xFBC0,0x9AE7,0x0000,0x0000, /* 1AE6 */
+0xFBC0,0x9AE8,0x0000,0x0000, 0xFBC0,0x9AE9,0x0000,0x0000, /* 1AE8 */
+0xFBC0,0x9AEA,0x0000,0x0000, 0xFBC0,0x9AEB,0x0000,0x0000, /* 1AEA */
+0xFBC0,0x9AEC,0x0000,0x0000, 0xFBC0,0x9AED,0x0000,0x0000, /* 1AEC */
+0xFBC0,0x9AEE,0x0000,0x0000, 0xFBC0,0x9AEF,0x0000,0x0000, /* 1AEE */
+0xFBC0,0x9AF0,0x0000,0x0000, 0xFBC0,0x9AF1,0x0000,0x0000, /* 1AF0 */
+0xFBC0,0x9AF2,0x0000,0x0000, 0xFBC0,0x9AF3,0x0000,0x0000, /* 1AF2 */
+0xFBC0,0x9AF4,0x0000,0x0000, 0xFBC0,0x9AF5,0x0000,0x0000, /* 1AF4 */
+0xFBC0,0x9AF6,0x0000,0x0000, 0xFBC0,0x9AF7,0x0000,0x0000, /* 1AF6 */
+0xFBC0,0x9AF8,0x0000,0x0000, 0xFBC0,0x9AF9,0x0000,0x0000, /* 1AF8 */
+0xFBC0,0x9AFA,0x0000,0x0000, 0xFBC0,0x9AFB,0x0000,0x0000, /* 1AFA */
+0xFBC0,0x9AFC,0x0000,0x0000, 0xFBC0,0x9AFD,0x0000,0x0000, /* 1AFC */
+0xFBC0,0x9AFE,0x0000,0x0000, 0xFBC0,0x9AFF,0x0000,0x0000 /* 1AFE */
+};
+
+static const uint16 uca520_p01B[]= { /* 1B00 (3 weights per char) */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B00 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x23A6,0x0000,0x0000, /* 1B03 */
+0x23A7,0x0000,0x0000, 0x23A8,0x0000,0x0000, 0x23A9,0x0000,0x0000, /* 1B06 */
+0x23AA,0x0000,0x0000, 0x23AB,0x0000,0x0000, 0x23AC,0x0000,0x0000, /* 1B09 */
+0x23AD,0x0000,0x0000, 0x23AE,0x0000,0x0000, 0x23AF,0x0000,0x0000, /* 1B0C */
+0x23B0,0x0000,0x0000, 0x23B1,0x0000,0x0000, 0x23B2,0x0000,0x0000, /* 1B0F */
+0x23B3,0x0000,0x0000, 0x23B4,0x0000,0x0000, 0x23B7,0x0000,0x0000, /* 1B12 */
+0x23B8,0x0000,0x0000, 0x23B9,0x0000,0x0000, 0x23BA,0x0000,0x0000, /* 1B15 */
+0x23BB,0x0000,0x0000, 0x23BC,0x0000,0x0000, 0x23BD,0x0000,0x0000, /* 1B18 */
+0x23BE,0x0000,0x0000, 0x23BF,0x0000,0x0000, 0x23C0,0x0000,0x0000, /* 1B1B */
+0x23C1,0x0000,0x0000, 0x23C2,0x0000,0x0000, 0x23C3,0x0000,0x0000, /* 1B1E */
+0x23C4,0x0000,0x0000, 0x23C5,0x0000,0x0000, 0x23C7,0x0000,0x0000, /* 1B21 */
+0x23C8,0x0000,0x0000, 0x23C9,0x0000,0x0000, 0x23CA,0x0000,0x0000, /* 1B24 */
+0x23CB,0x0000,0x0000, 0x23CD,0x0000,0x0000, 0x23CE,0x0000,0x0000, /* 1B27 */
+0x23CF,0x0000,0x0000, 0x23D0,0x0000,0x0000, 0x23D1,0x0000,0x0000, /* 1B2A */
+0x23D2,0x0000,0x0000, 0x23D3,0x0000,0x0000, 0x23D4,0x0000,0x0000, /* 1B2D */
+0x23D6,0x0000,0x0000, 0x23D7,0x0000,0x0000, 0x23D8,0x0000,0x0000, /* 1B30 */
+0x23DB,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x23DC,0x0000,0x0000, /* 1B33 */
+0x23DD,0x0000,0x0000, 0x23DE,0x0000,0x0000, 0x23DF,0x0000,0x0000, /* 1B36 */
+0x23E0,0x0000,0x0000, 0x23E1,0x0000,0x0000, 0x23E2,0x0000,0x0000, /* 1B39 */
+0x23E3,0x0000,0x0000, 0x23E4,0x0000,0x0000, 0x23E5,0x0000,0x0000, /* 1B3C */
+0x23E6,0x0000,0x0000, 0x23E7,0x0000,0x0000, 0x23E8,0x0000,0x0000, /* 1B3F */
+0x23E9,0x0000,0x0000, 0x23EA,0x0000,0x0000, 0x23EB,0x0000,0x0000, /* 1B42 */
+0x23B5,0x0000,0x0000, 0x23B6,0x0000,0x0000, 0x23C6,0x0000,0x0000, /* 1B45 */
+0x23CC,0x0000,0x0000, 0x23D5,0x0000,0x0000, 0x23D9,0x0000,0x0000, /* 1B48 */
+0x23DA,0x0000,0x0000, 0xFBC0,0x9B4C,0x0000, 0xFBC0,0x9B4D,0x0000, /* 1B4B */
+0xFBC0,0x9B4E,0x0000, 0xFBC0,0x9B4F,0x0000, 0x1205,0x0000,0x0000, /* 1B4E */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1B51 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1B54 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1B57 */
+0x02BC,0x0000,0x0000, 0x02BD,0x0000,0x0000, 0x028A,0x0000,0x0000, /* 1B5A */
+0x0268,0x0000,0x0000, 0x02A7,0x0000,0x0000, 0x02A8,0x0000,0x0000, /* 1B5D */
+0x0226,0x0000,0x0000, 0x04AE,0x0000,0x0000, 0x04AF,0x0000,0x0000, /* 1B60 */
+0x04B0,0x0000,0x0000, 0x04B1,0x0000,0x0000, 0x04B2,0x0000,0x0000, /* 1B63 */
+0x04B3,0x0000,0x0000, 0x04B4,0x0000,0x0000, 0x04B5,0x0000,0x0000, /* 1B66 */
+0x04B6,0x0000,0x0000, 0x04B7,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B69 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x04B8,0x0000,0x0000, /* 1B72 */
+0x04B9,0x0000,0x0000, 0x04BA,0x0000,0x0000, 0x04BB,0x0000,0x0000, /* 1B75 */
+0x04BC,0x0000,0x0000, 0x04BD,0x0000,0x0000, 0x04BE,0x0000,0x0000, /* 1B78 */
+0x04BF,0x0000,0x0000, 0x04C0,0x0000,0x0000, 0xFBC0,0x9B7D,0x0000, /* 1B7B */
+0xFBC0,0x9B7E,0x0000, 0xFBC0,0x9B7F,0x0000, 0x0000,0x0000,0x0000, /* 1B7E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1F1C,0x0000,0x0000, /* 1B81 */
+0x1F1D,0x0000,0x0000, 0x1F1E,0x0000,0x0000, 0x1F1F,0x0000,0x0000, /* 1B84 */
+0x1F20,0x0000,0x0000, 0x1F21,0x0000,0x0000, 0x1F22,0x0000,0x0000, /* 1B87 */
+0x1F23,0x0000,0x0000, 0x1F25,0x0000,0x0000, 0x1F26,0x0000,0x0000, /* 1B8A */
+0x1F27,0x0000,0x0000, 0x1F28,0x0000,0x0000, 0x1F29,0x0000,0x0000, /* 1B8D */
+0x1F2A,0x0000,0x0000, 0x1F2B,0x0000,0x0000, 0x1F2C,0x0000,0x0000, /* 1B90 */
+0x1F2D,0x0000,0x0000, 0x1F2E,0x0000,0x0000, 0x1F2F,0x0000,0x0000, /* 1B93 */
+0x1F30,0x0000,0x0000, 0x1F31,0x0000,0x0000, 0x1F32,0x0000,0x0000, /* 1B96 */
+0x1F33,0x0000,0x0000, 0x1F34,0x0000,0x0000, 0x1F36,0x0000,0x0000, /* 1B99 */
+0x1F38,0x0000,0x0000, 0x1F3A,0x0000,0x0000, 0x1F3B,0x0000,0x0000, /* 1B9C */
+0x1F3C,0x0000,0x0000, 0x1F3E,0x0000,0x0000, 0x1F35,0x0000,0x0000, /* 1B9F */
+0x1F37,0x0000,0x0000, 0x1F39,0x0000,0x0000, 0x1F3F,0x0000,0x0000, /* 1BA2 */
+0x1F40,0x0000,0x0000, 0x1F41,0x0000,0x0000, 0x1F42,0x0000,0x0000, /* 1BA5 */
+0x1F43,0x0000,0x0000, 0x1F44,0x0000,0x0000, 0x1F45,0x0000,0x0000, /* 1BA8 */
+0xFBC0,0x9BAB,0x0000, 0xFBC0,0x9BAC,0x0000, 0xFBC0,0x9BAD,0x0000, /* 1BAB */
+0x1F24,0x0000,0x0000, 0x1F3D,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1BAE */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1BB1 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1BB4 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1BB7 */
+0xFBC0,0x9BBA,0x0000, 0xFBC0,0x9BBB,0x0000, 0xFBC0,0x9BBC,0x0000, /* 1BBA */
+0xFBC0,0x9BBD,0x0000, 0xFBC0,0x9BBE,0x0000, 0xFBC0,0x9BBF,0x0000, /* 1BBD */
+0xFBC0,0x9BC0,0x0000, 0xFBC0,0x9BC1,0x0000, 0xFBC0,0x9BC2,0x0000, /* 1BC0 */
+0xFBC0,0x9BC3,0x0000, 0xFBC0,0x9BC4,0x0000, 0xFBC0,0x9BC5,0x0000, /* 1BC3 */
+0xFBC0,0x9BC6,0x0000, 0xFBC0,0x9BC7,0x0000, 0xFBC0,0x9BC8,0x0000, /* 1BC6 */
+0xFBC0,0x9BC9,0x0000, 0xFBC0,0x9BCA,0x0000, 0xFBC0,0x9BCB,0x0000, /* 1BC9 */
+0xFBC0,0x9BCC,0x0000, 0xFBC0,0x9BCD,0x0000, 0xFBC0,0x9BCE,0x0000, /* 1BCC */
+0xFBC0,0x9BCF,0x0000, 0xFBC0,0x9BD0,0x0000, 0xFBC0,0x9BD1,0x0000, /* 1BCF */
+0xFBC0,0x9BD2,0x0000, 0xFBC0,0x9BD3,0x0000, 0xFBC0,0x9BD4,0x0000, /* 1BD2 */
+0xFBC0,0x9BD5,0x0000, 0xFBC0,0x9BD6,0x0000, 0xFBC0,0x9BD7,0x0000, /* 1BD5 */
+0xFBC0,0x9BD8,0x0000, 0xFBC0,0x9BD9,0x0000, 0xFBC0,0x9BDA,0x0000, /* 1BD8 */
+0xFBC0,0x9BDB,0x0000, 0xFBC0,0x9BDC,0x0000, 0xFBC0,0x9BDD,0x0000, /* 1BDB */
+0xFBC0,0x9BDE,0x0000, 0xFBC0,0x9BDF,0x0000, 0xFBC0,0x9BE0,0x0000, /* 1BDE */
+0xFBC0,0x9BE1,0x0000, 0xFBC0,0x9BE2,0x0000, 0xFBC0,0x9BE3,0x0000, /* 1BE1 */
+0xFBC0,0x9BE4,0x0000, 0xFBC0,0x9BE5,0x0000, 0xFBC0,0x9BE6,0x0000, /* 1BE4 */
+0xFBC0,0x9BE7,0x0000, 0xFBC0,0x9BE8,0x0000, 0xFBC0,0x9BE9,0x0000, /* 1BE7 */
+0xFBC0,0x9BEA,0x0000, 0xFBC0,0x9BEB,0x0000, 0xFBC0,0x9BEC,0x0000, /* 1BEA */
+0xFBC0,0x9BED,0x0000, 0xFBC0,0x9BEE,0x0000, 0xFBC0,0x9BEF,0x0000, /* 1BED */
+0xFBC0,0x9BF0,0x0000, 0xFBC0,0x9BF1,0x0000, 0xFBC0,0x9BF2,0x0000, /* 1BF0 */
+0xFBC0,0x9BF3,0x0000, 0xFBC0,0x9BF4,0x0000, 0xFBC0,0x9BF5,0x0000, /* 1BF3 */
+0xFBC0,0x9BF6,0x0000, 0xFBC0,0x9BF7,0x0000, 0xFBC0,0x9BF8,0x0000, /* 1BF6 */
+0xFBC0,0x9BF9,0x0000, 0xFBC0,0x9BFA,0x0000, 0xFBC0,0x9BFB,0x0000, /* 1BF9 */
+0xFBC0,0x9BFC,0x0000, 0xFBC0,0x9BFD,0x0000, 0xFBC0,0x9BFE,0x0000, /* 1BFC */
+0xFBC0,0x9BFF,0x0000 };
+
+static const uint16 uca520_p01C[]= { /* 1C00 (3 weights per char) */
+0x207D,0x0000,0x0000, 0x207E,0x0000,0x0000, 0x207F,0x0000,0x0000, /* 1C00 */
+0x2080,0x0000,0x0000, 0x2081,0x0000,0x0000, 0x2082,0x0000,0x0000, /* 1C03 */
+0x2083,0x0000,0x0000, 0x2084,0x0000,0x0000, 0x2085,0x0000,0x0000, /* 1C06 */
+0x2086,0x0000,0x0000, 0x208A,0x0000,0x0000, 0x208B,0x0000,0x0000, /* 1C09 */
+0x208C,0x0000,0x0000, 0x208D,0x0000,0x0000, 0x208E,0x0000,0x0000, /* 1C0C */
+0x208F,0x0000,0x0000, 0x2090,0x0000,0x0000, 0x2091,0x0000,0x0000, /* 1C0F */
+0x2092,0x0000,0x0000, 0x2093,0x0000,0x0000, 0x2094,0x0000,0x0000, /* 1C12 */
+0x2095,0x0000,0x0000, 0x2096,0x0000,0x0000, 0x2097,0x0000,0x0000, /* 1C15 */
+0x2098,0x0000,0x0000, 0x2099,0x0000,0x0000, 0x209A,0x0000,0x0000, /* 1C18 */
+0x209C,0x0000,0x0000, 0x209E,0x0000,0x0000, 0x209F,0x0000,0x0000, /* 1C1B */
+0x20A0,0x0000,0x0000, 0x20A1,0x0000,0x0000, 0x20A2,0x0000,0x0000, /* 1C1E */
+0x20A3,0x0000,0x0000, 0x20A4,0x0000,0x0000, 0x20A5,0x0000,0x0000, /* 1C21 */
+0x209B,0x0000,0x0000, 0x209D,0x0000,0x0000, 0x20A7,0x0000,0x0000, /* 1C24 */
+0x20A8,0x0000,0x0000, 0x20A9,0x0000,0x0000, 0x20AA,0x0000,0x0000, /* 1C27 */
+0x20AB,0x0000,0x0000, 0x20AC,0x0000,0x0000, 0x20AD,0x0000,0x0000, /* 1C2A */
+0x20AE,0x0000,0x0000, 0x20AF,0x0000,0x0000, 0x20B0,0x0000,0x0000, /* 1C2D */
+0x20B1,0x0000,0x0000, 0x20B2,0x0000,0x0000, 0x20B3,0x0000,0x0000, /* 1C30 */
+0x20B4,0x0000,0x0000, 0x20B5,0x0000,0x0000, 0x20B6,0x0000,0x0000, /* 1C33 */
+0x20A6,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC0,0x9C38,0x0000, /* 1C36 */
+0xFBC0,0x9C39,0x0000, 0xFBC0,0x9C3A,0x0000, 0x0298,0x0000,0x0000, /* 1C39 */
+0x0299,0x0000,0x0000, 0x03BE,0x0000,0x0000, 0x03BF,0x0000,0x0000, /* 1C3C */
+0x03C0,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1C3F */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1C42 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1C45 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC0,0x9C4A,0x0000, /* 1C48 */
+0xFBC0,0x9C4B,0x0000, 0xFBC0,0x9C4C,0x0000, 0x2087,0x0000,0x0000, /* 1C4B */
+0x2088,0x0000,0x0000, 0x2089,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1C4E */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1C51 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1C54 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1C57 */
+0x24AA,0x0000,0x0000, 0x24AB,0x0000,0x0000, 0x24AC,0x0000,0x0000, /* 1C5A */
+0x24AD,0x0000,0x0000, 0x24AE,0x0000,0x0000, 0x24AF,0x0000,0x0000, /* 1C5D */
+0x24B0,0x0000,0x0000, 0x24B1,0x0000,0x0000, 0x24B2,0x0000,0x0000, /* 1C60 */
+0x24B3,0x0000,0x0000, 0x24B4,0x0000,0x0000, 0x24B5,0x0000,0x0000, /* 1C63 */
+0x24B6,0x0000,0x0000, 0x24B7,0x0000,0x0000, 0x24B8,0x0000,0x0000, /* 1C66 */
+0x24B9,0x0000,0x0000, 0x24BA,0x0000,0x0000, 0x24BB,0x0000,0x0000, /* 1C69 */
+0x24BC,0x0000,0x0000, 0x24BD,0x0000,0x0000, 0x24BE,0x0000,0x0000, /* 1C6C */
+0x24BF,0x0000,0x0000, 0x24C0,0x0000,0x0000, 0x24C1,0x0000,0x0000, /* 1C6F */
+0x24C2,0x0000,0x0000, 0x24C3,0x0000,0x0000, 0x24C4,0x0000,0x0000, /* 1C72 */
+0x24C5,0x0000,0x0000, 0x24C6,0x0000,0x0000, 0x24C7,0x0000,0x0000, /* 1C75 */
+0x24C8,0x0000,0x0000, 0x24C9,0x0000,0x0000, 0x24CA,0x0000,0x0000, /* 1C78 */
+0x24CB,0x0000,0x0000, 0x24CC,0x0000,0x0000, 0x24CD,0x0000,0x0000, /* 1C7B */
+0x02B3,0x0000,0x0000, 0x02B4,0x0000,0x0000, 0xFBC0,0x9C80,0x0000, /* 1C7E */
+0xFBC0,0x9C81,0x0000, 0xFBC0,0x9C82,0x0000, 0xFBC0,0x9C83,0x0000, /* 1C81 */
+0xFBC0,0x9C84,0x0000, 0xFBC0,0x9C85,0x0000, 0xFBC0,0x9C86,0x0000, /* 1C84 */
+0xFBC0,0x9C87,0x0000, 0xFBC0,0x9C88,0x0000, 0xFBC0,0x9C89,0x0000, /* 1C87 */
+0xFBC0,0x9C8A,0x0000, 0xFBC0,0x9C8B,0x0000, 0xFBC0,0x9C8C,0x0000, /* 1C8A */
+0xFBC0,0x9C8D,0x0000, 0xFBC0,0x9C8E,0x0000, 0xFBC0,0x9C8F,0x0000, /* 1C8D */
+0xFBC0,0x9C90,0x0000, 0xFBC0,0x9C91,0x0000, 0xFBC0,0x9C92,0x0000, /* 1C90 */
+0xFBC0,0x9C93,0x0000, 0xFBC0,0x9C94,0x0000, 0xFBC0,0x9C95,0x0000, /* 1C93 */
+0xFBC0,0x9C96,0x0000, 0xFBC0,0x9C97,0x0000, 0xFBC0,0x9C98,0x0000, /* 1C96 */
+0xFBC0,0x9C99,0x0000, 0xFBC0,0x9C9A,0x0000, 0xFBC0,0x9C9B,0x0000, /* 1C99 */
+0xFBC0,0x9C9C,0x0000, 0xFBC0,0x9C9D,0x0000, 0xFBC0,0x9C9E,0x0000, /* 1C9C */
+0xFBC0,0x9C9F,0x0000, 0xFBC0,0x9CA0,0x0000, 0xFBC0,0x9CA1,0x0000, /* 1C9F */
+0xFBC0,0x9CA2,0x0000, 0xFBC0,0x9CA3,0x0000, 0xFBC0,0x9CA4,0x0000, /* 1CA2 */
+0xFBC0,0x9CA5,0x0000, 0xFBC0,0x9CA6,0x0000, 0xFBC0,0x9CA7,0x0000, /* 1CA5 */
+0xFBC0,0x9CA8,0x0000, 0xFBC0,0x9CA9,0x0000, 0xFBC0,0x9CAA,0x0000, /* 1CA8 */
+0xFBC0,0x9CAB,0x0000, 0xFBC0,0x9CAC,0x0000, 0xFBC0,0x9CAD,0x0000, /* 1CAB */
+0xFBC0,0x9CAE,0x0000, 0xFBC0,0x9CAF,0x0000, 0xFBC0,0x9CB0,0x0000, /* 1CAE */
+0xFBC0,0x9CB1,0x0000, 0xFBC0,0x9CB2,0x0000, 0xFBC0,0x9CB3,0x0000, /* 1CB1 */
+0xFBC0,0x9CB4,0x0000, 0xFBC0,0x9CB5,0x0000, 0xFBC0,0x9CB6,0x0000, /* 1CB4 */
+0xFBC0,0x9CB7,0x0000, 0xFBC0,0x9CB8,0x0000, 0xFBC0,0x9CB9,0x0000, /* 1CB7 */
+0xFBC0,0x9CBA,0x0000, 0xFBC0,0x9CBB,0x0000, 0xFBC0,0x9CBC,0x0000, /* 1CBA */
+0xFBC0,0x9CBD,0x0000, 0xFBC0,0x9CBE,0x0000, 0xFBC0,0x9CBF,0x0000, /* 1CBD */
+0xFBC0,0x9CC0,0x0000, 0xFBC0,0x9CC1,0x0000, 0xFBC0,0x9CC2,0x0000, /* 1CC0 */
+0xFBC0,0x9CC3,0x0000, 0xFBC0,0x9CC4,0x0000, 0xFBC0,0x9CC5,0x0000, /* 1CC3 */
+0xFBC0,0x9CC6,0x0000, 0xFBC0,0x9CC7,0x0000, 0xFBC0,0x9CC8,0x0000, /* 1CC6 */
+0xFBC0,0x9CC9,0x0000, 0xFBC0,0x9CCA,0x0000, 0xFBC0,0x9CCB,0x0000, /* 1CC9 */
+0xFBC0,0x9CCC,0x0000, 0xFBC0,0x9CCD,0x0000, 0xFBC0,0x9CCE,0x0000, /* 1CCC */
+0xFBC0,0x9CCF,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CCF */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD2 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE1 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CE7 */
+0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CEA */
+0x0000,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, /* 1CED */
+0x1BE7,0x0000,0x0000, 0x1BE7,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CF0 */
+0xFBC0,0x9CF3,0x0000, 0xFBC0,0x9CF4,0x0000, 0xFBC0,0x9CF5,0x0000, /* 1CF3 */
+0xFBC0,0x9CF6,0x0000, 0xFBC0,0x9CF7,0x0000, 0xFBC0,0x9CF8,0x0000, /* 1CF6 */
+0xFBC0,0x9CF9,0x0000, 0xFBC0,0x9CFA,0x0000, 0xFBC0,0x9CFB,0x0000, /* 1CF9 */
+0xFBC0,0x9CFC,0x0000, 0xFBC0,0x9CFD,0x0000, 0xFBC0,0x9CFE,0x0000, /* 1CFC */
+0xFBC0,0x9CFF,0x0000 };
+
+static const uint16 uca520_p01D[]= { /* 1D00 (3 weights per char) */
+0x1213,0x0000,0x0000, 0x1216,0x0000,0x0000, 0x1217,0x0000,0x0000, /* 1D00 */
+0x1232,0x0000,0x0000, 0x1241,0x0000,0x0000, 0x1254,0x0000,0x0000, /* 1D03 */
+0x1255,0x0000,0x0000, 0x126F,0x0000,0x0000, 0x1292,0x0000,0x0000, /* 1D06 */
+0x12F9,0x0000,0x0000, 0x130D,0x0000,0x0000, 0x1322,0x0000,0x0000, /* 1D09 */
+0x1339,0x0000,0x0000, 0x1363,0x0000,0x0000, 0x1376,0x0000,0x0000, /* 1D0C */
+0x1392,0x0000,0x0000, 0x139E,0x0000,0x0000, 0x1393,0x0000,0x0000, /* 1D0F */
+0x139F,0x0000,0x0000, 0x1399,0x0000,0x0000, 0x1398,0x0000,0x0000, /* 1D12 */
+0x13B2,0x0000,0x0000, 0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000, /* 1D15 */
+0x13B7,0x0000,0x0000, 0x13E3,0x0000,0x0000, 0x13ED,0x0000,0x0000, /* 1D18 */
+0x1437,0x0000,0x0000, 0x1457,0x0000,0x0000, 0x1458,0x0000,0x0000, /* 1D1B */
+0x1459,0x0000,0x0000, 0x1471,0x0000,0x0000, 0x147F,0x0000,0x0000, /* 1D1E */
+0x1491,0x0000,0x0000, 0x14B1,0x0000,0x0000, 0x14CE,0x0000,0x0000, /* 1D21 */
+0x1516,0x0000,0x0000, 0x1517,0x0000,0x0000, 0x1548,0x0000,0x0000, /* 1D24 */
+0x1556,0x0000,0x0000, 0x155C,0x0000,0x0000, 0x1561,0x0000,0x0000, /* 1D27 */
+0x156C,0x0000,0x0000, 0x1661,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D2A */
+0x120F,0x126B,0x0000, 0x1225,0x0000,0x0000, 0x1231,0x0000,0x0000, /* 1D2D */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x1276,0x0000,0x0000, /* 1D30 */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D33 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D36 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x1375,0x0000,0x0000, /* 1D39 */
+0x138E,0x0000,0x0000, 0x13AE,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D3C */
+0x13DA,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D3F */
+0x148D,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1218,0x0000,0x0000, /* 1D42 */
+0x121C,0x0000,0x0000, 0x1217,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D45 */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x127B,0x0000,0x0000, /* 1D48 */
+0x1280,0x0000,0x0000, 0x1292,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D4B */
+0x12F9,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D4E */
+0x138A,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x139A,0x0000,0x0000, /* 1D51 */
+0x13A2,0x0000,0x0000, 0x13A3,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D54 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1458,0x0000,0x0000, /* 1D57 */
+0x146D,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x1517,0x0000,0x0000, /* 1D5A */
+0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D5D */
+0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D60 */
+0x13DA,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D63 */
+0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D66 */
+0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x145A,0x0000,0x0000, /* 1D69 */
+0x1233,0x0000,0x0000, 0x1256,0x0000,0x0000, 0x12A8,0x0000,0x0000, /* 1D6C */
+0x1364,0x0000,0x0000, 0x1377,0x0000,0x0000, 0x13BA,0x0000,0x0000, /* 1D6F */
+0x13E8,0x0000,0x0000, 0x1404,0x0000,0x0000, 0x1415,0x0000,0x0000, /* 1D72 */
+0x143D,0x0000,0x0000, 0x14B6,0x0000,0x0000, 0x12C9,0x0000,0x0000, /* 1D75 */
+0x1678,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x1433,0x12D3,0x0000, /* 1D78 */
+0x12FE,0x0000,0x0000, 0x1304,0x0000,0x0000, 0x13B8,0x0000,0x0000, /* 1D7B */
+0x145F,0x0000,0x0000, 0x147A,0x0000,0x0000, 0x1234,0x0000,0x0000, /* 1D7E */
+0x1257,0x0000,0x0000, 0x12A9,0x0000,0x0000, 0x12C0,0x0000,0x0000, /* 1D81 */
+0x1323,0x0000,0x0000, 0x1348,0x0000,0x0000, 0x1365,0x0000,0x0000, /* 1D84 */
+0x1380,0x0000,0x0000, 0x13BB,0x0000,0x0000, 0x13F2,0x0000,0x0000, /* 1D87 */
+0x1416,0x0000,0x0000, 0x1425,0x0000,0x0000, 0x1481,0x0000,0x0000, /* 1D8A */
+0x149B,0x0000,0x0000, 0x14B7,0x0000,0x0000, 0x1215,0x0000,0x0000, /* 1D8D */
+0x1220,0x0000,0x0000, 0x1260,0x0000,0x0000, 0x1274,0x0000,0x0000, /* 1D90 */
+0x1284,0x0000,0x0000, 0x1291,0x0000,0x0000, 0x127F,0x0000,0x0000, /* 1D93 */
+0x12FF,0x0000,0x0000, 0x13A0,0x0000,0x0000, 0x142E,0x0000,0x0000, /* 1D96 */
+0x1460,0x0000,0x0000, 0x14D3,0x0000,0x0000, 0x1221,0x0000,0x0000, /* 1D99 */
+0x123D,0x0000,0x0000, 0x124A,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D9C */
+0x128D,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x1316,0x0000,0x0000, /* 1D9F */
+0x12B4,0x0000,0x0000, 0x1461,0x0000,0x0000, 0x12FA,0x0000,0x0000, /* 1DA2 */
+0x1300,0x0000,0x0000, 0x12F4,0x0000,0x0000, 0x12FE,0x0000,0x0000, /* 1DA5 */
+0x1312,0x0000,0x0000, 0x1349,0x0000,0x0000, 0x1348,0x0000,0x0000, /* 1DA8 */
+0x1334,0x0000,0x0000, 0x1366,0x0000,0x0000, 0x1472,0x0000,0x0000, /* 1DAB */
+0x1378,0x0000,0x0000, 0x1381,0x0000,0x0000, 0x1371,0x0000,0x0000, /* 1DAE */
+0x13A5,0x0000,0x0000, 0x13C3,0x0000,0x0000, 0x1417,0x0000,0x0000, /* 1DB1 */
+0x1421,0x0000,0x0000, 0x143E,0x0000,0x0000, 0x145B,0x0000,0x0000, /* 1DB4 */
+0x1476,0x0000,0x0000, 0x1457,0x0000,0x0000, 0x1482,0x0000,0x0000, /* 1DB7 */
+0x1489,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14BC,0x0000,0x0000, /* 1DBA */
+0x14C0,0x0000,0x0000, 0x14CA,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1DBD */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC0 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC3 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC6 */
+0x0000,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DC9 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DCC */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DCF */
+0x14ED,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x126B,0x0000, /* 1DD2 */
+0x120F,0x138E,0x0000, 0x120F,0x147B,0x0000, 0x123D,0x0000,0x0000, /* 1DD5 */
+0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1DD8 */
+0x12B8,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1DDB */
+0x1334,0x0000,0x0000, 0x1363,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1DDE */
+0x1371,0x0000,0x0000, 0x13DE,0x0000,0x0000, 0x13E2,0x0000,0x0000, /* 1DE1 */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1DE4 */
+0xFBC0,0x9DE7,0x0000, 0xFBC0,0x9DE8,0x0000, 0xFBC0,0x9DE9,0x0000, /* 1DE7 */
+0xFBC0,0x9DEA,0x0000, 0xFBC0,0x9DEB,0x0000, 0xFBC0,0x9DEC,0x0000, /* 1DEA */
+0xFBC0,0x9DED,0x0000, 0xFBC0,0x9DEE,0x0000, 0xFBC0,0x9DEF,0x0000, /* 1DED */
+0xFBC0,0x9DF0,0x0000, 0xFBC0,0x9DF1,0x0000, 0xFBC0,0x9DF2,0x0000, /* 1DF0 */
+0xFBC0,0x9DF3,0x0000, 0xFBC0,0x9DF4,0x0000, 0xFBC0,0x9DF5,0x0000, /* 1DF3 */
+0xFBC0,0x9DF6,0x0000, 0xFBC0,0x9DF7,0x0000, 0xFBC0,0x9DF8,0x0000, /* 1DF6 */
+0xFBC0,0x9DF9,0x0000, 0xFBC0,0x9DFA,0x0000, 0xFBC0,0x9DFB,0x0000, /* 1DF9 */
+0xFBC0,0x9DFC,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1DFC */
+0x0000,0x0000,0x0000 };
+
+static const uint16 uca520_p01E[]= { /* 1E00 (3 weights per char) */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1E00 */
+0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1E03 */
+0x1225,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1E06 */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E09 */
+0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E0C */
+0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1E0F */
+0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E12 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E15 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E18 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1E1B */
+0x12A3,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1E1E */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E21 */
+0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E24 */
+0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1E27 */
+0x12D3,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1E2A */
+0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1E2D */
+0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1E30 */
+0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1E33 */
+0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1E36 */
+0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1E39 */
+0x1330,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1E3C */
+0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1E3F */
+0x135F,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E42 */
+0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E45 */
+0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1E48 */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E4B */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E4E */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1E51 */
+0x13B3,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1E54 */
+0x13B3,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E57 */
+0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E5A */
+0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1E5D */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E60 */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E63 */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1E66 */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E69 */
+0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E6C */
+0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1E6F */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E72 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E75 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1E78 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1E7B */
+0x147B,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E7E */
+0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E81 */
+0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E84 */
+0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E87 */
+0x1497,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1E8A */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1E8D */
+0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1E90 */
+0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1E93 */
+0x12D3,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1E96 */
+0x149C,0x0000,0x0000, 0x120F,0x150D,0x0000, 0x1410,0x0000,0x0000, /* 1E99 */
+0x141F,0x0000,0x0000, 0x1420,0x0000,0x0000, 0x1410,0x1410,0x0000, /* 1E9C */
+0x126A,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1E9F */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA2 */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA5 */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EA8 */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EAB */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EAE */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EB1 */
+0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1EB4 */
+0x120F,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EB7 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EBA */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EBD */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EC0 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1EC3 */
+0x126B,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1EC6 */
+0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1EC9 */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ECC */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ECF */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED2 */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED5 */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1ED8 */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EDB */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EDE */
+0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1EE1 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EE4 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EE7 */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EEA */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1EED */
+0x1453,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF0 */
+0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF3 */
+0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1EF6 */
+0x149C,0x0000,0x0000, 0x1330,0x1330,0x0000, 0x1330,0x1330,0x0000, /* 1EF9 */
+0x1488,0x0000,0x0000, 0x1488,0x0000,0x0000, 0x14AC,0x0000,0x0000, /* 1EFC */
+0x14AC,0x0000,0x0000 };
+
+static const uint16 uca520_p01F[]= { /* 1F00 (3 weights per char) */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F00 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F03 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F06 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F09 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F0C */
+0x1545,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F0F */
+0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F12 */
+0x154A,0x0000,0x0000, 0xFBC0,0x9F16,0x0000, 0xFBC0,0x9F17,0x0000, /* 1F15 */
+0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F18 */
+0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1F1B */
+0xFBC0,0x9F1E,0x0000, 0xFBC0,0x9F1F,0x0000, 0x1550,0x0000,0x0000, /* 1F1E */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F21 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F24 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F27 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F2A */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F2D */
+0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F30 */
+0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F33 */
+0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F36 */
+0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F39 */
+0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F3C */
+0x1552,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F3F */
+0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F42 */
+0x155A,0x0000,0x0000, 0xFBC0,0x9F46,0x0000, 0xFBC0,0x9F47,0x0000, /* 1F45 */
+0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F48 */
+0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1F4B */
+0xFBC0,0x9F4E,0x0000, 0xFBC0,0x9F4F,0x0000, 0x1568,0x0000,0x0000, /* 1F4E */
+0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F51 */
+0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F54 */
+0x1568,0x0000,0x0000, 0xFBC0,0x9F58,0x0000, 0x1568,0x0000,0x0000, /* 1F57 */
+0xFBC0,0x9F5A,0x0000, 0x1568,0x0000,0x0000, 0xFBC0,0x9F5C,0x0000, /* 1F5A */
+0x1568,0x0000,0x0000, 0xFBC0,0x9F5E,0x0000, 0x1568,0x0000,0x0000, /* 1F5D */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F60 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F63 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F66 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F69 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F6C */
+0x156D,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F6F */
+0x154A,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F72 */
+0x1550,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1F75 */
+0x155A,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1F78 */
+0x1568,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F7B */
+0xFBC0,0x9F7E,0x0000, 0xFBC0,0x9F7F,0x0000, 0x1545,0x0000,0x0000, /* 1F7E */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F81 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F84 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F87 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F8A */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1F8D */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F90 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F93 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F96 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F99 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1F9C */
+0x1550,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1F9F */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA2 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA5 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FA8 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FAB */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FAE */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FB1 */
+0x1545,0x0000,0x0000, 0xFBC0,0x9FB5,0x0000, 0x1545,0x0000,0x0000, /* 1FB4 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FB7 */
+0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1FBA */
+0x0219,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x0219,0x0000,0x0000, /* 1FBD */
+0x021F,0x0000,0x0000, 0x0216,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1FC0 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0xFBC0,0x9FC5,0x0000, /* 1FC3 */
+0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1FC6 */
+0x154A,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1FC9 */
+0x1550,0x0000,0x0000, 0x0219,0x0000,0x0000, 0x0219,0x0000,0x0000, /* 1FCC */
+0x0219,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FCF */
+0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0xFBC0,0x9FD4,0x0000, /* 1FD2 */
+0xFBC0,0x9FD5,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FD5 */
+0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1FD8 */
+0x1552,0x0000,0x0000, 0xFBC0,0x9FDC,0x0000, 0x021A,0x0000,0x0000, /* 1FDB */
+0x021A,0x0000,0x0000, 0x021A,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FDE */
+0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE1 */
+0x1560,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE4 */
+0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1FE7 */
+0x1568,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1FEA */
+0x0216,0x0000,0x0000, 0x0216,0x0000,0x0000, 0x020E,0x0000,0x0000, /* 1FED */
+0xFBC0,0x9FF0,0x0000, 0xFBC0,0x9FF1,0x0000, 0x156D,0x0000,0x0000, /* 1FF0 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0xFBC0,0x9FF5,0x0000, /* 1FF3 */
+0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1FF6 */
+0x155A,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1FF9 */
+0x156D,0x0000,0x0000, 0x020F,0x0000,0x0000, 0x021A,0x0000,0x0000, /* 1FFC */
+0xFBC0,0x9FFF,0x0000 };
+
+static const uint16 uca520_p020[]= { /* 2000 (5 weights per char) */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2000 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2001 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2002 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2003 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2004 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2005 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2006 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2007 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2008 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 2009 */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 200A */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200B */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200C */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200D */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200E */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200F */
+0x0229,0x0000,0x0000,0x0000,0x0000, /* 2010 */
+0x0229,0x0000,0x0000,0x0000,0x0000, /* 2011 */
+0x022A,0x0000,0x0000,0x0000,0x0000, /* 2012 */
+0x022B,0x0000,0x0000,0x0000,0x0000, /* 2013 */
+0x022C,0x0000,0x0000,0x0000,0x0000, /* 2014 */
+0x022D,0x0000,0x0000,0x0000,0x0000, /* 2015 */
+0x055A,0x0000,0x0000,0x0000,0x0000, /* 2016 */
+0x021E,0x0000,0x0000,0x0000,0x0000, /* 2017 */
+0x02EF,0x0000,0x0000,0x0000,0x0000, /* 2018 */
+0x02F0,0x0000,0x0000,0x0000,0x0000, /* 2019 */
+0x02F1,0x0000,0x0000,0x0000,0x0000, /* 201A */
+0x02F2,0x0000,0x0000,0x0000,0x0000, /* 201B */
+0x02F6,0x0000,0x0000,0x0000,0x0000, /* 201C */
+0x02F7,0x0000,0x0000,0x0000,0x0000, /* 201D */
+0x02F8,0x0000,0x0000,0x0000,0x0000, /* 201E */
+0x02F9,0x0000,0x0000,0x0000,0x0000, /* 201F */
+0x036A,0x0000,0x0000,0x0000,0x0000, /* 2020 */
+0x036B,0x0000,0x0000,0x0000,0x0000, /* 2021 */
+0x036C,0x0000,0x0000,0x0000,0x0000, /* 2022 */
+0x036D,0x0000,0x0000,0x0000,0x0000, /* 2023 */
+0x0281,0x0000,0x0000,0x0000,0x0000, /* 2024 */
+0x0281,0x0281,0x0000,0x0000,0x0000, /* 2025 */
+0x0281,0x0281,0x0281,0x0000,0x0000, /* 2026 */
+0x036E,0x0000,0x0000,0x0000,0x0000, /* 2027 */
+0x0208,0x0000,0x0000,0x0000,0x0000, /* 2028 */
+0x0209,0x0000,0x0000,0x0000,0x0000, /* 2029 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202A */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202B */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202C */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202D */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202E */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 202F */
+0x0365,0x0000,0x0000,0x0000,0x0000, /* 2030 */
+0x0367,0x0000,0x0000,0x0000,0x0000, /* 2031 */
+0x0372,0x0000,0x0000,0x0000,0x0000, /* 2032 */
+0x0372,0x0372,0x0000,0x0000,0x0000, /* 2033 */
+0x0372,0x0372,0x0372,0x0000,0x0000, /* 2034 */
+0x0373,0x0000,0x0000,0x0000,0x0000, /* 2035 */
+0x0373,0x0373,0x0000,0x0000,0x0000, /* 2036 */
+0x0373,0x0373,0x0373,0x0000,0x0000, /* 2037 */
+0x0376,0x0000,0x0000,0x0000,0x0000, /* 2038 */
+0x02F3,0x0000,0x0000,0x0000,0x0000, /* 2039 */
+0x02F4,0x0000,0x0000,0x0000,0x0000, /* 203A */
+0x0377,0x0000,0x0000,0x0000,0x0000, /* 203B */
+0x026E,0x026E,0x0000,0x0000,0x0000, /* 203C */
+0x027F,0x0000,0x0000,0x0000,0x0000, /* 203D */
+0x0213,0x0000,0x0000,0x0000,0x0000, /* 203E */
+0x0378,0x0000,0x0000,0x0000,0x0000, /* 203F */
+0x037A,0x0000,0x0000,0x0000,0x0000, /* 2040 */
+0x037C,0x0000,0x0000,0x0000,0x0000, /* 2041 */
+0x037D,0x0000,0x0000,0x0000,0x0000, /* 2042 */
+0x036F,0x0000,0x0000,0x0000,0x0000, /* 2043 */
+0x035D,0x0000,0x0000,0x0000,0x0000, /* 2044 */
+0x030B,0x0000,0x0000,0x0000,0x0000, /* 2045 */
+0x030C,0x0000,0x0000,0x0000,0x0000, /* 2046 */
+0x0273,0x0273,0x0000,0x0000,0x0000, /* 2047 */
+0x0273,0x026E,0x0000,0x0000,0x0000, /* 2048 */
+0x026E,0x0273,0x0000,0x0000,0x0000, /* 2049 */
+0x0361,0x0000,0x0000,0x0000,0x0000, /* 204A */
+0x0353,0x0000,0x0000,0x0000,0x0000, /* 204B */
+0x0370,0x0000,0x0000,0x0000,0x0000, /* 204C */
+0x0371,0x0000,0x0000,0x0000,0x0000, /* 204D */
+0x0358,0x0000,0x0000,0x0000,0x0000, /* 204E */
+0x0245,0x0000,0x0000,0x0000,0x0000, /* 204F */
+0x037B,0x0000,0x0000,0x0000,0x0000, /* 2050 */
+0x0359,0x0000,0x0000,0x0000,0x0000, /* 2051 */
+0x0369,0x0000,0x0000,0x0000,0x0000, /* 2052 */
+0x022E,0x0000,0x0000,0x0000,0x0000, /* 2053 */
+0x0379,0x0000,0x0000,0x0000,0x0000, /* 2054 */
+0x02D3,0x0000,0x0000,0x0000,0x0000, /* 2055 */
+0x02D4,0x0000,0x0000,0x0000,0x0000, /* 2056 */
+0x0372,0x0372,0x0372,0x0372,0x0000, /* 2057 */
+0x02D5,0x0000,0x0000,0x0000,0x0000, /* 2058 */
+0x02D6,0x0000,0x0000,0x0000,0x0000, /* 2059 */
+0x02D7,0x0000,0x0000,0x0000,0x0000, /* 205A */
+0x02D8,0x0000,0x0000,0x0000,0x0000, /* 205B */
+0x02D9,0x0000,0x0000,0x0000,0x0000, /* 205C */
+0x02DA,0x0000,0x0000,0x0000,0x0000, /* 205D */
+0x02DB,0x0000,0x0000,0x0000,0x0000, /* 205E */
+0x020A,0x0000,0x0000,0x0000,0x0000, /* 205F */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2060 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2061 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2062 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2063 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2064 */
+0xFBC0,0xA065,0x0000,0x0000,0x0000, /* 2065 */
+0xFBC0,0xA066,0x0000,0x0000,0x0000, /* 2066 */
+0xFBC0,0xA067,0x0000,0x0000,0x0000, /* 2067 */
+0xFBC0,0xA068,0x0000,0x0000,0x0000, /* 2068 */
+0xFBC0,0xA069,0x0000,0x0000,0x0000, /* 2069 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206A */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206B */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206C */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206D */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206E */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206F */
+0x1205,0x0000,0x0000,0x0000,0x0000, /* 2070 */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2071 */
+0xFBC0,0xA072,0x0000,0x0000,0x0000, /* 2072 */
+0xFBC0,0xA073,0x0000,0x0000,0x0000, /* 2073 */
+0x1209,0x0000,0x0000,0x0000,0x0000, /* 2074 */
+0x120A,0x0000,0x0000,0x0000,0x0000, /* 2075 */
+0x120B,0x0000,0x0000,0x0000,0x0000, /* 2076 */
+0x120C,0x0000,0x0000,0x0000,0x0000, /* 2077 */
+0x120D,0x0000,0x0000,0x0000,0x0000, /* 2078 */
+0x120E,0x0000,0x0000,0x0000,0x0000, /* 2079 */
+0x0550,0x0000,0x0000,0x0000,0x0000, /* 207A */
+0x055C,0x0000,0x0000,0x0000,0x0000, /* 207B */
+0x0555,0x0000,0x0000,0x0000,0x0000, /* 207C */
+0x02FF,0x0000,0x0000,0x0000,0x0000, /* 207D */
+0x0300,0x0000,0x0000,0x0000,0x0000, /* 207E */
+0x136D,0x0000,0x0000,0x0000,0x0000, /* 207F */
+0x1205,0x0000,0x0000,0x0000,0x0000, /* 2080 */
+0x1206,0x0000,0x0000,0x0000,0x0000, /* 2081 */
+0x1207,0x0000,0x0000,0x0000,0x0000, /* 2082 */
+0x1208,0x0000,0x0000,0x0000,0x0000, /* 2083 */
+0x1209,0x0000,0x0000,0x0000,0x0000, /* 2084 */
+0x120A,0x0000,0x0000,0x0000,0x0000, /* 2085 */
+0x120B,0x0000,0x0000,0x0000,0x0000, /* 2086 */
+0x120C,0x0000,0x0000,0x0000,0x0000, /* 2087 */
+0x120D,0x0000,0x0000,0x0000,0x0000, /* 2088 */
+0x120E,0x0000,0x0000,0x0000,0x0000, /* 2089 */
+0x0550,0x0000,0x0000,0x0000,0x0000, /* 208A */
+0x055C,0x0000,0x0000,0x0000,0x0000, /* 208B */
+0x0555,0x0000,0x0000,0x0000,0x0000, /* 208C */
+0x02FF,0x0000,0x0000,0x0000,0x0000, /* 208D */
+0x0300,0x0000,0x0000,0x0000,0x0000, /* 208E */
+0xFBC0,0xA08F,0x0000,0x0000,0x0000, /* 208F */
+0x120F,0x0000,0x0000,0x0000,0x0000, /* 2090 */
+0x126B,0x0000,0x0000,0x0000,0x0000, /* 2091 */
+0x138E,0x0000,0x0000,0x0000,0x0000, /* 2092 */
+0x1497,0x0000,0x0000,0x0000,0x0000, /* 2093 */
+0x127B,0x0000,0x0000,0x0000,0x0000, /* 2094 */
+0xFBC0,0xA095,0x0000,0x0000,0x0000, /* 2095 */
+0xFBC0,0xA096,0x0000,0x0000,0x0000, /* 2096 */
+0xFBC0,0xA097,0x0000,0x0000,0x0000, /* 2097 */
+0xFBC0,0xA098,0x0000,0x0000,0x0000, /* 2098 */
+0xFBC0,0xA099,0x0000,0x0000,0x0000, /* 2099 */
+0xFBC0,0xA09A,0x0000,0x0000,0x0000, /* 209A */
+0xFBC0,0xA09B,0x0000,0x0000,0x0000, /* 209B */
+0xFBC0,0xA09C,0x0000,0x0000,0x0000, /* 209C */
+0xFBC0,0xA09D,0x0000,0x0000,0x0000, /* 209D */
+0xFBC0,0xA09E,0x0000,0x0000,0x0000, /* 209E */
+0xFBC0,0xA09F,0x0000,0x0000,0x0000, /* 209F */
+0x11ED,0x0000,0x0000,0x0000,0x0000, /* 20A0 */
+0x11EE,0x0000,0x0000,0x0000,0x0000, /* 20A1 */
+0x11EF,0x0000,0x0000,0x0000,0x0000, /* 20A2 */
+0x11F0,0x0000,0x0000,0x0000,0x0000, /* 20A3 */
+0x11F1,0x0000,0x0000,0x0000,0x0000, /* 20A4 */
+0x11F2,0x0000,0x0000,0x0000,0x0000, /* 20A5 */
+0x11F3,0x0000,0x0000,0x0000,0x0000, /* 20A6 */
+0x11F4,0x0000,0x0000,0x0000,0x0000, /* 20A7 */
+0x13DA,0x1410,0x0000,0x0000,0x0000, /* 20A8 */
+0x11F5,0x0000,0x0000,0x0000,0x0000, /* 20A9 */
+0x11F6,0x0000,0x0000,0x0000,0x0000, /* 20AA */
+0x11F7,0x0000,0x0000,0x0000,0x0000, /* 20AB */
+0x11F8,0x0000,0x0000,0x0000,0x0000, /* 20AC */
+0x11F9,0x0000,0x0000,0x0000,0x0000, /* 20AD */
+0x11FA,0x0000,0x0000,0x0000,0x0000, /* 20AE */
+0x11FB,0x0000,0x0000,0x0000,0x0000, /* 20AF */
+0x11FC,0x0000,0x0000,0x0000,0x0000, /* 20B0 */
+0x11FD,0x0000,0x0000,0x0000,0x0000, /* 20B1 */
+0x11FE,0x0000,0x0000,0x0000,0x0000, /* 20B2 */
+0x11FF,0x0000,0x0000,0x0000,0x0000, /* 20B3 */
+0x1200,0x0000,0x0000,0x0000,0x0000, /* 20B4 */
+0x1201,0x0000,0x0000,0x0000,0x0000, /* 20B5 */
+0x1202,0x0000,0x0000,0x0000,0x0000, /* 20B6 */
+0x1203,0x0000,0x0000,0x0000,0x0000, /* 20B7 */
+0x1204,0x0000,0x0000,0x0000,0x0000, /* 20B8 */
+0xFBC0,0xA0B9,0x0000,0x0000,0x0000, /* 20B9 */
+0xFBC0,0xA0BA,0x0000,0x0000,0x0000, /* 20BA */
+0xFBC0,0xA0BB,0x0000,0x0000,0x0000, /* 20BB */
+0xFBC0,0xA0BC,0x0000,0x0000,0x0000, /* 20BC */
+0xFBC0,0xA0BD,0x0000,0x0000,0x0000, /* 20BD */
+0xFBC0,0xA0BE,0x0000,0x0000,0x0000, /* 20BE */
+0xFBC0,0xA0BF,0x0000,0x0000,0x0000, /* 20BF */
+0xFBC0,0xA0C0,0x0000,0x0000,0x0000, /* 20C0 */
+0xFBC0,0xA0C1,0x0000,0x0000,0x0000, /* 20C1 */
+0xFBC0,0xA0C2,0x0000,0x0000,0x0000, /* 20C2 */
+0xFBC0,0xA0C3,0x0000,0x0000,0x0000, /* 20C3 */
+0xFBC0,0xA0C4,0x0000,0x0000,0x0000, /* 20C4 */
+0xFBC0,0xA0C5,0x0000,0x0000,0x0000, /* 20C5 */
+0xFBC0,0xA0C6,0x0000,0x0000,0x0000, /* 20C6 */
+0xFBC0,0xA0C7,0x0000,0x0000,0x0000, /* 20C7 */
+0xFBC0,0xA0C8,0x0000,0x0000,0x0000, /* 20C8 */
+0xFBC0,0xA0C9,0x0000,0x0000,0x0000, /* 20C9 */
+0xFBC0,0xA0CA,0x0000,0x0000,0x0000, /* 20CA */
+0xFBC0,0xA0CB,0x0000,0x0000,0x0000, /* 20CB */
+0xFBC0,0xA0CC,0x0000,0x0000,0x0000, /* 20CC */
+0xFBC0,0xA0CD,0x0000,0x0000,0x0000, /* 20CD */
+0xFBC0,0xA0CE,0x0000,0x0000,0x0000, /* 20CE */
+0xFBC0,0xA0CF,0x0000,0x0000,0x0000, /* 20CF */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D0 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D1 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D2 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D3 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D4 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D5 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D6 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D7 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D8 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20D9 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DA */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DB */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DC */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DD */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DE */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20DF */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E0 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E1 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E2 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E3 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E4 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E5 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E6 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E7 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E8 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20E9 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EA */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EB */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EC */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20ED */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EE */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20EF */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 20F0 */
+0xFBC0,0xA0F1,0x0000,0x0000,0x0000, /* 20F1 */
+0xFBC0,0xA0F2,0x0000,0x0000,0x0000, /* 20F2 */
+0xFBC0,0xA0F3,0x0000,0x0000,0x0000, /* 20F3 */
+0xFBC0,0xA0F4,0x0000,0x0000,0x0000, /* 20F4 */
+0xFBC0,0xA0F5,0x0000,0x0000,0x0000, /* 20F5 */
+0xFBC0,0xA0F6,0x0000,0x0000,0x0000, /* 20F6 */
+0xFBC0,0xA0F7,0x0000,0x0000,0x0000, /* 20F7 */
+0xFBC0,0xA0F8,0x0000,0x0000,0x0000, /* 20F8 */
+0xFBC0,0xA0F9,0x0000,0x0000,0x0000, /* 20F9 */
+0xFBC0,0xA0FA,0x0000,0x0000,0x0000, /* 20FA */
+0xFBC0,0xA0FB,0x0000,0x0000,0x0000, /* 20FB */
+0xFBC0,0xA0FC,0x0000,0x0000,0x0000, /* 20FC */
+0xFBC0,0xA0FD,0x0000,0x0000,0x0000, /* 20FD */
+0xFBC0,0xA0FE,0x0000,0x0000,0x0000, /* 20FE */
+0xFBC0,0xA0FF,0x0000,0x0000,0x0000 /* 20FF */
+};
+
+static const uint16 uca520_p021[]= { /* 2100 (5 weights per char) */
+0x120F,0x035C,0x123D,0x0000,0x0000, /* 2100 */
+0x120F,0x035C,0x1410,0x0000,0x0000, /* 2101 */
+0x123D,0x0000,0x0000,0x0000,0x0000, /* 2102 */
+0x044B,0x123D,0x0000,0x0000,0x0000, /* 2103 */
+0x04C1,0x0000,0x0000,0x0000,0x0000, /* 2104 */
+0x123D,0x035C,0x138E,0x0000,0x0000, /* 2105 */
+0x123D,0x035C,0x1453,0x0000,0x0000, /* 2106 */
+0x1280,0x0000,0x0000,0x0000,0x0000, /* 2107 */
+0x04C2,0x0000,0x0000,0x0000,0x0000, /* 2108 */
+0x044B,0x12A3,0x0000,0x0000,0x0000, /* 2109 */
+0x12B0,0x0000,0x0000,0x0000,0x0000, /* 210A */
+0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210B */
+0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210C */
+0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210D */
+0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210E */
+0x12D3,0x0000,0x0000,0x0000,0x0000, /* 210F */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2110 */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2111 */
+0x1330,0x0000,0x0000,0x0000,0x0000, /* 2112 */
+0x1330,0x0000,0x0000,0x0000,0x0000, /* 2113 */
+0x04C3,0x0000,0x0000,0x0000,0x0000, /* 2114 */
+0x136D,0x0000,0x0000,0x0000,0x0000, /* 2115 */
+0x136D,0x138E,0x0000,0x0000,0x0000, /* 2116 */
+0x04C4,0x0000,0x0000,0x0000,0x0000, /* 2117 */
+0x04C5,0x0000,0x0000,0x0000,0x0000, /* 2118 */
+0x13B3,0x0000,0x0000,0x0000,0x0000, /* 2119 */
+0x13C8,0x0000,0x0000,0x0000,0x0000, /* 211A */
+0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211B */
+0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211C */
+0x13DA,0x0000,0x0000,0x0000,0x0000, /* 211D */
+0x04C6,0x0000,0x0000,0x0000,0x0000, /* 211E */
+0x04C7,0x0000,0x0000,0x0000,0x0000, /* 211F */
+0x1410,0x135F,0x0000,0x0000,0x0000, /* 2120 */
+0x1433,0x126B,0x1330,0x0000,0x0000, /* 2121 */
+0x1433,0x135F,0x0000,0x0000,0x0000, /* 2122 */
+0x04C8,0x0000,0x0000,0x0000,0x0000, /* 2123 */
+0x14AD,0x0000,0x0000,0x0000,0x0000, /* 2124 */
+0x04C9,0x0000,0x0000,0x0000,0x0000, /* 2125 */
+0x156D,0x0000,0x0000,0x0000,0x0000, /* 2126 */
+0x04CA,0x0000,0x0000,0x0000,0x0000, /* 2127 */
+0x14AD,0x0000,0x0000,0x0000,0x0000, /* 2128 */
+0x04CB,0x0000,0x0000,0x0000,0x0000, /* 2129 */
+0x131E,0x0000,0x0000,0x0000,0x0000, /* 212A */
+0x120F,0x0000,0x0000,0x0000,0x0000, /* 212B */
+0x1225,0x0000,0x0000,0x0000,0x0000, /* 212C */
+0x123D,0x0000,0x0000,0x0000,0x0000, /* 212D */
+0x04CC,0x0000,0x0000,0x0000,0x0000, /* 212E */
+0x126B,0x0000,0x0000,0x0000,0x0000, /* 212F */
+0x126B,0x0000,0x0000,0x0000,0x0000, /* 2130 */
+0x12A3,0x0000,0x0000,0x0000,0x0000, /* 2131 */
+0x12AE,0x0000,0x0000,0x0000,0x0000, /* 2132 */
+0x135F,0x0000,0x0000,0x0000,0x0000, /* 2133 */
+0x138E,0x0000,0x0000,0x0000,0x0000, /* 2134 */
+0x185C,0x0000,0x0000,0x0000,0x0000, /* 2135 */
+0x185D,0x0000,0x0000,0x0000,0x0000, /* 2136 */
+0x185E,0x0000,0x0000,0x0000,0x0000, /* 2137 */
+0x185F,0x0000,0x0000,0x0000,0x0000, /* 2138 */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2139 */
+0x04CD,0x0000,0x0000,0x0000,0x0000, /* 213A */
+0x12A3,0x120F,0x1497,0x0000,0x0000, /* 213B */
+0x155B,0x0000,0x0000,0x0000,0x0000, /* 213C */
+0x1547,0x0000,0x0000,0x0000,0x0000, /* 213D */
+0x1547,0x0000,0x0000,0x0000,0x0000, /* 213E */
+0x155B,0x0000,0x0000,0x0000,0x0000, /* 213F */
+0x054F,0x0000,0x0000,0x0000,0x0000, /* 2140 */
+0x04CE,0x0000,0x0000,0x0000,0x0000, /* 2141 */
+0x04CF,0x0000,0x0000,0x0000,0x0000, /* 2142 */
+0x04D0,0x0000,0x0000,0x0000,0x0000, /* 2143 */
+0x04D1,0x0000,0x0000,0x0000,0x0000, /* 2144 */
+0x1250,0x0000,0x0000,0x0000,0x0000, /* 2145 */
+0x1250,0x0000,0x0000,0x0000,0x0000, /* 2146 */
+0x126B,0x0000,0x0000,0x0000,0x0000, /* 2147 */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2148 */
+0x1305,0x0000,0x0000,0x0000,0x0000, /* 2149 */
+0x04D2,0x0000,0x0000,0x0000,0x0000, /* 214A */
+0x0360,0x0000,0x0000,0x0000,0x0000, /* 214B */
+0x04D3,0x0000,0x0000,0x0000,0x0000, /* 214C */
+0x04D4,0x0000,0x0000,0x0000,0x0000, /* 214D */
+0x12AE,0x0000,0x0000,0x0000,0x0000, /* 214E */
+0x04D5,0x0000,0x0000,0x0000,0x0000, /* 214F */
+0x1206,0x035D,0x120C,0x0000,0x0000, /* 2150 */
+0x1206,0x035D,0x120E,0x0000,0x0000, /* 2151 */
+0x1206,0x035D,0x1206,0x1205,0x0000, /* 2152 */
+0x1206,0x035D,0x1208,0x0000,0x0000, /* 2153 */
+0x1207,0x035D,0x1208,0x0000,0x0000, /* 2154 */
+0x1206,0x035D,0x120A,0x0000,0x0000, /* 2155 */
+0x1207,0x035D,0x120A,0x0000,0x0000, /* 2156 */
+0x1208,0x035D,0x120A,0x0000,0x0000, /* 2157 */
+0x1209,0x035D,0x120A,0x0000,0x0000, /* 2158 */
+0x1206,0x035D,0x120B,0x0000,0x0000, /* 2159 */
+0x120A,0x035D,0x120B,0x0000,0x0000, /* 215A */
+0x1206,0x035D,0x120D,0x0000,0x0000, /* 215B */
+0x1208,0x035D,0x120D,0x0000,0x0000, /* 215C */
+0x120A,0x035D,0x120D,0x0000,0x0000, /* 215D */
+0x120C,0x035D,0x120D,0x0000,0x0000, /* 215E */
+0x1206,0x035D,0x0000,0x0000,0x0000, /* 215F */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2160 */
+0x12EC,0x12EC,0x0000,0x0000,0x0000, /* 2161 */
+0x12EC,0x12EC,0x12EC,0x0000,0x0000, /* 2162 */
+0x12EC,0x147B,0x0000,0x0000,0x0000, /* 2163 */
+0x147B,0x0000,0x0000,0x0000,0x0000, /* 2164 */
+0x147B,0x12EC,0x0000,0x0000,0x0000, /* 2165 */
+0x147B,0x12EC,0x12EC,0x0000,0x0000, /* 2166 */
+0x147B,0x12EC,0x12EC,0x12EC,0x0000, /* 2167 */
+0x12EC,0x1497,0x0000,0x0000,0x0000, /* 2168 */
+0x1497,0x0000,0x0000,0x0000,0x0000, /* 2169 */
+0x1497,0x12EC,0x0000,0x0000,0x0000, /* 216A */
+0x1497,0x12EC,0x12EC,0x0000,0x0000, /* 216B */
+0x1330,0x0000,0x0000,0x0000,0x0000, /* 216C */
+0x123D,0x0000,0x0000,0x0000,0x0000, /* 216D */
+0x1250,0x0000,0x0000,0x0000,0x0000, /* 216E */
+0x135F,0x0000,0x0000,0x0000,0x0000, /* 216F */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 2170 */
+0x12EC,0x12EC,0x0000,0x0000,0x0000, /* 2171 */
+0x12EC,0x12EC,0x12EC,0x0000,0x0000, /* 2172 */
+0x12EC,0x147B,0x0000,0x0000,0x0000, /* 2173 */
+0x147B,0x0000,0x0000,0x0000,0x0000, /* 2174 */
+0x147B,0x12EC,0x0000,0x0000,0x0000, /* 2175 */
+0x147B,0x12EC,0x12EC,0x0000,0x0000, /* 2176 */
+0x147B,0x12EC,0x12EC,0x12EC,0x0000, /* 2177 */
+0x12EC,0x1497,0x0000,0x0000,0x0000, /* 2178 */
+0x1497,0x0000,0x0000,0x0000,0x0000, /* 2179 */
+0x1497,0x12EC,0x0000,0x0000,0x0000, /* 217A */
+0x1497,0x12EC,0x12EC,0x0000,0x0000, /* 217B */
+0x1330,0x0000,0x0000,0x0000,0x0000, /* 217C */
+0x123D,0x0000,0x0000,0x0000,0x0000, /* 217D */
+0x1250,0x0000,0x0000,0x0000,0x0000, /* 217E */
+0x135F,0x0000,0x0000,0x0000,0x0000, /* 217F */
+0x1130,0x0000,0x0000,0x0000,0x0000, /* 2180 */
+0x1131,0x0000,0x0000,0x0000,0x0000, /* 2181 */
+0x1132,0x0000,0x0000,0x0000,0x0000, /* 2182 */
+0x124E,0x0000,0x0000,0x0000,0x0000, /* 2183 */
+0x124E,0x0000,0x0000,0x0000,0x0000, /* 2184 */
+0x120B,0x0000,0x0000,0x0000,0x0000, /* 2185 */
+0x1133,0x0000,0x0000,0x0000,0x0000, /* 2186 */
+0x1134,0x0000,0x0000,0x0000,0x0000, /* 2187 */
+0x1135,0x0000,0x0000,0x0000,0x0000, /* 2188 */
+0x1205,0x035D,0x1208,0x0000,0x0000, /* 2189 */
+0xFBC0,0xA18A,0x0000,0x0000,0x0000, /* 218A */
+0xFBC0,0xA18B,0x0000,0x0000,0x0000, /* 218B */
+0xFBC0,0xA18C,0x0000,0x0000,0x0000, /* 218C */
+0xFBC0,0xA18D,0x0000,0x0000,0x0000, /* 218D */
+0xFBC0,0xA18E,0x0000,0x0000,0x0000, /* 218E */
+0xFBC0,0xA18F,0x0000,0x0000,0x0000, /* 218F */
+0x04D6,0x0000,0x0000,0x0000,0x0000, /* 2190 */
+0x04D8,0x0000,0x0000,0x0000,0x0000, /* 2191 */
+0x04D7,0x0000,0x0000,0x0000,0x0000, /* 2192 */
+0x04D9,0x0000,0x0000,0x0000,0x0000, /* 2193 */
+0x04DA,0x0000,0x0000,0x0000,0x0000, /* 2194 */
+0x04DB,0x0000,0x0000,0x0000,0x0000, /* 2195 */
+0x04DC,0x0000,0x0000,0x0000,0x0000, /* 2196 */
+0x04DD,0x0000,0x0000,0x0000,0x0000, /* 2197 */
+0x04DE,0x0000,0x0000,0x0000,0x0000, /* 2198 */
+0x04DF,0x0000,0x0000,0x0000,0x0000, /* 2199 */
+0x04D6,0x0000,0x0000,0x0000,0x0000, /* 219A */
+0x04D7,0x0000,0x0000,0x0000,0x0000, /* 219B */
+0x04E0,0x0000,0x0000,0x0000,0x0000, /* 219C */
+0x04E1,0x0000,0x0000,0x0000,0x0000, /* 219D */
+0x04E2,0x0000,0x0000,0x0000,0x0000, /* 219E */
+0x04E3,0x0000,0x0000,0x0000,0x0000, /* 219F */
+0x04E4,0x0000,0x0000,0x0000,0x0000, /* 21A0 */
+0x04E5,0x0000,0x0000,0x0000,0x0000, /* 21A1 */
+0x04E6,0x0000,0x0000,0x0000,0x0000, /* 21A2 */
+0x04E7,0x0000,0x0000,0x0000,0x0000, /* 21A3 */
+0x04E8,0x0000,0x0000,0x0000,0x0000, /* 21A4 */
+0x04E9,0x0000,0x0000,0x0000,0x0000, /* 21A5 */
+0x04EA,0x0000,0x0000,0x0000,0x0000, /* 21A6 */
+0x04EB,0x0000,0x0000,0x0000,0x0000, /* 21A7 */
+0x04EC,0x0000,0x0000,0x0000,0x0000, /* 21A8 */
+0x04ED,0x0000,0x0000,0x0000,0x0000, /* 21A9 */
+0x04EE,0x0000,0x0000,0x0000,0x0000, /* 21AA */
+0x04EF,0x0000,0x0000,0x0000,0x0000, /* 21AB */
+0x04F0,0x0000,0x0000,0x0000,0x0000, /* 21AC */
+0x04F1,0x0000,0x0000,0x0000,0x0000, /* 21AD */
+0x04DA,0x0000,0x0000,0x0000,0x0000, /* 21AE */
+0x04F2,0x0000,0x0000,0x0000,0x0000, /* 21AF */
+0x04F3,0x0000,0x0000,0x0000,0x0000, /* 21B0 */
+0x04F4,0x0000,0x0000,0x0000,0x0000, /* 21B1 */
+0x04F5,0x0000,0x0000,0x0000,0x0000, /* 21B2 */
+0x04F6,0x0000,0x0000,0x0000,0x0000, /* 21B3 */
+0x04F7,0x0000,0x0000,0x0000,0x0000, /* 21B4 */
+0x04F8,0x0000,0x0000,0x0000,0x0000, /* 21B5 */
+0x04F9,0x0000,0x0000,0x0000,0x0000, /* 21B6 */
+0x04FA,0x0000,0x0000,0x0000,0x0000, /* 21B7 */
+0x04FB,0x0000,0x0000,0x0000,0x0000, /* 21B8 */
+0x04FC,0x0000,0x0000,0x0000,0x0000, /* 21B9 */
+0x04FD,0x0000,0x0000,0x0000,0x0000, /* 21BA */
+0x04FE,0x0000,0x0000,0x0000,0x0000, /* 21BB */
+0x04FF,0x0000,0x0000,0x0000,0x0000, /* 21BC */
+0x0500,0x0000,0x0000,0x0000,0x0000, /* 21BD */
+0x0501,0x0000,0x0000,0x0000,0x0000, /* 21BE */
+0x0502,0x0000,0x0000,0x0000,0x0000, /* 21BF */
+0x0503,0x0000,0x0000,0x0000,0x0000, /* 21C0 */
+0x0504,0x0000,0x0000,0x0000,0x0000, /* 21C1 */
+0x0505,0x0000,0x0000,0x0000,0x0000, /* 21C2 */
+0x0506,0x0000,0x0000,0x0000,0x0000, /* 21C3 */
+0x0507,0x0000,0x0000,0x0000,0x0000, /* 21C4 */
+0x0508,0x0000,0x0000,0x0000,0x0000, /* 21C5 */
+0x0509,0x0000,0x0000,0x0000,0x0000, /* 21C6 */
+0x050A,0x0000,0x0000,0x0000,0x0000, /* 21C7 */
+0x050B,0x0000,0x0000,0x0000,0x0000, /* 21C8 */
+0x050C,0x0000,0x0000,0x0000,0x0000, /* 21C9 */
+0x050D,0x0000,0x0000,0x0000,0x0000, /* 21CA */
+0x050E,0x0000,0x0000,0x0000,0x0000, /* 21CB */
+0x050F,0x0000,0x0000,0x0000,0x0000, /* 21CC */
+0x0510,0x0000,0x0000,0x0000,0x0000, /* 21CD */
+0x0514,0x0000,0x0000,0x0000,0x0000, /* 21CE */
+0x0512,0x0000,0x0000,0x0000,0x0000, /* 21CF */
+0x0510,0x0000,0x0000,0x0000,0x0000, /* 21D0 */
+0x0511,0x0000,0x0000,0x0000,0x0000, /* 21D1 */
+0x0512,0x0000,0x0000,0x0000,0x0000, /* 21D2 */
+0x0513,0x0000,0x0000,0x0000,0x0000, /* 21D3 */
+0x0514,0x0000,0x0000,0x0000,0x0000, /* 21D4 */
+0x0515,0x0000,0x0000,0x0000,0x0000, /* 21D5 */
+0x0516,0x0000,0x0000,0x0000,0x0000, /* 21D6 */
+0x0517,0x0000,0x0000,0x0000,0x0000, /* 21D7 */
+0x0518,0x0000,0x0000,0x0000,0x0000, /* 21D8 */
+0x0519,0x0000,0x0000,0x0000,0x0000, /* 21D9 */
+0x051A,0x0000,0x0000,0x0000,0x0000, /* 21DA */
+0x051B,0x0000,0x0000,0x0000,0x0000, /* 21DB */
+0x051C,0x0000,0x0000,0x0000,0x0000, /* 21DC */
+0x051D,0x0000,0x0000,0x0000,0x0000, /* 21DD */
+0x051E,0x0000,0x0000,0x0000,0x0000, /* 21DE */
+0x051F,0x0000,0x0000,0x0000,0x0000, /* 21DF */
+0x0520,0x0000,0x0000,0x0000,0x0000, /* 21E0 */
+0x0521,0x0000,0x0000,0x0000,0x0000, /* 21E1 */
+0x0522,0x0000,0x0000,0x0000,0x0000, /* 21E2 */
+0x0523,0x0000,0x0000,0x0000,0x0000, /* 21E3 */
+0x0524,0x0000,0x0000,0x0000,0x0000, /* 21E4 */
+0x0525,0x0000,0x0000,0x0000,0x0000, /* 21E5 */
+0x0526,0x0000,0x0000,0x0000,0x0000, /* 21E6 */
+0x0527,0x0000,0x0000,0x0000,0x0000, /* 21E7 */
+0x0528,0x0000,0x0000,0x0000,0x0000, /* 21E8 */
+0x0529,0x0000,0x0000,0x0000,0x0000, /* 21E9 */
+0x052A,0x0000,0x0000,0x0000,0x0000, /* 21EA */
+0x052B,0x0000,0x0000,0x0000,0x0000, /* 21EB */
+0x052C,0x0000,0x0000,0x0000,0x0000, /* 21EC */
+0x052D,0x0000,0x0000,0x0000,0x0000, /* 21ED */
+0x052E,0x0000,0x0000,0x0000,0x0000, /* 21EE */
+0x052F,0x0000,0x0000,0x0000,0x0000, /* 21EF */
+0x0530,0x0000,0x0000,0x0000,0x0000, /* 21F0 */
+0x0531,0x0000,0x0000,0x0000,0x0000, /* 21F1 */
+0x0532,0x0000,0x0000,0x0000,0x0000, /* 21F2 */
+0x0533,0x0000,0x0000,0x0000,0x0000, /* 21F3 */
+0x0534,0x0000,0x0000,0x0000,0x0000, /* 21F4 */
+0x0535,0x0000,0x0000,0x0000,0x0000, /* 21F5 */
+0x0536,0x0000,0x0000,0x0000,0x0000, /* 21F6 */
+0x0537,0x0000,0x0000,0x0000,0x0000, /* 21F7 */
+0x0538,0x0000,0x0000,0x0000,0x0000, /* 21F8 */
+0x0539,0x0000,0x0000,0x0000,0x0000, /* 21F9 */
+0x053A,0x0000,0x0000,0x0000,0x0000, /* 21FA */
+0x053B,0x0000,0x0000,0x0000,0x0000, /* 21FB */
+0x053C,0x0000,0x0000,0x0000,0x0000, /* 21FC */
+0x053D,0x0000,0x0000,0x0000,0x0000, /* 21FD */
+0x053E,0x0000,0x0000,0x0000,0x0000, /* 21FE */
+0x053F,0x0000,0x0000,0x0000,0x0000 /* 21FF */
+};
+
+static const uint16 uca520_p022[]= { /* 2200 (4 weights per char) */
+0x0540,0x0000,0x0000,0x0000, 0x0541,0x0000,0x0000,0x0000, /* 2200 */
+0x0542,0x0000,0x0000,0x0000, 0x0543,0x0000,0x0000,0x0000, /* 2202 */
+0x0543,0x0000,0x0000,0x0000, 0x0544,0x0000,0x0000,0x0000, /* 2204 */
+0x0545,0x0000,0x0000,0x0000, 0x0546,0x0000,0x0000,0x0000, /* 2206 */
+0x0547,0x0000,0x0000,0x0000, 0x0547,0x0000,0x0000,0x0000, /* 2208 */
+0x0548,0x0000,0x0000,0x0000, 0x0549,0x0000,0x0000,0x0000, /* 220A */
+0x0549,0x0000,0x0000,0x0000, 0x054A,0x0000,0x0000,0x0000, /* 220C */
+0x054C,0x0000,0x0000,0x0000, 0x054D,0x0000,0x0000,0x0000, /* 220E */
+0x054E,0x0000,0x0000,0x0000, 0x054F,0x0000,0x0000,0x0000, /* 2210 */
+0x055C,0x0000,0x0000,0x0000, 0x055D,0x0000,0x0000,0x0000, /* 2212 */
+0x055E,0x0000,0x0000,0x0000, 0x055F,0x0000,0x0000,0x0000, /* 2214 */
+0x0560,0x0000,0x0000,0x0000, 0x0561,0x0000,0x0000,0x0000, /* 2216 */
+0x0562,0x0000,0x0000,0x0000, 0x0563,0x0000,0x0000,0x0000, /* 2218 */
+0x0564,0x0000,0x0000,0x0000, 0x0565,0x0000,0x0000,0x0000, /* 221A */
+0x0567,0x0000,0x0000,0x0000, 0x0569,0x0000,0x0000,0x0000, /* 221C */
+0x056A,0x0000,0x0000,0x0000, 0x056B,0x0000,0x0000,0x0000, /* 221E */
+0x056C,0x0000,0x0000,0x0000, 0x056D,0x0000,0x0000,0x0000, /* 2220 */
+0x056E,0x0000,0x0000,0x0000, 0x056F,0x0000,0x0000,0x0000, /* 2222 */
+0x056F,0x0000,0x0000,0x0000, 0x0570,0x0000,0x0000,0x0000, /* 2224 */
+0x0570,0x0000,0x0000,0x0000, 0x0571,0x0000,0x0000,0x0000, /* 2226 */
+0x0572,0x0000,0x0000,0x0000, 0x0573,0x0000,0x0000,0x0000, /* 2228 */
+0x0574,0x0000,0x0000,0x0000, 0x0575,0x0000,0x0000,0x0000, /* 222A */
+0x0575,0x0575,0x0000,0x0000, 0x0575,0x0575,0x0575,0x0000, /* 222C */
+0x0576,0x0000,0x0000,0x0000, 0x0576,0x0576,0x0000,0x0000, /* 222E */
+0x0576,0x0576,0x0576,0x0000, 0x0577,0x0000,0x0000,0x0000, /* 2230 */
+0x0578,0x0000,0x0000,0x0000, 0x0579,0x0000,0x0000,0x0000, /* 2232 */
+0x057A,0x0000,0x0000,0x0000, 0x057B,0x0000,0x0000,0x0000, /* 2234 */
+0x057C,0x0000,0x0000,0x0000, 0x057D,0x0000,0x0000,0x0000, /* 2236 */
+0x057E,0x0000,0x0000,0x0000, 0x057F,0x0000,0x0000,0x0000, /* 2238 */
+0x0580,0x0000,0x0000,0x0000, 0x0581,0x0000,0x0000,0x0000, /* 223A */
+0x0582,0x0000,0x0000,0x0000, 0x0583,0x0000,0x0000,0x0000, /* 223C */
+0x0584,0x0000,0x0000,0x0000, 0x0585,0x0000,0x0000,0x0000, /* 223E */
+0x0586,0x0000,0x0000,0x0000, 0x0582,0x0000,0x0000,0x0000, /* 2240 */
+0x0587,0x0000,0x0000,0x0000, 0x0588,0x0000,0x0000,0x0000, /* 2242 */
+0x0588,0x0000,0x0000,0x0000, 0x0589,0x0000,0x0000,0x0000, /* 2244 */
+0x058A,0x0000,0x0000,0x0000, 0x0589,0x0000,0x0000,0x0000, /* 2246 */
+0x058B,0x0000,0x0000,0x0000, 0x058B,0x0000,0x0000,0x0000, /* 2248 */
+0x058C,0x0000,0x0000,0x0000, 0x058D,0x0000,0x0000,0x0000, /* 224A */
+0x058E,0x0000,0x0000,0x0000, 0x058F,0x0000,0x0000,0x0000, /* 224C */
+0x0590,0x0000,0x0000,0x0000, 0x0591,0x0000,0x0000,0x0000, /* 224E */
+0x0592,0x0000,0x0000,0x0000, 0x0593,0x0000,0x0000,0x0000, /* 2250 */
+0x0594,0x0000,0x0000,0x0000, 0x0595,0x0000,0x0000,0x0000, /* 2252 */
+0x0596,0x0000,0x0000,0x0000, 0x0597,0x0000,0x0000,0x0000, /* 2254 */
+0x0598,0x0000,0x0000,0x0000, 0x0599,0x0000,0x0000,0x0000, /* 2256 */
+0x059A,0x0000,0x0000,0x0000, 0x059B,0x0000,0x0000,0x0000, /* 2258 */
+0x059C,0x0000,0x0000,0x0000, 0x059D,0x0000,0x0000,0x0000, /* 225A */
+0x059E,0x0000,0x0000,0x0000, 0x059F,0x0000,0x0000,0x0000, /* 225C */
+0x05A0,0x0000,0x0000,0x0000, 0x05A1,0x0000,0x0000,0x0000, /* 225E */
+0x0555,0x0000,0x0000,0x0000, 0x05A2,0x0000,0x0000,0x0000, /* 2260 */
+0x05A2,0x0000,0x0000,0x0000, 0x05A3,0x0000,0x0000,0x0000, /* 2262 */
+0x05A4,0x0000,0x0000,0x0000, 0x05A5,0x0000,0x0000,0x0000, /* 2264 */
+0x05A6,0x0000,0x0000,0x0000, 0x05A7,0x0000,0x0000,0x0000, /* 2266 */
+0x05A8,0x0000,0x0000,0x0000, 0x05A9,0x0000,0x0000,0x0000, /* 2268 */
+0x05AA,0x0000,0x0000,0x0000, 0x05AB,0x0000,0x0000,0x0000, /* 226A */
+0x05AC,0x0000,0x0000,0x0000, 0x058F,0x0000,0x0000,0x0000, /* 226C */
+0x0554,0x0000,0x0000,0x0000, 0x0556,0x0000,0x0000,0x0000, /* 226E */
+0x05A4,0x0000,0x0000,0x0000, 0x05A5,0x0000,0x0000,0x0000, /* 2270 */
+0x05AD,0x0000,0x0000,0x0000, 0x05AE,0x0000,0x0000,0x0000, /* 2272 */
+0x05AD,0x0000,0x0000,0x0000, 0x05AE,0x0000,0x0000,0x0000, /* 2274 */
+0x05AF,0x0000,0x0000,0x0000, 0x05B0,0x0000,0x0000,0x0000, /* 2276 */
+0x05AF,0x0000,0x0000,0x0000, 0x05B0,0x0000,0x0000,0x0000, /* 2278 */
+0x05B1,0x0000,0x0000,0x0000, 0x05B2,0x0000,0x0000,0x0000, /* 227A */
+0x05B3,0x0000,0x0000,0x0000, 0x05B4,0x0000,0x0000,0x0000, /* 227C */
+0x05B5,0x0000,0x0000,0x0000, 0x05B6,0x0000,0x0000,0x0000, /* 227E */
+0x05B1,0x0000,0x0000,0x0000, 0x05B2,0x0000,0x0000,0x0000, /* 2280 */
+0x05B7,0x0000,0x0000,0x0000, 0x05B8,0x0000,0x0000,0x0000, /* 2282 */
+0x05B7,0x0000,0x0000,0x0000, 0x05B8,0x0000,0x0000,0x0000, /* 2284 */
+0x05B9,0x0000,0x0000,0x0000, 0x05BA,0x0000,0x0000,0x0000, /* 2286 */
+0x05B9,0x0000,0x0000,0x0000, 0x05BA,0x0000,0x0000,0x0000, /* 2288 */
+0x05BB,0x0000,0x0000,0x0000, 0x05BC,0x0000,0x0000,0x0000, /* 228A */
+0x05BD,0x0000,0x0000,0x0000, 0x05BE,0x0000,0x0000,0x0000, /* 228C */
+0x05BF,0x0000,0x0000,0x0000, 0x05C0,0x0000,0x0000,0x0000, /* 228E */
+0x05C1,0x0000,0x0000,0x0000, 0x05C2,0x0000,0x0000,0x0000, /* 2290 */
+0x05C3,0x0000,0x0000,0x0000, 0x05C4,0x0000,0x0000,0x0000, /* 2292 */
+0x05C5,0x0000,0x0000,0x0000, 0x05C6,0x0000,0x0000,0x0000, /* 2294 */
+0x05C7,0x0000,0x0000,0x0000, 0x05C8,0x0000,0x0000,0x0000, /* 2296 */
+0x05C9,0x0000,0x0000,0x0000, 0x05CA,0x0000,0x0000,0x0000, /* 2298 */
+0x05CB,0x0000,0x0000,0x0000, 0x05CC,0x0000,0x0000,0x0000, /* 229A */
+0x05CD,0x0000,0x0000,0x0000, 0x05CE,0x0000,0x0000,0x0000, /* 229C */
+0x05CF,0x0000,0x0000,0x0000, 0x05D0,0x0000,0x0000,0x0000, /* 229E */
+0x05D1,0x0000,0x0000,0x0000, 0x05D2,0x0000,0x0000,0x0000, /* 22A0 */
+0x05D3,0x0000,0x0000,0x0000, 0x05D4,0x0000,0x0000,0x0000, /* 22A2 */
+0x05D5,0x0000,0x0000,0x0000, 0x05D6,0x0000,0x0000,0x0000, /* 22A4 */
+0x05D7,0x0000,0x0000,0x0000, 0x05D8,0x0000,0x0000,0x0000, /* 22A6 */
+0x05D9,0x0000,0x0000,0x0000, 0x05DA,0x0000,0x0000,0x0000, /* 22A8 */
+0x05DB,0x0000,0x0000,0x0000, 0x05DC,0x0000,0x0000,0x0000, /* 22AA */
+0x05D3,0x0000,0x0000,0x0000, 0x05D9,0x0000,0x0000,0x0000, /* 22AC */
+0x05DA,0x0000,0x0000,0x0000, 0x05DC,0x0000,0x0000,0x0000, /* 22AE */
+0x05DD,0x0000,0x0000,0x0000, 0x05DE,0x0000,0x0000,0x0000, /* 22B0 */
+0x05DF,0x0000,0x0000,0x0000, 0x05E0,0x0000,0x0000,0x0000, /* 22B2 */
+0x05E1,0x0000,0x0000,0x0000, 0x05E2,0x0000,0x0000,0x0000, /* 22B4 */
+0x05E3,0x0000,0x0000,0x0000, 0x05E4,0x0000,0x0000,0x0000, /* 22B6 */
+0x05E5,0x0000,0x0000,0x0000, 0x05E6,0x0000,0x0000,0x0000, /* 22B8 */
+0x05E7,0x0000,0x0000,0x0000, 0x05E8,0x0000,0x0000,0x0000, /* 22BA */
+0x05E9,0x0000,0x0000,0x0000, 0x05EA,0x0000,0x0000,0x0000, /* 22BC */
+0x05EB,0x0000,0x0000,0x0000, 0x05EC,0x0000,0x0000,0x0000, /* 22BE */
+0x05ED,0x0000,0x0000,0x0000, 0x05EE,0x0000,0x0000,0x0000, /* 22C0 */
+0x05EF,0x0000,0x0000,0x0000, 0x05F0,0x0000,0x0000,0x0000, /* 22C2 */
+0x05F1,0x0000,0x0000,0x0000, 0x05F2,0x0000,0x0000,0x0000, /* 22C4 */
+0x05F3,0x0000,0x0000,0x0000, 0x05F4,0x0000,0x0000,0x0000, /* 22C6 */
+0x05F5,0x0000,0x0000,0x0000, 0x05F6,0x0000,0x0000,0x0000, /* 22C8 */
+0x05F7,0x0000,0x0000,0x0000, 0x05F8,0x0000,0x0000,0x0000, /* 22CA */
+0x05F9,0x0000,0x0000,0x0000, 0x05FA,0x0000,0x0000,0x0000, /* 22CC */
+0x05FB,0x0000,0x0000,0x0000, 0x05FC,0x0000,0x0000,0x0000, /* 22CE */
+0x05FD,0x0000,0x0000,0x0000, 0x05FE,0x0000,0x0000,0x0000, /* 22D0 */
+0x05FF,0x0000,0x0000,0x0000, 0x0600,0x0000,0x0000,0x0000, /* 22D2 */
+0x0601,0x0000,0x0000,0x0000, 0x0602,0x0000,0x0000,0x0000, /* 22D4 */
+0x0603,0x0000,0x0000,0x0000, 0x0604,0x0000,0x0000,0x0000, /* 22D6 */
+0x0605,0x0000,0x0000,0x0000, 0x0606,0x0000,0x0000,0x0000, /* 22D8 */
+0x0607,0x0000,0x0000,0x0000, 0x0608,0x0000,0x0000,0x0000, /* 22DA */
+0x0609,0x0000,0x0000,0x0000, 0x060A,0x0000,0x0000,0x0000, /* 22DC */
+0x060B,0x0000,0x0000,0x0000, 0x060C,0x0000,0x0000,0x0000, /* 22DE */
+0x05B3,0x0000,0x0000,0x0000, 0x05B4,0x0000,0x0000,0x0000, /* 22E0 */
+0x05C2,0x0000,0x0000,0x0000, 0x05C3,0x0000,0x0000,0x0000, /* 22E2 */
+0x060D,0x0000,0x0000,0x0000, 0x060E,0x0000,0x0000,0x0000, /* 22E4 */
+0x060F,0x0000,0x0000,0x0000, 0x0610,0x0000,0x0000,0x0000, /* 22E6 */
+0x0611,0x0000,0x0000,0x0000, 0x0612,0x0000,0x0000,0x0000, /* 22E8 */
+0x05DF,0x0000,0x0000,0x0000, 0x05E0,0x0000,0x0000,0x0000, /* 22EA */
+0x05E1,0x0000,0x0000,0x0000, 0x05E2,0x0000,0x0000,0x0000, /* 22EC */
+0x0613,0x0000,0x0000,0x0000, 0x0614,0x0000,0x0000,0x0000, /* 22EE */
+0x0615,0x0000,0x0000,0x0000, 0x0616,0x0000,0x0000,0x0000, /* 22F0 */
+0x0617,0x0000,0x0000,0x0000, 0x0618,0x0000,0x0000,0x0000, /* 22F2 */
+0x0619,0x0000,0x0000,0x0000, 0x061A,0x0000,0x0000,0x0000, /* 22F4 */
+0x061B,0x0000,0x0000,0x0000, 0x061C,0x0000,0x0000,0x0000, /* 22F6 */
+0x061D,0x0000,0x0000,0x0000, 0x061E,0x0000,0x0000,0x0000, /* 22F8 */
+0x061F,0x0000,0x0000,0x0000, 0x0620,0x0000,0x0000,0x0000, /* 22FA */
+0x0621,0x0000,0x0000,0x0000, 0x0622,0x0000,0x0000,0x0000, /* 22FC */
+0x0623,0x0000,0x0000,0x0000, 0x0624,0x0000,0x0000,0x0000 /* 22FE */
+};
+
+static const uint16 uca520_p023[]= { /* 2300 (3 weights per char) */
+0x0625,0x0000,0x0000, 0x0626,0x0000,0x0000, 0x0627,0x0000,0x0000, /* 2300 */
+0x0628,0x0000,0x0000, 0x0629,0x0000,0x0000, 0x062A,0x0000,0x0000, /* 2303 */
+0x062B,0x0000,0x0000, 0x062C,0x0000,0x0000, 0x062D,0x0000,0x0000, /* 2306 */
+0x062E,0x0000,0x0000, 0x062F,0x0000,0x0000, 0x0630,0x0000,0x0000, /* 2309 */
+0x0631,0x0000,0x0000, 0x0632,0x0000,0x0000, 0x0633,0x0000,0x0000, /* 230C */
+0x0634,0x0000,0x0000, 0x0635,0x0000,0x0000, 0x0636,0x0000,0x0000, /* 230F */
+0x0637,0x0000,0x0000, 0x0638,0x0000,0x0000, 0x0639,0x0000,0x0000, /* 2312 */
+0x063A,0x0000,0x0000, 0x063B,0x0000,0x0000, 0x063C,0x0000,0x0000, /* 2315 */
+0x063D,0x0000,0x0000, 0x063E,0x0000,0x0000, 0x063F,0x0000,0x0000, /* 2318 */
+0x0640,0x0000,0x0000, 0x0641,0x0000,0x0000, 0x0642,0x0000,0x0000, /* 231B */
+0x0643,0x0000,0x0000, 0x0644,0x0000,0x0000, 0x0645,0x0000,0x0000, /* 231E */
+0x0646,0x0000,0x0000, 0x0647,0x0000,0x0000, 0x0648,0x0000,0x0000, /* 2321 */
+0x0649,0x0000,0x0000, 0x064A,0x0000,0x0000, 0x064B,0x0000,0x0000, /* 2324 */
+0x064C,0x0000,0x0000, 0x064D,0x0000,0x0000, 0x033D,0x0000,0x0000, /* 2327 */
+0x033E,0x0000,0x0000, 0x064E,0x0000,0x0000, 0x064F,0x0000,0x0000, /* 232A */
+0x0650,0x0000,0x0000, 0x0651,0x0000,0x0000, 0x0652,0x0000,0x0000, /* 232D */
+0x0653,0x0000,0x0000, 0x0654,0x0000,0x0000, 0x0655,0x0000,0x0000, /* 2330 */
+0x0656,0x0000,0x0000, 0x0657,0x0000,0x0000, 0x0658,0x0000,0x0000, /* 2333 */
+0x0659,0x0000,0x0000, 0x065A,0x0000,0x0000, 0x065B,0x0000,0x0000, /* 2336 */
+0x065C,0x0000,0x0000, 0x065D,0x0000,0x0000, 0x065E,0x0000,0x0000, /* 2339 */
+0x065F,0x0000,0x0000, 0x0660,0x0000,0x0000, 0x0661,0x0000,0x0000, /* 233C */
+0x0662,0x0000,0x0000, 0x0663,0x0000,0x0000, 0x0664,0x0000,0x0000, /* 233F */
+0x0665,0x0000,0x0000, 0x0666,0x0000,0x0000, 0x0667,0x0000,0x0000, /* 2342 */
+0x0668,0x0000,0x0000, 0x0669,0x0000,0x0000, 0x066A,0x0000,0x0000, /* 2345 */
+0x066B,0x0000,0x0000, 0x066C,0x0000,0x0000, 0x066D,0x0000,0x0000, /* 2348 */
+0x066E,0x0000,0x0000, 0x066F,0x0000,0x0000, 0x0670,0x0000,0x0000, /* 234B */
+0x0671,0x0000,0x0000, 0x0672,0x0000,0x0000, 0x0673,0x0000,0x0000, /* 234E */
+0x0674,0x0000,0x0000, 0x0675,0x0000,0x0000, 0x0676,0x0000,0x0000, /* 2351 */
+0x0677,0x0000,0x0000, 0x0678,0x0000,0x0000, 0x0679,0x0000,0x0000, /* 2354 */
+0x067A,0x0000,0x0000, 0x067B,0x0000,0x0000, 0x067C,0x0000,0x0000, /* 2357 */
+0x067D,0x0000,0x0000, 0x067E,0x0000,0x0000, 0x067F,0x0000,0x0000, /* 235A */
+0x0680,0x0000,0x0000, 0x0681,0x0000,0x0000, 0x0682,0x0000,0x0000, /* 235D */
+0x0683,0x0000,0x0000, 0x0684,0x0000,0x0000, 0x0685,0x0000,0x0000, /* 2360 */
+0x0686,0x0000,0x0000, 0x0687,0x0000,0x0000, 0x0688,0x0000,0x0000, /* 2363 */
+0x0689,0x0000,0x0000, 0x068A,0x0000,0x0000, 0x068B,0x0000,0x0000, /* 2366 */
+0x068C,0x0000,0x0000, 0x068D,0x0000,0x0000, 0x068E,0x0000,0x0000, /* 2369 */
+0x068F,0x0000,0x0000, 0x0690,0x0000,0x0000, 0x0691,0x0000,0x0000, /* 236C */
+0x0692,0x0000,0x0000, 0x0693,0x0000,0x0000, 0x0694,0x0000,0x0000, /* 236F */
+0x0695,0x0000,0x0000, 0x0696,0x0000,0x0000, 0x0697,0x0000,0x0000, /* 2372 */
+0x0698,0x0000,0x0000, 0x0699,0x0000,0x0000, 0x069A,0x0000,0x0000, /* 2375 */
+0x069B,0x0000,0x0000, 0x069C,0x0000,0x0000, 0x069D,0x0000,0x0000, /* 2378 */
+0x069E,0x0000,0x0000, 0x069F,0x0000,0x0000, 0x06A0,0x0000,0x0000, /* 237B */
+0x06A1,0x0000,0x0000, 0x06A2,0x0000,0x0000, 0x06A3,0x0000,0x0000, /* 237E */
+0x06A4,0x0000,0x0000, 0x06A5,0x0000,0x0000, 0x06A6,0x0000,0x0000, /* 2381 */
+0x06A7,0x0000,0x0000, 0x06A8,0x0000,0x0000, 0x06A9,0x0000,0x0000, /* 2384 */
+0x06AA,0x0000,0x0000, 0x06AB,0x0000,0x0000, 0x06AC,0x0000,0x0000, /* 2387 */
+0x06AD,0x0000,0x0000, 0x06AE,0x0000,0x0000, 0x06AF,0x0000,0x0000, /* 238A */
+0x06B0,0x0000,0x0000, 0x06B1,0x0000,0x0000, 0x06B2,0x0000,0x0000, /* 238D */
+0x06B3,0x0000,0x0000, 0x06B4,0x0000,0x0000, 0x06B5,0x0000,0x0000, /* 2390 */
+0x06B6,0x0000,0x0000, 0x06B7,0x0000,0x0000, 0x06B8,0x0000,0x0000, /* 2393 */
+0x06B9,0x0000,0x0000, 0x06BA,0x0000,0x0000, 0x06BB,0x0000,0x0000, /* 2396 */
+0x06BC,0x0000,0x0000, 0x06BD,0x0000,0x0000, 0x06BE,0x0000,0x0000, /* 2399 */
+0x06BF,0x0000,0x0000, 0x06C0,0x0000,0x0000, 0x06C1,0x0000,0x0000, /* 239C */
+0x06C2,0x0000,0x0000, 0x06C3,0x0000,0x0000, 0x06C4,0x0000,0x0000, /* 239F */
+0x06C5,0x0000,0x0000, 0x06C6,0x0000,0x0000, 0x06C7,0x0000,0x0000, /* 23A2 */
+0x06C8,0x0000,0x0000, 0x06C9,0x0000,0x0000, 0x06CA,0x0000,0x0000, /* 23A5 */
+0x06CB,0x0000,0x0000, 0x06CC,0x0000,0x0000, 0x06CD,0x0000,0x0000, /* 23A8 */
+0x06CE,0x0000,0x0000, 0x06CF,0x0000,0x0000, 0x06D0,0x0000,0x0000, /* 23AB */
+0x06D1,0x0000,0x0000, 0x06D2,0x0000,0x0000, 0x06D3,0x0000,0x0000, /* 23AE */
+0x06D4,0x0000,0x0000, 0x06D5,0x0000,0x0000, 0x06D6,0x0000,0x0000, /* 23B1 */
+0x06D7,0x0000,0x0000, 0x06D8,0x0000,0x0000, 0x06D9,0x0000,0x0000, /* 23B4 */
+0x06DA,0x0000,0x0000, 0x06DB,0x0000,0x0000, 0x06DC,0x0000,0x0000, /* 23B7 */
+0x06DD,0x0000,0x0000, 0x06DE,0x0000,0x0000, 0x06DF,0x0000,0x0000, /* 23BA */
+0x06E0,0x0000,0x0000, 0x06E1,0x0000,0x0000, 0x06E2,0x0000,0x0000, /* 23BD */
+0x06E3,0x0000,0x0000, 0x06E4,0x0000,0x0000, 0x06E5,0x0000,0x0000, /* 23C0 */
+0x06E6,0x0000,0x0000, 0x06E7,0x0000,0x0000, 0x06E8,0x0000,0x0000, /* 23C3 */
+0x06E9,0x0000,0x0000, 0x06EA,0x0000,0x0000, 0x06EB,0x0000,0x0000, /* 23C6 */
+0x06EC,0x0000,0x0000, 0x06ED,0x0000,0x0000, 0x06EE,0x0000,0x0000, /* 23C9 */
+0x06EF,0x0000,0x0000, 0x06F0,0x0000,0x0000, 0x06F1,0x0000,0x0000, /* 23CC */
+0x06F2,0x0000,0x0000, 0x06F3,0x0000,0x0000, 0x06F4,0x0000,0x0000, /* 23CF */
+0x06F5,0x0000,0x0000, 0x06F6,0x0000,0x0000, 0x06F7,0x0000,0x0000, /* 23D2 */
+0x06F8,0x0000,0x0000, 0x06F9,0x0000,0x0000, 0x06FA,0x0000,0x0000, /* 23D5 */
+0x06FB,0x0000,0x0000, 0x06FC,0x0000,0x0000, 0x06FD,0x0000,0x0000, /* 23D8 */
+0x06FE,0x0000,0x0000, 0x06FF,0x0000,0x0000, 0x0700,0x0000,0x0000, /* 23DB */
+0x0701,0x0000,0x0000, 0x0702,0x0000,0x0000, 0x0703,0x0000,0x0000, /* 23DE */
+0x0704,0x0000,0x0000, 0x0705,0x0000,0x0000, 0x0706,0x0000,0x0000, /* 23E1 */
+0x0707,0x0000,0x0000, 0x0708,0x0000,0x0000, 0x0709,0x0000,0x0000, /* 23E4 */
+0x070A,0x0000,0x0000, 0x070B,0x0000,0x0000, 0xFBC0,0xA3E9,0x0000, /* 23E7 */
+0xFBC0,0xA3EA,0x0000, 0xFBC0,0xA3EB,0x0000, 0xFBC0,0xA3EC,0x0000, /* 23EA */
+0xFBC0,0xA3ED,0x0000, 0xFBC0,0xA3EE,0x0000, 0xFBC0,0xA3EF,0x0000, /* 23ED */
+0xFBC0,0xA3F0,0x0000, 0xFBC0,0xA3F1,0x0000, 0xFBC0,0xA3F2,0x0000, /* 23F0 */
+0xFBC0,0xA3F3,0x0000, 0xFBC0,0xA3F4,0x0000, 0xFBC0,0xA3F5,0x0000, /* 23F3 */
+0xFBC0,0xA3F6,0x0000, 0xFBC0,0xA3F7,0x0000, 0xFBC0,0xA3F8,0x0000, /* 23F6 */
+0xFBC0,0xA3F9,0x0000, 0xFBC0,0xA3FA,0x0000, 0xFBC0,0xA3FB,0x0000, /* 23F9 */
+0xFBC0,0xA3FC,0x0000, 0xFBC0,0xA3FD,0x0000, 0xFBC0,0xA3FE,0x0000, /* 23FC */
+0xFBC0,0xA3FF,0x0000 };
+
+static const uint16 uca520_p024[]= { /* 2400 (5 weights per char) */
+0x070C,0x0000,0x0000,0x0000,0x0000, /* 2400 */
+0x070D,0x0000,0x0000,0x0000,0x0000, /* 2401 */
+0x070E,0x0000,0x0000,0x0000,0x0000, /* 2402 */
+0x070F,0x0000,0x0000,0x0000,0x0000, /* 2403 */
+0x0710,0x0000,0x0000,0x0000,0x0000, /* 2404 */
+0x0711,0x0000,0x0000,0x0000,0x0000, /* 2405 */
+0x0712,0x0000,0x0000,0x0000,0x0000, /* 2406 */
+0x0713,0x0000,0x0000,0x0000,0x0000, /* 2407 */
+0x0714,0x0000,0x0000,0x0000,0x0000, /* 2408 */
+0x0715,0x0000,0x0000,0x0000,0x0000, /* 2409 */
+0x0716,0x0000,0x0000,0x0000,0x0000, /* 240A */
+0x0717,0x0000,0x0000,0x0000,0x0000, /* 240B */
+0x0718,0x0000,0x0000,0x0000,0x0000, /* 240C */
+0x0719,0x0000,0x0000,0x0000,0x0000, /* 240D */
+0x071A,0x0000,0x0000,0x0000,0x0000, /* 240E */
+0x071B,0x0000,0x0000,0x0000,0x0000, /* 240F */
+0x071C,0x0000,0x0000,0x0000,0x0000, /* 2410 */
+0x071D,0x0000,0x0000,0x0000,0x0000, /* 2411 */
+0x071E,0x0000,0x0000,0x0000,0x0000, /* 2412 */
+0x071F,0x0000,0x0000,0x0000,0x0000, /* 2413 */
+0x0720,0x0000,0x0000,0x0000,0x0000, /* 2414 */
+0x0721,0x0000,0x0000,0x0000,0x0000, /* 2415 */
+0x0722,0x0000,0x0000,0x0000,0x0000, /* 2416 */
+0x0723,0x0000,0x0000,0x0000,0x0000, /* 2417 */
+0x0724,0x0000,0x0000,0x0000,0x0000, /* 2418 */
+0x0725,0x0000,0x0000,0x0000,0x0000, /* 2419 */
+0x0726,0x0000,0x0000,0x0000,0x0000, /* 241A */
+0x0727,0x0000,0x0000,0x0000,0x0000, /* 241B */
+0x0728,0x0000,0x0000,0x0000,0x0000, /* 241C */
+0x0729,0x0000,0x0000,0x0000,0x0000, /* 241D */
+0x072A,0x0000,0x0000,0x0000,0x0000, /* 241E */
+0x072B,0x0000,0x0000,0x0000,0x0000, /* 241F */
+0x072C,0x0000,0x0000,0x0000,0x0000, /* 2420 */
+0x072D,0x0000,0x0000,0x0000,0x0000, /* 2421 */
+0x072E,0x0000,0x0000,0x0000,0x0000, /* 2422 */
+0x072F,0x0000,0x0000,0x0000,0x0000, /* 2423 */
+0x0730,0x0000,0x0000,0x0000,0x0000, /* 2424 */
+0x0731,0x0000,0x0000,0x0000,0x0000, /* 2425 */
+0x0732,0x0000,0x0000,0x0000,0x0000, /* 2426 */
+0xFBC0,0xA427,0x0000,0x0000,0x0000, /* 2427 */
+0xFBC0,0xA428,0x0000,0x0000,0x0000, /* 2428 */
+0xFBC0,0xA429,0x0000,0x0000,0x0000, /* 2429 */
+0xFBC0,0xA42A,0x0000,0x0000,0x0000, /* 242A */
+0xFBC0,0xA42B,0x0000,0x0000,0x0000, /* 242B */
+0xFBC0,0xA42C,0x0000,0x0000,0x0000, /* 242C */
+0xFBC0,0xA42D,0x0000,0x0000,0x0000, /* 242D */
+0xFBC0,0xA42E,0x0000,0x0000,0x0000, /* 242E */
+0xFBC0,0xA42F,0x0000,0x0000,0x0000, /* 242F */
+0xFBC0,0xA430,0x0000,0x0000,0x0000, /* 2430 */
+0xFBC0,0xA431,0x0000,0x0000,0x0000, /* 2431 */
+0xFBC0,0xA432,0x0000,0x0000,0x0000, /* 2432 */
+0xFBC0,0xA433,0x0000,0x0000,0x0000, /* 2433 */
+0xFBC0,0xA434,0x0000,0x0000,0x0000, /* 2434 */
+0xFBC0,0xA435,0x0000,0x0000,0x0000, /* 2435 */
+0xFBC0,0xA436,0x0000,0x0000,0x0000, /* 2436 */
+0xFBC0,0xA437,0x0000,0x0000,0x0000, /* 2437 */
+0xFBC0,0xA438,0x0000,0x0000,0x0000, /* 2438 */
+0xFBC0,0xA439,0x0000,0x0000,0x0000, /* 2439 */
+0xFBC0,0xA43A,0x0000,0x0000,0x0000, /* 243A */
+0xFBC0,0xA43B,0x0000,0x0000,0x0000, /* 243B */
+0xFBC0,0xA43C,0x0000,0x0000,0x0000, /* 243C */
+0xFBC0,0xA43D,0x0000,0x0000,0x0000, /* 243D */
+0xFBC0,0xA43E,0x0000,0x0000,0x0000, /* 243E */
+0xFBC0,0xA43F,0x0000,0x0000,0x0000, /* 243F */
+0x0733,0x0000,0x0000,0x0000,0x0000, /* 2440 */
+0x0734,0x0000,0x0000,0x0000,0x0000, /* 2441 */
+0x0735,0x0000,0x0000,0x0000,0x0000, /* 2442 */
+0x0736,0x0000,0x0000,0x0000,0x0000, /* 2443 */
+0x0737,0x0000,0x0000,0x0000,0x0000, /* 2444 */
+0x0738,0x0000,0x0000,0x0000,0x0000, /* 2445 */
+0x0739,0x0000,0x0000,0x0000,0x0000, /* 2446 */
+0x073A,0x0000,0x0000,0x0000,0x0000, /* 2447 */
+0x073B,0x0000,0x0000,0x0000,0x0000, /* 2448 */
+0x073C,0x0000,0x0000,0x0000,0x0000, /* 2449 */
+0x073D,0x0000,0x0000,0x0000,0x0000, /* 244A */
+0xFBC0,0xA44B,0x0000,0x0000,0x0000, /* 244B */
+0xFBC0,0xA44C,0x0000,0x0000,0x0000, /* 244C */
+0xFBC0,0xA44D,0x0000,0x0000,0x0000, /* 244D */
+0xFBC0,0xA44E,0x0000,0x0000,0x0000, /* 244E */
+0xFBC0,0xA44F,0x0000,0x0000,0x0000, /* 244F */
+0xFBC0,0xA450,0x0000,0x0000,0x0000, /* 2450 */
+0xFBC0,0xA451,0x0000,0x0000,0x0000, /* 2451 */
+0xFBC0,0xA452,0x0000,0x0000,0x0000, /* 2452 */
+0xFBC0,0xA453,0x0000,0x0000,0x0000, /* 2453 */
+0xFBC0,0xA454,0x0000,0x0000,0x0000, /* 2454 */
+0xFBC0,0xA455,0x0000,0x0000,0x0000, /* 2455 */
+0xFBC0,0xA456,0x0000,0x0000,0x0000, /* 2456 */
+0xFBC0,0xA457,0x0000,0x0000,0x0000, /* 2457 */
+0xFBC0,0xA458,0x0000,0x0000,0x0000, /* 2458 */
+0xFBC0,0xA459,0x0000,0x0000,0x0000, /* 2459 */
+0xFBC0,0xA45A,0x0000,0x0000,0x0000, /* 245A */
+0xFBC0,0xA45B,0x0000,0x0000,0x0000, /* 245B */
+0xFBC0,0xA45C,0x0000,0x0000,0x0000, /* 245C */
+0xFBC0,0xA45D,0x0000,0x0000,0x0000, /* 245D */
+0xFBC0,0xA45E,0x0000,0x0000,0x0000, /* 245E */
+0xFBC0,0xA45F,0x0000,0x0000,0x0000, /* 245F */
+0x1206,0x0000,0x0000,0x0000,0x0000, /* 2460 */
+0x1207,0x0000,0x0000,0x0000,0x0000, /* 2461 */
+0x1208,0x0000,0x0000,0x0000,0x0000, /* 2462 */
+0x1209,0x0000,0x0000,0x0000,0x0000, /* 2463 */
+0x120A,0x0000,0x0000,0x0000,0x0000, /* 2464 */
+0x120B,0x0000,0x0000,0x0000,0x0000, /* 2465 */
+0x120C,0x0000,0x0000,0x0000,0x0000, /* 2466 */
+0x120D,0x0000,0x0000,0x0000,0x0000, /* 2467 */
+0x120E,0x0000,0x0000,0x0000,0x0000, /* 2468 */
+0x1206,0x1205,0x0000,0x0000,0x0000, /* 2469 */
+0x1206,0x1206,0x0000,0x0000,0x0000, /* 246A */
+0x1206,0x1207,0x0000,0x0000,0x0000, /* 246B */
+0x1206,0x1208,0x0000,0x0000,0x0000, /* 246C */
+0x1206,0x1209,0x0000,0x0000,0x0000, /* 246D */
+0x1206,0x120A,0x0000,0x0000,0x0000, /* 246E */
+0x1206,0x120B,0x0000,0x0000,0x0000, /* 246F */
+0x1206,0x120C,0x0000,0x0000,0x0000, /* 2470 */
+0x1206,0x120D,0x0000,0x0000,0x0000, /* 2471 */
+0x1206,0x120E,0x0000,0x0000,0x0000, /* 2472 */
+0x1207,0x1205,0x0000,0x0000,0x0000, /* 2473 */
+0x02FF,0x1206,0x0300,0x0000,0x0000, /* 2474 */
+0x02FF,0x1207,0x0300,0x0000,0x0000, /* 2475 */
+0x02FF,0x1208,0x0300,0x0000,0x0000, /* 2476 */
+0x02FF,0x1209,0x0300,0x0000,0x0000, /* 2477 */
+0x02FF,0x120A,0x0300,0x0000,0x0000, /* 2478 */
+0x02FF,0x120B,0x0300,0x0000,0x0000, /* 2479 */
+0x02FF,0x120C,0x0300,0x0000,0x0000, /* 247A */
+0x02FF,0x120D,0x0300,0x0000,0x0000, /* 247B */
+0x02FF,0x120E,0x0300,0x0000,0x0000, /* 247C */
+0x02FF,0x1206,0x1205,0x0300,0x0000, /* 247D */
+0x02FF,0x1206,0x1206,0x0300,0x0000, /* 247E */
+0x02FF,0x1206,0x1207,0x0300,0x0000, /* 247F */
+0x02FF,0x1206,0x1208,0x0300,0x0000, /* 2480 */
+0x02FF,0x1206,0x1209,0x0300,0x0000, /* 2481 */
+0x02FF,0x1206,0x120A,0x0300,0x0000, /* 2482 */
+0x02FF,0x1206,0x120B,0x0300,0x0000, /* 2483 */
+0x02FF,0x1206,0x120C,0x0300,0x0000, /* 2484 */
+0x02FF,0x1206,0x120D,0x0300,0x0000, /* 2485 */
+0x02FF,0x1206,0x120E,0x0300,0x0000, /* 2486 */
+0x02FF,0x1207,0x1205,0x0300,0x0000, /* 2487 */
+0x1206,0x0281,0x0000,0x0000,0x0000, /* 2488 */
+0x1207,0x0281,0x0000,0x0000,0x0000, /* 2489 */
+0x1208,0x0281,0x0000,0x0000,0x0000, /* 248A */
+0x1209,0x0281,0x0000,0x0000,0x0000, /* 248B */
+0x120A,0x0281,0x0000,0x0000,0x0000, /* 248C */
+0x120B,0x0281,0x0000,0x0000,0x0000, /* 248D */
+0x120C,0x0281,0x0000,0x0000,0x0000, /* 248E */
+0x120D,0x0281,0x0000,0x0000,0x0000, /* 248F */
+0x120E,0x0281,0x0000,0x0000,0x0000, /* 2490 */
+0x1206,0x1205,0x0281,0x0000,0x0000, /* 2491 */
+0x1206,0x1206,0x0281,0x0000,0x0000, /* 2492 */
+0x1206,0x1207,0x0281,0x0000,0x0000, /* 2493 */
+0x1206,0x1208,0x0281,0x0000,0x0000, /* 2494 */
+0x1206,0x1209,0x0281,0x0000,0x0000, /* 2495 */
+0x1206,0x120A,0x0281,0x0000,0x0000, /* 2496 */
+0x1206,0x120B,0x0281,0x0000,0x0000, /* 2497 */
+0x1206,0x120C,0x0281,0x0000,0x0000, /* 2498 */
+0x1206,0x120D,0x0281,0x0000,0x0000, /* 2499 */
+0x1206,0x120E,0x0281,0x0000,0x0000, /* 249A */
+0x1207,0x1205,0x0281,0x0000,0x0000, /* 249B */
+0x02FF,0x120F,0x0300,0x0000,0x0000, /* 249C */
+0x02FF,0x1225,0x0300,0x0000,0x0000, /* 249D */
+0x02FF,0x123D,0x0300,0x0000,0x0000, /* 249E */
+0x02FF,0x1250,0x0300,0x0000,0x0000, /* 249F */
+0x02FF,0x126B,0x0300,0x0000,0x0000, /* 24A0 */
+0x02FF,0x12A3,0x0300,0x0000,0x0000, /* 24A1 */
+0x02FF,0x12B0,0x0300,0x0000,0x0000, /* 24A2 */
+0x02FF,0x12D3,0x0300,0x0000,0x0000, /* 24A3 */
+0x02FF,0x12EC,0x0300,0x0000,0x0000, /* 24A4 */
+0x02FF,0x1305,0x0300,0x0000,0x0000, /* 24A5 */
+0x02FF,0x131E,0x0300,0x0000,0x0000, /* 24A6 */
+0x02FF,0x1330,0x0300,0x0000,0x0000, /* 24A7 */
+0x02FF,0x135F,0x0300,0x0000,0x0000, /* 24A8 */
+0x02FF,0x136D,0x0300,0x0000,0x0000, /* 24A9 */
+0x02FF,0x138E,0x0300,0x0000,0x0000, /* 24AA */
+0x02FF,0x13B3,0x0300,0x0000,0x0000, /* 24AB */
+0x02FF,0x13C8,0x0300,0x0000,0x0000, /* 24AC */
+0x02FF,0x13DA,0x0300,0x0000,0x0000, /* 24AD */
+0x02FF,0x1410,0x0300,0x0000,0x0000, /* 24AE */
+0x02FF,0x1433,0x0300,0x0000,0x0000, /* 24AF */
+0x02FF,0x1453,0x0300,0x0000,0x0000, /* 24B0 */
+0x02FF,0x147B,0x0300,0x0000,0x0000, /* 24B1 */
+0x02FF,0x148D,0x0300,0x0000,0x0000, /* 24B2 */
+0x02FF,0x1497,0x0300,0x0000,0x0000, /* 24B3 */
+0x02FF,0x149C,0x0300,0x0000,0x0000, /* 24B4 */
+0x02FF,0x14AD,0x0300,0x0000,0x0000, /* 24B5 */
+0x120F,0x0000,0x0000,0x0000,0x0000, /* 24B6 */
+0x1225,0x0000,0x0000,0x0000,0x0000, /* 24B7 */
+0x123D,0x0000,0x0000,0x0000,0x0000, /* 24B8 */
+0x1250,0x0000,0x0000,0x0000,0x0000, /* 24B9 */
+0x126B,0x0000,0x0000,0x0000,0x0000, /* 24BA */
+0x12A3,0x0000,0x0000,0x0000,0x0000, /* 24BB */
+0x12B0,0x0000,0x0000,0x0000,0x0000, /* 24BC */
+0x12D3,0x0000,0x0000,0x0000,0x0000, /* 24BD */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 24BE */
+0x1305,0x0000,0x0000,0x0000,0x0000, /* 24BF */
+0x131E,0x0000,0x0000,0x0000,0x0000, /* 24C0 */
+0x1330,0x0000,0x0000,0x0000,0x0000, /* 24C1 */
+0x135F,0x0000,0x0000,0x0000,0x0000, /* 24C2 */
+0x136D,0x0000,0x0000,0x0000,0x0000, /* 24C3 */
+0x138E,0x0000,0x0000,0x0000,0x0000, /* 24C4 */
+0x13B3,0x0000,0x0000,0x0000,0x0000, /* 24C5 */
+0x13C8,0x0000,0x0000,0x0000,0x0000, /* 24C6 */
+0x13DA,0x0000,0x0000,0x0000,0x0000, /* 24C7 */
+0x1410,0x0000,0x0000,0x0000,0x0000, /* 24C8 */
+0x1433,0x0000,0x0000,0x0000,0x0000, /* 24C9 */
+0x1453,0x0000,0x0000,0x0000,0x0000, /* 24CA */
+0x147B,0x0000,0x0000,0x0000,0x0000, /* 24CB */
+0x148D,0x0000,0x0000,0x0000,0x0000, /* 24CC */
+0x1497,0x0000,0x0000,0x0000,0x0000, /* 24CD */
+0x149C,0x0000,0x0000,0x0000,0x0000, /* 24CE */
+0x14AD,0x0000,0x0000,0x0000,0x0000, /* 24CF */
+0x120F,0x0000,0x0000,0x0000,0x0000, /* 24D0 */
+0x1225,0x0000,0x0000,0x0000,0x0000, /* 24D1 */
+0x123D,0x0000,0x0000,0x0000,0x0000, /* 24D2 */
+0x1250,0x0000,0x0000,0x0000,0x0000, /* 24D3 */
+0x126B,0x0000,0x0000,0x0000,0x0000, /* 24D4 */
+0x12A3,0x0000,0x0000,0x0000,0x0000, /* 24D5 */
+0x12B0,0x0000,0x0000,0x0000,0x0000, /* 24D6 */
+0x12D3,0x0000,0x0000,0x0000,0x0000, /* 24D7 */
+0x12EC,0x0000,0x0000,0x0000,0x0000, /* 24D8 */
+0x1305,0x0000,0x0000,0x0000,0x0000, /* 24D9 */
+0x131E,0x0000,0x0000,0x0000,0x0000, /* 24DA */
+0x1330,0x0000,0x0000,0x0000,0x0000, /* 24DB */
+0x135F,0x0000,0x0000,0x0000,0x0000, /* 24DC */
+0x136D,0x0000,0x0000,0x0000,0x0000, /* 24DD */
+0x138E,0x0000,0x0000,0x0000,0x0000, /* 24DE */
+0x13B3,0x0000,0x0000,0x0000,0x0000, /* 24DF */
+0x13C8,0x0000,0x0000,0x0000,0x0000, /* 24E0 */
+0x13DA,0x0000,0x0000,0x0000,0x0000, /* 24E1 */
+0x1410,0x0000,0x0000,0x0000,0x0000, /* 24E2 */
+0x1433,0x0000,0x0000,0x0000,0x0000, /* 24E3 */
+0x1453,0x0000,0x0000,0x0000,0x0000, /* 24E4 */
+0x147B,0x0000,0x0000,0x0000,0x0000, /* 24E5 */
+0x148D,0x0000,0x0000,0x0000,0x0000, /* 24E6 */
+0x1497,0x0000,0x0000,0x0000,0x0000, /* 24E7 */
+0x149C,0x0000,0x0000,0x0000,0x0000, /* 24E8 */
+0x14AD,0x0000,0x0000,0x0000,0x0000, /* 24E9 */
+0x1205,0x0000,0x0000,0x0000,0x0000, /* 24EA */
+0x1206,0x1206,0x0000,0x0000,0x0000, /* 24EB */
+0x1206,0x1207,0x0000,0x0000,0x0000, /* 24EC */
+0x1206,0x1208,0x0000,0x0000,0x0000, /* 24ED */
+0x1206,0x1209,0x0000,0x0000,0x0000, /* 24EE */
+0x1206,0x120A,0x0000,0x0000,0x0000, /* 24EF */
+0x1206,0x120B,0x0000,0x0000,0x0000, /* 24F0 */
+0x1206,0x120C,0x0000,0x0000,0x0000, /* 24F1 */
+0x1206,0x120D,0x0000,0x0000,0x0000, /* 24F2 */
+0x1206,0x120E,0x0000,0x0000,0x0000, /* 24F3 */
+0x1207,0x1205,0x0000,0x0000,0x0000, /* 24F4 */
+0x1206,0x0000,0x0000,0x0000,0x0000, /* 24F5 */
+0x1207,0x0000,0x0000,0x0000,0x0000, /* 24F6 */
+0x1208,0x0000,0x0000,0x0000,0x0000, /* 24F7 */
+0x1209,0x0000,0x0000,0x0000,0x0000, /* 24F8 */
+0x120A,0x0000,0x0000,0x0000,0x0000, /* 24F9 */
+0x120B,0x0000,0x0000,0x0000,0x0000, /* 24FA */
+0x120C,0x0000,0x0000,0x0000,0x0000, /* 24FB */
+0x120D,0x0000,0x0000,0x0000,0x0000, /* 24FC */
+0x120E,0x0000,0x0000,0x0000,0x0000, /* 24FD */
+0x1206,0x1205,0x0000,0x0000,0x0000, /* 24FE */
+0x1205,0x0000,0x0000,0x0000,0x0000 /* 24FF */
+};
+
+static const uint16 uca520_p025[]= { /* 2500 (2 weights per char) */
+0x073E,0x0000, 0x073F,0x0000, 0x0740,0x0000, 0x0741,0x0000, /* 2500 */
+0x0742,0x0000, 0x0743,0x0000, 0x0744,0x0000, 0x0745,0x0000, /* 2504 */
+0x0746,0x0000, 0x0747,0x0000, 0x0748,0x0000, 0x0749,0x0000, /* 2508 */
+0x074A,0x0000, 0x074B,0x0000, 0x074C,0x0000, 0x074D,0x0000, /* 250C */
+0x074E,0x0000, 0x074F,0x0000, 0x0750,0x0000, 0x0751,0x0000, /* 2510 */
+0x0752,0x0000, 0x0753,0x0000, 0x0754,0x0000, 0x0755,0x0000, /* 2514 */
+0x0756,0x0000, 0x0757,0x0000, 0x0758,0x0000, 0x0759,0x0000, /* 2518 */
+0x075A,0x0000, 0x075B,0x0000, 0x075C,0x0000, 0x075D,0x0000, /* 251C */
+0x075E,0x0000, 0x075F,0x0000, 0x0760,0x0000, 0x0761,0x0000, /* 2520 */
+0x0762,0x0000, 0x0763,0x0000, 0x0764,0x0000, 0x0765,0x0000, /* 2524 */
+0x0766,0x0000, 0x0767,0x0000, 0x0768,0x0000, 0x0769,0x0000, /* 2528 */
+0x076A,0x0000, 0x076B,0x0000, 0x076C,0x0000, 0x076D,0x0000, /* 252C */
+0x076E,0x0000, 0x076F,0x0000, 0x0770,0x0000, 0x0771,0x0000, /* 2530 */
+0x0772,0x0000, 0x0773,0x0000, 0x0774,0x0000, 0x0775,0x0000, /* 2534 */
+0x0776,0x0000, 0x0777,0x0000, 0x0778,0x0000, 0x0779,0x0000, /* 2538 */
+0x077A,0x0000, 0x077B,0x0000, 0x077C,0x0000, 0x077D,0x0000, /* 253C */
+0x077E,0x0000, 0x077F,0x0000, 0x0780,0x0000, 0x0781,0x0000, /* 2540 */
+0x0782,0x0000, 0x0783,0x0000, 0x0784,0x0000, 0x0785,0x0000, /* 2544 */
+0x0786,0x0000, 0x0787,0x0000, 0x0788,0x0000, 0x0789,0x0000, /* 2548 */
+0x078A,0x0000, 0x078B,0x0000, 0x078C,0x0000, 0x078D,0x0000, /* 254C */
+0x078E,0x0000, 0x078F,0x0000, 0x0790,0x0000, 0x0791,0x0000, /* 2550 */
+0x0792,0x0000, 0x0793,0x0000, 0x0794,0x0000, 0x0795,0x0000, /* 2554 */
+0x0796,0x0000, 0x0797,0x0000, 0x0798,0x0000, 0x0799,0x0000, /* 2558 */
+0x079A,0x0000, 0x079B,0x0000, 0x079C,0x0000, 0x079D,0x0000, /* 255C */
+0x079E,0x0000, 0x079F,0x0000, 0x07A0,0x0000, 0x07A1,0x0000, /* 2560 */
+0x07A2,0x0000, 0x07A3,0x0000, 0x07A4,0x0000, 0x07A5,0x0000, /* 2564 */
+0x07A6,0x0000, 0x07A7,0x0000, 0x07A8,0x0000, 0x07A9,0x0000, /* 2568 */
+0x07AA,0x0000, 0x07AB,0x0000, 0x07AC,0x0000, 0x07AD,0x0000, /* 256C */
+0x07AE,0x0000, 0x07AF,0x0000, 0x07B0,0x0000, 0x07B1,0x0000, /* 2570 */
+0x07B2,0x0000, 0x07B3,0x0000, 0x07B4,0x0000, 0x07B5,0x0000, /* 2574 */
+0x07B6,0x0000, 0x07B7,0x0000, 0x07B8,0x0000, 0x07B9,0x0000, /* 2578 */
+0x07BA,0x0000, 0x07BB,0x0000, 0x07BC,0x0000, 0x07BD,0x0000, /* 257C */
+0x07BE,0x0000, 0x07BF,0x0000, 0x07C0,0x0000, 0x07C1,0x0000, /* 2580 */
+0x07C2,0x0000, 0x07C3,0x0000, 0x07C4,0x0000, 0x07C5,0x0000, /* 2584 */
+0x07C6,0x0000, 0x07C7,0x0000, 0x07C8,0x0000, 0x07C9,0x0000, /* 2588 */
+0x07CA,0x0000, 0x07CB,0x0000, 0x07CC,0x0000, 0x07CD,0x0000, /* 258C */
+0x07CE,0x0000, 0x07CF,0x0000, 0x07D0,0x0000, 0x07D1,0x0000, /* 2590 */
+0x07D2,0x0000, 0x07D3,0x0000, 0x07D4,0x0000, 0x07D5,0x0000, /* 2594 */
+0x07D6,0x0000, 0x07D7,0x0000, 0x07D8,0x0000, 0x07D9,0x0000, /* 2598 */
+0x07DA,0x0000, 0x07DB,0x0000, 0x07DC,0x0000, 0x07DD,0x0000, /* 259C */
+0x07DE,0x0000, 0x07DF,0x0000, 0x07E0,0x0000, 0x07E1,0x0000, /* 25A0 */
+0x07E2,0x0000, 0x07E3,0x0000, 0x07E4,0x0000, 0x07E5,0x0000, /* 25A4 */
+0x07E6,0x0000, 0x07E7,0x0000, 0x07E8,0x0000, 0x07E9,0x0000, /* 25A8 */
+0x07EA,0x0000, 0x07EB,0x0000, 0x07EC,0x0000, 0x07ED,0x0000, /* 25AC */
+0x07EE,0x0000, 0x07EF,0x0000, 0x07F0,0x0000, 0x07F1,0x0000, /* 25B0 */
+0x07F2,0x0000, 0x07F3,0x0000, 0x07F4,0x0000, 0x07F5,0x0000, /* 25B4 */
+0x07F6,0x0000, 0x07F7,0x0000, 0x07F8,0x0000, 0x07F9,0x0000, /* 25B8 */
+0x07FA,0x0000, 0x07FB,0x0000, 0x07FC,0x0000, 0x07FD,0x0000, /* 25BC */
+0x07FE,0x0000, 0x07FF,0x0000, 0x0800,0x0000, 0x0801,0x0000, /* 25C0 */
+0x0802,0x0000, 0x0803,0x0000, 0x0804,0x0000, 0x0805,0x0000, /* 25C4 */
+0x0806,0x0000, 0x0807,0x0000, 0x0808,0x0000, 0x0809,0x0000, /* 25C8 */
+0x080A,0x0000, 0x080B,0x0000, 0x080C,0x0000, 0x080D,0x0000, /* 25CC */
+0x080E,0x0000, 0x080F,0x0000, 0x0810,0x0000, 0x0811,0x0000, /* 25D0 */
+0x0812,0x0000, 0x0813,0x0000, 0x0814,0x0000, 0x0815,0x0000, /* 25D4 */
+0x0816,0x0000, 0x0817,0x0000, 0x0818,0x0000, 0x0819,0x0000, /* 25D8 */
+0x081A,0x0000, 0x081B,0x0000, 0x081C,0x0000, 0x081D,0x0000, /* 25DC */
+0x081E,0x0000, 0x081F,0x0000, 0x0820,0x0000, 0x0821,0x0000, /* 25E0 */
+0x0822,0x0000, 0x0823,0x0000, 0x0824,0x0000, 0x0825,0x0000, /* 25E4 */
+0x0826,0x0000, 0x0827,0x0000, 0x0828,0x0000, 0x0829,0x0000, /* 25E8 */
+0x082A,0x0000, 0x082B,0x0000, 0x082C,0x0000, 0x082D,0x0000, /* 25EC */
+0x082E,0x0000, 0x082F,0x0000, 0x0830,0x0000, 0x0831,0x0000, /* 25F0 */
+0x0832,0x0000, 0x0833,0x0000, 0x0834,0x0000, 0x0835,0x0000, /* 25F4 */
+0x0836,0x0000, 0x0837,0x0000, 0x0838,0x0000, 0x0839,0x0000, /* 25F8 */
+0x083A,0x0000, 0x083B,0x0000, 0x083C,0x0000, 0x083D,0x0000 /* 25FC */
+};
+
+static const uint16 uca520_p026[]= { /* 2600 (3 weights per char) */
+0x083E,0x0000,0x0000, 0x083F,0x0000,0x0000, 0x0840,0x0000,0x0000, /* 2600 */
+0x0841,0x0000,0x0000, 0x0842,0x0000,0x0000, 0x0843,0x0000,0x0000, /* 2603 */
+0x0844,0x0000,0x0000, 0x0845,0x0000,0x0000, 0x0846,0x0000,0x0000, /* 2606 */
+0x0847,0x0000,0x0000, 0x0848,0x0000,0x0000, 0x0849,0x0000,0x0000, /* 2609 */
+0x084A,0x0000,0x0000, 0x084B,0x0000,0x0000, 0x084C,0x0000,0x0000, /* 260C */
+0x084D,0x0000,0x0000, 0x084E,0x0000,0x0000, 0x084F,0x0000,0x0000, /* 260F */
+0x0850,0x0000,0x0000, 0x0851,0x0000,0x0000, 0x0852,0x0000,0x0000, /* 2612 */
+0x0853,0x0000,0x0000, 0x0854,0x0000,0x0000, 0x0855,0x0000,0x0000, /* 2615 */
+0x0856,0x0000,0x0000, 0x0857,0x0000,0x0000, 0x0858,0x0000,0x0000, /* 2618 */
+0x0859,0x0000,0x0000, 0x085A,0x0000,0x0000, 0x085B,0x0000,0x0000, /* 261B */
+0x085C,0x0000,0x0000, 0x085D,0x0000,0x0000, 0x085E,0x0000,0x0000, /* 261E */
+0x085F,0x0000,0x0000, 0x0860,0x0000,0x0000, 0x0861,0x0000,0x0000, /* 2621 */
+0x0862,0x0000,0x0000, 0x0863,0x0000,0x0000, 0x0864,0x0000,0x0000, /* 2624 */
+0x0865,0x0000,0x0000, 0x0866,0x0000,0x0000, 0x0867,0x0000,0x0000, /* 2627 */
+0x0868,0x0000,0x0000, 0x0869,0x0000,0x0000, 0x086A,0x0000,0x0000, /* 262A */
+0x086B,0x0000,0x0000, 0x086C,0x0000,0x0000, 0x086D,0x0000,0x0000, /* 262D */
+0x0D36,0x0000,0x0000, 0x0D37,0x0000,0x0000, 0x0D38,0x0000,0x0000, /* 2630 */
+0x0D39,0x0000,0x0000, 0x0D3A,0x0000,0x0000, 0x0D3B,0x0000,0x0000, /* 2633 */
+0x0D3C,0x0000,0x0000, 0x0D3D,0x0000,0x0000, 0x086E,0x0000,0x0000, /* 2636 */
+0x086F,0x0000,0x0000, 0x0870,0x0000,0x0000, 0x0871,0x0000,0x0000, /* 2639 */
+0x0872,0x0000,0x0000, 0x0873,0x0000,0x0000, 0x0874,0x0000,0x0000, /* 263C */
+0x0875,0x0000,0x0000, 0x0876,0x0000,0x0000, 0x0877,0x0000,0x0000, /* 263F */
+0x0878,0x0000,0x0000, 0x0879,0x0000,0x0000, 0x087A,0x0000,0x0000, /* 2642 */
+0x087B,0x0000,0x0000, 0x087C,0x0000,0x0000, 0x087D,0x0000,0x0000, /* 2645 */
+0x087E,0x0000,0x0000, 0x087F,0x0000,0x0000, 0x0880,0x0000,0x0000, /* 2648 */
+0x0881,0x0000,0x0000, 0x0882,0x0000,0x0000, 0x0883,0x0000,0x0000, /* 264B */
+0x0884,0x0000,0x0000, 0x0885,0x0000,0x0000, 0x0886,0x0000,0x0000, /* 264E */
+0x0887,0x0000,0x0000, 0x0888,0x0000,0x0000, 0x0889,0x0000,0x0000, /* 2651 */
+0x088A,0x0000,0x0000, 0x088B,0x0000,0x0000, 0x088C,0x0000,0x0000, /* 2654 */
+0x088D,0x0000,0x0000, 0x088E,0x0000,0x0000, 0x088F,0x0000,0x0000, /* 2657 */
+0x0890,0x0000,0x0000, 0x0891,0x0000,0x0000, 0x0892,0x0000,0x0000, /* 265A */
+0x0893,0x0000,0x0000, 0x0894,0x0000,0x0000, 0x0895,0x0000,0x0000, /* 265D */
+0x0896,0x0000,0x0000, 0x0897,0x0000,0x0000, 0x0898,0x0000,0x0000, /* 2660 */
+0x0899,0x0000,0x0000, 0x089A,0x0000,0x0000, 0x089B,0x0000,0x0000, /* 2663 */
+0x089C,0x0000,0x0000, 0x089D,0x0000,0x0000, 0x089E,0x0000,0x0000, /* 2666 */
+0x089F,0x0000,0x0000, 0x08A0,0x0000,0x0000, 0x08A1,0x0000,0x0000, /* 2669 */
+0x08A2,0x0000,0x0000, 0x0F7C,0x0000,0x0000, 0x0F7D,0x0000,0x0000, /* 266C */
+0x0F7E,0x0000,0x0000, 0x08A3,0x0000,0x0000, 0x08A4,0x0000,0x0000, /* 266F */
+0x08A5,0x0000,0x0000, 0x08A6,0x0000,0x0000, 0x08A7,0x0000,0x0000, /* 2672 */
+0x08A8,0x0000,0x0000, 0x08A9,0x0000,0x0000, 0x08AA,0x0000,0x0000, /* 2675 */
+0x08AB,0x0000,0x0000, 0x08AC,0x0000,0x0000, 0x08AD,0x0000,0x0000, /* 2678 */
+0x08AE,0x0000,0x0000, 0x08AF,0x0000,0x0000, 0x08B0,0x0000,0x0000, /* 267B */
+0x08B1,0x0000,0x0000, 0x08B2,0x0000,0x0000, 0x08B3,0x0000,0x0000, /* 267E */
+0x08B4,0x0000,0x0000, 0x08B5,0x0000,0x0000, 0x08B6,0x0000,0x0000, /* 2681 */
+0x08B7,0x0000,0x0000, 0x08B8,0x0000,0x0000, 0x08B9,0x0000,0x0000, /* 2684 */
+0x08BA,0x0000,0x0000, 0x08BB,0x0000,0x0000, 0x08BC,0x0000,0x0000, /* 2687 */
+0x0D30,0x0000,0x0000, 0x0D31,0x0000,0x0000, 0x0D32,0x0000,0x0000, /* 268A */
+0x0D33,0x0000,0x0000, 0x0D34,0x0000,0x0000, 0x0D35,0x0000,0x0000, /* 268D */
+0x08BD,0x0000,0x0000, 0x08BE,0x0000,0x0000, 0x08BF,0x0000,0x0000, /* 2690 */
+0x08C0,0x0000,0x0000, 0x08C1,0x0000,0x0000, 0x08C2,0x0000,0x0000, /* 2693 */
+0x08C3,0x0000,0x0000, 0x08C4,0x0000,0x0000, 0x08C5,0x0000,0x0000, /* 2696 */
+0x08C6,0x0000,0x0000, 0x08C7,0x0000,0x0000, 0x08C8,0x0000,0x0000, /* 2699 */
+0x08C9,0x0000,0x0000, 0x08CA,0x0000,0x0000, 0x08CB,0x0000,0x0000, /* 269C */
+0x08CC,0x0000,0x0000, 0x08CD,0x0000,0x0000, 0x08CE,0x0000,0x0000, /* 269F */
+0x08CF,0x0000,0x0000, 0x08D0,0x0000,0x0000, 0x08D1,0x0000,0x0000, /* 26A2 */
+0x08D2,0x0000,0x0000, 0x08D3,0x0000,0x0000, 0x08D4,0x0000,0x0000, /* 26A5 */
+0x08D5,0x0000,0x0000, 0x08D6,0x0000,0x0000, 0x08D7,0x0000,0x0000, /* 26A8 */
+0x08D8,0x0000,0x0000, 0x08D9,0x0000,0x0000, 0x08DA,0x0000,0x0000, /* 26AB */
+0x08DB,0x0000,0x0000, 0x08DC,0x0000,0x0000, 0x08DD,0x0000,0x0000, /* 26AE */
+0x08DE,0x0000,0x0000, 0x08DF,0x0000,0x0000, 0x08E0,0x0000,0x0000, /* 26B1 */
+0x08E1,0x0000,0x0000, 0x08E2,0x0000,0x0000, 0x08E3,0x0000,0x0000, /* 26B4 */
+0x08E4,0x0000,0x0000, 0x08E5,0x0000,0x0000, 0x08E6,0x0000,0x0000, /* 26B7 */
+0x08E7,0x0000,0x0000, 0x08E8,0x0000,0x0000, 0x08E9,0x0000,0x0000, /* 26BA */
+0x08EA,0x0000,0x0000, 0x08EB,0x0000,0x0000, 0x08EC,0x0000,0x0000, /* 26BD */
+0x08ED,0x0000,0x0000, 0x08EE,0x0000,0x0000, 0x08EF,0x0000,0x0000, /* 26C0 */
+0x08F0,0x0000,0x0000, 0x08F1,0x0000,0x0000, 0x08F2,0x0000,0x0000, /* 26C3 */
+0x08F3,0x0000,0x0000, 0x08F4,0x0000,0x0000, 0x08F5,0x0000,0x0000, /* 26C6 */
+0x08F6,0x0000,0x0000, 0x08F7,0x0000,0x0000, 0x08F8,0x0000,0x0000, /* 26C9 */
+0x08F9,0x0000,0x0000, 0x08FA,0x0000,0x0000, 0xFBC0,0xA6CE,0x0000, /* 26CC */
+0x08FB,0x0000,0x0000, 0x08FC,0x0000,0x0000, 0x08FD,0x0000,0x0000, /* 26CF */
+0x08FE,0x0000,0x0000, 0x08FF,0x0000,0x0000, 0x0900,0x0000,0x0000, /* 26D2 */
+0x0901,0x0000,0x0000, 0x0902,0x0000,0x0000, 0x0903,0x0000,0x0000, /* 26D5 */
+0x0904,0x0000,0x0000, 0x0905,0x0000,0x0000, 0x0906,0x0000,0x0000, /* 26D8 */
+0x0907,0x0000,0x0000, 0x0908,0x0000,0x0000, 0x0909,0x0000,0x0000, /* 26DB */
+0x090A,0x0000,0x0000, 0x090B,0x0000,0x0000, 0x090C,0x0000,0x0000, /* 26DE */
+0x090D,0x0000,0x0000, 0xFBC0,0xA6E2,0x0000, 0x090E,0x0000,0x0000, /* 26E1 */
+0xFBC0,0xA6E4,0x0000, 0xFBC0,0xA6E5,0x0000, 0xFBC0,0xA6E6,0x0000, /* 26E4 */
+0xFBC0,0xA6E7,0x0000, 0x090F,0x0000,0x0000, 0x0910,0x0000,0x0000, /* 26E7 */
+0x0911,0x0000,0x0000, 0x0912,0x0000,0x0000, 0x0913,0x0000,0x0000, /* 26EA */
+0x0914,0x0000,0x0000, 0x0915,0x0000,0x0000, 0x0916,0x0000,0x0000, /* 26ED */
+0x0917,0x0000,0x0000, 0x0918,0x0000,0x0000, 0x0919,0x0000,0x0000, /* 26F0 */
+0x091A,0x0000,0x0000, 0x091B,0x0000,0x0000, 0x091C,0x0000,0x0000, /* 26F3 */
+0x091D,0x0000,0x0000, 0x091E,0x0000,0x0000, 0x091F,0x0000,0x0000, /* 26F6 */
+0x0920,0x0000,0x0000, 0x0921,0x0000,0x0000, 0x0922,0x0000,0x0000, /* 26F9 */
+0x0923,0x0000,0x0000, 0x0924,0x0000,0x0000, 0x0925,0x0000,0x0000, /* 26FC */
+0x0926,0x0000,0x0000 };
+
+static const uint16 uca520_p027[]= { /* 2700 (3 weights per char) */
+0xFBC0,0xA700,0x0000, 0x0927,0x0000,0x0000, 0x0928,0x0000,0x0000, /* 2700 */
+0x0929,0x0000,0x0000, 0x092A,0x0000,0x0000, 0xFBC0,0xA705,0x0000, /* 2703 */
+0x092B,0x0000,0x0000, 0x092C,0x0000,0x0000, 0x092D,0x0000,0x0000, /* 2706 */
+0x092E,0x0000,0x0000, 0xFBC0,0xA70A,0x0000, 0xFBC0,0xA70B,0x0000, /* 2709 */
+0x092F,0x0000,0x0000, 0x0930,0x0000,0x0000, 0x0931,0x0000,0x0000, /* 270C */
+0x0932,0x0000,0x0000, 0x0933,0x0000,0x0000, 0x0934,0x0000,0x0000, /* 270F */
+0x0935,0x0000,0x0000, 0x0936,0x0000,0x0000, 0x0937,0x0000,0x0000, /* 2712 */
+0x0938,0x0000,0x0000, 0x0939,0x0000,0x0000, 0x093A,0x0000,0x0000, /* 2715 */
+0x093B,0x0000,0x0000, 0x093C,0x0000,0x0000, 0x093D,0x0000,0x0000, /* 2718 */
+0x093E,0x0000,0x0000, 0x093F,0x0000,0x0000, 0x0940,0x0000,0x0000, /* 271B */
+0x0941,0x0000,0x0000, 0x0942,0x0000,0x0000, 0x0943,0x0000,0x0000, /* 271E */
+0x0944,0x0000,0x0000, 0x0945,0x0000,0x0000, 0x0946,0x0000,0x0000, /* 2721 */
+0x0947,0x0000,0x0000, 0x0948,0x0000,0x0000, 0x0949,0x0000,0x0000, /* 2724 */
+0x094A,0x0000,0x0000, 0xFBC0,0xA728,0x0000, 0x094B,0x0000,0x0000, /* 2727 */
+0x094C,0x0000,0x0000, 0x094D,0x0000,0x0000, 0x094E,0x0000,0x0000, /* 272A */
+0x094F,0x0000,0x0000, 0x0950,0x0000,0x0000, 0x0951,0x0000,0x0000, /* 272D */
+0x0952,0x0000,0x0000, 0x0953,0x0000,0x0000, 0x0954,0x0000,0x0000, /* 2730 */
+0x0955,0x0000,0x0000, 0x0956,0x0000,0x0000, 0x0957,0x0000,0x0000, /* 2733 */
+0x0958,0x0000,0x0000, 0x0959,0x0000,0x0000, 0x095A,0x0000,0x0000, /* 2736 */
+0x095B,0x0000,0x0000, 0x095C,0x0000,0x0000, 0x095D,0x0000,0x0000, /* 2739 */
+0x095E,0x0000,0x0000, 0x095F,0x0000,0x0000, 0x0960,0x0000,0x0000, /* 273C */
+0x0961,0x0000,0x0000, 0x0962,0x0000,0x0000, 0x0963,0x0000,0x0000, /* 273F */
+0x0964,0x0000,0x0000, 0x0965,0x0000,0x0000, 0x0966,0x0000,0x0000, /* 2742 */
+0x0967,0x0000,0x0000, 0x0968,0x0000,0x0000, 0x0969,0x0000,0x0000, /* 2745 */
+0x096A,0x0000,0x0000, 0x096B,0x0000,0x0000, 0x096C,0x0000,0x0000, /* 2748 */
+0x096D,0x0000,0x0000, 0xFBC0,0xA74C,0x0000, 0x096E,0x0000,0x0000, /* 274B */
+0xFBC0,0xA74E,0x0000, 0x096F,0x0000,0x0000, 0x0970,0x0000,0x0000, /* 274E */
+0x0971,0x0000,0x0000, 0x0972,0x0000,0x0000, 0xFBC0,0xA753,0x0000, /* 2751 */
+0xFBC0,0xA754,0x0000, 0xFBC0,0xA755,0x0000, 0x0973,0x0000,0x0000, /* 2754 */
+0x0974,0x0000,0x0000, 0x0975,0x0000,0x0000, 0x0976,0x0000,0x0000, /* 2757 */
+0x0977,0x0000,0x0000, 0x0978,0x0000,0x0000, 0x0979,0x0000,0x0000, /* 275A */
+0x097A,0x0000,0x0000, 0x097B,0x0000,0x0000, 0xFBC0,0xA75F,0x0000, /* 275D */
+0xFBC0,0xA760,0x0000, 0x097C,0x0000,0x0000, 0x097D,0x0000,0x0000, /* 2760 */
+0x097E,0x0000,0x0000, 0x097F,0x0000,0x0000, 0x0980,0x0000,0x0000, /* 2763 */
+0x0981,0x0000,0x0000, 0x0982,0x0000,0x0000, 0x0983,0x0000,0x0000, /* 2766 */
+0x0984,0x0000,0x0000, 0x0985,0x0000,0x0000, 0x0986,0x0000,0x0000, /* 2769 */
+0x0987,0x0000,0x0000, 0x0988,0x0000,0x0000, 0x0989,0x0000,0x0000, /* 276C */
+0x098A,0x0000,0x0000, 0x098B,0x0000,0x0000, 0x098C,0x0000,0x0000, /* 276F */
+0x098D,0x0000,0x0000, 0x098E,0x0000,0x0000, 0x098F,0x0000,0x0000, /* 2772 */
+0x0990,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 2775 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 2778 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 277B */
+0x120E,0x0000,0x0000, 0x1206,0x1205,0x0000, 0x1206,0x0000,0x0000, /* 277E */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 2781 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 2784 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1206,0x1205,0x0000, /* 2787 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 278A */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 278D */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 2790 */
+0x1206,0x1205,0x0000, 0x0991,0x0000,0x0000, 0xFBC0,0xA795,0x0000, /* 2793 */
+0xFBC0,0xA796,0x0000, 0xFBC0,0xA797,0x0000, 0x0992,0x0000,0x0000, /* 2796 */
+0x0993,0x0000,0x0000, 0x0994,0x0000,0x0000, 0x0995,0x0000,0x0000, /* 2799 */
+0x0996,0x0000,0x0000, 0x0997,0x0000,0x0000, 0x0998,0x0000,0x0000, /* 279C */
+0x0999,0x0000,0x0000, 0x099A,0x0000,0x0000, 0x099B,0x0000,0x0000, /* 279F */
+0x099C,0x0000,0x0000, 0x099D,0x0000,0x0000, 0x099E,0x0000,0x0000, /* 27A2 */
+0x099F,0x0000,0x0000, 0x09A0,0x0000,0x0000, 0x09A1,0x0000,0x0000, /* 27A5 */
+0x09A2,0x0000,0x0000, 0x09A3,0x0000,0x0000, 0x09A4,0x0000,0x0000, /* 27A8 */
+0x09A5,0x0000,0x0000, 0x09A6,0x0000,0x0000, 0x09A7,0x0000,0x0000, /* 27AB */
+0x09A8,0x0000,0x0000, 0x09A9,0x0000,0x0000, 0xFBC0,0xA7B0,0x0000, /* 27AE */
+0x09AA,0x0000,0x0000, 0x09AB,0x0000,0x0000, 0x09AC,0x0000,0x0000, /* 27B1 */
+0x09AD,0x0000,0x0000, 0x09AE,0x0000,0x0000, 0x09AF,0x0000,0x0000, /* 27B4 */
+0x09B0,0x0000,0x0000, 0x09B1,0x0000,0x0000, 0x09B2,0x0000,0x0000, /* 27B7 */
+0x09B3,0x0000,0x0000, 0x09B4,0x0000,0x0000, 0x09B5,0x0000,0x0000, /* 27BA */
+0x09B6,0x0000,0x0000, 0x09B7,0x0000,0x0000, 0xFBC0,0xA7BF,0x0000, /* 27BD */
+0x09B8,0x0000,0x0000, 0x09B9,0x0000,0x0000, 0x09BA,0x0000,0x0000, /* 27C0 */
+0x09BB,0x0000,0x0000, 0x09BC,0x0000,0x0000, 0x09BD,0x0000,0x0000, /* 27C3 */
+0x09BE,0x0000,0x0000, 0x09BF,0x0000,0x0000, 0x09C0,0x0000,0x0000, /* 27C6 */
+0x09C1,0x0000,0x0000, 0x09C2,0x0000,0x0000, 0xFBC0,0xA7CB,0x0000, /* 27C9 */
+0x09C3,0x0000,0x0000, 0xFBC0,0xA7CD,0x0000, 0xFBC0,0xA7CE,0x0000, /* 27CC */
+0xFBC0,0xA7CF,0x0000, 0x09C4,0x0000,0x0000, 0x09C5,0x0000,0x0000, /* 27CF */
+0x09C6,0x0000,0x0000, 0x09C7,0x0000,0x0000, 0x09C8,0x0000,0x0000, /* 27D2 */
+0x09C9,0x0000,0x0000, 0x09CA,0x0000,0x0000, 0x09CB,0x0000,0x0000, /* 27D5 */
+0x09CC,0x0000,0x0000, 0x09CD,0x0000,0x0000, 0x09CE,0x0000,0x0000, /* 27D8 */
+0x09CF,0x0000,0x0000, 0x09D0,0x0000,0x0000, 0x09D1,0x0000,0x0000, /* 27DB */
+0x09D2,0x0000,0x0000, 0x09D3,0x0000,0x0000, 0x09D4,0x0000,0x0000, /* 27DE */
+0x09D5,0x0000,0x0000, 0x09D6,0x0000,0x0000, 0x09D7,0x0000,0x0000, /* 27E1 */
+0x09D8,0x0000,0x0000, 0x09D9,0x0000,0x0000, 0x09DA,0x0000,0x0000, /* 27E4 */
+0x09DB,0x0000,0x0000, 0x09DC,0x0000,0x0000, 0x09DD,0x0000,0x0000, /* 27E7 */
+0x09DE,0x0000,0x0000, 0x09DF,0x0000,0x0000, 0x0325,0x0000,0x0000, /* 27EA */
+0x0326,0x0000,0x0000, 0x0327,0x0000,0x0000, 0x0328,0x0000,0x0000, /* 27ED */
+0x09E0,0x0000,0x0000, 0x09E1,0x0000,0x0000, 0x09E2,0x0000,0x0000, /* 27F0 */
+0x09E3,0x0000,0x0000, 0x09E4,0x0000,0x0000, 0x09E5,0x0000,0x0000, /* 27F3 */
+0x09E6,0x0000,0x0000, 0x09E7,0x0000,0x0000, 0x09E8,0x0000,0x0000, /* 27F6 */
+0x09E9,0x0000,0x0000, 0x09EA,0x0000,0x0000, 0x09EB,0x0000,0x0000, /* 27F9 */
+0x09EC,0x0000,0x0000, 0x09ED,0x0000,0x0000, 0x09EE,0x0000,0x0000, /* 27FC */
+0x09EF,0x0000,0x0000 };
+
+static const uint16 uca520_p028[]= { /* 2800 (2 weights per char) */
+0x0C30,0x0000, 0x0C31,0x0000, 0x0C32,0x0000, 0x0C33,0x0000, /* 2800 */
+0x0C34,0x0000, 0x0C35,0x0000, 0x0C36,0x0000, 0x0C37,0x0000, /* 2804 */
+0x0C38,0x0000, 0x0C39,0x0000, 0x0C3A,0x0000, 0x0C3B,0x0000, /* 2808 */
+0x0C3C,0x0000, 0x0C3D,0x0000, 0x0C3E,0x0000, 0x0C3F,0x0000, /* 280C */
+0x0C40,0x0000, 0x0C41,0x0000, 0x0C42,0x0000, 0x0C43,0x0000, /* 2810 */
+0x0C44,0x0000, 0x0C45,0x0000, 0x0C46,0x0000, 0x0C47,0x0000, /* 2814 */
+0x0C48,0x0000, 0x0C49,0x0000, 0x0C4A,0x0000, 0x0C4B,0x0000, /* 2818 */
+0x0C4C,0x0000, 0x0C4D,0x0000, 0x0C4E,0x0000, 0x0C4F,0x0000, /* 281C */
+0x0C50,0x0000, 0x0C51,0x0000, 0x0C52,0x0000, 0x0C53,0x0000, /* 2820 */
+0x0C54,0x0000, 0x0C55,0x0000, 0x0C56,0x0000, 0x0C57,0x0000, /* 2824 */
+0x0C58,0x0000, 0x0C59,0x0000, 0x0C5A,0x0000, 0x0C5B,0x0000, /* 2828 */
+0x0C5C,0x0000, 0x0C5D,0x0000, 0x0C5E,0x0000, 0x0C5F,0x0000, /* 282C */
+0x0C60,0x0000, 0x0C61,0x0000, 0x0C62,0x0000, 0x0C63,0x0000, /* 2830 */
+0x0C64,0x0000, 0x0C65,0x0000, 0x0C66,0x0000, 0x0C67,0x0000, /* 2834 */
+0x0C68,0x0000, 0x0C69,0x0000, 0x0C6A,0x0000, 0x0C6B,0x0000, /* 2838 */
+0x0C6C,0x0000, 0x0C6D,0x0000, 0x0C6E,0x0000, 0x0C6F,0x0000, /* 283C */
+0x0C70,0x0000, 0x0C71,0x0000, 0x0C72,0x0000, 0x0C73,0x0000, /* 2840 */
+0x0C74,0x0000, 0x0C75,0x0000, 0x0C76,0x0000, 0x0C77,0x0000, /* 2844 */
+0x0C78,0x0000, 0x0C79,0x0000, 0x0C7A,0x0000, 0x0C7B,0x0000, /* 2848 */
+0x0C7C,0x0000, 0x0C7D,0x0000, 0x0C7E,0x0000, 0x0C7F,0x0000, /* 284C */
+0x0C80,0x0000, 0x0C81,0x0000, 0x0C82,0x0000, 0x0C83,0x0000, /* 2850 */
+0x0C84,0x0000, 0x0C85,0x0000, 0x0C86,0x0000, 0x0C87,0x0000, /* 2854 */
+0x0C88,0x0000, 0x0C89,0x0000, 0x0C8A,0x0000, 0x0C8B,0x0000, /* 2858 */
+0x0C8C,0x0000, 0x0C8D,0x0000, 0x0C8E,0x0000, 0x0C8F,0x0000, /* 285C */
+0x0C90,0x0000, 0x0C91,0x0000, 0x0C92,0x0000, 0x0C93,0x0000, /* 2860 */
+0x0C94,0x0000, 0x0C95,0x0000, 0x0C96,0x0000, 0x0C97,0x0000, /* 2864 */
+0x0C98,0x0000, 0x0C99,0x0000, 0x0C9A,0x0000, 0x0C9B,0x0000, /* 2868 */
+0x0C9C,0x0000, 0x0C9D,0x0000, 0x0C9E,0x0000, 0x0C9F,0x0000, /* 286C */
+0x0CA0,0x0000, 0x0CA1,0x0000, 0x0CA2,0x0000, 0x0CA3,0x0000, /* 2870 */
+0x0CA4,0x0000, 0x0CA5,0x0000, 0x0CA6,0x0000, 0x0CA7,0x0000, /* 2874 */
+0x0CA8,0x0000, 0x0CA9,0x0000, 0x0CAA,0x0000, 0x0CAB,0x0000, /* 2878 */
+0x0CAC,0x0000, 0x0CAD,0x0000, 0x0CAE,0x0000, 0x0CAF,0x0000, /* 287C */
+0x0CB0,0x0000, 0x0CB1,0x0000, 0x0CB2,0x0000, 0x0CB3,0x0000, /* 2880 */
+0x0CB4,0x0000, 0x0CB5,0x0000, 0x0CB6,0x0000, 0x0CB7,0x0000, /* 2884 */
+0x0CB8,0x0000, 0x0CB9,0x0000, 0x0CBA,0x0000, 0x0CBB,0x0000, /* 2888 */
+0x0CBC,0x0000, 0x0CBD,0x0000, 0x0CBE,0x0000, 0x0CBF,0x0000, /* 288C */
+0x0CC0,0x0000, 0x0CC1,0x0000, 0x0CC2,0x0000, 0x0CC3,0x0000, /* 2890 */
+0x0CC4,0x0000, 0x0CC5,0x0000, 0x0CC6,0x0000, 0x0CC7,0x0000, /* 2894 */
+0x0CC8,0x0000, 0x0CC9,0x0000, 0x0CCA,0x0000, 0x0CCB,0x0000, /* 2898 */
+0x0CCC,0x0000, 0x0CCD,0x0000, 0x0CCE,0x0000, 0x0CCF,0x0000, /* 289C */
+0x0CD0,0x0000, 0x0CD1,0x0000, 0x0CD2,0x0000, 0x0CD3,0x0000, /* 28A0 */
+0x0CD4,0x0000, 0x0CD5,0x0000, 0x0CD6,0x0000, 0x0CD7,0x0000, /* 28A4 */
+0x0CD8,0x0000, 0x0CD9,0x0000, 0x0CDA,0x0000, 0x0CDB,0x0000, /* 28A8 */
+0x0CDC,0x0000, 0x0CDD,0x0000, 0x0CDE,0x0000, 0x0CDF,0x0000, /* 28AC */
+0x0CE0,0x0000, 0x0CE1,0x0000, 0x0CE2,0x0000, 0x0CE3,0x0000, /* 28B0 */
+0x0CE4,0x0000, 0x0CE5,0x0000, 0x0CE6,0x0000, 0x0CE7,0x0000, /* 28B4 */
+0x0CE8,0x0000, 0x0CE9,0x0000, 0x0CEA,0x0000, 0x0CEB,0x0000, /* 28B8 */
+0x0CEC,0x0000, 0x0CED,0x0000, 0x0CEE,0x0000, 0x0CEF,0x0000, /* 28BC */
+0x0CF0,0x0000, 0x0CF1,0x0000, 0x0CF2,0x0000, 0x0CF3,0x0000, /* 28C0 */
+0x0CF4,0x0000, 0x0CF5,0x0000, 0x0CF6,0x0000, 0x0CF7,0x0000, /* 28C4 */
+0x0CF8,0x0000, 0x0CF9,0x0000, 0x0CFA,0x0000, 0x0CFB,0x0000, /* 28C8 */
+0x0CFC,0x0000, 0x0CFD,0x0000, 0x0CFE,0x0000, 0x0CFF,0x0000, /* 28CC */
+0x0D00,0x0000, 0x0D01,0x0000, 0x0D02,0x0000, 0x0D03,0x0000, /* 28D0 */
+0x0D04,0x0000, 0x0D05,0x0000, 0x0D06,0x0000, 0x0D07,0x0000, /* 28D4 */
+0x0D08,0x0000, 0x0D09,0x0000, 0x0D0A,0x0000, 0x0D0B,0x0000, /* 28D8 */
+0x0D0C,0x0000, 0x0D0D,0x0000, 0x0D0E,0x0000, 0x0D0F,0x0000, /* 28DC */
+0x0D10,0x0000, 0x0D11,0x0000, 0x0D12,0x0000, 0x0D13,0x0000, /* 28E0 */
+0x0D14,0x0000, 0x0D15,0x0000, 0x0D16,0x0000, 0x0D17,0x0000, /* 28E4 */
+0x0D18,0x0000, 0x0D19,0x0000, 0x0D1A,0x0000, 0x0D1B,0x0000, /* 28E8 */
+0x0D1C,0x0000, 0x0D1D,0x0000, 0x0D1E,0x0000, 0x0D1F,0x0000, /* 28EC */
+0x0D20,0x0000, 0x0D21,0x0000, 0x0D22,0x0000, 0x0D23,0x0000, /* 28F0 */
+0x0D24,0x0000, 0x0D25,0x0000, 0x0D26,0x0000, 0x0D27,0x0000, /* 28F4 */
+0x0D28,0x0000, 0x0D29,0x0000, 0x0D2A,0x0000, 0x0D2B,0x0000, /* 28F8 */
+0x0D2C,0x0000, 0x0D2D,0x0000, 0x0D2E,0x0000, 0x0D2F,0x0000 /* 28FC */
+};
+
+static const uint16 uca520_p029[]= { /* 2900 (2 weights per char) */
+0x09F0,0x0000, 0x09F1,0x0000, 0x09F2,0x0000, 0x09F3,0x0000, /* 2900 */
+0x09F4,0x0000, 0x09F5,0x0000, 0x09F6,0x0000, 0x09F7,0x0000, /* 2904 */
+0x09F8,0x0000, 0x09F9,0x0000, 0x09FA,0x0000, 0x09FB,0x0000, /* 2908 */
+0x09FC,0x0000, 0x09FD,0x0000, 0x09FE,0x0000, 0x09FF,0x0000, /* 290C */
+0x0A00,0x0000, 0x0A01,0x0000, 0x0A02,0x0000, 0x0A03,0x0000, /* 2910 */
+0x0A04,0x0000, 0x0A05,0x0000, 0x0A06,0x0000, 0x0A07,0x0000, /* 2914 */
+0x0A08,0x0000, 0x0A09,0x0000, 0x0A0A,0x0000, 0x0A0B,0x0000, /* 2918 */
+0x0A0C,0x0000, 0x0A0D,0x0000, 0x0A0E,0x0000, 0x0A0F,0x0000, /* 291C */
+0x0A10,0x0000, 0x0A11,0x0000, 0x0A12,0x0000, 0x0A13,0x0000, /* 2920 */
+0x0A14,0x0000, 0x0A15,0x0000, 0x0A16,0x0000, 0x0A17,0x0000, /* 2924 */
+0x0A18,0x0000, 0x0A19,0x0000, 0x0A1A,0x0000, 0x0A1B,0x0000, /* 2928 */
+0x0A1C,0x0000, 0x0A1D,0x0000, 0x0A1E,0x0000, 0x0A1F,0x0000, /* 292C */
+0x0A20,0x0000, 0x0A21,0x0000, 0x0A22,0x0000, 0x0A23,0x0000, /* 2930 */
+0x0A24,0x0000, 0x0A25,0x0000, 0x0A26,0x0000, 0x0A27,0x0000, /* 2934 */
+0x0A28,0x0000, 0x0A29,0x0000, 0x0A2A,0x0000, 0x0A2B,0x0000, /* 2938 */
+0x0A2C,0x0000, 0x0A2D,0x0000, 0x0A2E,0x0000, 0x0A2F,0x0000, /* 293C */
+0x0A30,0x0000, 0x0A31,0x0000, 0x0A32,0x0000, 0x0A33,0x0000, /* 2940 */
+0x0A34,0x0000, 0x0A35,0x0000, 0x0A36,0x0000, 0x0A37,0x0000, /* 2944 */
+0x0A38,0x0000, 0x0A39,0x0000, 0x0A3A,0x0000, 0x0A3B,0x0000, /* 2948 */
+0x0A3C,0x0000, 0x0A3D,0x0000, 0x0A3E,0x0000, 0x0A3F,0x0000, /* 294C */
+0x0A40,0x0000, 0x0A41,0x0000, 0x0A42,0x0000, 0x0A43,0x0000, /* 2950 */
+0x0A44,0x0000, 0x0A45,0x0000, 0x0A46,0x0000, 0x0A47,0x0000, /* 2954 */
+0x0A48,0x0000, 0x0A49,0x0000, 0x0A4A,0x0000, 0x0A4B,0x0000, /* 2958 */
+0x0A4C,0x0000, 0x0A4D,0x0000, 0x0A4E,0x0000, 0x0A4F,0x0000, /* 295C */
+0x0A50,0x0000, 0x0A51,0x0000, 0x0A52,0x0000, 0x0A53,0x0000, /* 2960 */
+0x0A54,0x0000, 0x0A55,0x0000, 0x0A56,0x0000, 0x0A57,0x0000, /* 2964 */
+0x0A58,0x0000, 0x0A59,0x0000, 0x0A5A,0x0000, 0x0A5B,0x0000, /* 2968 */
+0x0A5C,0x0000, 0x0A5D,0x0000, 0x0A5E,0x0000, 0x0A5F,0x0000, /* 296C */
+0x0A60,0x0000, 0x0A61,0x0000, 0x0A62,0x0000, 0x0A63,0x0000, /* 2970 */
+0x0A64,0x0000, 0x0A65,0x0000, 0x0A66,0x0000, 0x0A67,0x0000, /* 2974 */
+0x0A68,0x0000, 0x0A69,0x0000, 0x0A6A,0x0000, 0x0A6B,0x0000, /* 2978 */
+0x0A6C,0x0000, 0x0A6D,0x0000, 0x0A6E,0x0000, 0x0A6F,0x0000, /* 297C */
+0x0A70,0x0000, 0x0A71,0x0000, 0x0A72,0x0000, 0x030F,0x0000, /* 2980 */
+0x0310,0x0000, 0x0311,0x0000, 0x0312,0x0000, 0x0313,0x0000, /* 2984 */
+0x0314,0x0000, 0x0315,0x0000, 0x0316,0x0000, 0x0317,0x0000, /* 2988 */
+0x0318,0x0000, 0x0319,0x0000, 0x031A,0x0000, 0x031B,0x0000, /* 298C */
+0x031C,0x0000, 0x031D,0x0000, 0x031E,0x0000, 0x031F,0x0000, /* 2990 */
+0x0320,0x0000, 0x0321,0x0000, 0x0322,0x0000, 0x0323,0x0000, /* 2994 */
+0x0324,0x0000, 0x0A73,0x0000, 0x0A74,0x0000, 0x0A75,0x0000, /* 2998 */
+0x0A76,0x0000, 0x0A77,0x0000, 0x0A78,0x0000, 0x0A79,0x0000, /* 299C */
+0x0A7A,0x0000, 0x0A7B,0x0000, 0x0A7C,0x0000, 0x0A7D,0x0000, /* 29A0 */
+0x0A7E,0x0000, 0x0A7F,0x0000, 0x0A80,0x0000, 0x0A81,0x0000, /* 29A4 */
+0x0A82,0x0000, 0x0A83,0x0000, 0x0A84,0x0000, 0x0A85,0x0000, /* 29A8 */
+0x0A86,0x0000, 0x0A87,0x0000, 0x0A88,0x0000, 0x0A89,0x0000, /* 29AC */
+0x0A8A,0x0000, 0x0A8B,0x0000, 0x0A8C,0x0000, 0x0A8D,0x0000, /* 29B0 */
+0x0A8E,0x0000, 0x0A8F,0x0000, 0x0A90,0x0000, 0x0A91,0x0000, /* 29B4 */
+0x0A92,0x0000, 0x0A93,0x0000, 0x0A94,0x0000, 0x0A95,0x0000, /* 29B8 */
+0x0A96,0x0000, 0x0A97,0x0000, 0x0A98,0x0000, 0x0A99,0x0000, /* 29BC */
+0x0A9A,0x0000, 0x0A9B,0x0000, 0x0A9C,0x0000, 0x0A9D,0x0000, /* 29C0 */
+0x0A9E,0x0000, 0x0A9F,0x0000, 0x0AA0,0x0000, 0x0AA1,0x0000, /* 29C4 */
+0x0AA2,0x0000, 0x0AA3,0x0000, 0x0AA4,0x0000, 0x0AA5,0x0000, /* 29C8 */
+0x0AA6,0x0000, 0x0AA7,0x0000, 0x0AA8,0x0000, 0x0AA9,0x0000, /* 29CC */
+0x0AAA,0x0000, 0x0AAB,0x0000, 0x0AAC,0x0000, 0x0AAD,0x0000, /* 29D0 */
+0x0AAE,0x0000, 0x0AAF,0x0000, 0x0AB0,0x0000, 0x0AB1,0x0000, /* 29D4 */
+0x0AB2,0x0000, 0x0AB3,0x0000, 0x0AB4,0x0000, 0x0AB5,0x0000, /* 29D8 */
+0x0AB6,0x0000, 0x0AB7,0x0000, 0x0AB8,0x0000, 0x0AB9,0x0000, /* 29DC */
+0x0ABA,0x0000, 0x0ABB,0x0000, 0x0ABC,0x0000, 0x0ABD,0x0000, /* 29E0 */
+0x0ABE,0x0000, 0x0ABF,0x0000, 0x0AC0,0x0000, 0x0AC1,0x0000, /* 29E4 */
+0x0AC2,0x0000, 0x0AC3,0x0000, 0x0AC4,0x0000, 0x0AC5,0x0000, /* 29E8 */
+0x0AC6,0x0000, 0x0AC7,0x0000, 0x0AC8,0x0000, 0x0AC9,0x0000, /* 29EC */
+0x0ACA,0x0000, 0x0ACB,0x0000, 0x0ACC,0x0000, 0x0ACD,0x0000, /* 29F0 */
+0x0ACE,0x0000, 0x0ACF,0x0000, 0x0AD0,0x0000, 0x0AD1,0x0000, /* 29F4 */
+0x0AD2,0x0000, 0x0AD3,0x0000, 0x0AD4,0x0000, 0x0AD5,0x0000, /* 29F8 */
+0x030D,0x0000, 0x030E,0x0000, 0x0AD6,0x0000, 0x0AD7,0x0000 /* 29FC */
+};
+
+static const uint16 uca520_p02A[]= { /* 2A00 (5 weights per char) */
+0x0AD8,0x0000,0x0000,0x0000,0x0000, /* 2A00 */
+0x0AD9,0x0000,0x0000,0x0000,0x0000, /* 2A01 */
+0x0ADA,0x0000,0x0000,0x0000,0x0000, /* 2A02 */
+0x0ADB,0x0000,0x0000,0x0000,0x0000, /* 2A03 */
+0x0ADC,0x0000,0x0000,0x0000,0x0000, /* 2A04 */
+0x0ADD,0x0000,0x0000,0x0000,0x0000, /* 2A05 */
+0x0ADE,0x0000,0x0000,0x0000,0x0000, /* 2A06 */
+0x0ADF,0x0000,0x0000,0x0000,0x0000, /* 2A07 */
+0x0AE0,0x0000,0x0000,0x0000,0x0000, /* 2A08 */
+0x0AE1,0x0000,0x0000,0x0000,0x0000, /* 2A09 */
+0x0AE2,0x0000,0x0000,0x0000,0x0000, /* 2A0A */
+0x0AE3,0x0000,0x0000,0x0000,0x0000, /* 2A0B */
+0x0575,0x0575,0x0575,0x0575,0x0000, /* 2A0C */
+0x0AE4,0x0000,0x0000,0x0000,0x0000, /* 2A0D */
+0x0AE5,0x0000,0x0000,0x0000,0x0000, /* 2A0E */
+0x0AE6,0x0000,0x0000,0x0000,0x0000, /* 2A0F */
+0x0AE7,0x0000,0x0000,0x0000,0x0000, /* 2A10 */
+0x0AE8,0x0000,0x0000,0x0000,0x0000, /* 2A11 */
+0x0AE9,0x0000,0x0000,0x0000,0x0000, /* 2A12 */
+0x0AEA,0x0000,0x0000,0x0000,0x0000, /* 2A13 */
+0x0AEB,0x0000,0x0000,0x0000,0x0000, /* 2A14 */
+0x0AEC,0x0000,0x0000,0x0000,0x0000, /* 2A15 */
+0x0AED,0x0000,0x0000,0x0000,0x0000, /* 2A16 */
+0x0AEE,0x0000,0x0000,0x0000,0x0000, /* 2A17 */
+0x0AEF,0x0000,0x0000,0x0000,0x0000, /* 2A18 */
+0x0AF0,0x0000,0x0000,0x0000,0x0000, /* 2A19 */
+0x0AF1,0x0000,0x0000,0x0000,0x0000, /* 2A1A */
+0x0AF2,0x0000,0x0000,0x0000,0x0000, /* 2A1B */
+0x0AF3,0x0000,0x0000,0x0000,0x0000, /* 2A1C */
+0x0AF4,0x0000,0x0000,0x0000,0x0000, /* 2A1D */
+0x0AF5,0x0000,0x0000,0x0000,0x0000, /* 2A1E */
+0x0AF6,0x0000,0x0000,0x0000,0x0000, /* 2A1F */
+0x0AF7,0x0000,0x0000,0x0000,0x0000, /* 2A20 */
+0x0AF8,0x0000,0x0000,0x0000,0x0000, /* 2A21 */
+0x0AF9,0x0000,0x0000,0x0000,0x0000, /* 2A22 */
+0x0AFA,0x0000,0x0000,0x0000,0x0000, /* 2A23 */
+0x0AFB,0x0000,0x0000,0x0000,0x0000, /* 2A24 */
+0x0AFC,0x0000,0x0000,0x0000,0x0000, /* 2A25 */
+0x0AFD,0x0000,0x0000,0x0000,0x0000, /* 2A26 */
+0x0AFE,0x0000,0x0000,0x0000,0x0000, /* 2A27 */
+0x0AFF,0x0000,0x0000,0x0000,0x0000, /* 2A28 */
+0x0B00,0x0000,0x0000,0x0000,0x0000, /* 2A29 */
+0x0B01,0x0000,0x0000,0x0000,0x0000, /* 2A2A */
+0x0B02,0x0000,0x0000,0x0000,0x0000, /* 2A2B */
+0x0B03,0x0000,0x0000,0x0000,0x0000, /* 2A2C */
+0x0B04,0x0000,0x0000,0x0000,0x0000, /* 2A2D */
+0x0B05,0x0000,0x0000,0x0000,0x0000, /* 2A2E */
+0x0B06,0x0000,0x0000,0x0000,0x0000, /* 2A2F */
+0x0B07,0x0000,0x0000,0x0000,0x0000, /* 2A30 */
+0x0B08,0x0000,0x0000,0x0000,0x0000, /* 2A31 */
+0x0B09,0x0000,0x0000,0x0000,0x0000, /* 2A32 */
+0x0B0A,0x0000,0x0000,0x0000,0x0000, /* 2A33 */
+0x0B0B,0x0000,0x0000,0x0000,0x0000, /* 2A34 */
+0x0B0C,0x0000,0x0000,0x0000,0x0000, /* 2A35 */
+0x0B0D,0x0000,0x0000,0x0000,0x0000, /* 2A36 */
+0x0B0E,0x0000,0x0000,0x0000,0x0000, /* 2A37 */
+0x0B0F,0x0000,0x0000,0x0000,0x0000, /* 2A38 */
+0x0B10,0x0000,0x0000,0x0000,0x0000, /* 2A39 */
+0x0B11,0x0000,0x0000,0x0000,0x0000, /* 2A3A */
+0x0B12,0x0000,0x0000,0x0000,0x0000, /* 2A3B */
+0x0B13,0x0000,0x0000,0x0000,0x0000, /* 2A3C */
+0x0B14,0x0000,0x0000,0x0000,0x0000, /* 2A3D */
+0x0B15,0x0000,0x0000,0x0000,0x0000, /* 2A3E */
+0x0B16,0x0000,0x0000,0x0000,0x0000, /* 2A3F */
+0x0B17,0x0000,0x0000,0x0000,0x0000, /* 2A40 */
+0x0B18,0x0000,0x0000,0x0000,0x0000, /* 2A41 */
+0x0B19,0x0000,0x0000,0x0000,0x0000, /* 2A42 */
+0x0B1A,0x0000,0x0000,0x0000,0x0000, /* 2A43 */
+0x0B1B,0x0000,0x0000,0x0000,0x0000, /* 2A44 */
+0x0B1C,0x0000,0x0000,0x0000,0x0000, /* 2A45 */
+0x0B1D,0x0000,0x0000,0x0000,0x0000, /* 2A46 */
+0x0B1E,0x0000,0x0000,0x0000,0x0000, /* 2A47 */
+0x0B1F,0x0000,0x0000,0x0000,0x0000, /* 2A48 */
+0x0B20,0x0000,0x0000,0x0000,0x0000, /* 2A49 */
+0x0B21,0x0000,0x0000,0x0000,0x0000, /* 2A4A */
+0x0B22,0x0000,0x0000,0x0000,0x0000, /* 2A4B */
+0x0B23,0x0000,0x0000,0x0000,0x0000, /* 2A4C */
+0x0B24,0x0000,0x0000,0x0000,0x0000, /* 2A4D */
+0x0B25,0x0000,0x0000,0x0000,0x0000, /* 2A4E */
+0x0B26,0x0000,0x0000,0x0000,0x0000, /* 2A4F */
+0x0B27,0x0000,0x0000,0x0000,0x0000, /* 2A50 */
+0x0B28,0x0000,0x0000,0x0000,0x0000, /* 2A51 */
+0x0B29,0x0000,0x0000,0x0000,0x0000, /* 2A52 */
+0x0B2A,0x0000,0x0000,0x0000,0x0000, /* 2A53 */
+0x0B2B,0x0000,0x0000,0x0000,0x0000, /* 2A54 */
+0x0B2C,0x0000,0x0000,0x0000,0x0000, /* 2A55 */
+0x0B2D,0x0000,0x0000,0x0000,0x0000, /* 2A56 */
+0x0B2E,0x0000,0x0000,0x0000,0x0000, /* 2A57 */
+0x0B2F,0x0000,0x0000,0x0000,0x0000, /* 2A58 */
+0x0B30,0x0000,0x0000,0x0000,0x0000, /* 2A59 */
+0x0B31,0x0000,0x0000,0x0000,0x0000, /* 2A5A */
+0x0B32,0x0000,0x0000,0x0000,0x0000, /* 2A5B */
+0x0B33,0x0000,0x0000,0x0000,0x0000, /* 2A5C */
+0x0B34,0x0000,0x0000,0x0000,0x0000, /* 2A5D */
+0x0B35,0x0000,0x0000,0x0000,0x0000, /* 2A5E */
+0x0B36,0x0000,0x0000,0x0000,0x0000, /* 2A5F */
+0x0B37,0x0000,0x0000,0x0000,0x0000, /* 2A60 */
+0x0B38,0x0000,0x0000,0x0000,0x0000, /* 2A61 */
+0x0B39,0x0000,0x0000,0x0000,0x0000, /* 2A62 */
+0x0B3A,0x0000,0x0000,0x0000,0x0000, /* 2A63 */
+0x0B3B,0x0000,0x0000,0x0000,0x0000, /* 2A64 */
+0x0B3C,0x0000,0x0000,0x0000,0x0000, /* 2A65 */
+0x0B3D,0x0000,0x0000,0x0000,0x0000, /* 2A66 */
+0x0B3E,0x0000,0x0000,0x0000,0x0000, /* 2A67 */
+0x0B3F,0x0000,0x0000,0x0000,0x0000, /* 2A68 */
+0x0B40,0x0000,0x0000,0x0000,0x0000, /* 2A69 */
+0x0B41,0x0000,0x0000,0x0000,0x0000, /* 2A6A */
+0x0B42,0x0000,0x0000,0x0000,0x0000, /* 2A6B */
+0x0B43,0x0000,0x0000,0x0000,0x0000, /* 2A6C */
+0x0B44,0x0000,0x0000,0x0000,0x0000, /* 2A6D */
+0x0B45,0x0000,0x0000,0x0000,0x0000, /* 2A6E */
+0x0B46,0x0000,0x0000,0x0000,0x0000, /* 2A6F */
+0x0B47,0x0000,0x0000,0x0000,0x0000, /* 2A70 */
+0x0B48,0x0000,0x0000,0x0000,0x0000, /* 2A71 */
+0x0B49,0x0000,0x0000,0x0000,0x0000, /* 2A72 */
+0x0B4A,0x0000,0x0000,0x0000,0x0000, /* 2A73 */
+0x0247,0x0247,0x0555,0x0000,0x0000, /* 2A74 */
+0x0555,0x0555,0x0000,0x0000,0x0000, /* 2A75 */
+0x0555,0x0555,0x0555,0x0000,0x0000, /* 2A76 */
+0x0B4B,0x0000,0x0000,0x0000,0x0000, /* 2A77 */
+0x0B4C,0x0000,0x0000,0x0000,0x0000, /* 2A78 */
+0x0B4D,0x0000,0x0000,0x0000,0x0000, /* 2A79 */
+0x0B4E,0x0000,0x0000,0x0000,0x0000, /* 2A7A */
+0x0B4F,0x0000,0x0000,0x0000,0x0000, /* 2A7B */
+0x0B50,0x0000,0x0000,0x0000,0x0000, /* 2A7C */
+0x0B51,0x0000,0x0000,0x0000,0x0000, /* 2A7D */
+0x0B52,0x0000,0x0000,0x0000,0x0000, /* 2A7E */
+0x0B53,0x0000,0x0000,0x0000,0x0000, /* 2A7F */
+0x0B54,0x0000,0x0000,0x0000,0x0000, /* 2A80 */
+0x0B55,0x0000,0x0000,0x0000,0x0000, /* 2A81 */
+0x0B56,0x0000,0x0000,0x0000,0x0000, /* 2A82 */
+0x0B57,0x0000,0x0000,0x0000,0x0000, /* 2A83 */
+0x0B58,0x0000,0x0000,0x0000,0x0000, /* 2A84 */
+0x0B59,0x0000,0x0000,0x0000,0x0000, /* 2A85 */
+0x0B5A,0x0000,0x0000,0x0000,0x0000, /* 2A86 */
+0x0B5B,0x0000,0x0000,0x0000,0x0000, /* 2A87 */
+0x0B5C,0x0000,0x0000,0x0000,0x0000, /* 2A88 */
+0x0B5D,0x0000,0x0000,0x0000,0x0000, /* 2A89 */
+0x0B5E,0x0000,0x0000,0x0000,0x0000, /* 2A8A */
+0x0B5F,0x0000,0x0000,0x0000,0x0000, /* 2A8B */
+0x0B60,0x0000,0x0000,0x0000,0x0000, /* 2A8C */
+0x0B61,0x0000,0x0000,0x0000,0x0000, /* 2A8D */
+0x0B62,0x0000,0x0000,0x0000,0x0000, /* 2A8E */
+0x0B63,0x0000,0x0000,0x0000,0x0000, /* 2A8F */
+0x0B64,0x0000,0x0000,0x0000,0x0000, /* 2A90 */
+0x0B65,0x0000,0x0000,0x0000,0x0000, /* 2A91 */
+0x0B66,0x0000,0x0000,0x0000,0x0000, /* 2A92 */
+0x0B67,0x0000,0x0000,0x0000,0x0000, /* 2A93 */
+0x0B68,0x0000,0x0000,0x0000,0x0000, /* 2A94 */
+0x0B69,0x0000,0x0000,0x0000,0x0000, /* 2A95 */
+0x0B6A,0x0000,0x0000,0x0000,0x0000, /* 2A96 */
+0x0B6B,0x0000,0x0000,0x0000,0x0000, /* 2A97 */
+0x0B6C,0x0000,0x0000,0x0000,0x0000, /* 2A98 */
+0x0B6D,0x0000,0x0000,0x0000,0x0000, /* 2A99 */
+0x0B6E,0x0000,0x0000,0x0000,0x0000, /* 2A9A */
+0x0B6F,0x0000,0x0000,0x0000,0x0000, /* 2A9B */
+0x0B70,0x0000,0x0000,0x0000,0x0000, /* 2A9C */
+0x0B71,0x0000,0x0000,0x0000,0x0000, /* 2A9D */
+0x0B72,0x0000,0x0000,0x0000,0x0000, /* 2A9E */
+0x0B73,0x0000,0x0000,0x0000,0x0000, /* 2A9F */
+0x0B74,0x0000,0x0000,0x0000,0x0000, /* 2AA0 */
+0x0B75,0x0000,0x0000,0x0000,0x0000, /* 2AA1 */
+0x0B76,0x0000,0x0000,0x0000,0x0000, /* 2AA2 */
+0x0B77,0x0000,0x0000,0x0000,0x0000, /* 2AA3 */
+0x0B78,0x0000,0x0000,0x0000,0x0000, /* 2AA4 */
+0x0B79,0x0000,0x0000,0x0000,0x0000, /* 2AA5 */
+0x0B7A,0x0000,0x0000,0x0000,0x0000, /* 2AA6 */
+0x0B7B,0x0000,0x0000,0x0000,0x0000, /* 2AA7 */
+0x0B7C,0x0000,0x0000,0x0000,0x0000, /* 2AA8 */
+0x0B7D,0x0000,0x0000,0x0000,0x0000, /* 2AA9 */
+0x0B7E,0x0000,0x0000,0x0000,0x0000, /* 2AAA */
+0x0B7F,0x0000,0x0000,0x0000,0x0000, /* 2AAB */
+0x0B80,0x0000,0x0000,0x0000,0x0000, /* 2AAC */
+0x0B81,0x0000,0x0000,0x0000,0x0000, /* 2AAD */
+0x0B82,0x0000,0x0000,0x0000,0x0000, /* 2AAE */
+0x0B83,0x0000,0x0000,0x0000,0x0000, /* 2AAF */
+0x0B84,0x0000,0x0000,0x0000,0x0000, /* 2AB0 */
+0x0B85,0x0000,0x0000,0x0000,0x0000, /* 2AB1 */
+0x0B86,0x0000,0x0000,0x0000,0x0000, /* 2AB2 */
+0x0B87,0x0000,0x0000,0x0000,0x0000, /* 2AB3 */
+0x0B88,0x0000,0x0000,0x0000,0x0000, /* 2AB4 */
+0x0B89,0x0000,0x0000,0x0000,0x0000, /* 2AB5 */
+0x0B8A,0x0000,0x0000,0x0000,0x0000, /* 2AB6 */
+0x0B8B,0x0000,0x0000,0x0000,0x0000, /* 2AB7 */
+0x0B8C,0x0000,0x0000,0x0000,0x0000, /* 2AB8 */
+0x0B8D,0x0000,0x0000,0x0000,0x0000, /* 2AB9 */
+0x0B8E,0x0000,0x0000,0x0000,0x0000, /* 2ABA */
+0x0B8F,0x0000,0x0000,0x0000,0x0000, /* 2ABB */
+0x0B90,0x0000,0x0000,0x0000,0x0000, /* 2ABC */
+0x0B91,0x0000,0x0000,0x0000,0x0000, /* 2ABD */
+0x0B92,0x0000,0x0000,0x0000,0x0000, /* 2ABE */
+0x0B93,0x0000,0x0000,0x0000,0x0000, /* 2ABF */
+0x0B94,0x0000,0x0000,0x0000,0x0000, /* 2AC0 */
+0x0B95,0x0000,0x0000,0x0000,0x0000, /* 2AC1 */
+0x0B96,0x0000,0x0000,0x0000,0x0000, /* 2AC2 */
+0x0B97,0x0000,0x0000,0x0000,0x0000, /* 2AC3 */
+0x0B98,0x0000,0x0000,0x0000,0x0000, /* 2AC4 */
+0x0B99,0x0000,0x0000,0x0000,0x0000, /* 2AC5 */
+0x0B9A,0x0000,0x0000,0x0000,0x0000, /* 2AC6 */
+0x0B9B,0x0000,0x0000,0x0000,0x0000, /* 2AC7 */
+0x0B9C,0x0000,0x0000,0x0000,0x0000, /* 2AC8 */
+0x0B9D,0x0000,0x0000,0x0000,0x0000, /* 2AC9 */
+0x0B9E,0x0000,0x0000,0x0000,0x0000, /* 2ACA */
+0x0B9F,0x0000,0x0000,0x0000,0x0000, /* 2ACB */
+0x0BA0,0x0000,0x0000,0x0000,0x0000, /* 2ACC */
+0x0BA1,0x0000,0x0000,0x0000,0x0000, /* 2ACD */
+0x0BA2,0x0000,0x0000,0x0000,0x0000, /* 2ACE */
+0x0BA3,0x0000,0x0000,0x0000,0x0000, /* 2ACF */
+0x0BA4,0x0000,0x0000,0x0000,0x0000, /* 2AD0 */
+0x0BA5,0x0000,0x0000,0x0000,0x0000, /* 2AD1 */
+0x0BA6,0x0000,0x0000,0x0000,0x0000, /* 2AD2 */
+0x0BA7,0x0000,0x0000,0x0000,0x0000, /* 2AD3 */
+0x0BA8,0x0000,0x0000,0x0000,0x0000, /* 2AD4 */
+0x0BA9,0x0000,0x0000,0x0000,0x0000, /* 2AD5 */
+0x0BAA,0x0000,0x0000,0x0000,0x0000, /* 2AD6 */
+0x0BAB,0x0000,0x0000,0x0000,0x0000, /* 2AD7 */
+0x0BAC,0x0000,0x0000,0x0000,0x0000, /* 2AD8 */
+0x0BAD,0x0000,0x0000,0x0000,0x0000, /* 2AD9 */
+0x0BAE,0x0000,0x0000,0x0000,0x0000, /* 2ADA */
+0x0BAF,0x0000,0x0000,0x0000,0x0000, /* 2ADB */
+0x0BB0,0x0000,0x0000,0x0000,0x0000, /* 2ADC */
+0x0BB0,0x0000,0x0000,0x0000,0x0000, /* 2ADD */
+0x0BB1,0x0000,0x0000,0x0000,0x0000, /* 2ADE */
+0x0BB2,0x0000,0x0000,0x0000,0x0000, /* 2ADF */
+0x0BB3,0x0000,0x0000,0x0000,0x0000, /* 2AE0 */
+0x0BB4,0x0000,0x0000,0x0000,0x0000, /* 2AE1 */
+0x0BB5,0x0000,0x0000,0x0000,0x0000, /* 2AE2 */
+0x0BB6,0x0000,0x0000,0x0000,0x0000, /* 2AE3 */
+0x0BB7,0x0000,0x0000,0x0000,0x0000, /* 2AE4 */
+0x0BB8,0x0000,0x0000,0x0000,0x0000, /* 2AE5 */
+0x0BB9,0x0000,0x0000,0x0000,0x0000, /* 2AE6 */
+0x0BBA,0x0000,0x0000,0x0000,0x0000, /* 2AE7 */
+0x0BBB,0x0000,0x0000,0x0000,0x0000, /* 2AE8 */
+0x0BBC,0x0000,0x0000,0x0000,0x0000, /* 2AE9 */
+0x0BBD,0x0000,0x0000,0x0000,0x0000, /* 2AEA */
+0x0BBE,0x0000,0x0000,0x0000,0x0000, /* 2AEB */
+0x0BBF,0x0000,0x0000,0x0000,0x0000, /* 2AEC */
+0x0BC0,0x0000,0x0000,0x0000,0x0000, /* 2AED */
+0x0BC1,0x0000,0x0000,0x0000,0x0000, /* 2AEE */
+0x0BC2,0x0000,0x0000,0x0000,0x0000, /* 2AEF */
+0x0BC3,0x0000,0x0000,0x0000,0x0000, /* 2AF0 */
+0x0BC4,0x0000,0x0000,0x0000,0x0000, /* 2AF1 */
+0x0BC5,0x0000,0x0000,0x0000,0x0000, /* 2AF2 */
+0x0BC6,0x0000,0x0000,0x0000,0x0000, /* 2AF3 */
+0x0BC7,0x0000,0x0000,0x0000,0x0000, /* 2AF4 */
+0x0BC8,0x0000,0x0000,0x0000,0x0000, /* 2AF5 */
+0x0BC9,0x0000,0x0000,0x0000,0x0000, /* 2AF6 */
+0x0BCA,0x0000,0x0000,0x0000,0x0000, /* 2AF7 */
+0x0BCB,0x0000,0x0000,0x0000,0x0000, /* 2AF8 */
+0x0BCC,0x0000,0x0000,0x0000,0x0000, /* 2AF9 */
+0x0BCD,0x0000,0x0000,0x0000,0x0000, /* 2AFA */
+0x0BCE,0x0000,0x0000,0x0000,0x0000, /* 2AFB */
+0x0BCF,0x0000,0x0000,0x0000,0x0000, /* 2AFC */
+0x0BD0,0x0000,0x0000,0x0000,0x0000, /* 2AFD */
+0x0BD1,0x0000,0x0000,0x0000,0x0000, /* 2AFE */
+0x0BD2,0x0000,0x0000,0x0000,0x0000 /* 2AFF */
+};
+
+static const uint16 uca520_p02B[]= { /* 2B00 (3 weights per char) */
+0x0BD3,0x0000,0x0000, 0x0BD4,0x0000,0x0000, 0x0BD5,0x0000,0x0000, /* 2B00 */
+0x0BD6,0x0000,0x0000, 0x0BD7,0x0000,0x0000, 0x0BD8,0x0000,0x0000, /* 2B03 */
+0x0BD9,0x0000,0x0000, 0x0BDA,0x0000,0x0000, 0x0BDB,0x0000,0x0000, /* 2B06 */
+0x0BDC,0x0000,0x0000, 0x0BDD,0x0000,0x0000, 0x0BDE,0x0000,0x0000, /* 2B09 */
+0x0BDF,0x0000,0x0000, 0x0BE0,0x0000,0x0000, 0x0BE1,0x0000,0x0000, /* 2B0C */
+0x0BE2,0x0000,0x0000, 0x0BE3,0x0000,0x0000, 0x0BE4,0x0000,0x0000, /* 2B0F */
+0x0BE5,0x0000,0x0000, 0x0BE6,0x0000,0x0000, 0x0BE7,0x0000,0x0000, /* 2B12 */
+0x0BE8,0x0000,0x0000, 0x0BE9,0x0000,0x0000, 0x0BEA,0x0000,0x0000, /* 2B15 */
+0x0BEB,0x0000,0x0000, 0x0BEC,0x0000,0x0000, 0x0BED,0x0000,0x0000, /* 2B18 */
+0x0BEE,0x0000,0x0000, 0x0BEF,0x0000,0x0000, 0x0BF0,0x0000,0x0000, /* 2B1B */
+0x0BF1,0x0000,0x0000, 0x0BF2,0x0000,0x0000, 0x0BF3,0x0000,0x0000, /* 2B1E */
+0x0BF4,0x0000,0x0000, 0x0BF5,0x0000,0x0000, 0x0BF6,0x0000,0x0000, /* 2B21 */
+0x0BF7,0x0000,0x0000, 0x0BF8,0x0000,0x0000, 0x0BF9,0x0000,0x0000, /* 2B24 */
+0x0BFA,0x0000,0x0000, 0x0BFB,0x0000,0x0000, 0x0BFC,0x0000,0x0000, /* 2B27 */
+0x0BFD,0x0000,0x0000, 0x0BFE,0x0000,0x0000, 0x0BFF,0x0000,0x0000, /* 2B2A */
+0x0C00,0x0000,0x0000, 0x0C01,0x0000,0x0000, 0x0C02,0x0000,0x0000, /* 2B2D */
+0x0C03,0x0000,0x0000, 0x0C04,0x0000,0x0000, 0x0C05,0x0000,0x0000, /* 2B30 */
+0x0C06,0x0000,0x0000, 0x0C07,0x0000,0x0000, 0x0C08,0x0000,0x0000, /* 2B33 */
+0x0C09,0x0000,0x0000, 0x0C0A,0x0000,0x0000, 0x0C0B,0x0000,0x0000, /* 2B36 */
+0x0C0C,0x0000,0x0000, 0x0C0D,0x0000,0x0000, 0x0C0E,0x0000,0x0000, /* 2B39 */
+0x0C0F,0x0000,0x0000, 0x0C10,0x0000,0x0000, 0x0C11,0x0000,0x0000, /* 2B3C */
+0x0C12,0x0000,0x0000, 0x0C13,0x0000,0x0000, 0x0C14,0x0000,0x0000, /* 2B3F */
+0x0C15,0x0000,0x0000, 0x0C16,0x0000,0x0000, 0x0C17,0x0000,0x0000, /* 2B42 */
+0x0C18,0x0000,0x0000, 0x0C19,0x0000,0x0000, 0x0C1A,0x0000,0x0000, /* 2B45 */
+0x0C1B,0x0000,0x0000, 0x0C1C,0x0000,0x0000, 0x0C1D,0x0000,0x0000, /* 2B48 */
+0x0C1E,0x0000,0x0000, 0x0C1F,0x0000,0x0000, 0xFBC0,0xAB4D,0x0000, /* 2B4B */
+0xFBC0,0xAB4E,0x0000, 0xFBC0,0xAB4F,0x0000, 0x0C20,0x0000,0x0000, /* 2B4E */
+0x0C21,0x0000,0x0000, 0x0C22,0x0000,0x0000, 0x0C23,0x0000,0x0000, /* 2B51 */
+0x0C24,0x0000,0x0000, 0x0C25,0x0000,0x0000, 0x0C26,0x0000,0x0000, /* 2B54 */
+0x0C27,0x0000,0x0000, 0x0C28,0x0000,0x0000, 0x0C29,0x0000,0x0000, /* 2B57 */
+0xFBC0,0xAB5A,0x0000, 0xFBC0,0xAB5B,0x0000, 0xFBC0,0xAB5C,0x0000, /* 2B5A */
+0xFBC0,0xAB5D,0x0000, 0xFBC0,0xAB5E,0x0000, 0xFBC0,0xAB5F,0x0000, /* 2B5D */
+0xFBC0,0xAB60,0x0000, 0xFBC0,0xAB61,0x0000, 0xFBC0,0xAB62,0x0000, /* 2B60 */
+0xFBC0,0xAB63,0x0000, 0xFBC0,0xAB64,0x0000, 0xFBC0,0xAB65,0x0000, /* 2B63 */
+0xFBC0,0xAB66,0x0000, 0xFBC0,0xAB67,0x0000, 0xFBC0,0xAB68,0x0000, /* 2B66 */
+0xFBC0,0xAB69,0x0000, 0xFBC0,0xAB6A,0x0000, 0xFBC0,0xAB6B,0x0000, /* 2B69 */
+0xFBC0,0xAB6C,0x0000, 0xFBC0,0xAB6D,0x0000, 0xFBC0,0xAB6E,0x0000, /* 2B6C */
+0xFBC0,0xAB6F,0x0000, 0xFBC0,0xAB70,0x0000, 0xFBC0,0xAB71,0x0000, /* 2B6F */
+0xFBC0,0xAB72,0x0000, 0xFBC0,0xAB73,0x0000, 0xFBC0,0xAB74,0x0000, /* 2B72 */
+0xFBC0,0xAB75,0x0000, 0xFBC0,0xAB76,0x0000, 0xFBC0,0xAB77,0x0000, /* 2B75 */
+0xFBC0,0xAB78,0x0000, 0xFBC0,0xAB79,0x0000, 0xFBC0,0xAB7A,0x0000, /* 2B78 */
+0xFBC0,0xAB7B,0x0000, 0xFBC0,0xAB7C,0x0000, 0xFBC0,0xAB7D,0x0000, /* 2B7B */
+0xFBC0,0xAB7E,0x0000, 0xFBC0,0xAB7F,0x0000, 0xFBC0,0xAB80,0x0000, /* 2B7E */
+0xFBC0,0xAB81,0x0000, 0xFBC0,0xAB82,0x0000, 0xFBC0,0xAB83,0x0000, /* 2B81 */
+0xFBC0,0xAB84,0x0000, 0xFBC0,0xAB85,0x0000, 0xFBC0,0xAB86,0x0000, /* 2B84 */
+0xFBC0,0xAB87,0x0000, 0xFBC0,0xAB88,0x0000, 0xFBC0,0xAB89,0x0000, /* 2B87 */
+0xFBC0,0xAB8A,0x0000, 0xFBC0,0xAB8B,0x0000, 0xFBC0,0xAB8C,0x0000, /* 2B8A */
+0xFBC0,0xAB8D,0x0000, 0xFBC0,0xAB8E,0x0000, 0xFBC0,0xAB8F,0x0000, /* 2B8D */
+0xFBC0,0xAB90,0x0000, 0xFBC0,0xAB91,0x0000, 0xFBC0,0xAB92,0x0000, /* 2B90 */
+0xFBC0,0xAB93,0x0000, 0xFBC0,0xAB94,0x0000, 0xFBC0,0xAB95,0x0000, /* 2B93 */
+0xFBC0,0xAB96,0x0000, 0xFBC0,0xAB97,0x0000, 0xFBC0,0xAB98,0x0000, /* 2B96 */
+0xFBC0,0xAB99,0x0000, 0xFBC0,0xAB9A,0x0000, 0xFBC0,0xAB9B,0x0000, /* 2B99 */
+0xFBC0,0xAB9C,0x0000, 0xFBC0,0xAB9D,0x0000, 0xFBC0,0xAB9E,0x0000, /* 2B9C */
+0xFBC0,0xAB9F,0x0000, 0xFBC0,0xABA0,0x0000, 0xFBC0,0xABA1,0x0000, /* 2B9F */
+0xFBC0,0xABA2,0x0000, 0xFBC0,0xABA3,0x0000, 0xFBC0,0xABA4,0x0000, /* 2BA2 */
+0xFBC0,0xABA5,0x0000, 0xFBC0,0xABA6,0x0000, 0xFBC0,0xABA7,0x0000, /* 2BA5 */
+0xFBC0,0xABA8,0x0000, 0xFBC0,0xABA9,0x0000, 0xFBC0,0xABAA,0x0000, /* 2BA8 */
+0xFBC0,0xABAB,0x0000, 0xFBC0,0xABAC,0x0000, 0xFBC0,0xABAD,0x0000, /* 2BAB */
+0xFBC0,0xABAE,0x0000, 0xFBC0,0xABAF,0x0000, 0xFBC0,0xABB0,0x0000, /* 2BAE */
+0xFBC0,0xABB1,0x0000, 0xFBC0,0xABB2,0x0000, 0xFBC0,0xABB3,0x0000, /* 2BB1 */
+0xFBC0,0xABB4,0x0000, 0xFBC0,0xABB5,0x0000, 0xFBC0,0xABB6,0x0000, /* 2BB4 */
+0xFBC0,0xABB7,0x0000, 0xFBC0,0xABB8,0x0000, 0xFBC0,0xABB9,0x0000, /* 2BB7 */
+0xFBC0,0xABBA,0x0000, 0xFBC0,0xABBB,0x0000, 0xFBC0,0xABBC,0x0000, /* 2BBA */
+0xFBC0,0xABBD,0x0000, 0xFBC0,0xABBE,0x0000, 0xFBC0,0xABBF,0x0000, /* 2BBD */
+0xFBC0,0xABC0,0x0000, 0xFBC0,0xABC1,0x0000, 0xFBC0,0xABC2,0x0000, /* 2BC0 */
+0xFBC0,0xABC3,0x0000, 0xFBC0,0xABC4,0x0000, 0xFBC0,0xABC5,0x0000, /* 2BC3 */
+0xFBC0,0xABC6,0x0000, 0xFBC0,0xABC7,0x0000, 0xFBC0,0xABC8,0x0000, /* 2BC6 */
+0xFBC0,0xABC9,0x0000, 0xFBC0,0xABCA,0x0000, 0xFBC0,0xABCB,0x0000, /* 2BC9 */
+0xFBC0,0xABCC,0x0000, 0xFBC0,0xABCD,0x0000, 0xFBC0,0xABCE,0x0000, /* 2BCC */
+0xFBC0,0xABCF,0x0000, 0xFBC0,0xABD0,0x0000, 0xFBC0,0xABD1,0x0000, /* 2BCF */
+0xFBC0,0xABD2,0x0000, 0xFBC0,0xABD3,0x0000, 0xFBC0,0xABD4,0x0000, /* 2BD2 */
+0xFBC0,0xABD5,0x0000, 0xFBC0,0xABD6,0x0000, 0xFBC0,0xABD7,0x0000, /* 2BD5 */
+0xFBC0,0xABD8,0x0000, 0xFBC0,0xABD9,0x0000, 0xFBC0,0xABDA,0x0000, /* 2BD8 */
+0xFBC0,0xABDB,0x0000, 0xFBC0,0xABDC,0x0000, 0xFBC0,0xABDD,0x0000, /* 2BDB */
+0xFBC0,0xABDE,0x0000, 0xFBC0,0xABDF,0x0000, 0xFBC0,0xABE0,0x0000, /* 2BDE */
+0xFBC0,0xABE1,0x0000, 0xFBC0,0xABE2,0x0000, 0xFBC0,0xABE3,0x0000, /* 2BE1 */
+0xFBC0,0xABE4,0x0000, 0xFBC0,0xABE5,0x0000, 0xFBC0,0xABE6,0x0000, /* 2BE4 */
+0xFBC0,0xABE7,0x0000, 0xFBC0,0xABE8,0x0000, 0xFBC0,0xABE9,0x0000, /* 2BE7 */
+0xFBC0,0xABEA,0x0000, 0xFBC0,0xABEB,0x0000, 0xFBC0,0xABEC,0x0000, /* 2BEA */
+0xFBC0,0xABED,0x0000, 0xFBC0,0xABEE,0x0000, 0xFBC0,0xABEF,0x0000, /* 2BED */
+0xFBC0,0xABF0,0x0000, 0xFBC0,0xABF1,0x0000, 0xFBC0,0xABF2,0x0000, /* 2BF0 */
+0xFBC0,0xABF3,0x0000, 0xFBC0,0xABF4,0x0000, 0xFBC0,0xABF5,0x0000, /* 2BF3 */
+0xFBC0,0xABF6,0x0000, 0xFBC0,0xABF7,0x0000, 0xFBC0,0xABF8,0x0000, /* 2BF6 */
+0xFBC0,0xABF9,0x0000, 0xFBC0,0xABFA,0x0000, 0xFBC0,0xABFB,0x0000, /* 2BF9 */
+0xFBC0,0xABFC,0x0000, 0xFBC0,0xABFD,0x0000, 0xFBC0,0xABFE,0x0000, /* 2BFC */
+0xFBC0,0xABFF,0x0000 };
+
+static const uint16 uca520_p02C[]= { /* 2C00 (4 weights per char) */
+0x17B5,0x0000,0x0000,0x0000, 0x17B6,0x0000,0x0000,0x0000, /* 2C00 */
+0x17B7,0x0000,0x0000,0x0000, 0x17B8,0x0000,0x0000,0x0000, /* 2C02 */
+0x17B9,0x0000,0x0000,0x0000, 0x17BA,0x0000,0x0000,0x0000, /* 2C04 */
+0x17BB,0x0000,0x0000,0x0000, 0x17BC,0x0000,0x0000,0x0000, /* 2C06 */
+0x17BD,0x0000,0x0000,0x0000, 0x17BE,0x0000,0x0000,0x0000, /* 2C08 */
+0x17BF,0x0000,0x0000,0x0000, 0x17C0,0x0000,0x0000,0x0000, /* 2C0A */
+0x17C1,0x0000,0x0000,0x0000, 0x17C2,0x0000,0x0000,0x0000, /* 2C0C */
+0x17C3,0x0000,0x0000,0x0000, 0x17C4,0x0000,0x0000,0x0000, /* 2C0E */
+0x17C5,0x0000,0x0000,0x0000, 0x17C6,0x0000,0x0000,0x0000, /* 2C10 */
+0x17C7,0x0000,0x0000,0x0000, 0x17C8,0x0000,0x0000,0x0000, /* 2C12 */
+0x17C9,0x0000,0x0000,0x0000, 0x17CA,0x0000,0x0000,0x0000, /* 2C14 */
+0x17CB,0x0000,0x0000,0x0000, 0x17CC,0x0000,0x0000,0x0000, /* 2C16 */
+0x17CD,0x0000,0x0000,0x0000, 0x17CE,0x0000,0x0000,0x0000, /* 2C18 */
+0x17CF,0x0000,0x0000,0x0000, 0x17D0,0x0000,0x0000,0x0000, /* 2C1A */
+0x17D1,0x0000,0x0000,0x0000, 0x17D2,0x0000,0x0000,0x0000, /* 2C1C */
+0x17D3,0x0000,0x0000,0x0000, 0x17D4,0x0000,0x0000,0x0000, /* 2C1E */
+0x17D5,0x0000,0x0000,0x0000, 0x17D6,0x0000,0x0000,0x0000, /* 2C20 */
+0x17D7,0x0000,0x0000,0x0000, 0x17D8,0x0000,0x0000,0x0000, /* 2C22 */
+0x17D9,0x0000,0x0000,0x0000, 0x17DA,0x0000,0x0000,0x0000, /* 2C24 */
+0x17DB,0x0000,0x0000,0x0000, 0x17DC,0x0000,0x0000,0x0000, /* 2C26 */
+0x17DD,0x0000,0x0000,0x0000, 0x17DE,0x0000,0x0000,0x0000, /* 2C28 */
+0x17DF,0x0000,0x0000,0x0000, 0x17E0,0x0000,0x0000,0x0000, /* 2C2A */
+0x17E1,0x0000,0x0000,0x0000, 0x17E2,0x0000,0x0000,0x0000, /* 2C2C */
+0x17E3,0x0000,0x0000,0x0000, 0xFBC0,0xAC2F,0x0000,0x0000, /* 2C2E */
+0x17B5,0x0000,0x0000,0x0000, 0x17B6,0x0000,0x0000,0x0000, /* 2C30 */
+0x17B7,0x0000,0x0000,0x0000, 0x17B8,0x0000,0x0000,0x0000, /* 2C32 */
+0x17B9,0x0000,0x0000,0x0000, 0x17BA,0x0000,0x0000,0x0000, /* 2C34 */
+0x17BB,0x0000,0x0000,0x0000, 0x17BC,0x0000,0x0000,0x0000, /* 2C36 */
+0x17BD,0x0000,0x0000,0x0000, 0x17BE,0x0000,0x0000,0x0000, /* 2C38 */
+0x17BF,0x0000,0x0000,0x0000, 0x17C0,0x0000,0x0000,0x0000, /* 2C3A */
+0x17C1,0x0000,0x0000,0x0000, 0x17C2,0x0000,0x0000,0x0000, /* 2C3C */
+0x17C3,0x0000,0x0000,0x0000, 0x17C4,0x0000,0x0000,0x0000, /* 2C3E */
+0x17C5,0x0000,0x0000,0x0000, 0x17C6,0x0000,0x0000,0x0000, /* 2C40 */
+0x17C7,0x0000,0x0000,0x0000, 0x17C8,0x0000,0x0000,0x0000, /* 2C42 */
+0x17C9,0x0000,0x0000,0x0000, 0x17CA,0x0000,0x0000,0x0000, /* 2C44 */
+0x17CB,0x0000,0x0000,0x0000, 0x17CC,0x0000,0x0000,0x0000, /* 2C46 */
+0x17CD,0x0000,0x0000,0x0000, 0x17CE,0x0000,0x0000,0x0000, /* 2C48 */
+0x17CF,0x0000,0x0000,0x0000, 0x17D0,0x0000,0x0000,0x0000, /* 2C4A */
+0x17D1,0x0000,0x0000,0x0000, 0x17D2,0x0000,0x0000,0x0000, /* 2C4C */
+0x17D3,0x0000,0x0000,0x0000, 0x17D4,0x0000,0x0000,0x0000, /* 2C4E */
+0x17D5,0x0000,0x0000,0x0000, 0x17D6,0x0000,0x0000,0x0000, /* 2C50 */
+0x17D7,0x0000,0x0000,0x0000, 0x17D8,0x0000,0x0000,0x0000, /* 2C52 */
+0x17D9,0x0000,0x0000,0x0000, 0x17DA,0x0000,0x0000,0x0000, /* 2C54 */
+0x17DB,0x0000,0x0000,0x0000, 0x17DC,0x0000,0x0000,0x0000, /* 2C56 */
+0x17DD,0x0000,0x0000,0x0000, 0x17DE,0x0000,0x0000,0x0000, /* 2C58 */
+0x17DF,0x0000,0x0000,0x0000, 0x17E0,0x0000,0x0000,0x0000, /* 2C5A */
+0x17E1,0x0000,0x0000,0x0000, 0x17E2,0x0000,0x0000,0x0000, /* 2C5C */
+0x17E3,0x0000,0x0000,0x0000, 0xFBC0,0xAC5F,0x0000,0x0000, /* 2C5E */
+0x133F,0x0000,0x0000,0x0000, 0x133F,0x0000,0x0000,0x0000, /* 2C60 */
+0x1340,0x0000,0x0000,0x0000, 0x13B8,0x0000,0x0000,0x0000, /* 2C62 */
+0x13FC,0x0000,0x0000,0x0000, 0x1214,0x0000,0x0000,0x0000, /* 2C64 */
+0x143C,0x0000,0x0000,0x0000, 0x12E3,0x0000,0x0000,0x0000, /* 2C66 */
+0x12E3,0x0000,0x0000,0x0000, 0x1328,0x0000,0x0000,0x0000, /* 2C68 */
+0x1328,0x0000,0x0000,0x0000, 0x14C8,0x0000,0x0000,0x0000, /* 2C6A */
+0x14C8,0x0000,0x0000,0x0000, 0x121C,0x0000,0x0000,0x0000, /* 2C6C */
+0x1366,0x0000,0x0000,0x0000, 0x1218,0x0000,0x0000,0x0000, /* 2C6E */
+0x1221,0x0000,0x0000,0x0000, 0x1486,0x0000,0x0000,0x0000, /* 2C70 */
+0x1492,0x0000,0x0000,0x0000, 0x1492,0x0000,0x0000,0x0000, /* 2C72 */
+0x1487,0x0000,0x0000,0x0000, 0x12E4,0x0000,0x0000,0x0000, /* 2C74 */
+0x12E4,0x0000,0x0000,0x0000, 0x13C7,0x0000,0x0000,0x0000, /* 2C76 */
+0x1275,0x0000,0x0000,0x0000, 0x13F7,0x0000,0x0000,0x0000, /* 2C78 */
+0x13A4,0x0000,0x0000,0x0000, 0x127A,0x0000,0x0000,0x0000, /* 2C7A */
+0x1305,0x0000,0x0000,0x0000, 0x147B,0x0000,0x0000,0x0000, /* 2C7C */
+0x141B,0x0000,0x0000,0x0000, 0x14C4,0x0000,0x0000,0x0000, /* 2C7E */
+0x1571,0x0000,0x0000,0x0000, 0x1571,0x0000,0x0000,0x0000, /* 2C80 */
+0x1572,0x0000,0x0000,0x0000, 0x1572,0x0000,0x0000,0x0000, /* 2C82 */
+0x1573,0x0000,0x0000,0x0000, 0x1573,0x0000,0x0000,0x0000, /* 2C84 */
+0x1574,0x0000,0x0000,0x0000, 0x1574,0x0000,0x0000,0x0000, /* 2C86 */
+0x1575,0x0000,0x0000,0x0000, 0x1575,0x0000,0x0000,0x0000, /* 2C88 */
+0x1577,0x0000,0x0000,0x0000, 0x1577,0x0000,0x0000,0x0000, /* 2C8A */
+0x1578,0x0000,0x0000,0x0000, 0x1578,0x0000,0x0000,0x0000, /* 2C8C */
+0x1579,0x0000,0x0000,0x0000, 0x1579,0x0000,0x0000,0x0000, /* 2C8E */
+0x157A,0x0000,0x0000,0x0000, 0x157A,0x0000,0x0000,0x0000, /* 2C90 */
+0x157B,0x0000,0x0000,0x0000, 0x157B,0x0000,0x0000,0x0000, /* 2C92 */
+0x157C,0x0000,0x0000,0x0000, 0x157C,0x0000,0x0000,0x0000, /* 2C94 */
+0x157E,0x0000,0x0000,0x0000, 0x157E,0x0000,0x0000,0x0000, /* 2C96 */
+0x157F,0x0000,0x0000,0x0000, 0x157F,0x0000,0x0000,0x0000, /* 2C98 */
+0x1580,0x0000,0x0000,0x0000, 0x1580,0x0000,0x0000,0x0000, /* 2C9A */
+0x1583,0x0000,0x0000,0x0000, 0x1583,0x0000,0x0000,0x0000, /* 2C9C */
+0x1584,0x0000,0x0000,0x0000, 0x1584,0x0000,0x0000,0x0000, /* 2C9E */
+0x1585,0x0000,0x0000,0x0000, 0x1585,0x0000,0x0000,0x0000, /* 2CA0 */
+0x1586,0x0000,0x0000,0x0000, 0x1586,0x0000,0x0000,0x0000, /* 2CA2 */
+0x1587,0x0000,0x0000,0x0000, 0x1587,0x0000,0x0000,0x0000, /* 2CA4 */
+0x1588,0x0000,0x0000,0x0000, 0x1588,0x0000,0x0000,0x0000, /* 2CA6 */
+0x1589,0x0000,0x0000,0x0000, 0x1589,0x0000,0x0000,0x0000, /* 2CA8 */
+0x158A,0x0000,0x0000,0x0000, 0x158A,0x0000,0x0000,0x0000, /* 2CAA */
+0x158B,0x0000,0x0000,0x0000, 0x158B,0x0000,0x0000,0x0000, /* 2CAC */
+0x158C,0x0000,0x0000,0x0000, 0x158C,0x0000,0x0000,0x0000, /* 2CAE */
+0x158D,0x0000,0x0000,0x0000, 0x158D,0x0000,0x0000,0x0000, /* 2CB0 */
+0x15A7,0x0000,0x0000,0x0000, 0x15A7,0x0000,0x0000,0x0000, /* 2CB2 */
+0x15A8,0x0000,0x0000,0x0000, 0x15A8,0x0000,0x0000,0x0000, /* 2CB4 */
+0x1576,0x0000,0x0000,0x0000, 0x1576,0x0000,0x0000,0x0000, /* 2CB6 */
+0x157D,0x0000,0x0000,0x0000, 0x157D,0x0000,0x0000,0x0000, /* 2CB8 */
+0x1581,0x0000,0x0000,0x0000, 0x1581,0x0000,0x0000,0x0000, /* 2CBA */
+0x1582,0x0000,0x0000,0x0000, 0x1582,0x0000,0x0000,0x0000, /* 2CBC */
+0x158E,0x0000,0x0000,0x0000, 0x158E,0x0000,0x0000,0x0000, /* 2CBE */
+0x158F,0x0000,0x0000,0x0000, 0x158F,0x0000,0x0000,0x0000, /* 2CC0 */
+0x1592,0x0000,0x0000,0x0000, 0x1592,0x0000,0x0000,0x0000, /* 2CC2 */
+0x1593,0x0000,0x0000,0x0000, 0x1593,0x0000,0x0000,0x0000, /* 2CC4 */
+0x1594,0x0000,0x0000,0x0000, 0x1594,0x0000,0x0000,0x0000, /* 2CC6 */
+0x1597,0x0000,0x0000,0x0000, 0x1597,0x0000,0x0000,0x0000, /* 2CC8 */
+0x1599,0x0000,0x0000,0x0000, 0x1599,0x0000,0x0000,0x0000, /* 2CCA */
+0x159A,0x0000,0x0000,0x0000, 0x159A,0x0000,0x0000,0x0000, /* 2CCC */
+0x159B,0x0000,0x0000,0x0000, 0x159B,0x0000,0x0000,0x0000, /* 2CCE */
+0x159C,0x0000,0x0000,0x0000, 0x159C,0x0000,0x0000,0x0000, /* 2CD0 */
+0x159D,0x0000,0x0000,0x0000, 0x159D,0x0000,0x0000,0x0000, /* 2CD2 */
+0x159E,0x0000,0x0000,0x0000, 0x159E,0x0000,0x0000,0x0000, /* 2CD4 */
+0x15A1,0x0000,0x0000,0x0000, 0x15A1,0x0000,0x0000,0x0000, /* 2CD6 */
+0x15A3,0x0000,0x0000,0x0000, 0x15A3,0x0000,0x0000,0x0000, /* 2CD8 */
+0x15A4,0x0000,0x0000,0x0000, 0x15A4,0x0000,0x0000,0x0000, /* 2CDA */
+0x15A5,0x0000,0x0000,0x0000, 0x15A5,0x0000,0x0000,0x0000, /* 2CDC */
+0x15A9,0x0000,0x0000,0x0000, 0x15A9,0x0000,0x0000,0x0000, /* 2CDE */
+0x15AA,0x0000,0x0000,0x0000, 0x15AA,0x0000,0x0000,0x0000, /* 2CE0 */
+0x15AB,0x0000,0x0000,0x0000, 0x15AB,0x0000,0x0000,0x0000, /* 2CE2 */
+0x157C,0x1571,0x157B,0x0000, 0x0C2A,0x0000,0x0000,0x0000, /* 2CE4 */
+0x0C2B,0x0000,0x0000,0x0000, 0x0C2C,0x0000,0x0000,0x0000, /* 2CE6 */
+0x0C2D,0x0000,0x0000,0x0000, 0x0C2E,0x0000,0x0000,0x0000, /* 2CE8 */
+0x0C2F,0x0000,0x0000,0x0000, 0x1591,0x0000,0x0000,0x0000, /* 2CEA */
+0x1591,0x0000,0x0000,0x0000, 0x15A0,0x0000,0x0000,0x0000, /* 2CEC */
+0x15A0,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 2CEE */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 2CF0 */
+0xFBC0,0xACF2,0x0000,0x0000, 0xFBC0,0xACF3,0x0000,0x0000, /* 2CF2 */
+0xFBC0,0xACF4,0x0000,0x0000, 0xFBC0,0xACF5,0x0000,0x0000, /* 2CF4 */
+0xFBC0,0xACF6,0x0000,0x0000, 0xFBC0,0xACF7,0x0000,0x0000, /* 2CF6 */
+0xFBC0,0xACF8,0x0000,0x0000, 0x028B,0x0000,0x0000,0x0000, /* 2CF8 */
+0x027B,0x0000,0x0000,0x0000, 0x027C,0x0000,0x0000,0x0000, /* 2CFA */
+0x02E0,0x0000,0x0000,0x0000, 0x114C,0x0000,0x0000,0x0000, /* 2CFC */
+0x028C,0x0000,0x0000,0x0000, 0x02E1,0x0000,0x0000,0x0000 /* 2CFE */
+};
+
+static const uint16 uca520_p02D[]= { /* 2D00 (3 weights per char) */
+0x17E5,0x0000,0x0000, 0x17E7,0x0000,0x0000, 0x17E9,0x0000,0x0000, /* 2D00 */
+0x17EB,0x0000,0x0000, 0x17ED,0x0000,0x0000, 0x17EF,0x0000,0x0000, /* 2D03 */
+0x17F1,0x0000,0x0000, 0x17F5,0x0000,0x0000, 0x17F7,0x0000,0x0000, /* 2D06 */
+0x17F9,0x0000,0x0000, 0x17FB,0x0000,0x0000, 0x17FD,0x0000,0x0000, /* 2D09 */
+0x17FF,0x0000,0x0000, 0x1803,0x0000,0x0000, 0x1805,0x0000,0x0000, /* 2D0C */
+0x1807,0x0000,0x0000, 0x1809,0x0000,0x0000, 0x180B,0x0000,0x0000, /* 2D0F */
+0x180D,0x0000,0x0000, 0x1811,0x0000,0x0000, 0x1813,0x0000,0x0000, /* 2D12 */
+0x1815,0x0000,0x0000, 0x1817,0x0000,0x0000, 0x1819,0x0000,0x0000, /* 2D15 */
+0x181B,0x0000,0x0000, 0x181D,0x0000,0x0000, 0x181F,0x0000,0x0000, /* 2D18 */
+0x1821,0x0000,0x0000, 0x1823,0x0000,0x0000, 0x1825,0x0000,0x0000, /* 2D1B */
+0x1827,0x0000,0x0000, 0x182B,0x0000,0x0000, 0x182D,0x0000,0x0000, /* 2D1E */
+0x17F3,0x0000,0x0000, 0x1801,0x0000,0x0000, 0x180F,0x0000,0x0000, /* 2D21 */
+0x1829,0x0000,0x0000, 0x182F,0x0000,0x0000, 0xFBC0,0xAD26,0x0000, /* 2D24 */
+0xFBC0,0xAD27,0x0000, 0xFBC0,0xAD28,0x0000, 0xFBC0,0xAD29,0x0000, /* 2D27 */
+0xFBC0,0xAD2A,0x0000, 0xFBC0,0xAD2B,0x0000, 0xFBC0,0xAD2C,0x0000, /* 2D2A */
+0xFBC0,0xAD2D,0x0000, 0xFBC0,0xAD2E,0x0000, 0xFBC0,0xAD2F,0x0000, /* 2D2D */
+0x19CC,0x0000,0x0000, 0x19CD,0x0000,0x0000, 0x19CE,0x0000,0x0000, /* 2D30 */
+0x19CF,0x0000,0x0000, 0x19D0,0x0000,0x0000, 0x19D1,0x0000,0x0000, /* 2D33 */
+0x19D2,0x0000,0x0000, 0x19D3,0x0000,0x0000, 0x19D4,0x0000,0x0000, /* 2D36 */
+0x19D5,0x0000,0x0000, 0x19D6,0x0000,0x0000, 0x19D7,0x0000,0x0000, /* 2D39 */
+0x19D8,0x0000,0x0000, 0x19D9,0x0000,0x0000, 0x19DA,0x0000,0x0000, /* 2D3C */
+0x19DB,0x0000,0x0000, 0x19DC,0x0000,0x0000, 0x19DD,0x0000,0x0000, /* 2D3F */
+0x19DE,0x0000,0x0000, 0x19DF,0x0000,0x0000, 0x19E0,0x0000,0x0000, /* 2D42 */
+0x19E1,0x0000,0x0000, 0x19E2,0x0000,0x0000, 0x19E3,0x0000,0x0000, /* 2D45 */
+0x19E4,0x0000,0x0000, 0x19E5,0x0000,0x0000, 0x19E6,0x0000,0x0000, /* 2D48 */
+0x19E7,0x0000,0x0000, 0x19E8,0x0000,0x0000, 0x19E9,0x0000,0x0000, /* 2D4B */
+0x19EA,0x0000,0x0000, 0x19EB,0x0000,0x0000, 0x19EC,0x0000,0x0000, /* 2D4E */
+0x19ED,0x0000,0x0000, 0x19EE,0x0000,0x0000, 0x19EF,0x0000,0x0000, /* 2D51 */
+0x19F0,0x0000,0x0000, 0x19F1,0x0000,0x0000, 0x19F2,0x0000,0x0000, /* 2D54 */
+0x19F3,0x0000,0x0000, 0x19F4,0x0000,0x0000, 0x19F5,0x0000,0x0000, /* 2D57 */
+0x19F6,0x0000,0x0000, 0x19F7,0x0000,0x0000, 0x19F8,0x0000,0x0000, /* 2D5A */
+0x19F9,0x0000,0x0000, 0x19FA,0x0000,0x0000, 0x19FB,0x0000,0x0000, /* 2D5D */
+0x19FC,0x0000,0x0000, 0x19FD,0x0000,0x0000, 0x19FE,0x0000,0x0000, /* 2D60 */
+0x19FF,0x0000,0x0000, 0x1A00,0x0000,0x0000, 0x1A01,0x0000,0x0000, /* 2D63 */
+0xFBC0,0xAD66,0x0000, 0xFBC0,0xAD67,0x0000, 0xFBC0,0xAD68,0x0000, /* 2D66 */
+0xFBC0,0xAD69,0x0000, 0xFBC0,0xAD6A,0x0000, 0xFBC0,0xAD6B,0x0000, /* 2D69 */
+0xFBC0,0xAD6C,0x0000, 0xFBC0,0xAD6D,0x0000, 0xFBC0,0xAD6E,0x0000, /* 2D6C */
+0x1A02,0x0000,0x0000, 0xFBC0,0xAD70,0x0000, 0xFBC0,0xAD71,0x0000, /* 2D6F */
+0xFBC0,0xAD72,0x0000, 0xFBC0,0xAD73,0x0000, 0xFBC0,0xAD74,0x0000, /* 2D72 */
+0xFBC0,0xAD75,0x0000, 0xFBC0,0xAD76,0x0000, 0xFBC0,0xAD77,0x0000, /* 2D75 */
+0xFBC0,0xAD78,0x0000, 0xFBC0,0xAD79,0x0000, 0xFBC0,0xAD7A,0x0000, /* 2D78 */
+0xFBC0,0xAD7B,0x0000, 0xFBC0,0xAD7C,0x0000, 0xFBC0,0xAD7D,0x0000, /* 2D7B */
+0xFBC0,0xAD7E,0x0000, 0xFBC0,0xAD7F,0x0000, 0x1A13,0x0000,0x0000, /* 2D7E */
+0x1A28,0x0000,0x0000, 0x1A39,0x0000,0x0000, 0x1A42,0x0000,0x0000, /* 2D81 */
+0x1A4B,0x0000,0x0000, 0x1A71,0x0000,0x0000, 0x1A82,0x0000,0x0000, /* 2D84 */
+0x1A8B,0x0000,0x0000, 0x1AA1,0x0000,0x0000, 0x1AAA,0x0000,0x0000, /* 2D87 */
+0x1AB3,0x0000,0x0000, 0x1AE4,0x0000,0x0000, 0x1AFD,0x0000,0x0000, /* 2D8A */
+0x1B06,0x0000,0x0000, 0x1B0F,0x0000,0x0000, 0x1B31,0x0000,0x0000, /* 2D8D */
+0x1B3A,0x0000,0x0000, 0x1B43,0x0000,0x0000, 0x1B6C,0x0000,0x0000, /* 2D90 */
+0x1B25,0x0000,0x0000, 0x1B26,0x0000,0x0000, 0x1B27,0x0000,0x0000, /* 2D93 */
+0x1B28,0x0000,0x0000, 0xFBC0,0xAD97,0x0000, 0xFBC0,0xAD98,0x0000, /* 2D96 */
+0xFBC0,0xAD99,0x0000, 0xFBC0,0xAD9A,0x0000, 0xFBC0,0xAD9B,0x0000, /* 2D99 */
+0xFBC0,0xAD9C,0x0000, 0xFBC0,0xAD9D,0x0000, 0xFBC0,0xAD9E,0x0000, /* 2D9C */
+0xFBC0,0xAD9F,0x0000, 0x1B70,0x0000,0x0000, 0x1B71,0x0000,0x0000, /* 2D9F */
+0x1B72,0x0000,0x0000, 0x1B73,0x0000,0x0000, 0x1B74,0x0000,0x0000, /* 2DA2 */
+0x1B75,0x0000,0x0000, 0x1B76,0x0000,0x0000, 0xFBC0,0xADA7,0x0000, /* 2DA5 */
+0x1B77,0x0000,0x0000, 0x1B78,0x0000,0x0000, 0x1B79,0x0000,0x0000, /* 2DA8 */
+0x1B7A,0x0000,0x0000, 0x1B7B,0x0000,0x0000, 0x1B7C,0x0000,0x0000, /* 2DAB */
+0x1B7D,0x0000,0x0000, 0xFBC0,0xADAF,0x0000, 0x1B7E,0x0000,0x0000, /* 2DAE */
+0x1B7F,0x0000,0x0000, 0x1B80,0x0000,0x0000, 0x1B81,0x0000,0x0000, /* 2DB1 */
+0x1B82,0x0000,0x0000, 0x1B83,0x0000,0x0000, 0x1B84,0x0000,0x0000, /* 2DB4 */
+0xFBC0,0xADB7,0x0000, 0x1B85,0x0000,0x0000, 0x1B86,0x0000,0x0000, /* 2DB7 */
+0x1B87,0x0000,0x0000, 0x1B88,0x0000,0x0000, 0x1B89,0x0000,0x0000, /* 2DBA */
+0x1B8A,0x0000,0x0000, 0x1B8B,0x0000,0x0000, 0xFBC0,0xADBF,0x0000, /* 2DBD */
+0x1B8C,0x0000,0x0000, 0x1B8D,0x0000,0x0000, 0x1B8E,0x0000,0x0000, /* 2DC0 */
+0x1B8F,0x0000,0x0000, 0x1B90,0x0000,0x0000, 0x1B91,0x0000,0x0000, /* 2DC3 */
+0x1B92,0x0000,0x0000, 0xFBC0,0xADC7,0x0000, 0x1B93,0x0000,0x0000, /* 2DC6 */
+0x1B94,0x0000,0x0000, 0x1B95,0x0000,0x0000, 0x1B96,0x0000,0x0000, /* 2DC9 */
+0x1B97,0x0000,0x0000, 0x1B98,0x0000,0x0000, 0x1B99,0x0000,0x0000, /* 2DCC */
+0xFBC0,0xADCF,0x0000, 0x1B9A,0x0000,0x0000, 0x1B9B,0x0000,0x0000, /* 2DCF */
+0x1B9C,0x0000,0x0000, 0x1B9D,0x0000,0x0000, 0x1B9E,0x0000,0x0000, /* 2DD2 */
+0x1B9F,0x0000,0x0000, 0x1BA0,0x0000,0x0000, 0xFBC0,0xADD7,0x0000, /* 2DD5 */
+0x1BA1,0x0000,0x0000, 0x1BA2,0x0000,0x0000, 0x1BA3,0x0000,0x0000, /* 2DD8 */
+0x1BA4,0x0000,0x0000, 0x1BA5,0x0000,0x0000, 0x1BA6,0x0000,0x0000, /* 2DDB */
+0x1BA7,0x0000,0x0000, 0xFBC0,0xADDF,0x0000, 0x15C4,0x0000,0x0000, /* 2DDE */
+0x15C8,0x0000,0x0000, 0x15CC,0x0000,0x0000, 0x15E0,0x0000,0x0000, /* 2DE1 */
+0x1600,0x0000,0x0000, 0x160D,0x0000,0x0000, 0x1643,0x0000,0x0000, /* 2DE4 */
+0x165D,0x0000,0x0000, 0x166F,0x0000,0x0000, 0x1678,0x0000,0x0000, /* 2DE7 */
+0x1692,0x0000,0x0000, 0x16A2,0x0000,0x0000, 0x16AF,0x0000,0x0000, /* 2DEA */
+0x16B8,0x0000,0x0000, 0x16C1,0x0000,0x0000, 0x16F5,0x0000,0x0000, /* 2DED */
+0x171B,0x0000,0x0000, 0x1725,0x0000,0x0000, 0x1747,0x0000,0x0000, /* 2DF0 */
+0x174C,0x0000,0x0000, 0x179F,0x0000,0x0000, 0x16B8,0x16C1,0x0000, /* 2DF3 */
+0x15AC,0x0000,0x0000, 0x15F4,0x0000,0x0000, 0x1642,0x0000,0x0000, /* 2DF6 */
+0x16EC,0x0000,0x0000, 0x1768,0x0000,0x0000, 0x1775,0x0000,0x0000, /* 2DF9 */
+0x177A,0x0000,0x0000, 0x1784,0x0000,0x0000, 0x1789,0x0000,0x0000, /* 2DFC */
+0x1793,0x0000,0x0000 };
+
+static const uint16 uca520_p02E[]= { /* 2E00 (3 weights per char) */
+0x037E,0x0000,0x0000, 0x037F,0x0000,0x0000, 0x0329,0x0000,0x0000, /* 2E00 */
+0x032A,0x0000,0x0000, 0x032B,0x0000,0x0000, 0x032C,0x0000,0x0000, /* 2E03 */
+0x0380,0x0000,0x0000, 0x0381,0x0000,0x0000, 0x0382,0x0000,0x0000, /* 2E06 */
+0x032D,0x0000,0x0000, 0x032E,0x0000,0x0000, 0x0383,0x0000,0x0000, /* 2E09 */
+0x032F,0x0000,0x0000, 0x0330,0x0000,0x0000, 0x0384,0x0000,0x0000, /* 2E0C */
+0x0385,0x0000,0x0000, 0x0386,0x0000,0x0000, 0x0387,0x0000,0x0000, /* 2E0F */
+0x0388,0x0000,0x0000, 0x0389,0x0000,0x0000, 0x038A,0x0000,0x0000, /* 2E12 */
+0x038B,0x0000,0x0000, 0x038C,0x0000,0x0000, 0x022F,0x0000,0x0000, /* 2E15 */
+0x0280,0x0000,0x0000, 0x02E2,0x0000,0x0000, 0x038D,0x0000,0x0000, /* 2E18 */
+0x038E,0x0000,0x0000, 0x0331,0x0000,0x0000, 0x0332,0x0000,0x0000, /* 2E1B */
+0x038F,0x0000,0x0000, 0x0390,0x0000,0x0000, 0x0333,0x0000,0x0000, /* 2E1E */
+0x0334,0x0000,0x0000, 0x0335,0x0000,0x0000, 0x0336,0x0000,0x0000, /* 2E21 */
+0x0337,0x0000,0x0000, 0x0338,0x0000,0x0000, 0x0339,0x0000,0x0000, /* 2E24 */
+0x033A,0x0000,0x0000, 0x033B,0x0000,0x0000, 0x033C,0x0000,0x0000, /* 2E27 */
+0x02DC,0x0000,0x0000, 0x02DD,0x0000,0x0000, 0x02DE,0x0000,0x0000, /* 2E2A */
+0x02DF,0x0000,0x0000, 0x0275,0x0000,0x0000, 0x1751,0x0000,0x0000, /* 2E2D */
+0x028D,0x0000,0x0000, 0x0293,0x0000,0x0000, 0xFBC0,0xAE32,0x0000, /* 2E30 */
+0xFBC0,0xAE33,0x0000, 0xFBC0,0xAE34,0x0000, 0xFBC0,0xAE35,0x0000, /* 2E33 */
+0xFBC0,0xAE36,0x0000, 0xFBC0,0xAE37,0x0000, 0xFBC0,0xAE38,0x0000, /* 2E36 */
+0xFBC0,0xAE39,0x0000, 0xFBC0,0xAE3A,0x0000, 0xFBC0,0xAE3B,0x0000, /* 2E39 */
+0xFBC0,0xAE3C,0x0000, 0xFBC0,0xAE3D,0x0000, 0xFBC0,0xAE3E,0x0000, /* 2E3C */
+0xFBC0,0xAE3F,0x0000, 0xFBC0,0xAE40,0x0000, 0xFBC0,0xAE41,0x0000, /* 2E3F */
+0xFBC0,0xAE42,0x0000, 0xFBC0,0xAE43,0x0000, 0xFBC0,0xAE44,0x0000, /* 2E42 */
+0xFBC0,0xAE45,0x0000, 0xFBC0,0xAE46,0x0000, 0xFBC0,0xAE47,0x0000, /* 2E45 */
+0xFBC0,0xAE48,0x0000, 0xFBC0,0xAE49,0x0000, 0xFBC0,0xAE4A,0x0000, /* 2E48 */
+0xFBC0,0xAE4B,0x0000, 0xFBC0,0xAE4C,0x0000, 0xFBC0,0xAE4D,0x0000, /* 2E4B */
+0xFBC0,0xAE4E,0x0000, 0xFBC0,0xAE4F,0x0000, 0xFBC0,0xAE50,0x0000, /* 2E4E */
+0xFBC0,0xAE51,0x0000, 0xFBC0,0xAE52,0x0000, 0xFBC0,0xAE53,0x0000, /* 2E51 */
+0xFBC0,0xAE54,0x0000, 0xFBC0,0xAE55,0x0000, 0xFBC0,0xAE56,0x0000, /* 2E54 */
+0xFBC0,0xAE57,0x0000, 0xFBC0,0xAE58,0x0000, 0xFBC0,0xAE59,0x0000, /* 2E57 */
+0xFBC0,0xAE5A,0x0000, 0xFBC0,0xAE5B,0x0000, 0xFBC0,0xAE5C,0x0000, /* 2E5A */
+0xFBC0,0xAE5D,0x0000, 0xFBC0,0xAE5E,0x0000, 0xFBC0,0xAE5F,0x0000, /* 2E5D */
+0xFBC0,0xAE60,0x0000, 0xFBC0,0xAE61,0x0000, 0xFBC0,0xAE62,0x0000, /* 2E60 */
+0xFBC0,0xAE63,0x0000, 0xFBC0,0xAE64,0x0000, 0xFBC0,0xAE65,0x0000, /* 2E63 */
+0xFBC0,0xAE66,0x0000, 0xFBC0,0xAE67,0x0000, 0xFBC0,0xAE68,0x0000, /* 2E66 */
+0xFBC0,0xAE69,0x0000, 0xFBC0,0xAE6A,0x0000, 0xFBC0,0xAE6B,0x0000, /* 2E69 */
+0xFBC0,0xAE6C,0x0000, 0xFBC0,0xAE6D,0x0000, 0xFBC0,0xAE6E,0x0000, /* 2E6C */
+0xFBC0,0xAE6F,0x0000, 0xFBC0,0xAE70,0x0000, 0xFBC0,0xAE71,0x0000, /* 2E6F */
+0xFBC0,0xAE72,0x0000, 0xFBC0,0xAE73,0x0000, 0xFBC0,0xAE74,0x0000, /* 2E72 */
+0xFBC0,0xAE75,0x0000, 0xFBC0,0xAE76,0x0000, 0xFBC0,0xAE77,0x0000, /* 2E75 */
+0xFBC0,0xAE78,0x0000, 0xFBC0,0xAE79,0x0000, 0xFBC0,0xAE7A,0x0000, /* 2E78 */
+0xFBC0,0xAE7B,0x0000, 0xFBC0,0xAE7C,0x0000, 0xFBC0,0xAE7D,0x0000, /* 2E7B */
+0xFBC0,0xAE7E,0x0000, 0xFBC0,0xAE7F,0x0000, 0xFB40,0xCE36,0x0000, /* 2E7E */
+0xFB40,0xD382,0x0000, 0xFB40,0xCE5B,0x0000, 0xFB40,0xCE5A,0x0000, /* 2E81 */
+0xFB40,0xCE59,0x0000, 0xFB40,0xCEBB,0x0000, 0xFB40,0xD182,0x0000, /* 2E84 */
+0xFB40,0xD1E0,0x0000, 0xFB40,0xD200,0x0000, 0xFB40,0xD202,0x0000, /* 2E87 */
+0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xDC0F,0x0000, /* 2E8A */
+0xFB40,0xDC0F,0x0000, 0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, /* 2E8D */
+0xFB40,0xDC22,0x0000, 0xFB40,0xDC23,0x0000, 0xFB40,0xDDF3,0x0000, /* 2E90 */
+0xFB40,0xDE7A,0x0000, 0xFB40,0xDF51,0x0000, 0xFB40,0xDF50,0x0000, /* 2E93 */
+0xFB40,0xDFC4,0x0000, 0xFB40,0xDFC3,0x0000, 0xFB40,0xE24C,0x0000, /* 2E96 */
+0xFB40,0xE535,0x0000, 0xFBC0,0xAE9A,0x0000, 0xFB40,0xE5E1,0x0000, /* 2E99 */
+0xFB40,0xE5E5,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xEB7A,0x0000, /* 2E9C */
+0xFB40,0xEBCD,0x0000, 0xFB40,0xEC11,0x0000, 0xFB40,0xEC35,0x0000, /* 2E9F */
+0xFB40,0xEC3A,0x0000, 0xFB40,0xF06C,0x0000, 0xFB40,0xF22B,0x0000, /* 2EA2 */
+0xFB40,0xF22B,0x0000, 0xFB40,0xCE2C,0x0000, 0xFB40,0xF25B,0x0000, /* 2EA5 */
+0xFB40,0xF2AD,0x0000, 0xFB40,0xF38B,0x0000, 0xFB40,0xF58B,0x0000, /* 2EA8 */
+0xFB40,0xF6EE,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF93B,0x0000, /* 2EAB */
+0xFB40,0xFAF9,0x0000, 0xFB40,0xFCF9,0x0000, 0xFB40,0xFE9F,0x0000, /* 2EAE */
+0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF53,0x0000, /* 2EB1 */
+0xFB40,0xFF53,0x0000, 0xFB40,0xFF52,0x0000, 0xFB40,0xFF8A,0x0000, /* 2EB4 */
+0xFB40,0xFF8A,0x0000, 0xFB40,0xFF8B,0x0000, 0xFB41,0x8002,0x0000, /* 2EB7 */
+0xFB41,0x8080,0x0000, 0xFB41,0x807F,0x0000, 0xFB41,0x8089,0x0000, /* 2EBA */
+0xFB41,0x81FC,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, /* 2EBD */
+0xFB41,0x8279,0x0000, 0xFB41,0x864E,0x0000, 0xFB41,0x8864,0x0000, /* 2EC0 */
+0xFB41,0x8980,0x0000, 0xFB41,0x897F,0x0000, 0xFB41,0x89C1,0x0000, /* 2EC3 */
+0xFB41,0x89D2,0x0000, 0xFB41,0x89D2,0x0000, 0xFB41,0x8BA0,0x0000, /* 2EC6 */
+0xFB41,0x8D1D,0x0000, 0xFB41,0x8DB3,0x0000, 0xFB41,0x8F66,0x0000, /* 2EC9 */
+0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, 0xFB41,0x8FB6,0x0000, /* 2ECC */
+0xFB41,0x9091,0x0000, 0xFB41,0x9485,0x0000, 0xFB41,0x9577,0x0000, /* 2ECF */
+0xFB41,0x9578,0x0000, 0xFB41,0x957F,0x0000, 0xFB41,0x95E8,0x0000, /* 2ED2 */
+0xFB41,0x961C,0x0000, 0xFB41,0x961D,0x0000, 0xFB41,0x96E8,0x0000, /* 2ED5 */
+0xFB41,0x9752,0x0000, 0xFB41,0x97E6,0x0000, 0xFB41,0x9875,0x0000, /* 2ED8 */
+0xFB41,0x98CE,0x0000, 0xFB41,0x98DE,0x0000, 0xFB41,0x98DF,0x0000, /* 2EDB */
+0xFB41,0x98E0,0x0000, 0xFB41,0x98E0,0x0000, 0xFB41,0x9963,0x0000, /* 2EDE */
+0xFB41,0x9996,0x0000, 0xFB41,0x9A6C,0x0000, 0xFB41,0x9AA8,0x0000, /* 2EE1 */
+0xFB41,0x9B3C,0x0000, 0xFB41,0x9C7C,0x0000, 0xFB41,0x9E1F,0x0000, /* 2EE4 */
+0xFB41,0x9E75,0x0000, 0xFB41,0x9EA6,0x0000, 0xFB41,0x9EC4,0x0000, /* 2EE7 */
+0xFB41,0x9EFE,0x0000, 0xFB41,0x9F4A,0x0000, 0xFB41,0x9F50,0x0000, /* 2EEA */
+0xFB41,0x9F52,0x0000, 0xFB41,0x9F7F,0x0000, 0xFB41,0x9F8D,0x0000, /* 2EED */
+0xFB41,0x9F99,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, /* 2EF0 */
+0xFB41,0x9F9F,0x0000, 0xFBC0,0xAEF4,0x0000, 0xFBC0,0xAEF5,0x0000, /* 2EF3 */
+0xFBC0,0xAEF6,0x0000, 0xFBC0,0xAEF7,0x0000, 0xFBC0,0xAEF8,0x0000, /* 2EF6 */
+0xFBC0,0xAEF9,0x0000, 0xFBC0,0xAEFA,0x0000, 0xFBC0,0xAEFB,0x0000, /* 2EF9 */
+0xFBC0,0xAEFC,0x0000, 0xFBC0,0xAEFD,0x0000, 0xFBC0,0xAEFE,0x0000, /* 2EFC */
+0xFBC0,0xAEFF,0x0000 };
+
+static const uint16 uca520_p02F[]= { /* 2F00 (3 weights per char) */
+0xFB40,0xCE00,0x0000, 0xFB40,0xCE28,0x0000, 0xFB40,0xCE36,0x0000, /* 2F00 */
+0xFB40,0xCE3F,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE85,0x0000, /* 2F03 */
+0xFB40,0xCE8C,0x0000, 0xFB40,0xCEA0,0x0000, 0xFB40,0xCEBA,0x0000, /* 2F06 */
+0xFB40,0xD13F,0x0000, 0xFB40,0xD165,0x0000, 0xFB40,0xD16B,0x0000, /* 2F09 */
+0xFB40,0xD182,0x0000, 0xFB40,0xD196,0x0000, 0xFB40,0xD1AB,0x0000, /* 2F0C */
+0xFB40,0xD1E0,0x0000, 0xFB40,0xD1F5,0x0000, 0xFB40,0xD200,0x0000, /* 2F0F */
+0xFB40,0xD29B,0x0000, 0xFB40,0xD2F9,0x0000, 0xFB40,0xD315,0x0000, /* 2F12 */
+0xFB40,0xD31A,0x0000, 0xFB40,0xD338,0x0000, 0xFB40,0xD341,0x0000, /* 2F15 */
+0xFB40,0xD35C,0x0000, 0xFB40,0xD369,0x0000, 0xFB40,0xD382,0x0000, /* 2F18 */
+0xFB40,0xD3B6,0x0000, 0xFB40,0xD3C8,0x0000, 0xFB40,0xD3E3,0x0000, /* 2F1B */
+0xFB40,0xD6D7,0x0000, 0xFB40,0xD71F,0x0000, 0xFB40,0xD8EB,0x0000, /* 2F1E */
+0xFB40,0xD902,0x0000, 0xFB40,0xD90A,0x0000, 0xFB40,0xD915,0x0000, /* 2F21 */
+0xFB40,0xD927,0x0000, 0xFB40,0xD973,0x0000, 0xFB40,0xDB50,0x0000, /* 2F24 */
+0xFB40,0xDB80,0x0000, 0xFB40,0xDBF8,0x0000, 0xFB40,0xDC0F,0x0000, /* 2F27 */
+0xFB40,0xDC22,0x0000, 0xFB40,0xDC38,0x0000, 0xFB40,0xDC6E,0x0000, /* 2F2A */
+0xFB40,0xDC71,0x0000, 0xFB40,0xDDDB,0x0000, 0xFB40,0xDDE5,0x0000, /* 2F2D */
+0xFB40,0xDDF1,0x0000, 0xFB40,0xDDFE,0x0000, 0xFB40,0xDE72,0x0000, /* 2F30 */
+0xFB40,0xDE7A,0x0000, 0xFB40,0xDE7F,0x0000, 0xFB40,0xDEF4,0x0000, /* 2F33 */
+0xFB40,0xDEFE,0x0000, 0xFB40,0xDF0B,0x0000, 0xFB40,0xDF13,0x0000, /* 2F36 */
+0xFB40,0xDF50,0x0000, 0xFB40,0xDF61,0x0000, 0xFB40,0xDF73,0x0000, /* 2F39 */
+0xFB40,0xDFC3,0x0000, 0xFB40,0xE208,0x0000, 0xFB40,0xE236,0x0000, /* 2F3C */
+0xFB40,0xE24B,0x0000, 0xFB40,0xE52F,0x0000, 0xFB40,0xE534,0x0000, /* 2F3F */
+0xFB40,0xE587,0x0000, 0xFB40,0xE597,0x0000, 0xFB40,0xE5A4,0x0000, /* 2F42 */
+0xFB40,0xE5B9,0x0000, 0xFB40,0xE5E0,0x0000, 0xFB40,0xE5E5,0x0000, /* 2F45 */
+0xFB40,0xE6F0,0x0000, 0xFB40,0xE708,0x0000, 0xFB40,0xE728,0x0000, /* 2F48 */
+0xFB40,0xEB20,0x0000, 0xFB40,0xEB62,0x0000, 0xFB40,0xEB79,0x0000, /* 2F4B */
+0xFB40,0xEBB3,0x0000, 0xFB40,0xEBCB,0x0000, 0xFB40,0xEBD4,0x0000, /* 2F4E */
+0xFB40,0xEBDB,0x0000, 0xFB40,0xEC0F,0x0000, 0xFB40,0xEC14,0x0000, /* 2F51 */
+0xFB40,0xEC34,0x0000, 0xFB40,0xF06B,0x0000, 0xFB40,0xF22A,0x0000, /* 2F54 */
+0xFB40,0xF236,0x0000, 0xFB40,0xF23B,0x0000, 0xFB40,0xF23F,0x0000, /* 2F57 */
+0xFB40,0xF247,0x0000, 0xFB40,0xF259,0x0000, 0xFB40,0xF25B,0x0000, /* 2F5A */
+0xFB40,0xF2AC,0x0000, 0xFB40,0xF384,0x0000, 0xFB40,0xF389,0x0000, /* 2F5D */
+0xFB40,0xF4DC,0x0000, 0xFB40,0xF4E6,0x0000, 0xFB40,0xF518,0x0000, /* 2F60 */
+0xFB40,0xF51F,0x0000, 0xFB40,0xF528,0x0000, 0xFB40,0xF530,0x0000, /* 2F63 */
+0xFB40,0xF58B,0x0000, 0xFB40,0xF592,0x0000, 0xFB40,0xF676,0x0000, /* 2F66 */
+0xFB40,0xF67D,0x0000, 0xFB40,0xF6AE,0x0000, 0xFB40,0xF6BF,0x0000, /* 2F69 */
+0xFB40,0xF6EE,0x0000, 0xFB40,0xF7DB,0x0000, 0xFB40,0xF7E2,0x0000, /* 2F6C */
+0xFB40,0xF7F3,0x0000, 0xFB40,0xF93A,0x0000, 0xFB40,0xF9B8,0x0000, /* 2F6F */
+0xFB40,0xF9BE,0x0000, 0xFB40,0xFA74,0x0000, 0xFB40,0xFACB,0x0000, /* 2F72 */
+0xFB40,0xFAF9,0x0000, 0xFB40,0xFC73,0x0000, 0xFB40,0xFCF8,0x0000, /* 2F75 */
+0xFB40,0xFF36,0x0000, 0xFB40,0xFF51,0x0000, 0xFB40,0xFF8A,0x0000, /* 2F78 */
+0xFB40,0xFFBD,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x800C,0x0000, /* 2F7B */
+0xFB41,0x8012,0x0000, 0xFB41,0x8033,0x0000, 0xFB41,0x807F,0x0000, /* 2F7E */
+0xFB41,0x8089,0x0000, 0xFB41,0x81E3,0x0000, 0xFB41,0x81EA,0x0000, /* 2F81 */
+0xFB41,0x81F3,0x0000, 0xFB41,0x81FC,0x0000, 0xFB41,0x820C,0x0000, /* 2F84 */
+0xFB41,0x821B,0x0000, 0xFB41,0x821F,0x0000, 0xFB41,0x826E,0x0000, /* 2F87 */
+0xFB41,0x8272,0x0000, 0xFB41,0x8278,0x0000, 0xFB41,0x864D,0x0000, /* 2F8A */
+0xFB41,0x866B,0x0000, 0xFB41,0x8840,0x0000, 0xFB41,0x884C,0x0000, /* 2F8D */
+0xFB41,0x8863,0x0000, 0xFB41,0x897E,0x0000, 0xFB41,0x898B,0x0000, /* 2F90 */
+0xFB41,0x89D2,0x0000, 0xFB41,0x8A00,0x0000, 0xFB41,0x8C37,0x0000, /* 2F93 */
+0xFB41,0x8C46,0x0000, 0xFB41,0x8C55,0x0000, 0xFB41,0x8C78,0x0000, /* 2F96 */
+0xFB41,0x8C9D,0x0000, 0xFB41,0x8D64,0x0000, 0xFB41,0x8D70,0x0000, /* 2F99 */
+0xFB41,0x8DB3,0x0000, 0xFB41,0x8EAB,0x0000, 0xFB41,0x8ECA,0x0000, /* 2F9C */
+0xFB41,0x8F9B,0x0000, 0xFB41,0x8FB0,0x0000, 0xFB41,0x8FB5,0x0000, /* 2F9F */
+0xFB41,0x9091,0x0000, 0xFB41,0x9149,0x0000, 0xFB41,0x91C6,0x0000, /* 2FA2 */
+0xFB41,0x91CC,0x0000, 0xFB41,0x91D1,0x0000, 0xFB41,0x9577,0x0000, /* 2FA5 */
+0xFB41,0x9580,0x0000, 0xFB41,0x961C,0x0000, 0xFB41,0x96B6,0x0000, /* 2FA8 */
+0xFB41,0x96B9,0x0000, 0xFB41,0x96E8,0x0000, 0xFB41,0x9751,0x0000, /* 2FAB */
+0xFB41,0x975E,0x0000, 0xFB41,0x9762,0x0000, 0xFB41,0x9769,0x0000, /* 2FAE */
+0xFB41,0x97CB,0x0000, 0xFB41,0x97ED,0x0000, 0xFB41,0x97F3,0x0000, /* 2FB1 */
+0xFB41,0x9801,0x0000, 0xFB41,0x98A8,0x0000, 0xFB41,0x98DB,0x0000, /* 2FB4 */
+0xFB41,0x98DF,0x0000, 0xFB41,0x9996,0x0000, 0xFB41,0x9999,0x0000, /* 2FB7 */
+0xFB41,0x99AC,0x0000, 0xFB41,0x9AA8,0x0000, 0xFB41,0x9AD8,0x0000, /* 2FBA */
+0xFB41,0x9ADF,0x0000, 0xFB41,0x9B25,0x0000, 0xFB41,0x9B2F,0x0000, /* 2FBD */
+0xFB41,0x9B32,0x0000, 0xFB41,0x9B3C,0x0000, 0xFB41,0x9B5A,0x0000, /* 2FC0 */
+0xFB41,0x9CE5,0x0000, 0xFB41,0x9E75,0x0000, 0xFB41,0x9E7F,0x0000, /* 2FC3 */
+0xFB41,0x9EA5,0x0000, 0xFB41,0x9EBB,0x0000, 0xFB41,0x9EC3,0x0000, /* 2FC6 */
+0xFB41,0x9ECD,0x0000, 0xFB41,0x9ED1,0x0000, 0xFB41,0x9EF9,0x0000, /* 2FC9 */
+0xFB41,0x9EFD,0x0000, 0xFB41,0x9F0E,0x0000, 0xFB41,0x9F13,0x0000, /* 2FCC */
+0xFB41,0x9F20,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB41,0x9F4A,0x0000, /* 2FCF */
+0xFB41,0x9F52,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB41,0x9F9C,0x0000, /* 2FD2 */
+0xFB41,0x9FA0,0x0000, 0xFBC0,0xAFD6,0x0000, 0xFBC0,0xAFD7,0x0000, /* 2FD5 */
+0xFBC0,0xAFD8,0x0000, 0xFBC0,0xAFD9,0x0000, 0xFBC0,0xAFDA,0x0000, /* 2FD8 */
+0xFBC0,0xAFDB,0x0000, 0xFBC0,0xAFDC,0x0000, 0xFBC0,0xAFDD,0x0000, /* 2FDB */
+0xFBC0,0xAFDE,0x0000, 0xFBC0,0xAFDF,0x0000, 0xFBC0,0xAFE0,0x0000, /* 2FDE */
+0xFBC0,0xAFE1,0x0000, 0xFBC0,0xAFE2,0x0000, 0xFBC0,0xAFE3,0x0000, /* 2FE1 */
+0xFBC0,0xAFE4,0x0000, 0xFBC0,0xAFE5,0x0000, 0xFBC0,0xAFE6,0x0000, /* 2FE4 */
+0xFBC0,0xAFE7,0x0000, 0xFBC0,0xAFE8,0x0000, 0xFBC0,0xAFE9,0x0000, /* 2FE7 */
+0xFBC0,0xAFEA,0x0000, 0xFBC0,0xAFEB,0x0000, 0xFBC0,0xAFEC,0x0000, /* 2FEA */
+0xFBC0,0xAFED,0x0000, 0xFBC0,0xAFEE,0x0000, 0xFBC0,0xAFEF,0x0000, /* 2FED */
+0x10D4,0x0000,0x0000, 0x10D5,0x0000,0x0000, 0x10D6,0x0000,0x0000, /* 2FF0 */
+0x10D7,0x0000,0x0000, 0x10D8,0x0000,0x0000, 0x10D9,0x0000,0x0000, /* 2FF3 */
+0x10DA,0x0000,0x0000, 0x10DB,0x0000,0x0000, 0x10DC,0x0000,0x0000, /* 2FF6 */
+0x10DD,0x0000,0x0000, 0x10DE,0x0000,0x0000, 0x10DF,0x0000,0x0000, /* 2FF9 */
+0xFBC0,0xAFFC,0x0000, 0xFBC0,0xAFFD,0x0000, 0xFBC0,0xAFFE,0x0000, /* 2FFC */
+0xFBC0,0xAFFF,0x0000 };
+
+static const uint16 uca520_p030[]= { /* 3000 (3 weights per char) */
+0x020A,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0291,0x0000,0x0000, /* 3000 */
+0x0374,0x0000,0x0000, 0x1104,0x0000,0x0000, 0x11D7,0x0000,0x0000, /* 3003 */
+0x2B20,0x2B36,0x0000, 0x1205,0x0000,0x0000, 0x033D,0x0000,0x0000, /* 3006 */
+0x033E,0x0000,0x0000, 0x033F,0x0000,0x0000, 0x0340,0x0000,0x0000, /* 3009 */
+0x0341,0x0000,0x0000, 0x0342,0x0000,0x0000, 0x0343,0x0000,0x0000, /* 300C */
+0x0344,0x0000,0x0000, 0x0345,0x0000,0x0000, 0x0346,0x0000,0x0000, /* 300F */
+0x1105,0x0000,0x0000, 0x1106,0x0000,0x0000, 0x0347,0x0000,0x0000, /* 3012 */
+0x0348,0x0000,0x0000, 0x0349,0x0000,0x0000, 0x034A,0x0000,0x0000, /* 3015 */
+0x034B,0x0000,0x0000, 0x034C,0x0000,0x0000, 0x034D,0x0000,0x0000, /* 3018 */
+0x034E,0x0000,0x0000, 0x0230,0x0000,0x0000, 0x02FA,0x0000,0x0000, /* 301B */
+0x02FB,0x0000,0x0000, 0x02FC,0x0000,0x0000, 0x1107,0x0000,0x0000, /* 301E */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 3021 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 3024 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 3027 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 302A */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 302D */
+0x0231,0x0000,0x0000, 0x11D9,0x0000,0x0000, 0x11D9,0x0000,0x0000, /* 3030 */
+0x11DA,0x0000,0x0000, 0x11DA,0x0000,0x0000, 0x11DB,0x0000,0x0000, /* 3033 */
+0x1105,0x0000,0x0000, 0x1108,0x0000,0x0000, 0xFB40,0xD341,0x0000, /* 3036 */
+0xFB40,0xD344,0x0000, 0xFB40,0xD345,0x0000, 0x11D8,0x0000,0x0000, /* 3039 */
+0x2B33,0x2B21,0x0000, 0x0375,0x0000,0x0000, 0x1109,0x0000,0x0000, /* 303C */
+0x110A,0x0000,0x0000, 0xFBC0,0xB040,0x0000, 0x2B15,0x0000,0x0000, /* 303F */
+0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* 3042 */
+0x2B17,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* 3045 */
+0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* 3048 */
+0x2B1A,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* 304B */
+0x2B1B,0x0000,0x0000, 0x2B1C,0x0000,0x0000, 0x2B1C,0x0000,0x0000, /* 304E */
+0x2B1D,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* 3051 */
+0x2B1E,0x0000,0x0000, 0x2B1F,0x0000,0x0000, 0x2B1F,0x0000,0x0000, /* 3054 */
+0x2B20,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 3057 */
+0x2B21,0x0000,0x0000, 0x2B22,0x0000,0x0000, 0x2B22,0x0000,0x0000, /* 305A */
+0x2B23,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* 305D */
+0x2B24,0x0000,0x0000, 0x2B25,0x0000,0x0000, 0x2B25,0x0000,0x0000, /* 3060 */
+0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, /* 3063 */
+0x2B27,0x0000,0x0000, 0x2B27,0x0000,0x0000, 0x2B28,0x0000,0x0000, /* 3066 */
+0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* 3069 */
+0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* 306C */
+0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 306F */
+0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, /* 3072 */
+0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* 3075 */
+0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 3078 */
+0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, /* 307B */
+0x2B33,0x0000,0x0000, 0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, /* 307E */
+0x2B36,0x0000,0x0000, 0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, /* 3081 */
+0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* 3084 */
+0x2B3A,0x0000,0x0000, 0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 3087 */
+0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 308A */
+0x2B3F,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B40,0x0000,0x0000, /* 308D */
+0x2B41,0x0000,0x0000, 0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, /* 3090 */
+0x2B44,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B1A,0x0000,0x0000, /* 3093 */
+0x2B1D,0x0000,0x0000, 0xFBC0,0xB097,0x0000, 0xFBC0,0xB098,0x0000, /* 3096 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0220,0x0000,0x0000, /* 3099 */
+0x0221,0x0000,0x0000, 0x11DC,0x0000,0x0000, 0x11DC,0x0000,0x0000, /* 309C */
+0x2B3A,0x2B3C,0x0000, 0x0232,0x0000,0x0000, 0x2B15,0x0000,0x0000, /* 309F */
+0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* 30A2 */
+0x2B17,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* 30A5 */
+0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* 30A8 */
+0x2B1A,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* 30AB */
+0x2B1B,0x0000,0x0000, 0x2B1C,0x0000,0x0000, 0x2B1C,0x0000,0x0000, /* 30AE */
+0x2B1D,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* 30B1 */
+0x2B1E,0x0000,0x0000, 0x2B1F,0x0000,0x0000, 0x2B1F,0x0000,0x0000, /* 30B4 */
+0x2B20,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 30B7 */
+0x2B21,0x0000,0x0000, 0x2B22,0x0000,0x0000, 0x2B22,0x0000,0x0000, /* 30BA */
+0x2B23,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* 30BD */
+0x2B24,0x0000,0x0000, 0x2B25,0x0000,0x0000, 0x2B25,0x0000,0x0000, /* 30C0 */
+0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B26,0x0000,0x0000, /* 30C3 */
+0x2B27,0x0000,0x0000, 0x2B27,0x0000,0x0000, 0x2B28,0x0000,0x0000, /* 30C6 */
+0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* 30C9 */
+0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* 30CC */
+0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 30CF */
+0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B2F,0x0000,0x0000, /* 30D2 */
+0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* 30D5 */
+0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 30D8 */
+0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B32,0x0000,0x0000, /* 30DB */
+0x2B33,0x0000,0x0000, 0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, /* 30DE */
+0x2B36,0x0000,0x0000, 0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, /* 30E1 */
+0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* 30E4 */
+0x2B3A,0x0000,0x0000, 0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 30E7 */
+0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 30EA */
+0x2B3F,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B40,0x0000,0x0000, /* 30ED */
+0x2B41,0x0000,0x0000, 0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, /* 30F0 */
+0x2B44,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B1A,0x0000,0x0000, /* 30F3 */
+0x2B1D,0x0000,0x0000, 0x2B40,0x0000,0x0000, 0x2B41,0x0000,0x0000, /* 30F6 */
+0x2B42,0x0000,0x0000, 0x2B43,0x0000,0x0000, 0x0233,0x0000,0x0000, /* 30F9 */
+0x11DD,0x0000,0x0000, 0x11DE,0x0000,0x0000, 0x11DE,0x0000,0x0000, /* 30FC */
+0x2B1E,0x2B28,0x0000 };
+
+static const uint16 uca520_p031[]= { /* 3100 (3 weights per char) */
+0xFBC0,0xB100,0x0000, 0xFBC0,0xB101,0x0000, 0xFBC0,0xB102,0x0000, /* 3100 */
+0xFBC0,0xB103,0x0000, 0xFBC0,0xB104,0x0000, 0x2B45,0x0000,0x0000, /* 3103 */
+0x2B46,0x0000,0x0000, 0x2B47,0x0000,0x0000, 0x2B48,0x0000,0x0000, /* 3106 */
+0x2B4A,0x0000,0x0000, 0x2B4B,0x0000,0x0000, 0x2B4C,0x0000,0x0000, /* 3109 */
+0x2B4D,0x0000,0x0000, 0x2B4E,0x0000,0x0000, 0x2B4F,0x0000,0x0000, /* 310C */
+0x2B52,0x0000,0x0000, 0x2B53,0x0000,0x0000, 0x2B54,0x0000,0x0000, /* 310F */
+0x2B55,0x0000,0x0000, 0x2B57,0x0000,0x0000, 0x2B58,0x0000,0x0000, /* 3112 */
+0x2B59,0x0000,0x0000, 0x2B5A,0x0000,0x0000, 0x2B5B,0x0000,0x0000, /* 3115 */
+0x2B5C,0x0000,0x0000, 0x2B5D,0x0000,0x0000, 0x2B5E,0x0000,0x0000, /* 3118 */
+0x2B5F,0x0000,0x0000, 0x2B61,0x0000,0x0000, 0x2B62,0x0000,0x0000, /* 311B */
+0x2B64,0x0000,0x0000, 0x2B65,0x0000,0x0000, 0x2B66,0x0000,0x0000, /* 311E */
+0x2B67,0x0000,0x0000, 0x2B68,0x0000,0x0000, 0x2B69,0x0000,0x0000, /* 3121 */
+0x2B6A,0x0000,0x0000, 0x2B6C,0x0000,0x0000, 0x2B70,0x0000,0x0000, /* 3124 */
+0x2B71,0x0000,0x0000, 0x2B72,0x0000,0x0000, 0x2B73,0x0000,0x0000, /* 3127 */
+0x2B49,0x0000,0x0000, 0x2B50,0x0000,0x0000, 0x2B56,0x0000,0x0000, /* 312A */
+0x2B74,0x0000,0x0000, 0xFBC0,0xB12E,0x0000, 0xFBC0,0xB12F,0x0000, /* 312D */
+0xFBC0,0xB130,0x0000, 0x29B0,0x0000,0x0000, 0x29B1,0x0000,0x0000, /* 3130 */
+0x2A8E,0x0000,0x0000, 0x29B2,0x0000,0x0000, 0x2A90,0x0000,0x0000, /* 3133 */
+0x2A91,0x0000,0x0000, 0x29B3,0x0000,0x0000, 0x29B4,0x0000,0x0000, /* 3136 */
+0x29B5,0x0000,0x0000, 0x2A94,0x0000,0x0000, 0x2A95,0x0000,0x0000, /* 3139 */
+0x2A96,0x0000,0x0000, 0x2A97,0x0000,0x0000, 0x2A98,0x0000,0x0000, /* 313C */
+0x2A99,0x0000,0x0000, 0x29CA,0x0000,0x0000, 0x29B6,0x0000,0x0000, /* 313F */
+0x29B7,0x0000,0x0000, 0x29B8,0x0000,0x0000, 0x29D1,0x0000,0x0000, /* 3142 */
+0x29B9,0x0000,0x0000, 0x29BA,0x0000,0x0000, 0x29BB,0x0000,0x0000, /* 3145 */
+0x29BC,0x0000,0x0000, 0x29BD,0x0000,0x0000, 0x29BE,0x0000,0x0000, /* 3148 */
+0x29BF,0x0000,0x0000, 0x29C0,0x0000,0x0000, 0x29C1,0x0000,0x0000, /* 314B */
+0x29C2,0x0000,0x0000, 0x2A2E,0x0000,0x0000, 0x2A2F,0x0000,0x0000, /* 314E */
+0x2A30,0x0000,0x0000, 0x2A31,0x0000,0x0000, 0x2A32,0x0000,0x0000, /* 3151 */
+0x2A33,0x0000,0x0000, 0x2A34,0x0000,0x0000, 0x2A35,0x0000,0x0000, /* 3154 */
+0x2A36,0x0000,0x0000, 0x2A37,0x0000,0x0000, 0x2A38,0x0000,0x0000, /* 3157 */
+0x2A39,0x0000,0x0000, 0x2A3A,0x0000,0x0000, 0x2A3B,0x0000,0x0000, /* 315A */
+0x2A3C,0x0000,0x0000, 0x2A3D,0x0000,0x0000, 0x2A3E,0x0000,0x0000, /* 315D */
+0x2A3F,0x0000,0x0000, 0x2A40,0x0000,0x0000, 0x2A41,0x0000,0x0000, /* 3160 */
+0x2A42,0x0000,0x0000, 0x2A2D,0x0000,0x0000, 0x29C4,0x0000,0x0000, /* 3163 */
+0x29C5,0x0000,0x0000, 0x2AAB,0x0000,0x0000, 0x2AAC,0x0000,0x0000, /* 3166 */
+0x2AB0,0x0000,0x0000, 0x2AB2,0x0000,0x0000, 0x2AB7,0x0000,0x0000, /* 3169 */
+0x2ABB,0x0000,0x0000, 0x2ABD,0x0000,0x0000, 0x29CC,0x0000,0x0000, /* 316C */
+0x2AC1,0x0000,0x0000, 0x2AC3,0x0000,0x0000, 0x29CD,0x0000,0x0000, /* 316F */
+0x29CE,0x0000,0x0000, 0x29D0,0x0000,0x0000, 0x29D2,0x0000,0x0000, /* 3172 */
+0x29D3,0x0000,0x0000, 0x29D7,0x0000,0x0000, 0x29D9,0x0000,0x0000, /* 3175 */
+0x29DB,0x0000,0x0000, 0x29DC,0x0000,0x0000, 0x29DD,0x0000,0x0000, /* 3178 */
+0x29DE,0x0000,0x0000, 0x29DF,0x0000,0x0000, 0x29E2,0x0000,0x0000, /* 317B */
+0x29E6,0x0000,0x0000, 0x29F0,0x0000,0x0000, 0x29F7,0x0000,0x0000, /* 317E */
+0x29FC,0x0000,0x0000, 0x2AD5,0x0000,0x0000, 0x2AD6,0x0000,0x0000, /* 3181 */
+0x2A07,0x0000,0x0000, 0x2A08,0x0000,0x0000, 0x2A09,0x0000,0x0000, /* 3184 */
+0x2A51,0x0000,0x0000, 0x2A52,0x0000,0x0000, 0x2A55,0x0000,0x0000, /* 3187 */
+0x2A5E,0x0000,0x0000, 0x2A5F,0x0000,0x0000, 0x2A61,0x0000,0x0000, /* 318A */
+0x2A6B,0x0000,0x0000, 0x2A6E,0x0000,0x0000, 0xFBC0,0xB18F,0x0000, /* 318D */
+0x110B,0x0000,0x0000, 0x110C,0x0000,0x0000, 0xFB40,0xCE00,0x0000, /* 3190 */
+0xFB40,0xCE8C,0x0000, 0xFB40,0xCE09,0x0000, 0xFB40,0xD6DB,0x0000, /* 3193 */
+0xFB40,0xCE0A,0x0000, 0xFB40,0xCE2D,0x0000, 0xFB40,0xCE0B,0x0000, /* 3196 */
+0xFB40,0xF532,0x0000, 0xFB40,0xCE59,0x0000, 0xFB40,0xCE19,0x0000, /* 3199 */
+0xFB40,0xCE01,0x0000, 0xFB40,0xD929,0x0000, 0xFB40,0xD730,0x0000, /* 319C */
+0xFB40,0xCEBA,0x0000, 0x2B45,0x0000,0x0000, 0x2B5B,0x0000,0x0000, /* 319F */
+0x2B53,0x0000,0x0000, 0x2B4E,0x0000,0x0000, 0x2B63,0x0000,0x0000, /* 31A2 */
+0x2B63,0x0000,0x0000, 0x2B60,0x0000,0x0000, 0x2B5F,0x0000,0x0000, /* 31A5 */
+0x2B72,0x0000,0x0000, 0x2B5E,0x0000,0x0000, 0x2B71,0x0000,0x0000, /* 31A8 */
+0x2B72,0x0000,0x0000, 0x2B6F,0x0000,0x0000, 0x2B51,0x0000,0x0000, /* 31AB */
+0x2B64,0x0000,0x0000, 0x2B66,0x0000,0x0000, 0x2B6D,0x0000,0x0000, /* 31AE */
+0x2B6E,0x0000,0x0000, 0x2B6B,0x0000,0x0000, 0x2B71,0x0000,0x0000, /* 31B1 */
+0x2B46,0x0000,0x0000, 0x2B4B,0x0000,0x0000, 0x2B4F,0x0000,0x0000, /* 31B4 */
+0x2B52,0x0000,0x0000, 0xFBC0,0xB1B8,0x0000, 0xFBC0,0xB1B9,0x0000, /* 31B7 */
+0xFBC0,0xB1BA,0x0000, 0xFBC0,0xB1BB,0x0000, 0xFBC0,0xB1BC,0x0000, /* 31BA */
+0xFBC0,0xB1BD,0x0000, 0xFBC0,0xB1BE,0x0000, 0xFBC0,0xB1BF,0x0000, /* 31BD */
+0x10E0,0x0000,0x0000, 0x10E1,0x0000,0x0000, 0x10E2,0x0000,0x0000, /* 31C0 */
+0x10E3,0x0000,0x0000, 0x10E4,0x0000,0x0000, 0x10E5,0x0000,0x0000, /* 31C3 */
+0x10E6,0x0000,0x0000, 0x10E7,0x0000,0x0000, 0x10E8,0x0000,0x0000, /* 31C6 */
+0x10E9,0x0000,0x0000, 0x10EA,0x0000,0x0000, 0x10EB,0x0000,0x0000, /* 31C9 */
+0x10EC,0x0000,0x0000, 0x10ED,0x0000,0x0000, 0x10EE,0x0000,0x0000, /* 31CC */
+0x10EF,0x0000,0x0000, 0x10F0,0x0000,0x0000, 0x10F1,0x0000,0x0000, /* 31CF */
+0x10F2,0x0000,0x0000, 0x10F3,0x0000,0x0000, 0x10F4,0x0000,0x0000, /* 31D2 */
+0x10F5,0x0000,0x0000, 0x10F6,0x0000,0x0000, 0x10F7,0x0000,0x0000, /* 31D5 */
+0x10F8,0x0000,0x0000, 0x10F9,0x0000,0x0000, 0x10FA,0x0000,0x0000, /* 31D8 */
+0x10FB,0x0000,0x0000, 0x10FC,0x0000,0x0000, 0x10FD,0x0000,0x0000, /* 31DB */
+0x10FE,0x0000,0x0000, 0x10FF,0x0000,0x0000, 0x1100,0x0000,0x0000, /* 31DE */
+0x1101,0x0000,0x0000, 0x1102,0x0000,0x0000, 0x1103,0x0000,0x0000, /* 31E1 */
+0xFBC0,0xB1E4,0x0000, 0xFBC0,0xB1E5,0x0000, 0xFBC0,0xB1E6,0x0000, /* 31E4 */
+0xFBC0,0xB1E7,0x0000, 0xFBC0,0xB1E8,0x0000, 0xFBC0,0xB1E9,0x0000, /* 31E7 */
+0xFBC0,0xB1EA,0x0000, 0xFBC0,0xB1EB,0x0000, 0xFBC0,0xB1EC,0x0000, /* 31EA */
+0xFBC0,0xB1ED,0x0000, 0xFBC0,0xB1EE,0x0000, 0xFBC0,0xB1EF,0x0000, /* 31ED */
+0x2B1C,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* 31F0 */
+0x2B28,0x0000,0x0000, 0x2B2B,0x0000,0x0000, 0x2B2E,0x0000,0x0000, /* 31F3 */
+0x2B2F,0x0000,0x0000, 0x2B30,0x0000,0x0000, 0x2B31,0x0000,0x0000, /* 31F6 */
+0x2B32,0x0000,0x0000, 0x2B35,0x0000,0x0000, 0x2B3B,0x0000,0x0000, /* 31F9 */
+0x2B3C,0x0000,0x0000, 0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, /* 31FC */
+0x2B3F,0x0000,0x0000 };
+
+static const uint16 uca520_p032[]= { /* 3200 (8 weights per char) */
+0x02FF,0x29B0,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3200 */
+0x02FF,0x29B2,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3201 */
+0x02FF,0x29B3,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3202 */
+0x02FF,0x29B5,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3203 */
+0x02FF,0x29B6,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3204 */
+0x02FF,0x29B7,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3205 */
+0x02FF,0x29B9,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3206 */
+0x02FF,0x29BB,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3207 */
+0x02FF,0x29BC,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3208 */
+0x02FF,0x29BE,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3209 */
+0x02FF,0x29BF,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320A */
+0x02FF,0x29C0,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320B */
+0x02FF,0x29C1,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320C */
+0x02FF,0x29C2,0x0300,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320D */
+0x02FF,0x29B0,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 320E */
+0x02FF,0x29B2,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 320F */
+0x02FF,0x29B3,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3210 */
+0x02FF,0x29B5,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3211 */
+0x02FF,0x29B6,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3212 */
+0x02FF,0x29B7,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3213 */
+0x02FF,0x29B9,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3214 */
+0x02FF,0x29BB,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3215 */
+0x02FF,0x29BC,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3216 */
+0x02FF,0x29BE,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3217 */
+0x02FF,0x29BF,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3218 */
+0x02FF,0x29C0,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3219 */
+0x02FF,0x29C1,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321A */
+0x02FF,0x29C2,0x2A2E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321B */
+0x02FF,0x29BC,0x2A3B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 321C */
+0x02FF,0x29BB,0x2A36,0x29BC,0x2A32,0x2A8F,0x0300,0x0000, /* 321D */
+0x02FF,0x29BB,0x2A36,0x29C2,0x2A3B,0x0300,0x0000,0x0000, /* 321E */
+0xFBC0,0xB21F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 321F */
+0x02FF,0xFB40,0xCE00,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3220 */
+0x02FF,0xFB40,0xCE8C,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3221 */
+0x02FF,0xFB40,0xCE09,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3222 */
+0x02FF,0xFB40,0xD6DB,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3223 */
+0x02FF,0xFB40,0xCE94,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3224 */
+0x02FF,0xFB40,0xD16D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3225 */
+0x02FF,0xFB40,0xCE03,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3226 */
+0x02FF,0xFB40,0xD16B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3227 */
+0x02FF,0xFB40,0xCE5D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3228 */
+0x02FF,0xFB40,0xD341,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3229 */
+0x02FF,0xFB40,0xE708,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322A */
+0x02FF,0xFB40,0xF06B,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322B */
+0x02FF,0xFB40,0xEC34,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322C */
+0x02FF,0xFB40,0xE728,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322D */
+0x02FF,0xFB41,0x91D1,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322E */
+0x02FF,0xFB40,0xD71F,0x0300,0x0000,0x0000,0x0000,0x0000, /* 322F */
+0x02FF,0xFB40,0xE5E5,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3230 */
+0x02FF,0xFB40,0xE82A,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3231 */
+0x02FF,0xFB40,0xE709,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3232 */
+0x02FF,0xFB40,0xF93E,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3233 */
+0x02FF,0xFB40,0xD40D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3234 */
+0x02FF,0xFB40,0xF279,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3235 */
+0x02FF,0xFB41,0x8CA1,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3236 */
+0x02FF,0xFB40,0xF95D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3237 */
+0x02FF,0xFB40,0xD2B4,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3238 */
+0x02FF,0xFB40,0xCEE3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3239 */
+0x02FF,0xFB40,0xD47C,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323A */
+0x02FF,0xFB40,0xDB66,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323B */
+0x02FF,0xFB40,0xF6E3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323C */
+0x02FF,0xFB40,0xCF01,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323D */
+0x02FF,0xFB41,0x8CC7,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323E */
+0x02FF,0xFB40,0xD354,0x0300,0x0000,0x0000,0x0000,0x0000, /* 323F */
+0x02FF,0xFB40,0xF96D,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3240 */
+0x02FF,0xFB40,0xCF11,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3241 */
+0x02FF,0xFB41,0x81EA,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3242 */
+0x02FF,0xFB41,0x81F3,0x0300,0x0000,0x0000,0x0000,0x0000, /* 3243 */
+0xFB40,0xD54F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3244 */
+0xFB40,0xDE7C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3245 */
+0xFB40,0xE587,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3246 */
+0xFB40,0xFB8F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3247 */
+0x1206,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3248 */
+0x1207,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3249 */
+0x1208,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324A */
+0x1209,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324B */
+0x120A,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324C */
+0x120B,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324D */
+0x120C,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324E */
+0x120D,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324F */
+0x13B3,0x1433,0x126B,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3250 */
+0x1207,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3251 */
+0x1207,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3252 */
+0x1207,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3253 */
+0x1207,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3254 */
+0x1207,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3255 */
+0x1207,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3256 */
+0x1207,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3257 */
+0x1207,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3258 */
+0x1207,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3259 */
+0x1208,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325A */
+0x1208,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325B */
+0x1208,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325C */
+0x1208,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325D */
+0x1208,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325E */
+0x1208,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325F */
+0x29B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3260 */
+0x29B2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3261 */
+0x29B3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3262 */
+0x29B5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3263 */
+0x29B6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3264 */
+0x29B7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3265 */
+0x29B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3266 */
+0x29BB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3267 */
+0x29BC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3268 */
+0x29BE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3269 */
+0x29BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326A */
+0x29C0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326B */
+0x29C1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326C */
+0x29C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326D */
+0x29B0,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326E */
+0x29B2,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326F */
+0x29B3,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3270 */
+0x29B5,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3271 */
+0x29B6,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3272 */
+0x29B7,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3273 */
+0x29B9,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3274 */
+0x29BB,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3275 */
+0x29BC,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3276 */
+0x29BE,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3277 */
+0x29BF,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3278 */
+0x29C0,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3279 */
+0x29C1,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327A */
+0x29C2,0x2A2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327B */
+0x29BE,0x2A2E,0x2A9B,0x29B0,0x2A36,0x0000,0x0000,0x0000, /* 327C */
+0x29BC,0x2A3B,0x29BB,0x2A41,0x0000,0x0000,0x0000,0x0000, /* 327D */
+0x29BB,0x2A3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327E */
+0x110D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327F */
+0xFB40,0xCE00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3280 */
+0xFB40,0xCE8C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3281 */
+0xFB40,0xCE09,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3282 */
+0xFB40,0xD6DB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3283 */
+0xFB40,0xCE94,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3284 */
+0xFB40,0xD16D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3285 */
+0xFB40,0xCE03,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3286 */
+0xFB40,0xD16B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3287 */
+0xFB40,0xCE5D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3288 */
+0xFB40,0xD341,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3289 */
+0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328A */
+0xFB40,0xF06B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328B */
+0xFB40,0xEC34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328C */
+0xFB40,0xE728,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328D */
+0xFB41,0x91D1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328E */
+0xFB40,0xD71F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328F */
+0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3290 */
+0xFB40,0xE82A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3291 */
+0xFB40,0xE709,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3292 */
+0xFB40,0xF93E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3293 */
+0xFB40,0xD40D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3294 */
+0xFB40,0xF279,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3295 */
+0xFB41,0x8CA1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3296 */
+0xFB40,0xF95D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3297 */
+0xFB40,0xD2B4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3298 */
+0xFB40,0xF9D8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3299 */
+0xFB40,0xF537,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329A */
+0xFB40,0xD973,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329B */
+0xFB41,0x9069,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329C */
+0xFB40,0xD12A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329D */
+0xFB40,0xD370,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329E */
+0xFB40,0xECE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329F */
+0xFB41,0x9805,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A0 */
+0xFB40,0xCF11,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A1 */
+0xFB40,0xD199,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A2 */
+0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A3 */
+0xFB40,0xCE0A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A4 */
+0xFB40,0xCE2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A5 */
+0xFB40,0xCE0B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A6 */
+0xFB40,0xDDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A7 */
+0xFB40,0xD3F3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A8 */
+0xFB40,0xD33B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A9 */
+0xFB40,0xDB97,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AA */
+0xFB40,0xDB66,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AB */
+0xFB40,0xF6E3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AC */
+0xFB40,0xCF01,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AD */
+0xFB41,0x8CC7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AE */
+0xFB40,0xD354,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AF */
+0xFB40,0xD91C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B0 */
+0x1208,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B1 */
+0x1208,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B2 */
+0x1208,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B3 */
+0x1208,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B4 */
+0x1209,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B5 */
+0x1209,0x1206,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B6 */
+0x1209,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B7 */
+0x1209,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B8 */
+0x1209,0x1209,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B9 */
+0x1209,0x120A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BA */
+0x1209,0x120B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BB */
+0x1209,0x120C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BC */
+0x1209,0x120D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BD */
+0x1209,0x120E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BE */
+0x120A,0x1205,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BF */
+0x1206,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C0 */
+0x1207,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C1 */
+0x1208,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C2 */
+0x1209,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C3 */
+0x120A,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C4 */
+0x120B,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C5 */
+0x120C,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C6 */
+0x120D,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C7 */
+0x120E,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C8 */
+0x1206,0x1205,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32C9 */
+0x1206,0x1206,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32CA */
+0x1206,0x1207,0xFB40,0xE708,0x0000,0x0000,0x0000,0x0000, /* 32CB */
+0x12D3,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CC */
+0x126B,0x13DA,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CD */
+0x126B,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CE */
+0x1330,0x1433,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CF */
+0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D0 */
+0x2B16,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D1 */
+0x2B17,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D2 */
+0x2B18,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D3 */
+0x2B19,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D4 */
+0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D5 */
+0x2B1B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D6 */
+0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D7 */
+0x2B1D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D8 */
+0x2B1E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D9 */
+0x2B1F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DA */
+0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DB */
+0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DC */
+0x2B22,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DD */
+0x2B23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DE */
+0x2B24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DF */
+0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E0 */
+0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E1 */
+0x2B27,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E2 */
+0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E3 */
+0x2B29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E4 */
+0x2B2A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E5 */
+0x2B2B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E6 */
+0x2B2C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E7 */
+0x2B2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E8 */
+0x2B2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E9 */
+0x2B2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EA */
+0x2B30,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EB */
+0x2B31,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EC */
+0x2B32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32ED */
+0x2B33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EE */
+0x2B34,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EF */
+0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F0 */
+0x2B36,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F1 */
+0x2B37,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F2 */
+0x2B38,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F3 */
+0x2B39,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F4 */
+0x2B3A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F5 */
+0x2B3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F6 */
+0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F7 */
+0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F8 */
+0x2B3E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F9 */
+0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FA */
+0x2B40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FB */
+0x2B41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FC */
+0x2B42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FD */
+0x2B43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FE */
+0xFBC0,0xB2FF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 32FF */
+};
+
+static const uint16 uca520_p033[]= { /* 3300 (9 weights per char) */
+0x2B15,0x2B2E,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3300 */
+0x2B15,0x2B3D,0x2B30,0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3301 */
+0x2B15,0x2B44,0x2B31,0x2B15,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3302 */
+0x2B15,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3303 */
+0x2B16,0x2B2A,0x2B44,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3304 */
+0x2B16,0x2B44,0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3305 */
+0x2B17,0x2B19,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3306 */
+0x2B18,0x2B21,0x2B1C,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3307 */
+0x2B18,0x11DD,0x2B1A,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3308 */
+0x2B19,0x2B44,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3309 */
+0x2B19,0x11DD,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330A */
+0x2B1A,0x2B16,0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330B */
+0x2B1A,0x2B3B,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330C */
+0x2B1A,0x2B3F,0x2B3C,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330D */
+0x2B1A,0x2B3F,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330E */
+0x2B1A,0x2B44,0x2B33,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 330F */
+0x2B1B,0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3310 */
+0x2B1B,0x2B2A,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3311 */
+0x2B1B,0x2B39,0x2B3C,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3312 */
+0x2B1B,0x2B3D,0x2B24,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3313 */
+0x2B1B,0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3314 */
+0x2B1B,0x2B3F,0x2B1C,0x2B3B,0x2B35,0x0000,0x0000,0x0000,0x0000, /* 3315 */
+0x2B1B,0x2B3F,0x2B36,0x11DD,0x2B28,0x2B3D,0x0000,0x0000,0x0000, /* 3316 */
+0x2B1B,0x2B3F,0x2B40,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3317 */
+0x2B1C,0x2B3B,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3318 */
+0x2B1C,0x2B3B,0x2B35,0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3319 */
+0x2B1C,0x2B3D,0x2B22,0x2B16,0x2B3F,0x0000,0x0000,0x0000,0x0000, /* 331A */
+0x2B1C,0x2B3F,0x11DD,0x2B2C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331B */
+0x2B1D,0x11DD,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331C */
+0x2B1E,0x2B3D,0x2B29,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331D */
+0x2B1E,0x11DD,0x2B32,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331E */
+0x2B1F,0x2B16,0x2B1C,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 331F */
+0x2B1F,0x2B44,0x2B25,0x11DD,0x2B35,0x0000,0x0000,0x0000,0x0000, /* 3320 */
+0x2B20,0x2B3C,0x2B44,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3321 */
+0x2B22,0x2B44,0x2B25,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3322 */
+0x2B22,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3323 */
+0x2B24,0x11DD,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3324 */
+0x2B27,0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3325 */
+0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3326 */
+0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3327 */
+0x2B29,0x2B2D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3328 */
+0x2B2D,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3329 */
+0x2B2E,0x2B16,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332A */
+0x2B2E,0x11DD,0x2B22,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 332B */
+0x2B2E,0x11DD,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332C */
+0x2B2E,0x11DD,0x2B3E,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332D */
+0x2B2F,0x2B15,0x2B21,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 332E */
+0x2B2F,0x2B1C,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 332F */
+0x2B2F,0x2B1E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3330 */
+0x2B2F,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3331 */
+0x2B30,0x2B15,0x2B3B,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000, /* 3332 */
+0x2B30,0x2B16,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3333 */
+0x2B30,0x2B26,0x2B20,0x2B18,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 3334 */
+0x2B30,0x2B3B,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3335 */
+0x2B31,0x2B1C,0x2B24,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 3336 */
+0x2B31,0x2B23,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3337 */
+0x2B31,0x2B2A,0x2B2F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3338 */
+0x2B31,0x2B3D,0x2B26,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3339 */
+0x2B31,0x2B44,0x2B21,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333A */
+0x2B31,0x11DD,0x2B20,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333B */
+0x2B31,0x11DD,0x2B24,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333C */
+0x2B32,0x2B16,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333D */
+0x2B32,0x2B3D,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333E */
+0x2B32,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333F */
+0x2B32,0x2B44,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3340 */
+0x2B32,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3341 */
+0x2B32,0x11DD,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3342 */
+0x2B33,0x2B16,0x2B1C,0x2B3F,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3343 */
+0x2B33,0x2B16,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3344 */
+0x2B33,0x2B26,0x2B2E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3345 */
+0x2B33,0x2B3D,0x2B1C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3346 */
+0x2B33,0x2B44,0x2B20,0x2B3A,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3347 */
+0x2B34,0x2B1C,0x2B3F,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3348 */
+0x2B34,0x2B3C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3349 */
+0x2B34,0x2B3C,0x2B2E,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000, /* 334A */
+0x2B36,0x2B1A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334B */
+0x2B36,0x2B1A,0x2B28,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334C */
+0x2B36,0x11DD,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334D */
+0x2B38,0x11DD,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334E */
+0x2B38,0x11DD,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 334F */
+0x2B39,0x2B15,0x2B44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3350 */
+0x2B3C,0x2B26,0x2B28,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3351 */
+0x2B3C,0x2B3B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3352 */
+0x2B3D,0x2B2F,0x11DD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3353 */
+0x2B3D,0x11DD,0x2B30,0x2B3D,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3354 */
+0x2B3E,0x2B35,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3355 */
+0x2B3E,0x2B44,0x2B28,0x2B1D,0x2B44,0x0000,0x0000,0x0000,0x0000, /* 3356 */
+0x2B40,0x2B26,0x2B28,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3357 */
+0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3358 */
+0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3359 */
+0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335A */
+0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335B */
+0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335C */
+0x120A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335D */
+0x120B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335E */
+0x120C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335F */
+0x120D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3360 */
+0x120E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3361 */
+0x1206,0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3362 */
+0x1206,0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3363 */
+0x1206,0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3364 */
+0x1206,0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3365 */
+0x1206,0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3366 */
+0x1206,0x120A,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3367 */
+0x1206,0x120B,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3368 */
+0x1206,0x120C,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3369 */
+0x1206,0x120D,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336A */
+0x1206,0x120E,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336B */
+0x1207,0x1205,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336C */
+0x1207,0x1206,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336D */
+0x1207,0x1207,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336E */
+0x1207,0x1208,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 336F */
+0x1207,0x1209,0xFB40,0xF0B9,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3370 */
+0x12D3,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3371 */
+0x1250,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3372 */
+0x120F,0x1453,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3373 */
+0x1225,0x120F,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3374 */
+0x138E,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3375 */
+0x13B3,0x123D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3376 */
+0x1250,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3377 */
+0x1250,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3378 */
+0x1250,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3379 */
+0x12EC,0x1453,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337A */
+0xFB40,0xDE73,0xFB40,0xE210,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337B */
+0xFB40,0xE62D,0xFB40,0xD48C,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337C */
+0xFB40,0xD927,0xFB40,0xEB63,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337D */
+0xFB40,0xE60E,0xFB40,0xECBB,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337E */
+0xFB40,0xE82A,0xFB40,0xDF0F,0xFB40,0xCF1A,0xFB40,0xF93E,0x0000, /* 337F */
+0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3380 */
+0x136D,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3381 */
+0x1557,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3382 */
+0x135F,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3383 */
+0x131E,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3384 */
+0x131E,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3385 */
+0x135F,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3386 */
+0x12B0,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3387 */
+0x123D,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3388 */
+0x131E,0x123D,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3389 */
+0x13B3,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338A */
+0x136D,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338B */
+0x1557,0x12A3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338C */
+0x1557,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338D */
+0x135F,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338E */
+0x131E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338F */
+0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3390 */
+0x131E,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3391 */
+0x135F,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3392 */
+0x12B0,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3393 */
+0x1433,0x12D3,0x14AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3394 */
+0x1557,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3395 */
+0x135F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3396 */
+0x1250,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3397 */
+0x131E,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3398 */
+0x12A3,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3399 */
+0x136D,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339A */
+0x1557,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339B */
+0x135F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339C */
+0x123D,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339D */
+0x131E,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339E */
+0x135F,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339F */
+0x123D,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A0 */
+0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A1 */
+0x131E,0x135F,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A2 */
+0x135F,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A3 */
+0x123D,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A4 */
+0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A5 */
+0x131E,0x135F,0x1208,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A6 */
+0x135F,0x055F,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A7 */
+0x135F,0x055F,0x1410,0x1207,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A8 */
+0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A9 */
+0x131E,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AA */
+0x135F,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AB */
+0x12B0,0x13B3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AC */
+0x13DA,0x120F,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33AD */
+0x13DA,0x120F,0x1250,0x055F,0x1410,0x0000,0x0000,0x0000,0x0000, /* 33AE */
+0x13DA,0x120F,0x1250,0x055F,0x1410,0x1207,0x0000,0x0000,0x0000, /* 33AF */
+0x13B3,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B0 */
+0x136D,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B1 */
+0x1557,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B2 */
+0x135F,0x1410,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B3 */
+0x13B3,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B4 */
+0x136D,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B5 */
+0x1557,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B6 */
+0x135F,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B7 */
+0x131E,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B8 */
+0x135F,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B9 */
+0x13B3,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BA */
+0x136D,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BB */
+0x1557,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BC */
+0x135F,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BD */
+0x131E,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BE */
+0x135F,0x148D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BF */
+0x131E,0x156D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C0 */
+0x135F,0x156D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C1 */
+0x120F,0x0281,0x135F,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C2 */
+0x1225,0x13C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C3 */
+0x123D,0x123D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C4 */
+0x123D,0x1250,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C5 */
+0x123D,0x055F,0x131E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C6 */
+0x123D,0x138E,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C7 */
+0x1250,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C8 */
+0x12B0,0x149C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C9 */
+0x12D3,0x120F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CA */
+0x12D3,0x13B3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CB */
+0x12EC,0x136D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CC */
+0x131E,0x131E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CD */
+0x131E,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CE */
+0x131E,0x1433,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CF */
+0x1330,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D0 */
+0x1330,0x136D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D1 */
+0x1330,0x138E,0x12B0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D2 */
+0x1330,0x1497,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D3 */
+0x135F,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D4 */
+0x135F,0x12EC,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D5 */
+0x135F,0x138E,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D6 */
+0x13B3,0x12D3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D7 */
+0x13B3,0x0281,0x135F,0x0281,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D8 */
+0x13B3,0x13B3,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D9 */
+0x13B3,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DA */
+0x1410,0x13DA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DB */
+0x1410,0x147B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DC */
+0x148D,0x1225,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DD */
+0x147B,0x055F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DE */
+0x120F,0x055F,0x135F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DF */
+0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E0 */
+0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E1 */
+0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E2 */
+0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E3 */
+0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E4 */
+0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E5 */
+0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E6 */
+0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E7 */
+0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E8 */
+0x1206,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E9 */
+0x1206,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EA */
+0x1206,0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EB */
+0x1206,0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EC */
+0x1206,0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33ED */
+0x1206,0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EE */
+0x1206,0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33EF */
+0x1206,0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F0 */
+0x1206,0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F1 */
+0x1206,0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F2 */
+0x1207,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F3 */
+0x1207,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F4 */
+0x1207,0x1207,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F5 */
+0x1207,0x1208,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F6 */
+0x1207,0x1209,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F7 */
+0x1207,0x120A,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F8 */
+0x1207,0x120B,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33F9 */
+0x1207,0x120C,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FA */
+0x1207,0x120D,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FB */
+0x1207,0x120E,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FC */
+0x1208,0x1205,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FD */
+0x1208,0x1206,0xFB40,0xE5E5,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33FE */
+0x12B0,0x120F,0x1330,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 33FF */
+};
+
+static const uint16 uca520_p04D[]= { /* 4D00 (3 weights per char) */
+0xFB80,0xCD00,0x0000, 0xFB80,0xCD01,0x0000, 0xFB80,0xCD02,0x0000, /* 4D00 */
+0xFB80,0xCD03,0x0000, 0xFB80,0xCD04,0x0000, 0xFB80,0xCD05,0x0000, /* 4D03 */
+0xFB80,0xCD06,0x0000, 0xFB80,0xCD07,0x0000, 0xFB80,0xCD08,0x0000, /* 4D06 */
+0xFB80,0xCD09,0x0000, 0xFB80,0xCD0A,0x0000, 0xFB80,0xCD0B,0x0000, /* 4D09 */
+0xFB80,0xCD0C,0x0000, 0xFB80,0xCD0D,0x0000, 0xFB80,0xCD0E,0x0000, /* 4D0C */
+0xFB80,0xCD0F,0x0000, 0xFB80,0xCD10,0x0000, 0xFB80,0xCD11,0x0000, /* 4D0F */
+0xFB80,0xCD12,0x0000, 0xFB80,0xCD13,0x0000, 0xFB80,0xCD14,0x0000, /* 4D12 */
+0xFB80,0xCD15,0x0000, 0xFB80,0xCD16,0x0000, 0xFB80,0xCD17,0x0000, /* 4D15 */
+0xFB80,0xCD18,0x0000, 0xFB80,0xCD19,0x0000, 0xFB80,0xCD1A,0x0000, /* 4D18 */
+0xFB80,0xCD1B,0x0000, 0xFB80,0xCD1C,0x0000, 0xFB80,0xCD1D,0x0000, /* 4D1B */
+0xFB80,0xCD1E,0x0000, 0xFB80,0xCD1F,0x0000, 0xFB80,0xCD20,0x0000, /* 4D1E */
+0xFB80,0xCD21,0x0000, 0xFB80,0xCD22,0x0000, 0xFB80,0xCD23,0x0000, /* 4D21 */
+0xFB80,0xCD24,0x0000, 0xFB80,0xCD25,0x0000, 0xFB80,0xCD26,0x0000, /* 4D24 */
+0xFB80,0xCD27,0x0000, 0xFB80,0xCD28,0x0000, 0xFB80,0xCD29,0x0000, /* 4D27 */
+0xFB80,0xCD2A,0x0000, 0xFB80,0xCD2B,0x0000, 0xFB80,0xCD2C,0x0000, /* 4D2A */
+0xFB80,0xCD2D,0x0000, 0xFB80,0xCD2E,0x0000, 0xFB80,0xCD2F,0x0000, /* 4D2D */
+0xFB80,0xCD30,0x0000, 0xFB80,0xCD31,0x0000, 0xFB80,0xCD32,0x0000, /* 4D30 */
+0xFB80,0xCD33,0x0000, 0xFB80,0xCD34,0x0000, 0xFB80,0xCD35,0x0000, /* 4D33 */
+0xFB80,0xCD36,0x0000, 0xFB80,0xCD37,0x0000, 0xFB80,0xCD38,0x0000, /* 4D36 */
+0xFB80,0xCD39,0x0000, 0xFB80,0xCD3A,0x0000, 0xFB80,0xCD3B,0x0000, /* 4D39 */
+0xFB80,0xCD3C,0x0000, 0xFB80,0xCD3D,0x0000, 0xFB80,0xCD3E,0x0000, /* 4D3C */
+0xFB80,0xCD3F,0x0000, 0xFB80,0xCD40,0x0000, 0xFB80,0xCD41,0x0000, /* 4D3F */
+0xFB80,0xCD42,0x0000, 0xFB80,0xCD43,0x0000, 0xFB80,0xCD44,0x0000, /* 4D42 */
+0xFB80,0xCD45,0x0000, 0xFB80,0xCD46,0x0000, 0xFB80,0xCD47,0x0000, /* 4D45 */
+0xFB80,0xCD48,0x0000, 0xFB80,0xCD49,0x0000, 0xFB80,0xCD4A,0x0000, /* 4D48 */
+0xFB80,0xCD4B,0x0000, 0xFB80,0xCD4C,0x0000, 0xFB80,0xCD4D,0x0000, /* 4D4B */
+0xFB80,0xCD4E,0x0000, 0xFB80,0xCD4F,0x0000, 0xFB80,0xCD50,0x0000, /* 4D4E */
+0xFB80,0xCD51,0x0000, 0xFB80,0xCD52,0x0000, 0xFB80,0xCD53,0x0000, /* 4D51 */
+0xFB80,0xCD54,0x0000, 0xFB80,0xCD55,0x0000, 0xFB80,0xCD56,0x0000, /* 4D54 */
+0xFB80,0xCD57,0x0000, 0xFB80,0xCD58,0x0000, 0xFB80,0xCD59,0x0000, /* 4D57 */
+0xFB80,0xCD5A,0x0000, 0xFB80,0xCD5B,0x0000, 0xFB80,0xCD5C,0x0000, /* 4D5A */
+0xFB80,0xCD5D,0x0000, 0xFB80,0xCD5E,0x0000, 0xFB80,0xCD5F,0x0000, /* 4D5D */
+0xFB80,0xCD60,0x0000, 0xFB80,0xCD61,0x0000, 0xFB80,0xCD62,0x0000, /* 4D60 */
+0xFB80,0xCD63,0x0000, 0xFB80,0xCD64,0x0000, 0xFB80,0xCD65,0x0000, /* 4D63 */
+0xFB80,0xCD66,0x0000, 0xFB80,0xCD67,0x0000, 0xFB80,0xCD68,0x0000, /* 4D66 */
+0xFB80,0xCD69,0x0000, 0xFB80,0xCD6A,0x0000, 0xFB80,0xCD6B,0x0000, /* 4D69 */
+0xFB80,0xCD6C,0x0000, 0xFB80,0xCD6D,0x0000, 0xFB80,0xCD6E,0x0000, /* 4D6C */
+0xFB80,0xCD6F,0x0000, 0xFB80,0xCD70,0x0000, 0xFB80,0xCD71,0x0000, /* 4D6F */
+0xFB80,0xCD72,0x0000, 0xFB80,0xCD73,0x0000, 0xFB80,0xCD74,0x0000, /* 4D72 */
+0xFB80,0xCD75,0x0000, 0xFB80,0xCD76,0x0000, 0xFB80,0xCD77,0x0000, /* 4D75 */
+0xFB80,0xCD78,0x0000, 0xFB80,0xCD79,0x0000, 0xFB80,0xCD7A,0x0000, /* 4D78 */
+0xFB80,0xCD7B,0x0000, 0xFB80,0xCD7C,0x0000, 0xFB80,0xCD7D,0x0000, /* 4D7B */
+0xFB80,0xCD7E,0x0000, 0xFB80,0xCD7F,0x0000, 0xFB80,0xCD80,0x0000, /* 4D7E */
+0xFB80,0xCD81,0x0000, 0xFB80,0xCD82,0x0000, 0xFB80,0xCD83,0x0000, /* 4D81 */
+0xFB80,0xCD84,0x0000, 0xFB80,0xCD85,0x0000, 0xFB80,0xCD86,0x0000, /* 4D84 */
+0xFB80,0xCD87,0x0000, 0xFB80,0xCD88,0x0000, 0xFB80,0xCD89,0x0000, /* 4D87 */
+0xFB80,0xCD8A,0x0000, 0xFB80,0xCD8B,0x0000, 0xFB80,0xCD8C,0x0000, /* 4D8A */
+0xFB80,0xCD8D,0x0000, 0xFB80,0xCD8E,0x0000, 0xFB80,0xCD8F,0x0000, /* 4D8D */
+0xFB80,0xCD90,0x0000, 0xFB80,0xCD91,0x0000, 0xFB80,0xCD92,0x0000, /* 4D90 */
+0xFB80,0xCD93,0x0000, 0xFB80,0xCD94,0x0000, 0xFB80,0xCD95,0x0000, /* 4D93 */
+0xFB80,0xCD96,0x0000, 0xFB80,0xCD97,0x0000, 0xFB80,0xCD98,0x0000, /* 4D96 */
+0xFB80,0xCD99,0x0000, 0xFB80,0xCD9A,0x0000, 0xFB80,0xCD9B,0x0000, /* 4D99 */
+0xFB80,0xCD9C,0x0000, 0xFB80,0xCD9D,0x0000, 0xFB80,0xCD9E,0x0000, /* 4D9C */
+0xFB80,0xCD9F,0x0000, 0xFB80,0xCDA0,0x0000, 0xFB80,0xCDA1,0x0000, /* 4D9F */
+0xFB80,0xCDA2,0x0000, 0xFB80,0xCDA3,0x0000, 0xFB80,0xCDA4,0x0000, /* 4DA2 */
+0xFB80,0xCDA5,0x0000, 0xFB80,0xCDA6,0x0000, 0xFB80,0xCDA7,0x0000, /* 4DA5 */
+0xFB80,0xCDA8,0x0000, 0xFB80,0xCDA9,0x0000, 0xFB80,0xCDAA,0x0000, /* 4DA8 */
+0xFB80,0xCDAB,0x0000, 0xFB80,0xCDAC,0x0000, 0xFB80,0xCDAD,0x0000, /* 4DAB */
+0xFB80,0xCDAE,0x0000, 0xFB80,0xCDAF,0x0000, 0xFB80,0xCDB0,0x0000, /* 4DAE */
+0xFB80,0xCDB1,0x0000, 0xFB80,0xCDB2,0x0000, 0xFB80,0xCDB3,0x0000, /* 4DB1 */
+0xFB80,0xCDB4,0x0000, 0xFB80,0xCDB5,0x0000, 0xFBC0,0xCDB6,0x0000, /* 4DB4 */
+0xFBC0,0xCDB7,0x0000, 0xFBC0,0xCDB8,0x0000, 0xFBC0,0xCDB9,0x0000, /* 4DB7 */
+0xFBC0,0xCDBA,0x0000, 0xFBC0,0xCDBB,0x0000, 0xFBC0,0xCDBC,0x0000, /* 4DBA */
+0xFBC0,0xCDBD,0x0000, 0xFBC0,0xCDBE,0x0000, 0xFBC0,0xCDBF,0x0000, /* 4DBD */
+0x0D3E,0x0000,0x0000, 0x0D3F,0x0000,0x0000, 0x0D40,0x0000,0x0000, /* 4DC0 */
+0x0D41,0x0000,0x0000, 0x0D42,0x0000,0x0000, 0x0D43,0x0000,0x0000, /* 4DC3 */
+0x0D44,0x0000,0x0000, 0x0D45,0x0000,0x0000, 0x0D46,0x0000,0x0000, /* 4DC6 */
+0x0D47,0x0000,0x0000, 0x0D48,0x0000,0x0000, 0x0D49,0x0000,0x0000, /* 4DC9 */
+0x0D4A,0x0000,0x0000, 0x0D4B,0x0000,0x0000, 0x0D4C,0x0000,0x0000, /* 4DCC */
+0x0D4D,0x0000,0x0000, 0x0D4E,0x0000,0x0000, 0x0D4F,0x0000,0x0000, /* 4DCF */
+0x0D50,0x0000,0x0000, 0x0D51,0x0000,0x0000, 0x0D52,0x0000,0x0000, /* 4DD2 */
+0x0D53,0x0000,0x0000, 0x0D54,0x0000,0x0000, 0x0D55,0x0000,0x0000, /* 4DD5 */
+0x0D56,0x0000,0x0000, 0x0D57,0x0000,0x0000, 0x0D58,0x0000,0x0000, /* 4DD8 */
+0x0D59,0x0000,0x0000, 0x0D5A,0x0000,0x0000, 0x0D5B,0x0000,0x0000, /* 4DDB */
+0x0D5C,0x0000,0x0000, 0x0D5D,0x0000,0x0000, 0x0D5E,0x0000,0x0000, /* 4DDE */
+0x0D5F,0x0000,0x0000, 0x0D60,0x0000,0x0000, 0x0D61,0x0000,0x0000, /* 4DE1 */
+0x0D62,0x0000,0x0000, 0x0D63,0x0000,0x0000, 0x0D64,0x0000,0x0000, /* 4DE4 */
+0x0D65,0x0000,0x0000, 0x0D66,0x0000,0x0000, 0x0D67,0x0000,0x0000, /* 4DE7 */
+0x0D68,0x0000,0x0000, 0x0D69,0x0000,0x0000, 0x0D6A,0x0000,0x0000, /* 4DEA */
+0x0D6B,0x0000,0x0000, 0x0D6C,0x0000,0x0000, 0x0D6D,0x0000,0x0000, /* 4DED */
+0x0D6E,0x0000,0x0000, 0x0D6F,0x0000,0x0000, 0x0D70,0x0000,0x0000, /* 4DF0 */
+0x0D71,0x0000,0x0000, 0x0D72,0x0000,0x0000, 0x0D73,0x0000,0x0000, /* 4DF3 */
+0x0D74,0x0000,0x0000, 0x0D75,0x0000,0x0000, 0x0D76,0x0000,0x0000, /* 4DF6 */
+0x0D77,0x0000,0x0000, 0x0D78,0x0000,0x0000, 0x0D79,0x0000,0x0000, /* 4DF9 */
+0x0D7A,0x0000,0x0000, 0x0D7B,0x0000,0x0000, 0x0D7C,0x0000,0x0000, /* 4DFC */
+0x0D7D,0x0000,0x0000 };
+
+static const uint16 uca520_p0A0[]= { /* A000 (2 weights per char) */
+0x2B75,0x0000, 0x2B76,0x0000, 0x2B77,0x0000, 0x2B78,0x0000, /* A000 */
+0x2B79,0x0000, 0x2B7A,0x0000, 0x2B7B,0x0000, 0x2B7C,0x0000, /* A004 */
+0x2B7D,0x0000, 0x2B7E,0x0000, 0x2B7F,0x0000, 0x2B80,0x0000, /* A008 */
+0x2B81,0x0000, 0x2B82,0x0000, 0x2B83,0x0000, 0x2B84,0x0000, /* A00C */
+0x2B85,0x0000, 0x2B86,0x0000, 0x2B87,0x0000, 0x2B88,0x0000, /* A010 */
+0x2B89,0x0000, 0x2B8A,0x0000, 0x2B8B,0x0000, 0x2B8C,0x0000, /* A014 */
+0x2B8D,0x0000, 0x2B8E,0x0000, 0x2B8F,0x0000, 0x2B90,0x0000, /* A018 */
+0x2B91,0x0000, 0x2B92,0x0000, 0x2B93,0x0000, 0x2B94,0x0000, /* A01C */
+0x2B95,0x0000, 0x2B96,0x0000, 0x2B97,0x0000, 0x2B98,0x0000, /* A020 */
+0x2B99,0x0000, 0x2B9A,0x0000, 0x2B9B,0x0000, 0x2B9C,0x0000, /* A024 */
+0x2B9D,0x0000, 0x2B9E,0x0000, 0x2B9F,0x0000, 0x2BA0,0x0000, /* A028 */
+0x2BA1,0x0000, 0x2BA2,0x0000, 0x2BA3,0x0000, 0x2BA4,0x0000, /* A02C */
+0x2BA5,0x0000, 0x2BA6,0x0000, 0x2BA7,0x0000, 0x2BA8,0x0000, /* A030 */
+0x2BA9,0x0000, 0x2BAA,0x0000, 0x2BAB,0x0000, 0x2BAC,0x0000, /* A034 */
+0x2BAD,0x0000, 0x2BAE,0x0000, 0x2BAF,0x0000, 0x2BB0,0x0000, /* A038 */
+0x2BB1,0x0000, 0x2BB2,0x0000, 0x2BB3,0x0000, 0x2BB4,0x0000, /* A03C */
+0x2BB5,0x0000, 0x2BB6,0x0000, 0x2BB7,0x0000, 0x2BB8,0x0000, /* A040 */
+0x2BB9,0x0000, 0x2BBA,0x0000, 0x2BBB,0x0000, 0x2BBC,0x0000, /* A044 */
+0x2BBD,0x0000, 0x2BBE,0x0000, 0x2BBF,0x0000, 0x2BC0,0x0000, /* A048 */
+0x2BC1,0x0000, 0x2BC2,0x0000, 0x2BC3,0x0000, 0x2BC4,0x0000, /* A04C */
+0x2BC5,0x0000, 0x2BC6,0x0000, 0x2BC7,0x0000, 0x2BC8,0x0000, /* A050 */
+0x2BC9,0x0000, 0x2BCA,0x0000, 0x2BCB,0x0000, 0x2BCC,0x0000, /* A054 */
+0x2BCD,0x0000, 0x2BCE,0x0000, 0x2BCF,0x0000, 0x2BD0,0x0000, /* A058 */
+0x2BD1,0x0000, 0x2BD2,0x0000, 0x2BD3,0x0000, 0x2BD4,0x0000, /* A05C */
+0x2BD5,0x0000, 0x2BD6,0x0000, 0x2BD7,0x0000, 0x2BD8,0x0000, /* A060 */
+0x2BD9,0x0000, 0x2BDA,0x0000, 0x2BDB,0x0000, 0x2BDC,0x0000, /* A064 */
+0x2BDD,0x0000, 0x2BDE,0x0000, 0x2BDF,0x0000, 0x2BE0,0x0000, /* A068 */
+0x2BE1,0x0000, 0x2BE2,0x0000, 0x2BE3,0x0000, 0x2BE4,0x0000, /* A06C */
+0x2BE5,0x0000, 0x2BE6,0x0000, 0x2BE7,0x0000, 0x2BE8,0x0000, /* A070 */
+0x2BE9,0x0000, 0x2BEA,0x0000, 0x2BEB,0x0000, 0x2BEC,0x0000, /* A074 */
+0x2BED,0x0000, 0x2BEE,0x0000, 0x2BEF,0x0000, 0x2BF0,0x0000, /* A078 */
+0x2BF1,0x0000, 0x2BF2,0x0000, 0x2BF3,0x0000, 0x2BF4,0x0000, /* A07C */
+0x2BF5,0x0000, 0x2BF6,0x0000, 0x2BF7,0x0000, 0x2BF8,0x0000, /* A080 */
+0x2BF9,0x0000, 0x2BFA,0x0000, 0x2BFB,0x0000, 0x2BFC,0x0000, /* A084 */
+0x2BFD,0x0000, 0x2BFE,0x0000, 0x2BFF,0x0000, 0x2C00,0x0000, /* A088 */
+0x2C01,0x0000, 0x2C02,0x0000, 0x2C03,0x0000, 0x2C04,0x0000, /* A08C */
+0x2C05,0x0000, 0x2C06,0x0000, 0x2C07,0x0000, 0x2C08,0x0000, /* A090 */
+0x2C09,0x0000, 0x2C0A,0x0000, 0x2C0B,0x0000, 0x2C0C,0x0000, /* A094 */
+0x2C0D,0x0000, 0x2C0E,0x0000, 0x2C0F,0x0000, 0x2C10,0x0000, /* A098 */
+0x2C11,0x0000, 0x2C12,0x0000, 0x2C13,0x0000, 0x2C14,0x0000, /* A09C */
+0x2C15,0x0000, 0x2C16,0x0000, 0x2C17,0x0000, 0x2C18,0x0000, /* A0A0 */
+0x2C19,0x0000, 0x2C1A,0x0000, 0x2C1B,0x0000, 0x2C1C,0x0000, /* A0A4 */
+0x2C1D,0x0000, 0x2C1E,0x0000, 0x2C1F,0x0000, 0x2C20,0x0000, /* A0A8 */
+0x2C21,0x0000, 0x2C22,0x0000, 0x2C23,0x0000, 0x2C24,0x0000, /* A0AC */
+0x2C25,0x0000, 0x2C26,0x0000, 0x2C27,0x0000, 0x2C28,0x0000, /* A0B0 */
+0x2C29,0x0000, 0x2C2A,0x0000, 0x2C2B,0x0000, 0x2C2C,0x0000, /* A0B4 */
+0x2C2D,0x0000, 0x2C2E,0x0000, 0x2C2F,0x0000, 0x2C30,0x0000, /* A0B8 */
+0x2C31,0x0000, 0x2C32,0x0000, 0x2C33,0x0000, 0x2C34,0x0000, /* A0BC */
+0x2C35,0x0000, 0x2C36,0x0000, 0x2C37,0x0000, 0x2C38,0x0000, /* A0C0 */
+0x2C39,0x0000, 0x2C3A,0x0000, 0x2C3B,0x0000, 0x2C3C,0x0000, /* A0C4 */
+0x2C3D,0x0000, 0x2C3E,0x0000, 0x2C3F,0x0000, 0x2C40,0x0000, /* A0C8 */
+0x2C41,0x0000, 0x2C42,0x0000, 0x2C43,0x0000, 0x2C44,0x0000, /* A0CC */
+0x2C45,0x0000, 0x2C46,0x0000, 0x2C47,0x0000, 0x2C48,0x0000, /* A0D0 */
+0x2C49,0x0000, 0x2C4A,0x0000, 0x2C4B,0x0000, 0x2C4C,0x0000, /* A0D4 */
+0x2C4D,0x0000, 0x2C4E,0x0000, 0x2C4F,0x0000, 0x2C50,0x0000, /* A0D8 */
+0x2C51,0x0000, 0x2C52,0x0000, 0x2C53,0x0000, 0x2C54,0x0000, /* A0DC */
+0x2C55,0x0000, 0x2C56,0x0000, 0x2C57,0x0000, 0x2C58,0x0000, /* A0E0 */
+0x2C59,0x0000, 0x2C5A,0x0000, 0x2C5B,0x0000, 0x2C5C,0x0000, /* A0E4 */
+0x2C5D,0x0000, 0x2C5E,0x0000, 0x2C5F,0x0000, 0x2C60,0x0000, /* A0E8 */
+0x2C61,0x0000, 0x2C62,0x0000, 0x2C63,0x0000, 0x2C64,0x0000, /* A0EC */
+0x2C65,0x0000, 0x2C66,0x0000, 0x2C67,0x0000, 0x2C68,0x0000, /* A0F0 */
+0x2C69,0x0000, 0x2C6A,0x0000, 0x2C6B,0x0000, 0x2C6C,0x0000, /* A0F4 */
+0x2C6D,0x0000, 0x2C6E,0x0000, 0x2C6F,0x0000, 0x2C70,0x0000, /* A0F8 */
+0x2C71,0x0000, 0x2C72,0x0000, 0x2C73,0x0000, 0x2C74,0x0000 /* A0FC */
+};
+
+static const uint16 uca520_p0A1[]= { /* A100 (2 weights per char) */
+0x2C75,0x0000, 0x2C76,0x0000, 0x2C77,0x0000, 0x2C78,0x0000, /* A100 */
+0x2C79,0x0000, 0x2C7A,0x0000, 0x2C7B,0x0000, 0x2C7C,0x0000, /* A104 */
+0x2C7D,0x0000, 0x2C7E,0x0000, 0x2C7F,0x0000, 0x2C80,0x0000, /* A108 */
+0x2C81,0x0000, 0x2C82,0x0000, 0x2C83,0x0000, 0x2C84,0x0000, /* A10C */
+0x2C85,0x0000, 0x2C86,0x0000, 0x2C87,0x0000, 0x2C88,0x0000, /* A110 */
+0x2C89,0x0000, 0x2C8A,0x0000, 0x2C8B,0x0000, 0x2C8C,0x0000, /* A114 */
+0x2C8D,0x0000, 0x2C8E,0x0000, 0x2C8F,0x0000, 0x2C90,0x0000, /* A118 */
+0x2C91,0x0000, 0x2C92,0x0000, 0x2C93,0x0000, 0x2C94,0x0000, /* A11C */
+0x2C95,0x0000, 0x2C96,0x0000, 0x2C97,0x0000, 0x2C98,0x0000, /* A120 */
+0x2C99,0x0000, 0x2C9A,0x0000, 0x2C9B,0x0000, 0x2C9C,0x0000, /* A124 */
+0x2C9D,0x0000, 0x2C9E,0x0000, 0x2C9F,0x0000, 0x2CA0,0x0000, /* A128 */
+0x2CA1,0x0000, 0x2CA2,0x0000, 0x2CA3,0x0000, 0x2CA4,0x0000, /* A12C */
+0x2CA5,0x0000, 0x2CA6,0x0000, 0x2CA7,0x0000, 0x2CA8,0x0000, /* A130 */
+0x2CA9,0x0000, 0x2CAA,0x0000, 0x2CAB,0x0000, 0x2CAC,0x0000, /* A134 */
+0x2CAD,0x0000, 0x2CAE,0x0000, 0x2CAF,0x0000, 0x2CB0,0x0000, /* A138 */
+0x2CB1,0x0000, 0x2CB2,0x0000, 0x2CB3,0x0000, 0x2CB4,0x0000, /* A13C */
+0x2CB5,0x0000, 0x2CB6,0x0000, 0x2CB7,0x0000, 0x2CB8,0x0000, /* A140 */
+0x2CB9,0x0000, 0x2CBA,0x0000, 0x2CBB,0x0000, 0x2CBC,0x0000, /* A144 */
+0x2CBD,0x0000, 0x2CBE,0x0000, 0x2CBF,0x0000, 0x2CC0,0x0000, /* A148 */
+0x2CC1,0x0000, 0x2CC2,0x0000, 0x2CC3,0x0000, 0x2CC4,0x0000, /* A14C */
+0x2CC5,0x0000, 0x2CC6,0x0000, 0x2CC7,0x0000, 0x2CC8,0x0000, /* A150 */
+0x2CC9,0x0000, 0x2CCA,0x0000, 0x2CCB,0x0000, 0x2CCC,0x0000, /* A154 */
+0x2CCD,0x0000, 0x2CCE,0x0000, 0x2CCF,0x0000, 0x2CD0,0x0000, /* A158 */
+0x2CD1,0x0000, 0x2CD2,0x0000, 0x2CD3,0x0000, 0x2CD4,0x0000, /* A15C */
+0x2CD5,0x0000, 0x2CD6,0x0000, 0x2CD7,0x0000, 0x2CD8,0x0000, /* A160 */
+0x2CD9,0x0000, 0x2CDA,0x0000, 0x2CDB,0x0000, 0x2CDC,0x0000, /* A164 */
+0x2CDD,0x0000, 0x2CDE,0x0000, 0x2CDF,0x0000, 0x2CE0,0x0000, /* A168 */
+0x2CE1,0x0000, 0x2CE2,0x0000, 0x2CE3,0x0000, 0x2CE4,0x0000, /* A16C */
+0x2CE5,0x0000, 0x2CE6,0x0000, 0x2CE7,0x0000, 0x2CE8,0x0000, /* A170 */
+0x2CE9,0x0000, 0x2CEA,0x0000, 0x2CEB,0x0000, 0x2CEC,0x0000, /* A174 */
+0x2CED,0x0000, 0x2CEE,0x0000, 0x2CEF,0x0000, 0x2CF0,0x0000, /* A178 */
+0x2CF1,0x0000, 0x2CF2,0x0000, 0x2CF3,0x0000, 0x2CF4,0x0000, /* A17C */
+0x2CF5,0x0000, 0x2CF6,0x0000, 0x2CF7,0x0000, 0x2CF8,0x0000, /* A180 */
+0x2CF9,0x0000, 0x2CFA,0x0000, 0x2CFB,0x0000, 0x2CFC,0x0000, /* A184 */
+0x2CFD,0x0000, 0x2CFE,0x0000, 0x2CFF,0x0000, 0x2D00,0x0000, /* A188 */
+0x2D01,0x0000, 0x2D02,0x0000, 0x2D03,0x0000, 0x2D04,0x0000, /* A18C */
+0x2D05,0x0000, 0x2D06,0x0000, 0x2D07,0x0000, 0x2D08,0x0000, /* A190 */
+0x2D09,0x0000, 0x2D0A,0x0000, 0x2D0B,0x0000, 0x2D0C,0x0000, /* A194 */
+0x2D0D,0x0000, 0x2D0E,0x0000, 0x2D0F,0x0000, 0x2D10,0x0000, /* A198 */
+0x2D11,0x0000, 0x2D12,0x0000, 0x2D13,0x0000, 0x2D14,0x0000, /* A19C */
+0x2D15,0x0000, 0x2D16,0x0000, 0x2D17,0x0000, 0x2D18,0x0000, /* A1A0 */
+0x2D19,0x0000, 0x2D1A,0x0000, 0x2D1B,0x0000, 0x2D1C,0x0000, /* A1A4 */
+0x2D1D,0x0000, 0x2D1E,0x0000, 0x2D1F,0x0000, 0x2D20,0x0000, /* A1A8 */
+0x2D21,0x0000, 0x2D22,0x0000, 0x2D23,0x0000, 0x2D24,0x0000, /* A1AC */
+0x2D25,0x0000, 0x2D26,0x0000, 0x2D27,0x0000, 0x2D28,0x0000, /* A1B0 */
+0x2D29,0x0000, 0x2D2A,0x0000, 0x2D2B,0x0000, 0x2D2C,0x0000, /* A1B4 */
+0x2D2D,0x0000, 0x2D2E,0x0000, 0x2D2F,0x0000, 0x2D30,0x0000, /* A1B8 */
+0x2D31,0x0000, 0x2D32,0x0000, 0x2D33,0x0000, 0x2D34,0x0000, /* A1BC */
+0x2D35,0x0000, 0x2D36,0x0000, 0x2D37,0x0000, 0x2D38,0x0000, /* A1C0 */
+0x2D39,0x0000, 0x2D3A,0x0000, 0x2D3B,0x0000, 0x2D3C,0x0000, /* A1C4 */
+0x2D3D,0x0000, 0x2D3E,0x0000, 0x2D3F,0x0000, 0x2D40,0x0000, /* A1C8 */
+0x2D41,0x0000, 0x2D42,0x0000, 0x2D43,0x0000, 0x2D44,0x0000, /* A1CC */
+0x2D45,0x0000, 0x2D46,0x0000, 0x2D47,0x0000, 0x2D48,0x0000, /* A1D0 */
+0x2D49,0x0000, 0x2D4A,0x0000, 0x2D4B,0x0000, 0x2D4C,0x0000, /* A1D4 */
+0x2D4D,0x0000, 0x2D4E,0x0000, 0x2D4F,0x0000, 0x2D50,0x0000, /* A1D8 */
+0x2D51,0x0000, 0x2D52,0x0000, 0x2D53,0x0000, 0x2D54,0x0000, /* A1DC */
+0x2D55,0x0000, 0x2D56,0x0000, 0x2D57,0x0000, 0x2D58,0x0000, /* A1E0 */
+0x2D59,0x0000, 0x2D5A,0x0000, 0x2D5B,0x0000, 0x2D5C,0x0000, /* A1E4 */
+0x2D5D,0x0000, 0x2D5E,0x0000, 0x2D5F,0x0000, 0x2D60,0x0000, /* A1E8 */
+0x2D61,0x0000, 0x2D62,0x0000, 0x2D63,0x0000, 0x2D64,0x0000, /* A1EC */
+0x2D65,0x0000, 0x2D66,0x0000, 0x2D67,0x0000, 0x2D68,0x0000, /* A1F0 */
+0x2D69,0x0000, 0x2D6A,0x0000, 0x2D6B,0x0000, 0x2D6C,0x0000, /* A1F4 */
+0x2D6D,0x0000, 0x2D6E,0x0000, 0x2D6F,0x0000, 0x2D70,0x0000, /* A1F8 */
+0x2D71,0x0000, 0x2D72,0x0000, 0x2D73,0x0000, 0x2D74,0x0000 /* A1FC */
+};
+
+static const uint16 uca520_p0A2[]= { /* A200 (2 weights per char) */
+0x2D75,0x0000, 0x2D76,0x0000, 0x2D77,0x0000, 0x2D78,0x0000, /* A200 */
+0x2D79,0x0000, 0x2D7A,0x0000, 0x2D7B,0x0000, 0x2D7C,0x0000, /* A204 */
+0x2D7D,0x0000, 0x2D7E,0x0000, 0x2D7F,0x0000, 0x2D80,0x0000, /* A208 */
+0x2D81,0x0000, 0x2D82,0x0000, 0x2D83,0x0000, 0x2D84,0x0000, /* A20C */
+0x2D85,0x0000, 0x2D86,0x0000, 0x2D87,0x0000, 0x2D88,0x0000, /* A210 */
+0x2D89,0x0000, 0x2D8A,0x0000, 0x2D8B,0x0000, 0x2D8C,0x0000, /* A214 */
+0x2D8D,0x0000, 0x2D8E,0x0000, 0x2D8F,0x0000, 0x2D90,0x0000, /* A218 */
+0x2D91,0x0000, 0x2D92,0x0000, 0x2D93,0x0000, 0x2D94,0x0000, /* A21C */
+0x2D95,0x0000, 0x2D96,0x0000, 0x2D97,0x0000, 0x2D98,0x0000, /* A220 */
+0x2D99,0x0000, 0x2D9A,0x0000, 0x2D9B,0x0000, 0x2D9C,0x0000, /* A224 */
+0x2D9D,0x0000, 0x2D9E,0x0000, 0x2D9F,0x0000, 0x2DA0,0x0000, /* A228 */
+0x2DA1,0x0000, 0x2DA2,0x0000, 0x2DA3,0x0000, 0x2DA4,0x0000, /* A22C */
+0x2DA5,0x0000, 0x2DA6,0x0000, 0x2DA7,0x0000, 0x2DA8,0x0000, /* A230 */
+0x2DA9,0x0000, 0x2DAA,0x0000, 0x2DAB,0x0000, 0x2DAC,0x0000, /* A234 */
+0x2DAD,0x0000, 0x2DAE,0x0000, 0x2DAF,0x0000, 0x2DB0,0x0000, /* A238 */
+0x2DB1,0x0000, 0x2DB2,0x0000, 0x2DB3,0x0000, 0x2DB4,0x0000, /* A23C */
+0x2DB5,0x0000, 0x2DB6,0x0000, 0x2DB7,0x0000, 0x2DB8,0x0000, /* A240 */
+0x2DB9,0x0000, 0x2DBA,0x0000, 0x2DBB,0x0000, 0x2DBC,0x0000, /* A244 */
+0x2DBD,0x0000, 0x2DBE,0x0000, 0x2DBF,0x0000, 0x2DC0,0x0000, /* A248 */
+0x2DC1,0x0000, 0x2DC2,0x0000, 0x2DC3,0x0000, 0x2DC4,0x0000, /* A24C */
+0x2DC5,0x0000, 0x2DC6,0x0000, 0x2DC7,0x0000, 0x2DC8,0x0000, /* A250 */
+0x2DC9,0x0000, 0x2DCA,0x0000, 0x2DCB,0x0000, 0x2DCC,0x0000, /* A254 */
+0x2DCD,0x0000, 0x2DCE,0x0000, 0x2DCF,0x0000, 0x2DD0,0x0000, /* A258 */
+0x2DD1,0x0000, 0x2DD2,0x0000, 0x2DD3,0x0000, 0x2DD4,0x0000, /* A25C */
+0x2DD5,0x0000, 0x2DD6,0x0000, 0x2DD7,0x0000, 0x2DD8,0x0000, /* A260 */
+0x2DD9,0x0000, 0x2DDA,0x0000, 0x2DDB,0x0000, 0x2DDC,0x0000, /* A264 */
+0x2DDD,0x0000, 0x2DDE,0x0000, 0x2DDF,0x0000, 0x2DE0,0x0000, /* A268 */
+0x2DE1,0x0000, 0x2DE2,0x0000, 0x2DE3,0x0000, 0x2DE4,0x0000, /* A26C */
+0x2DE5,0x0000, 0x2DE6,0x0000, 0x2DE7,0x0000, 0x2DE8,0x0000, /* A270 */
+0x2DE9,0x0000, 0x2DEA,0x0000, 0x2DEB,0x0000, 0x2DEC,0x0000, /* A274 */
+0x2DED,0x0000, 0x2DEE,0x0000, 0x2DEF,0x0000, 0x2DF0,0x0000, /* A278 */
+0x2DF1,0x0000, 0x2DF2,0x0000, 0x2DF3,0x0000, 0x2DF4,0x0000, /* A27C */
+0x2DF5,0x0000, 0x2DF6,0x0000, 0x2DF7,0x0000, 0x2DF8,0x0000, /* A280 */
+0x2DF9,0x0000, 0x2DFA,0x0000, 0x2DFB,0x0000, 0x2DFC,0x0000, /* A284 */
+0x2DFD,0x0000, 0x2DFE,0x0000, 0x2DFF,0x0000, 0x2E00,0x0000, /* A288 */
+0x2E01,0x0000, 0x2E02,0x0000, 0x2E03,0x0000, 0x2E04,0x0000, /* A28C */
+0x2E05,0x0000, 0x2E06,0x0000, 0x2E07,0x0000, 0x2E08,0x0000, /* A290 */
+0x2E09,0x0000, 0x2E0A,0x0000, 0x2E0B,0x0000, 0x2E0C,0x0000, /* A294 */
+0x2E0D,0x0000, 0x2E0E,0x0000, 0x2E0F,0x0000, 0x2E10,0x0000, /* A298 */
+0x2E11,0x0000, 0x2E12,0x0000, 0x2E13,0x0000, 0x2E14,0x0000, /* A29C */
+0x2E15,0x0000, 0x2E16,0x0000, 0x2E17,0x0000, 0x2E18,0x0000, /* A2A0 */
+0x2E19,0x0000, 0x2E1A,0x0000, 0x2E1B,0x0000, 0x2E1C,0x0000, /* A2A4 */
+0x2E1D,0x0000, 0x2E1E,0x0000, 0x2E1F,0x0000, 0x2E20,0x0000, /* A2A8 */
+0x2E21,0x0000, 0x2E22,0x0000, 0x2E23,0x0000, 0x2E24,0x0000, /* A2AC */
+0x2E25,0x0000, 0x2E26,0x0000, 0x2E27,0x0000, 0x2E28,0x0000, /* A2B0 */
+0x2E29,0x0000, 0x2E2A,0x0000, 0x2E2B,0x0000, 0x2E2C,0x0000, /* A2B4 */
+0x2E2D,0x0000, 0x2E2E,0x0000, 0x2E2F,0x0000, 0x2E30,0x0000, /* A2B8 */
+0x2E31,0x0000, 0x2E32,0x0000, 0x2E33,0x0000, 0x2E34,0x0000, /* A2BC */
+0x2E35,0x0000, 0x2E36,0x0000, 0x2E37,0x0000, 0x2E38,0x0000, /* A2C0 */
+0x2E39,0x0000, 0x2E3A,0x0000, 0x2E3B,0x0000, 0x2E3C,0x0000, /* A2C4 */
+0x2E3D,0x0000, 0x2E3E,0x0000, 0x2E3F,0x0000, 0x2E40,0x0000, /* A2C8 */
+0x2E41,0x0000, 0x2E42,0x0000, 0x2E43,0x0000, 0x2E44,0x0000, /* A2CC */
+0x2E45,0x0000, 0x2E46,0x0000, 0x2E47,0x0000, 0x2E48,0x0000, /* A2D0 */
+0x2E49,0x0000, 0x2E4A,0x0000, 0x2E4B,0x0000, 0x2E4C,0x0000, /* A2D4 */
+0x2E4D,0x0000, 0x2E4E,0x0000, 0x2E4F,0x0000, 0x2E50,0x0000, /* A2D8 */
+0x2E51,0x0000, 0x2E52,0x0000, 0x2E53,0x0000, 0x2E54,0x0000, /* A2DC */
+0x2E55,0x0000, 0x2E56,0x0000, 0x2E57,0x0000, 0x2E58,0x0000, /* A2E0 */
+0x2E59,0x0000, 0x2E5A,0x0000, 0x2E5B,0x0000, 0x2E5C,0x0000, /* A2E4 */
+0x2E5D,0x0000, 0x2E5E,0x0000, 0x2E5F,0x0000, 0x2E60,0x0000, /* A2E8 */
+0x2E61,0x0000, 0x2E62,0x0000, 0x2E63,0x0000, 0x2E64,0x0000, /* A2EC */
+0x2E65,0x0000, 0x2E66,0x0000, 0x2E67,0x0000, 0x2E68,0x0000, /* A2F0 */
+0x2E69,0x0000, 0x2E6A,0x0000, 0x2E6B,0x0000, 0x2E6C,0x0000, /* A2F4 */
+0x2E6D,0x0000, 0x2E6E,0x0000, 0x2E6F,0x0000, 0x2E70,0x0000, /* A2F8 */
+0x2E71,0x0000, 0x2E72,0x0000, 0x2E73,0x0000, 0x2E74,0x0000 /* A2FC */
+};
+
+static const uint16 uca520_p0A3[]= { /* A300 (2 weights per char) */
+0x2E75,0x0000, 0x2E76,0x0000, 0x2E77,0x0000, 0x2E78,0x0000, /* A300 */
+0x2E79,0x0000, 0x2E7A,0x0000, 0x2E7B,0x0000, 0x2E7C,0x0000, /* A304 */
+0x2E7D,0x0000, 0x2E7E,0x0000, 0x2E7F,0x0000, 0x2E80,0x0000, /* A308 */
+0x2E81,0x0000, 0x2E82,0x0000, 0x2E83,0x0000, 0x2E84,0x0000, /* A30C */
+0x2E85,0x0000, 0x2E86,0x0000, 0x2E87,0x0000, 0x2E88,0x0000, /* A310 */
+0x2E89,0x0000, 0x2E8A,0x0000, 0x2E8B,0x0000, 0x2E8C,0x0000, /* A314 */
+0x2E8D,0x0000, 0x2E8E,0x0000, 0x2E8F,0x0000, 0x2E90,0x0000, /* A318 */
+0x2E91,0x0000, 0x2E92,0x0000, 0x2E93,0x0000, 0x2E94,0x0000, /* A31C */
+0x2E95,0x0000, 0x2E96,0x0000, 0x2E97,0x0000, 0x2E98,0x0000, /* A320 */
+0x2E99,0x0000, 0x2E9A,0x0000, 0x2E9B,0x0000, 0x2E9C,0x0000, /* A324 */
+0x2E9D,0x0000, 0x2E9E,0x0000, 0x2E9F,0x0000, 0x2EA0,0x0000, /* A328 */
+0x2EA1,0x0000, 0x2EA2,0x0000, 0x2EA3,0x0000, 0x2EA4,0x0000, /* A32C */
+0x2EA5,0x0000, 0x2EA6,0x0000, 0x2EA7,0x0000, 0x2EA8,0x0000, /* A330 */
+0x2EA9,0x0000, 0x2EAA,0x0000, 0x2EAB,0x0000, 0x2EAC,0x0000, /* A334 */
+0x2EAD,0x0000, 0x2EAE,0x0000, 0x2EAF,0x0000, 0x2EB0,0x0000, /* A338 */
+0x2EB1,0x0000, 0x2EB2,0x0000, 0x2EB3,0x0000, 0x2EB4,0x0000, /* A33C */
+0x2EB5,0x0000, 0x2EB6,0x0000, 0x2EB7,0x0000, 0x2EB8,0x0000, /* A340 */
+0x2EB9,0x0000, 0x2EBA,0x0000, 0x2EBB,0x0000, 0x2EBC,0x0000, /* A344 */
+0x2EBD,0x0000, 0x2EBE,0x0000, 0x2EBF,0x0000, 0x2EC0,0x0000, /* A348 */
+0x2EC1,0x0000, 0x2EC2,0x0000, 0x2EC3,0x0000, 0x2EC4,0x0000, /* A34C */
+0x2EC5,0x0000, 0x2EC6,0x0000, 0x2EC7,0x0000, 0x2EC8,0x0000, /* A350 */
+0x2EC9,0x0000, 0x2ECA,0x0000, 0x2ECB,0x0000, 0x2ECC,0x0000, /* A354 */
+0x2ECD,0x0000, 0x2ECE,0x0000, 0x2ECF,0x0000, 0x2ED0,0x0000, /* A358 */
+0x2ED1,0x0000, 0x2ED2,0x0000, 0x2ED3,0x0000, 0x2ED4,0x0000, /* A35C */
+0x2ED5,0x0000, 0x2ED6,0x0000, 0x2ED7,0x0000, 0x2ED8,0x0000, /* A360 */
+0x2ED9,0x0000, 0x2EDA,0x0000, 0x2EDB,0x0000, 0x2EDC,0x0000, /* A364 */
+0x2EDD,0x0000, 0x2EDE,0x0000, 0x2EDF,0x0000, 0x2EE0,0x0000, /* A368 */
+0x2EE1,0x0000, 0x2EE2,0x0000, 0x2EE3,0x0000, 0x2EE4,0x0000, /* A36C */
+0x2EE5,0x0000, 0x2EE6,0x0000, 0x2EE7,0x0000, 0x2EE8,0x0000, /* A370 */
+0x2EE9,0x0000, 0x2EEA,0x0000, 0x2EEB,0x0000, 0x2EEC,0x0000, /* A374 */
+0x2EED,0x0000, 0x2EEE,0x0000, 0x2EEF,0x0000, 0x2EF0,0x0000, /* A378 */
+0x2EF1,0x0000, 0x2EF2,0x0000, 0x2EF3,0x0000, 0x2EF4,0x0000, /* A37C */
+0x2EF5,0x0000, 0x2EF6,0x0000, 0x2EF7,0x0000, 0x2EF8,0x0000, /* A380 */
+0x2EF9,0x0000, 0x2EFA,0x0000, 0x2EFB,0x0000, 0x2EFC,0x0000, /* A384 */
+0x2EFD,0x0000, 0x2EFE,0x0000, 0x2EFF,0x0000, 0x2F00,0x0000, /* A388 */
+0x2F01,0x0000, 0x2F02,0x0000, 0x2F03,0x0000, 0x2F04,0x0000, /* A38C */
+0x2F05,0x0000, 0x2F06,0x0000, 0x2F07,0x0000, 0x2F08,0x0000, /* A390 */
+0x2F09,0x0000, 0x2F0A,0x0000, 0x2F0B,0x0000, 0x2F0C,0x0000, /* A394 */
+0x2F0D,0x0000, 0x2F0E,0x0000, 0x2F0F,0x0000, 0x2F10,0x0000, /* A398 */
+0x2F11,0x0000, 0x2F12,0x0000, 0x2F13,0x0000, 0x2F14,0x0000, /* A39C */
+0x2F15,0x0000, 0x2F16,0x0000, 0x2F17,0x0000, 0x2F18,0x0000, /* A3A0 */
+0x2F19,0x0000, 0x2F1A,0x0000, 0x2F1B,0x0000, 0x2F1C,0x0000, /* A3A4 */
+0x2F1D,0x0000, 0x2F1E,0x0000, 0x2F1F,0x0000, 0x2F20,0x0000, /* A3A8 */
+0x2F21,0x0000, 0x2F22,0x0000, 0x2F23,0x0000, 0x2F24,0x0000, /* A3AC */
+0x2F25,0x0000, 0x2F26,0x0000, 0x2F27,0x0000, 0x2F28,0x0000, /* A3B0 */
+0x2F29,0x0000, 0x2F2A,0x0000, 0x2F2B,0x0000, 0x2F2C,0x0000, /* A3B4 */
+0x2F2D,0x0000, 0x2F2E,0x0000, 0x2F2F,0x0000, 0x2F30,0x0000, /* A3B8 */
+0x2F31,0x0000, 0x2F32,0x0000, 0x2F33,0x0000, 0x2F34,0x0000, /* A3BC */
+0x2F35,0x0000, 0x2F36,0x0000, 0x2F37,0x0000, 0x2F38,0x0000, /* A3C0 */
+0x2F39,0x0000, 0x2F3A,0x0000, 0x2F3B,0x0000, 0x2F3C,0x0000, /* A3C4 */
+0x2F3D,0x0000, 0x2F3E,0x0000, 0x2F3F,0x0000, 0x2F40,0x0000, /* A3C8 */
+0x2F41,0x0000, 0x2F42,0x0000, 0x2F43,0x0000, 0x2F44,0x0000, /* A3CC */
+0x2F45,0x0000, 0x2F46,0x0000, 0x2F47,0x0000, 0x2F48,0x0000, /* A3D0 */
+0x2F49,0x0000, 0x2F4A,0x0000, 0x2F4B,0x0000, 0x2F4C,0x0000, /* A3D4 */
+0x2F4D,0x0000, 0x2F4E,0x0000, 0x2F4F,0x0000, 0x2F50,0x0000, /* A3D8 */
+0x2F51,0x0000, 0x2F52,0x0000, 0x2F53,0x0000, 0x2F54,0x0000, /* A3DC */
+0x2F55,0x0000, 0x2F56,0x0000, 0x2F57,0x0000, 0x2F58,0x0000, /* A3E0 */
+0x2F59,0x0000, 0x2F5A,0x0000, 0x2F5B,0x0000, 0x2F5C,0x0000, /* A3E4 */
+0x2F5D,0x0000, 0x2F5E,0x0000, 0x2F5F,0x0000, 0x2F60,0x0000, /* A3E8 */
+0x2F61,0x0000, 0x2F62,0x0000, 0x2F63,0x0000, 0x2F64,0x0000, /* A3EC */
+0x2F65,0x0000, 0x2F66,0x0000, 0x2F67,0x0000, 0x2F68,0x0000, /* A3F0 */
+0x2F69,0x0000, 0x2F6A,0x0000, 0x2F6B,0x0000, 0x2F6C,0x0000, /* A3F4 */
+0x2F6D,0x0000, 0x2F6E,0x0000, 0x2F6F,0x0000, 0x2F70,0x0000, /* A3F8 */
+0x2F71,0x0000, 0x2F72,0x0000, 0x2F73,0x0000, 0x2F74,0x0000 /* A3FC */
+};
+
+static const uint16 uca520_p0A4[]= { /* A400 (3 weights per char) */
+0x2F75,0x0000,0x0000, 0x2F76,0x0000,0x0000, 0x2F77,0x0000,0x0000, /* A400 */
+0x2F78,0x0000,0x0000, 0x2F79,0x0000,0x0000, 0x2F7A,0x0000,0x0000, /* A403 */
+0x2F7B,0x0000,0x0000, 0x2F7C,0x0000,0x0000, 0x2F7D,0x0000,0x0000, /* A406 */
+0x2F7E,0x0000,0x0000, 0x2F7F,0x0000,0x0000, 0x2F80,0x0000,0x0000, /* A409 */
+0x2F81,0x0000,0x0000, 0x2F82,0x0000,0x0000, 0x2F83,0x0000,0x0000, /* A40C */
+0x2F84,0x0000,0x0000, 0x2F85,0x0000,0x0000, 0x2F86,0x0000,0x0000, /* A40F */
+0x2F87,0x0000,0x0000, 0x2F88,0x0000,0x0000, 0x2F89,0x0000,0x0000, /* A412 */
+0x2F8A,0x0000,0x0000, 0x2F8B,0x0000,0x0000, 0x2F8C,0x0000,0x0000, /* A415 */
+0x2F8D,0x0000,0x0000, 0x2F8E,0x0000,0x0000, 0x2F8F,0x0000,0x0000, /* A418 */
+0x2F90,0x0000,0x0000, 0x2F91,0x0000,0x0000, 0x2F92,0x0000,0x0000, /* A41B */
+0x2F93,0x0000,0x0000, 0x2F94,0x0000,0x0000, 0x2F95,0x0000,0x0000, /* A41E */
+0x2F96,0x0000,0x0000, 0x2F97,0x0000,0x0000, 0x2F98,0x0000,0x0000, /* A421 */
+0x2F99,0x0000,0x0000, 0x2F9A,0x0000,0x0000, 0x2F9B,0x0000,0x0000, /* A424 */
+0x2F9C,0x0000,0x0000, 0x2F9D,0x0000,0x0000, 0x2F9E,0x0000,0x0000, /* A427 */
+0x2F9F,0x0000,0x0000, 0x2FA0,0x0000,0x0000, 0x2FA1,0x0000,0x0000, /* A42A */
+0x2FA2,0x0000,0x0000, 0x2FA3,0x0000,0x0000, 0x2FA4,0x0000,0x0000, /* A42D */
+0x2FA5,0x0000,0x0000, 0x2FA6,0x0000,0x0000, 0x2FA7,0x0000,0x0000, /* A430 */
+0x2FA8,0x0000,0x0000, 0x2FA9,0x0000,0x0000, 0x2FAA,0x0000,0x0000, /* A433 */
+0x2FAB,0x0000,0x0000, 0x2FAC,0x0000,0x0000, 0x2FAD,0x0000,0x0000, /* A436 */
+0x2FAE,0x0000,0x0000, 0x2FAF,0x0000,0x0000, 0x2FB0,0x0000,0x0000, /* A439 */
+0x2FB1,0x0000,0x0000, 0x2FB2,0x0000,0x0000, 0x2FB3,0x0000,0x0000, /* A43C */
+0x2FB4,0x0000,0x0000, 0x2FB5,0x0000,0x0000, 0x2FB6,0x0000,0x0000, /* A43F */
+0x2FB7,0x0000,0x0000, 0x2FB8,0x0000,0x0000, 0x2FB9,0x0000,0x0000, /* A442 */
+0x2FBA,0x0000,0x0000, 0x2FBB,0x0000,0x0000, 0x2FBC,0x0000,0x0000, /* A445 */
+0x2FBD,0x0000,0x0000, 0x2FBE,0x0000,0x0000, 0x2FBF,0x0000,0x0000, /* A448 */
+0x2FC0,0x0000,0x0000, 0x2FC1,0x0000,0x0000, 0x2FC2,0x0000,0x0000, /* A44B */
+0x2FC3,0x0000,0x0000, 0x2FC4,0x0000,0x0000, 0x2FC5,0x0000,0x0000, /* A44E */
+0x2FC6,0x0000,0x0000, 0x2FC7,0x0000,0x0000, 0x2FC8,0x0000,0x0000, /* A451 */
+0x2FC9,0x0000,0x0000, 0x2FCA,0x0000,0x0000, 0x2FCB,0x0000,0x0000, /* A454 */
+0x2FCC,0x0000,0x0000, 0x2FCD,0x0000,0x0000, 0x2FCE,0x0000,0x0000, /* A457 */
+0x2FCF,0x0000,0x0000, 0x2FD0,0x0000,0x0000, 0x2FD1,0x0000,0x0000, /* A45A */
+0x2FD2,0x0000,0x0000, 0x2FD3,0x0000,0x0000, 0x2FD4,0x0000,0x0000, /* A45D */
+0x2FD5,0x0000,0x0000, 0x2FD6,0x0000,0x0000, 0x2FD7,0x0000,0x0000, /* A460 */
+0x2FD8,0x0000,0x0000, 0x2FD9,0x0000,0x0000, 0x2FDA,0x0000,0x0000, /* A463 */
+0x2FDB,0x0000,0x0000, 0x2FDC,0x0000,0x0000, 0x2FDD,0x0000,0x0000, /* A466 */
+0x2FDE,0x0000,0x0000, 0x2FDF,0x0000,0x0000, 0x2FE0,0x0000,0x0000, /* A469 */
+0x2FE1,0x0000,0x0000, 0x2FE2,0x0000,0x0000, 0x2FE3,0x0000,0x0000, /* A46C */
+0x2FE4,0x0000,0x0000, 0x2FE5,0x0000,0x0000, 0x2FE6,0x0000,0x0000, /* A46F */
+0x2FE7,0x0000,0x0000, 0x2FE8,0x0000,0x0000, 0x2FE9,0x0000,0x0000, /* A472 */
+0x2FEA,0x0000,0x0000, 0x2FEB,0x0000,0x0000, 0x2FEC,0x0000,0x0000, /* A475 */
+0x2FED,0x0000,0x0000, 0x2FEE,0x0000,0x0000, 0x2FEF,0x0000,0x0000, /* A478 */
+0x2FF0,0x0000,0x0000, 0x2FF1,0x0000,0x0000, 0x2FF2,0x0000,0x0000, /* A47B */
+0x2FF3,0x0000,0x0000, 0x2FF4,0x0000,0x0000, 0x2FF5,0x0000,0x0000, /* A47E */
+0x2FF6,0x0000,0x0000, 0x2FF7,0x0000,0x0000, 0x2FF8,0x0000,0x0000, /* A481 */
+0x2FF9,0x0000,0x0000, 0x2FFA,0x0000,0x0000, 0x2FFB,0x0000,0x0000, /* A484 */
+0x2FFC,0x0000,0x0000, 0x2FFD,0x0000,0x0000, 0x2FFE,0x0000,0x0000, /* A487 */
+0x2FFF,0x0000,0x0000, 0x3000,0x0000,0x0000, 0x3001,0x0000,0x0000, /* A48A */
+0xFBC1,0xA48D,0x0000, 0xFBC1,0xA48E,0x0000, 0xFBC1,0xA48F,0x0000, /* A48D */
+0x0DD5,0x0000,0x0000, 0x0DD6,0x0000,0x0000, 0x0DD7,0x0000,0x0000, /* A490 */
+0x0DD8,0x0000,0x0000, 0x0DD9,0x0000,0x0000, 0x0DDA,0x0000,0x0000, /* A493 */
+0x0DDB,0x0000,0x0000, 0x0DDC,0x0000,0x0000, 0x0DDD,0x0000,0x0000, /* A496 */
+0x0DDE,0x0000,0x0000, 0x0DDF,0x0000,0x0000, 0x0DE0,0x0000,0x0000, /* A499 */
+0x0DE1,0x0000,0x0000, 0x0DE2,0x0000,0x0000, 0x0DE3,0x0000,0x0000, /* A49C */
+0x0DE4,0x0000,0x0000, 0x0DE5,0x0000,0x0000, 0x0DE6,0x0000,0x0000, /* A49F */
+0x0DE7,0x0000,0x0000, 0x0DE8,0x0000,0x0000, 0x0DE9,0x0000,0x0000, /* A4A2 */
+0x0DEA,0x0000,0x0000, 0x0DEB,0x0000,0x0000, 0x0DEC,0x0000,0x0000, /* A4A5 */
+0x0DED,0x0000,0x0000, 0x0DEE,0x0000,0x0000, 0x0DEF,0x0000,0x0000, /* A4A8 */
+0x0DF0,0x0000,0x0000, 0x0DF1,0x0000,0x0000, 0x0DF2,0x0000,0x0000, /* A4AB */
+0x0DF3,0x0000,0x0000, 0x0DF4,0x0000,0x0000, 0x0DF5,0x0000,0x0000, /* A4AE */
+0x0DF6,0x0000,0x0000, 0x0DF7,0x0000,0x0000, 0x0DF8,0x0000,0x0000, /* A4B1 */
+0x0DF9,0x0000,0x0000, 0x0DFA,0x0000,0x0000, 0x0DFB,0x0000,0x0000, /* A4B4 */
+0x0DFC,0x0000,0x0000, 0x0DFD,0x0000,0x0000, 0x0DFE,0x0000,0x0000, /* A4B7 */
+0x0DFF,0x0000,0x0000, 0x0E00,0x0000,0x0000, 0x0E01,0x0000,0x0000, /* A4BA */
+0x0E02,0x0000,0x0000, 0x0E03,0x0000,0x0000, 0x0E04,0x0000,0x0000, /* A4BD */
+0x0E05,0x0000,0x0000, 0x0E06,0x0000,0x0000, 0x0E07,0x0000,0x0000, /* A4C0 */
+0x0E08,0x0000,0x0000, 0x0E09,0x0000,0x0000, 0x0E0A,0x0000,0x0000, /* A4C3 */
+0x0E0B,0x0000,0x0000, 0xFBC1,0xA4C7,0x0000, 0xFBC1,0xA4C8,0x0000, /* A4C6 */
+0xFBC1,0xA4C9,0x0000, 0xFBC1,0xA4CA,0x0000, 0xFBC1,0xA4CB,0x0000, /* A4C9 */
+0xFBC1,0xA4CC,0x0000, 0xFBC1,0xA4CD,0x0000, 0xFBC1,0xA4CE,0x0000, /* A4CC */
+0xFBC1,0xA4CF,0x0000, 0x3008,0x0000,0x0000, 0x3009,0x0000,0x0000, /* A4CF */
+0x300A,0x0000,0x0000, 0x300B,0x0000,0x0000, 0x300C,0x0000,0x0000, /* A4D2 */
+0x300D,0x0000,0x0000, 0x300E,0x0000,0x0000, 0x300F,0x0000,0x0000, /* A4D5 */
+0x3010,0x0000,0x0000, 0x3011,0x0000,0x0000, 0x3012,0x0000,0x0000, /* A4D8 */
+0x3013,0x0000,0x0000, 0x3014,0x0000,0x0000, 0x3015,0x0000,0x0000, /* A4DB */
+0x3016,0x0000,0x0000, 0x3017,0x0000,0x0000, 0x3018,0x0000,0x0000, /* A4DE */
+0x3019,0x0000,0x0000, 0x301A,0x0000,0x0000, 0x301B,0x0000,0x0000, /* A4E1 */
+0x301C,0x0000,0x0000, 0x301D,0x0000,0x0000, 0x301E,0x0000,0x0000, /* A4E4 */
+0x301F,0x0000,0x0000, 0x3020,0x0000,0x0000, 0x3021,0x0000,0x0000, /* A4E7 */
+0x3024,0x0000,0x0000, 0x3022,0x0000,0x0000, 0x3025,0x0000,0x0000, /* A4EA */
+0x3023,0x0000,0x0000, 0x3026,0x0000,0x0000, 0x3027,0x0000,0x0000, /* A4ED */
+0x3028,0x0000,0x0000, 0x3029,0x0000,0x0000, 0x302A,0x0000,0x0000, /* A4F0 */
+0x302B,0x0000,0x0000, 0x302C,0x0000,0x0000, 0x302D,0x0000,0x0000, /* A4F3 */
+0x302E,0x0000,0x0000, 0x302F,0x0000,0x0000, 0x3002,0x0000,0x0000, /* A4F6 */
+0x3003,0x0000,0x0000, 0x3004,0x0000,0x0000, 0x3005,0x0000,0x0000, /* A4F9 */
+0x3007,0x0000,0x0000, 0x3006,0x0000,0x0000, 0x023D,0x0000,0x0000, /* A4FC */
+0x028E,0x0000,0x0000 };
+
+static const uint16 uca520_p0A5[]= { /* A500 (2 weights per char) */
+0x2853,0x0000, 0x2854,0x0000, 0x2855,0x0000, 0x2856,0x0000, /* A500 */
+0x2857,0x0000, 0x2858,0x0000, 0x2859,0x0000, 0x285A,0x0000, /* A504 */
+0x285B,0x0000, 0x285C,0x0000, 0x285D,0x0000, 0x285E,0x0000, /* A508 */
+0x285F,0x0000, 0x2860,0x0000, 0x2861,0x0000, 0x2862,0x0000, /* A50C */
+0x2863,0x0000, 0x2864,0x0000, 0x2865,0x0000, 0x2866,0x0000, /* A510 */
+0x2867,0x0000, 0x2868,0x0000, 0x2869,0x0000, 0x286A,0x0000, /* A514 */
+0x286B,0x0000, 0x286C,0x0000, 0x286D,0x0000, 0x286E,0x0000, /* A518 */
+0x286F,0x0000, 0x2870,0x0000, 0x2871,0x0000, 0x2872,0x0000, /* A51C */
+0x2873,0x0000, 0x2874,0x0000, 0x2875,0x0000, 0x2876,0x0000, /* A520 */
+0x2877,0x0000, 0x2878,0x0000, 0x2879,0x0000, 0x287A,0x0000, /* A524 */
+0x287B,0x0000, 0x287C,0x0000, 0x287D,0x0000, 0x287E,0x0000, /* A528 */
+0x287F,0x0000, 0x2880,0x0000, 0x2881,0x0000, 0x2882,0x0000, /* A52C */
+0x2883,0x0000, 0x2884,0x0000, 0x2885,0x0000, 0x2886,0x0000, /* A530 */
+0x2887,0x0000, 0x2888,0x0000, 0x2889,0x0000, 0x288A,0x0000, /* A534 */
+0x288B,0x0000, 0x288C,0x0000, 0x288D,0x0000, 0x288E,0x0000, /* A538 */
+0x288F,0x0000, 0x2890,0x0000, 0x2891,0x0000, 0x2892,0x0000, /* A53C */
+0x2893,0x0000, 0x2894,0x0000, 0x2895,0x0000, 0x2896,0x0000, /* A540 */
+0x2897,0x0000, 0x2898,0x0000, 0x2899,0x0000, 0x289A,0x0000, /* A544 */
+0x289B,0x0000, 0x289C,0x0000, 0x289D,0x0000, 0x289E,0x0000, /* A548 */
+0x289F,0x0000, 0x28A0,0x0000, 0x28A1,0x0000, 0x28A2,0x0000, /* A54C */
+0x28A3,0x0000, 0x28A4,0x0000, 0x28A5,0x0000, 0x28A6,0x0000, /* A550 */
+0x28A7,0x0000, 0x28A8,0x0000, 0x28A9,0x0000, 0x28AA,0x0000, /* A554 */
+0x28AB,0x0000, 0x28AC,0x0000, 0x28AD,0x0000, 0x28AE,0x0000, /* A558 */
+0x28AF,0x0000, 0x28B0,0x0000, 0x28B1,0x0000, 0x28B2,0x0000, /* A55C */
+0x28B3,0x0000, 0x28B4,0x0000, 0x28B5,0x0000, 0x28B6,0x0000, /* A560 */
+0x28B7,0x0000, 0x28B8,0x0000, 0x28B9,0x0000, 0x28BA,0x0000, /* A564 */
+0x28BB,0x0000, 0x28BC,0x0000, 0x28BD,0x0000, 0x28BE,0x0000, /* A568 */
+0x28BF,0x0000, 0x28C0,0x0000, 0x28C1,0x0000, 0x28C2,0x0000, /* A56C */
+0x28C3,0x0000, 0x28C4,0x0000, 0x28C5,0x0000, 0x28C6,0x0000, /* A570 */
+0x28C7,0x0000, 0x28C8,0x0000, 0x28C9,0x0000, 0x28CA,0x0000, /* A574 */
+0x28CB,0x0000, 0x28CC,0x0000, 0x28CD,0x0000, 0x28CE,0x0000, /* A578 */
+0x28CF,0x0000, 0x28D0,0x0000, 0x28D1,0x0000, 0x28D2,0x0000, /* A57C */
+0x28D3,0x0000, 0x28D4,0x0000, 0x28D5,0x0000, 0x28D6,0x0000, /* A580 */
+0x28D7,0x0000, 0x28D8,0x0000, 0x28D9,0x0000, 0x28DA,0x0000, /* A584 */
+0x28DB,0x0000, 0x28DC,0x0000, 0x28DD,0x0000, 0x28DE,0x0000, /* A588 */
+0x28DF,0x0000, 0x28E0,0x0000, 0x28E1,0x0000, 0x28E2,0x0000, /* A58C */
+0x28E3,0x0000, 0x28E4,0x0000, 0x28E5,0x0000, 0x28E6,0x0000, /* A590 */
+0x28E7,0x0000, 0x28E8,0x0000, 0x28E9,0x0000, 0x28EA,0x0000, /* A594 */
+0x28EB,0x0000, 0x28EC,0x0000, 0x28ED,0x0000, 0x28EE,0x0000, /* A598 */
+0x28EF,0x0000, 0x28F0,0x0000, 0x28F1,0x0000, 0x28F2,0x0000, /* A59C */
+0x28F3,0x0000, 0x28F4,0x0000, 0x28F5,0x0000, 0x28F6,0x0000, /* A5A0 */
+0x28F7,0x0000, 0x28F8,0x0000, 0x28F9,0x0000, 0x28FA,0x0000, /* A5A4 */
+0x28FB,0x0000, 0x28FC,0x0000, 0x28FD,0x0000, 0x28FE,0x0000, /* A5A8 */
+0x28FF,0x0000, 0x2900,0x0000, 0x2901,0x0000, 0x2902,0x0000, /* A5AC */
+0x2903,0x0000, 0x2904,0x0000, 0x2905,0x0000, 0x2906,0x0000, /* A5B0 */
+0x2907,0x0000, 0x2908,0x0000, 0x2909,0x0000, 0x290A,0x0000, /* A5B4 */
+0x290B,0x0000, 0x290C,0x0000, 0x290D,0x0000, 0x290E,0x0000, /* A5B8 */
+0x290F,0x0000, 0x2910,0x0000, 0x2911,0x0000, 0x2912,0x0000, /* A5BC */
+0x2913,0x0000, 0x2914,0x0000, 0x2915,0x0000, 0x2916,0x0000, /* A5C0 */
+0x2917,0x0000, 0x2918,0x0000, 0x2919,0x0000, 0x291A,0x0000, /* A5C4 */
+0x291B,0x0000, 0x291C,0x0000, 0x291D,0x0000, 0x291E,0x0000, /* A5C8 */
+0x291F,0x0000, 0x2920,0x0000, 0x2921,0x0000, 0x2922,0x0000, /* A5CC */
+0x2923,0x0000, 0x2924,0x0000, 0x2925,0x0000, 0x2926,0x0000, /* A5D0 */
+0x2927,0x0000, 0x2928,0x0000, 0x2929,0x0000, 0x292A,0x0000, /* A5D4 */
+0x292B,0x0000, 0x292C,0x0000, 0x292D,0x0000, 0x292E,0x0000, /* A5D8 */
+0x292F,0x0000, 0x2930,0x0000, 0x2931,0x0000, 0x2932,0x0000, /* A5DC */
+0x2933,0x0000, 0x2934,0x0000, 0x2935,0x0000, 0x2936,0x0000, /* A5E0 */
+0x2937,0x0000, 0x2938,0x0000, 0x2939,0x0000, 0x293A,0x0000, /* A5E4 */
+0x293B,0x0000, 0x293C,0x0000, 0x293D,0x0000, 0x293E,0x0000, /* A5E8 */
+0x293F,0x0000, 0x2940,0x0000, 0x2941,0x0000, 0x2942,0x0000, /* A5EC */
+0x2943,0x0000, 0x2944,0x0000, 0x2945,0x0000, 0x2946,0x0000, /* A5F0 */
+0x2947,0x0000, 0x2948,0x0000, 0x2949,0x0000, 0x294A,0x0000, /* A5F4 */
+0x294B,0x0000, 0x294C,0x0000, 0x294D,0x0000, 0x294E,0x0000, /* A5F8 */
+0x294F,0x0000, 0x2950,0x0000, 0x2951,0x0000, 0x2952,0x0000 /* A5FC */
+};
+
+static const uint16 uca520_p0A6[]= { /* A600 (3 weights per char) */
+0x2953,0x0000,0x0000, 0x2954,0x0000,0x0000, 0x2955,0x0000,0x0000, /* A600 */
+0x2956,0x0000,0x0000, 0x2957,0x0000,0x0000, 0x2958,0x0000,0x0000, /* A603 */
+0x2959,0x0000,0x0000, 0x295A,0x0000,0x0000, 0x295B,0x0000,0x0000, /* A606 */
+0x295C,0x0000,0x0000, 0x295D,0x0000,0x0000, 0x295E,0x0000,0x0000, /* A609 */
+0x295F,0x0000,0x0000, 0x023E,0x0000,0x0000, 0x028F,0x0000,0x0000, /* A60C */
+0x027D,0x0000,0x0000, 0x28AB,0x0000,0x0000, 0x28BD,0x0000,0x0000, /* A60F */
+0x28DA,0x0000,0x0000, 0x285F,0x295E,0x0000, 0x2871,0x295E,0x0000, /* A612 */
+0x2886,0x295E,0x0000, 0x289A,0x295F,0x0000, 0x28A5,0x295E,0x0000, /* A615 */
+0x28AB,0x295F,0x0000, 0x28AD,0x295F,0x0000, 0x28B3,0x295E,0x0000, /* A618 */
+0x28D8,0x295E,0x0000, 0x2907,0x295E,0x0000, 0x291E,0x295E,0x0000, /* A61B */
+0x2924,0x295F,0x0000, 0x292B,0x295E,0x0000, 0x1205,0x0000,0x0000, /* A61E */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* A621 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* A624 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* A627 */
+0x28C1,0x0000,0x0000, 0x2924,0x0000,0x0000, 0xFBC1,0xA62C,0x0000, /* A62A */
+0xFBC1,0xA62D,0x0000, 0xFBC1,0xA62E,0x0000, 0xFBC1,0xA62F,0x0000, /* A62D */
+0xFBC1,0xA630,0x0000, 0xFBC1,0xA631,0x0000, 0xFBC1,0xA632,0x0000, /* A630 */
+0xFBC1,0xA633,0x0000, 0xFBC1,0xA634,0x0000, 0xFBC1,0xA635,0x0000, /* A633 */
+0xFBC1,0xA636,0x0000, 0xFBC1,0xA637,0x0000, 0xFBC1,0xA638,0x0000, /* A636 */
+0xFBC1,0xA639,0x0000, 0xFBC1,0xA63A,0x0000, 0xFBC1,0xA63B,0x0000, /* A639 */
+0xFBC1,0xA63C,0x0000, 0xFBC1,0xA63D,0x0000, 0xFBC1,0xA63E,0x0000, /* A63C */
+0xFBC1,0xA63F,0x0000, 0x1611,0x0000,0x0000, 0x1611,0x0000,0x0000, /* A63F */
+0x1618,0x0000,0x0000, 0x1618,0x0000,0x0000, 0x161D,0x0000,0x0000, /* A642 */
+0x161D,0x0000,0x0000, 0x1635,0x0000,0x0000, 0x1635,0x0000,0x0000, /* A645 */
+0x1642,0x0000,0x0000, 0x1642,0x0000,0x0000, 0x16EC,0x0000,0x0000, /* A648 */
+0x16EC,0x0000,0x0000, 0x1712,0x0000,0x0000, 0x1712,0x0000,0x0000, /* A64B */
+0x1750,0x0000,0x0000, 0x1750,0x0000,0x0000, 0x1757,0x0000,0x0000, /* A64E */
+0x1757,0x0000,0x0000, 0x176C,0x0000,0x0000, 0x176C,0x0000,0x0000, /* A651 */
+0x1779,0x0000,0x0000, 0x1779,0x0000,0x0000, 0x177A,0x0000,0x0000, /* A654 */
+0x177A,0x0000,0x0000, 0x1788,0x0000,0x0000, 0x1788,0x0000,0x0000, /* A657 */
+0x178D,0x0000,0x0000, 0x178D,0x0000,0x0000, 0x1792,0x0000,0x0000, /* A65A */
+0x1792,0x0000,0x0000, 0x17AB,0x0000,0x0000, 0x17AB,0x0000,0x0000, /* A65D */
+0xFBC1,0xA660,0x0000, 0xFBC1,0xA661,0x0000, 0x15EA,0x0000,0x0000, /* A660 */
+0x15EA,0x0000,0x0000, 0x166C,0x0000,0x0000, 0x166C,0x0000,0x0000, /* A663 */
+0x1677,0x0000,0x0000, 0x1677,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A666 */
+0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A669 */
+0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, 0x1692,0x0000,0x0000, /* A66C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A66F */
+0x0000,0x0000,0x0000, 0x035B,0x0000,0x0000, 0xFBC1,0xA674,0x0000, /* A672 */
+0xFBC1,0xA675,0x0000, 0xFBC1,0xA676,0x0000, 0xFBC1,0xA677,0x0000, /* A675 */
+0xFBC1,0xA678,0x0000, 0xFBC1,0xA679,0x0000, 0xFBC1,0xA67A,0x0000, /* A678 */
+0xFBC1,0xA67B,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A67B */
+0x0391,0x0000,0x0000, 0x1752,0x0000,0x0000, 0x15E5,0x0000,0x0000, /* A67E */
+0x15E5,0x0000,0x0000, 0x1624,0x0000,0x0000, 0x1624,0x0000,0x0000, /* A681 */
+0x1604,0x0000,0x0000, 0x1604,0x0000,0x0000, 0x173A,0x0000,0x0000, /* A684 */
+0x173A,0x0000,0x0000, 0x1622,0x0000,0x0000, 0x1622,0x0000,0x0000, /* A687 */
+0x16CB,0x0000,0x0000, 0x16CB,0x0000,0x0000, 0x16C5,0x0000,0x0000, /* A68A */
+0x16C5,0x0000,0x0000, 0x171F,0x0000,0x0000, 0x171F,0x0000,0x0000, /* A68D */
+0x1724,0x0000,0x0000, 0x1724,0x0000,0x0000, 0x1729,0x0000,0x0000, /* A690 */
+0x1729,0x0000,0x0000, 0x1709,0x0000,0x0000, 0x1709,0x0000,0x0000, /* A693 */
+0x174B,0x0000,0x0000, 0x174B,0x0000,0x0000, 0xFBC1,0xA698,0x0000, /* A696 */
+0xFBC1,0xA699,0x0000, 0xFBC1,0xA69A,0x0000, 0xFBC1,0xA69B,0x0000, /* A699 */
+0xFBC1,0xA69C,0x0000, 0xFBC1,0xA69D,0x0000, 0xFBC1,0xA69E,0x0000, /* A69C */
+0xFBC1,0xA69F,0x0000, 0x2960,0x0000,0x0000, 0x2961,0x0000,0x0000, /* A69F */
+0x2962,0x0000,0x0000, 0x2963,0x0000,0x0000, 0x2964,0x0000,0x0000, /* A6A2 */
+0x2965,0x0000,0x0000, 0x2966,0x0000,0x0000, 0x2967,0x0000,0x0000, /* A6A5 */
+0x2968,0x0000,0x0000, 0x2969,0x0000,0x0000, 0x296A,0x0000,0x0000, /* A6A8 */
+0x296B,0x0000,0x0000, 0x296C,0x0000,0x0000, 0x296D,0x0000,0x0000, /* A6AB */
+0x296E,0x0000,0x0000, 0x296F,0x0000,0x0000, 0x2970,0x0000,0x0000, /* A6AE */
+0x2971,0x0000,0x0000, 0x2972,0x0000,0x0000, 0x2973,0x0000,0x0000, /* A6B1 */
+0x2974,0x0000,0x0000, 0x2975,0x0000,0x0000, 0x2976,0x0000,0x0000, /* A6B4 */
+0x2977,0x0000,0x0000, 0x2978,0x0000,0x0000, 0x2979,0x0000,0x0000, /* A6B7 */
+0x297A,0x0000,0x0000, 0x297B,0x0000,0x0000, 0x297C,0x0000,0x0000, /* A6BA */
+0x297D,0x0000,0x0000, 0x297E,0x0000,0x0000, 0x297F,0x0000,0x0000, /* A6BD */
+0x2980,0x0000,0x0000, 0x2981,0x0000,0x0000, 0x2982,0x0000,0x0000, /* A6C0 */
+0x2983,0x0000,0x0000, 0x2984,0x0000,0x0000, 0x2985,0x0000,0x0000, /* A6C3 */
+0x2986,0x0000,0x0000, 0x2987,0x0000,0x0000, 0x2988,0x0000,0x0000, /* A6C6 */
+0x2989,0x0000,0x0000, 0x298A,0x0000,0x0000, 0x298B,0x0000,0x0000, /* A6C9 */
+0x298C,0x0000,0x0000, 0x298D,0x0000,0x0000, 0x298E,0x0000,0x0000, /* A6CC */
+0x298F,0x0000,0x0000, 0x2990,0x0000,0x0000, 0x2991,0x0000,0x0000, /* A6CF */
+0x2992,0x0000,0x0000, 0x2993,0x0000,0x0000, 0x2994,0x0000,0x0000, /* A6D2 */
+0x2995,0x0000,0x0000, 0x2996,0x0000,0x0000, 0x2997,0x0000,0x0000, /* A6D5 */
+0x2998,0x0000,0x0000, 0x2999,0x0000,0x0000, 0x299A,0x0000,0x0000, /* A6D8 */
+0x299B,0x0000,0x0000, 0x299C,0x0000,0x0000, 0x299D,0x0000,0x0000, /* A6DB */
+0x299E,0x0000,0x0000, 0x299F,0x0000,0x0000, 0x29A0,0x0000,0x0000, /* A6DE */
+0x29A1,0x0000,0x0000, 0x29A2,0x0000,0x0000, 0x29A3,0x0000,0x0000, /* A6E1 */
+0x29A4,0x0000,0x0000, 0x29A5,0x0000,0x0000, 0x29A6,0x0000,0x0000, /* A6E4 */
+0x29A7,0x0000,0x0000, 0x29A8,0x0000,0x0000, 0x29A9,0x0000,0x0000, /* A6E7 */
+0x29AA,0x0000,0x0000, 0x29AB,0x0000,0x0000, 0x29AC,0x0000,0x0000, /* A6EA */
+0x29AD,0x0000,0x0000, 0x29AE,0x0000,0x0000, 0x29AF,0x0000,0x0000, /* A6ED */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x02C8,0x0000,0x0000, /* A6F0 */
+0x0290,0x0000,0x0000, 0x026D,0x0000,0x0000, 0x023F,0x0000,0x0000, /* A6F3 */
+0x0246,0x0000,0x0000, 0x027E,0x0000,0x0000, 0xFBC1,0xA6F8,0x0000, /* A6F6 */
+0xFBC1,0xA6F9,0x0000, 0xFBC1,0xA6FA,0x0000, 0xFBC1,0xA6FB,0x0000, /* A6F9 */
+0xFBC1,0xA6FC,0x0000, 0xFBC1,0xA6FD,0x0000, 0xFBC1,0xA6FE,0x0000, /* A6FC */
+0xFBC1,0xA6FF,0x0000 };
+
+static const uint16 uca520_p0A7[]= { /* A700 (3 weights per char) */
+0x0426,0x0000,0x0000, 0x0427,0x0000,0x0000, 0x0428,0x0000,0x0000, /* A700 */
+0x0429,0x0000,0x0000, 0x042A,0x0000,0x0000, 0x042B,0x0000,0x0000, /* A703 */
+0x042C,0x0000,0x0000, 0x042D,0x0000,0x0000, 0x042E,0x0000,0x0000, /* A706 */
+0x042F,0x0000,0x0000, 0x0430,0x0000,0x0000, 0x0431,0x0000,0x0000, /* A709 */
+0x0432,0x0000,0x0000, 0x0433,0x0000,0x0000, 0x0434,0x0000,0x0000, /* A70C */
+0x0435,0x0000,0x0000, 0x0436,0x0000,0x0000, 0x0437,0x0000,0x0000, /* A70F */
+0x0438,0x0000,0x0000, 0x0439,0x0000,0x0000, 0x043A,0x0000,0x0000, /* A712 */
+0x043B,0x0000,0x0000, 0x043C,0x0000,0x0000, 0x043D,0x0000,0x0000, /* A715 */
+0x043E,0x0000,0x0000, 0x043F,0x0000,0x0000, 0x0440,0x0000,0x0000, /* A718 */
+0x0441,0x0000,0x0000, 0x0442,0x0000,0x0000, 0x0443,0x0000,0x0000, /* A71B */
+0x0444,0x0000,0x0000, 0x0445,0x0000,0x0000, 0x0446,0x0000,0x0000, /* A71E */
+0x0447,0x0000,0x0000, 0x150E,0x0000,0x0000, 0x150E,0x0000,0x0000, /* A721 */
+0x1518,0x0000,0x0000, 0x1518,0x0000,0x0000, 0x12E5,0x0000,0x0000, /* A724 */
+0x12E5,0x0000,0x0000, 0x1433,0x14AD,0x0000, 0x1433,0x14AD,0x0000, /* A727 */
+0x14F3,0x0000,0x0000, 0x14F3,0x0000,0x0000, 0x14F4,0x0000,0x0000, /* A72A */
+0x14F4,0x0000,0x0000, 0x14F5,0x0000,0x0000, 0x14F5,0x0000,0x0000, /* A72D */
+0x12A7,0x0000,0x0000, 0x1414,0x0000,0x0000, 0x120F,0x120F,0x0000, /* A730 */
+0x120F,0x120F,0x0000, 0x120F,0x138E,0x0000, 0x120F,0x138E,0x0000, /* A733 */
+0x120F,0x1453,0x0000, 0x120F,0x1453,0x0000, 0x120F,0x147B,0x0000, /* A736 */
+0x120F,0x147B,0x0000, 0x120F,0x147B,0x0000, 0x120F,0x147B,0x0000, /* A739 */
+0x120F,0x149C,0x0000, 0x120F,0x149C,0x0000, 0x124F,0x0000,0x0000, /* A73C */
+0x124F,0x0000,0x0000, 0x1329,0x0000,0x0000, 0x1329,0x0000,0x0000, /* A73F */
+0x132A,0x0000,0x0000, 0x132A,0x0000,0x0000, 0x132B,0x0000,0x0000, /* A742 */
+0x132B,0x0000,0x0000, 0x1338,0x0000,0x0000, 0x1338,0x0000,0x0000, /* A745 */
+0x133A,0x0000,0x0000, 0x133A,0x0000,0x0000, 0x13A9,0x0000,0x0000, /* A748 */
+0x13A9,0x0000,0x0000, 0x13A1,0x0000,0x0000, 0x13A1,0x0000,0x0000, /* A74B */
+0x138E,0x138E,0x0000, 0x138E,0x138E,0x0000, 0x13B9,0x0000,0x0000, /* A74E */
+0x13B9,0x0000,0x0000, 0x13C0,0x0000,0x0000, 0x13C0,0x0000,0x0000, /* A751 */
+0x13C1,0x0000,0x0000, 0x13C1,0x0000,0x0000, 0x13CC,0x0000,0x0000, /* A754 */
+0x13CC,0x0000,0x0000, 0x13CD,0x0000,0x0000, 0x13CD,0x0000,0x0000, /* A757 */
+0x13E2,0x0000,0x0000, 0x13E2,0x0000,0x0000, 0x140F,0x0000,0x0000, /* A75A */
+0x140F,0x0000,0x0000, 0x1480,0x0000,0x0000, 0x1480,0x0000,0x0000, /* A75D */
+0x147B,0x149C,0x0000, 0x147B,0x149C,0x0000, 0x14C9,0x0000,0x0000, /* A760 */
+0x14C9,0x0000,0x0000, 0x14E4,0x0000,0x0000, 0x14E4,0x0000,0x0000, /* A763 */
+0x14E5,0x0000,0x0000, 0x14E5,0x0000,0x0000, 0x14EA,0x0000,0x0000, /* A766 */
+0x14EA,0x0000,0x0000, 0x14EB,0x0000,0x0000, 0x14EB,0x0000,0x0000, /* A769 */
+0x14EC,0x0000,0x0000, 0x14EC,0x0000,0x0000, 0x14ED,0x0000,0x0000, /* A76C */
+0x14ED,0x0000,0x0000, 0x14ED,0x0000,0x0000, 0x1269,0x0000,0x0000, /* A76F */
+0x1351,0x0000,0x0000, 0x136C,0x0000,0x0000, 0x1389,0x0000,0x0000, /* A772 */
+0x140D,0x0000,0x0000, 0x140E,0x0000,0x0000, 0x144E,0x0000,0x0000, /* A775 */
+0x14EE,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x1250,0x0000,0x0000, /* A778 */
+0x12A3,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* A77B */
+0x12CA,0x0000,0x0000, 0x12CA,0x0000,0x0000, 0x1356,0x0000,0x0000, /* A77E */
+0x1356,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* A781 */
+0x1410,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* A784 */
+0x1433,0x0000,0x0000, 0x0448,0x0000,0x0000, 0x0449,0x0000,0x0000, /* A787 */
+0x044A,0x0000,0x0000, 0x150F,0x0000,0x0000, 0x150F,0x0000,0x0000, /* A78A */
+0xFBC1,0xA78D,0x0000, 0xFBC1,0xA78E,0x0000, 0xFBC1,0xA78F,0x0000, /* A78D */
+0xFBC1,0xA790,0x0000, 0xFBC1,0xA791,0x0000, 0xFBC1,0xA792,0x0000, /* A790 */
+0xFBC1,0xA793,0x0000, 0xFBC1,0xA794,0x0000, 0xFBC1,0xA795,0x0000, /* A793 */
+0xFBC1,0xA796,0x0000, 0xFBC1,0xA797,0x0000, 0xFBC1,0xA798,0x0000, /* A796 */
+0xFBC1,0xA799,0x0000, 0xFBC1,0xA79A,0x0000, 0xFBC1,0xA79B,0x0000, /* A799 */
+0xFBC1,0xA79C,0x0000, 0xFBC1,0xA79D,0x0000, 0xFBC1,0xA79E,0x0000, /* A79C */
+0xFBC1,0xA79F,0x0000, 0xFBC1,0xA7A0,0x0000, 0xFBC1,0xA7A1,0x0000, /* A79F */
+0xFBC1,0xA7A2,0x0000, 0xFBC1,0xA7A3,0x0000, 0xFBC1,0xA7A4,0x0000, /* A7A2 */
+0xFBC1,0xA7A5,0x0000, 0xFBC1,0xA7A6,0x0000, 0xFBC1,0xA7A7,0x0000, /* A7A5 */
+0xFBC1,0xA7A8,0x0000, 0xFBC1,0xA7A9,0x0000, 0xFBC1,0xA7AA,0x0000, /* A7A8 */
+0xFBC1,0xA7AB,0x0000, 0xFBC1,0xA7AC,0x0000, 0xFBC1,0xA7AD,0x0000, /* A7AB */
+0xFBC1,0xA7AE,0x0000, 0xFBC1,0xA7AF,0x0000, 0xFBC1,0xA7B0,0x0000, /* A7AE */
+0xFBC1,0xA7B1,0x0000, 0xFBC1,0xA7B2,0x0000, 0xFBC1,0xA7B3,0x0000, /* A7B1 */
+0xFBC1,0xA7B4,0x0000, 0xFBC1,0xA7B5,0x0000, 0xFBC1,0xA7B6,0x0000, /* A7B4 */
+0xFBC1,0xA7B7,0x0000, 0xFBC1,0xA7B8,0x0000, 0xFBC1,0xA7B9,0x0000, /* A7B7 */
+0xFBC1,0xA7BA,0x0000, 0xFBC1,0xA7BB,0x0000, 0xFBC1,0xA7BC,0x0000, /* A7BA */
+0xFBC1,0xA7BD,0x0000, 0xFBC1,0xA7BE,0x0000, 0xFBC1,0xA7BF,0x0000, /* A7BD */
+0xFBC1,0xA7C0,0x0000, 0xFBC1,0xA7C1,0x0000, 0xFBC1,0xA7C2,0x0000, /* A7C0 */
+0xFBC1,0xA7C3,0x0000, 0xFBC1,0xA7C4,0x0000, 0xFBC1,0xA7C5,0x0000, /* A7C3 */
+0xFBC1,0xA7C6,0x0000, 0xFBC1,0xA7C7,0x0000, 0xFBC1,0xA7C8,0x0000, /* A7C6 */
+0xFBC1,0xA7C9,0x0000, 0xFBC1,0xA7CA,0x0000, 0xFBC1,0xA7CB,0x0000, /* A7C9 */
+0xFBC1,0xA7CC,0x0000, 0xFBC1,0xA7CD,0x0000, 0xFBC1,0xA7CE,0x0000, /* A7CC */
+0xFBC1,0xA7CF,0x0000, 0xFBC1,0xA7D0,0x0000, 0xFBC1,0xA7D1,0x0000, /* A7CF */
+0xFBC1,0xA7D2,0x0000, 0xFBC1,0xA7D3,0x0000, 0xFBC1,0xA7D4,0x0000, /* A7D2 */
+0xFBC1,0xA7D5,0x0000, 0xFBC1,0xA7D6,0x0000, 0xFBC1,0xA7D7,0x0000, /* A7D5 */
+0xFBC1,0xA7D8,0x0000, 0xFBC1,0xA7D9,0x0000, 0xFBC1,0xA7DA,0x0000, /* A7D8 */
+0xFBC1,0xA7DB,0x0000, 0xFBC1,0xA7DC,0x0000, 0xFBC1,0xA7DD,0x0000, /* A7DB */
+0xFBC1,0xA7DE,0x0000, 0xFBC1,0xA7DF,0x0000, 0xFBC1,0xA7E0,0x0000, /* A7DE */
+0xFBC1,0xA7E1,0x0000, 0xFBC1,0xA7E2,0x0000, 0xFBC1,0xA7E3,0x0000, /* A7E1 */
+0xFBC1,0xA7E4,0x0000, 0xFBC1,0xA7E5,0x0000, 0xFBC1,0xA7E6,0x0000, /* A7E4 */
+0xFBC1,0xA7E7,0x0000, 0xFBC1,0xA7E8,0x0000, 0xFBC1,0xA7E9,0x0000, /* A7E7 */
+0xFBC1,0xA7EA,0x0000, 0xFBC1,0xA7EB,0x0000, 0xFBC1,0xA7EC,0x0000, /* A7EA */
+0xFBC1,0xA7ED,0x0000, 0xFBC1,0xA7EE,0x0000, 0xFBC1,0xA7EF,0x0000, /* A7ED */
+0xFBC1,0xA7F0,0x0000, 0xFBC1,0xA7F1,0x0000, 0xFBC1,0xA7F2,0x0000, /* A7F0 */
+0xFBC1,0xA7F3,0x0000, 0xFBC1,0xA7F4,0x0000, 0xFBC1,0xA7F5,0x0000, /* A7F3 */
+0xFBC1,0xA7F6,0x0000, 0xFBC1,0xA7F7,0x0000, 0xFBC1,0xA7F8,0x0000, /* A7F6 */
+0xFBC1,0xA7F9,0x0000, 0xFBC1,0xA7FA,0x0000, 0x12AF,0x0000,0x0000, /* A7F9 */
+0x13C2,0x0000,0x0000, 0x136A,0x0000,0x0000, 0x12F8,0x0000,0x0000, /* A7FC */
+0x136B,0x0000,0x0000 };
+
+static const uint16 uca520_p0A8[]= { /* A800 (3 weights per char) */
+0x1E7E,0x0000,0x0000, 0x1E7F,0x0000,0x0000, 0x1E80,0x0000,0x0000, /* A800 */
+0x1E81,0x0000,0x0000, 0x1E82,0x0000,0x0000, 0x1E83,0x0000,0x0000, /* A803 */
+0x1E84,0x0000,0x0000, 0x1E85,0x0000,0x0000, 0x1E86,0x0000,0x0000, /* A806 */
+0x1E87,0x0000,0x0000, 0x1E88,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A809 */
+0x1E89,0x0000,0x0000, 0x1E8A,0x0000,0x0000, 0x1E8B,0x0000,0x0000, /* A80C */
+0x1E8C,0x0000,0x0000, 0x1E8D,0x0000,0x0000, 0x1E8E,0x0000,0x0000, /* A80F */
+0x1E8F,0x0000,0x0000, 0x1E90,0x0000,0x0000, 0x1E91,0x0000,0x0000, /* A812 */
+0x1E92,0x0000,0x0000, 0x1E93,0x0000,0x0000, 0x1E94,0x0000,0x0000, /* A815 */
+0x1E95,0x0000,0x0000, 0x1E96,0x0000,0x0000, 0x1E97,0x0000,0x0000, /* A818 */
+0x1E98,0x0000,0x0000, 0x1E99,0x0000,0x0000, 0x1E9A,0x0000,0x0000, /* A81B */
+0x1E9B,0x0000,0x0000, 0x1E9C,0x0000,0x0000, 0x1E9D,0x0000,0x0000, /* A81E */
+0x1E9E,0x0000,0x0000, 0x1E9F,0x0000,0x0000, 0x1EA0,0x0000,0x0000, /* A821 */
+0x1EA1,0x0000,0x0000, 0x1EA2,0x0000,0x0000, 0x1EA3,0x0000,0x0000, /* A824 */
+0x1EA4,0x0000,0x0000, 0x0460,0x0000,0x0000, 0x0461,0x0000,0x0000, /* A827 */
+0x0462,0x0000,0x0000, 0x0463,0x0000,0x0000, 0xFBC1,0xA82C,0x0000, /* A82A */
+0xFBC1,0xA82D,0x0000, 0xFBC1,0xA82E,0x0000, 0xFBC1,0xA82F,0x0000, /* A82D */
+0x1116,0x0000,0x0000, 0x1117,0x0000,0x0000, 0x1118,0x0000,0x0000, /* A830 */
+0x1119,0x0000,0x0000, 0x111A,0x0000,0x0000, 0x111B,0x0000,0x0000, /* A833 */
+0x0464,0x0000,0x0000, 0x0465,0x0000,0x0000, 0x11E9,0x0000,0x0000, /* A836 */
+0x0466,0x0000,0x0000, 0xFBC1,0xA83A,0x0000, 0xFBC1,0xA83B,0x0000, /* A839 */
+0xFBC1,0xA83C,0x0000, 0xFBC1,0xA83D,0x0000, 0xFBC1,0xA83E,0x0000, /* A83C */
+0xFBC1,0xA83F,0x0000, 0x20B7,0x0000,0x0000, 0x20B8,0x0000,0x0000, /* A83F */
+0x20B9,0x0000,0x0000, 0x20BA,0x0000,0x0000, 0x20BB,0x0000,0x0000, /* A842 */
+0x20BC,0x0000,0x0000, 0x20BD,0x0000,0x0000, 0x20BE,0x0000,0x0000, /* A845 */
+0x20C3,0x0000,0x0000, 0x20C4,0x0000,0x0000, 0x20C5,0x0000,0x0000, /* A848 */
+0x20C6,0x0000,0x0000, 0x20C7,0x0000,0x0000, 0x20C8,0x0000,0x0000, /* A84B */
+0x20C9,0x0000,0x0000, 0x20CA,0x0000,0x0000, 0x20CB,0x0000,0x0000, /* A84E */
+0x20CC,0x0000,0x0000, 0x20CD,0x0000,0x0000, 0x20CE,0x0000,0x0000, /* A851 */
+0x20D0,0x0000,0x0000, 0x20D1,0x0000,0x0000, 0x20D2,0x0000,0x0000, /* A854 */
+0x20D3,0x0000,0x0000, 0x20D6,0x0000,0x0000, 0x20D9,0x0000,0x0000, /* A857 */
+0x20DA,0x0000,0x0000, 0x20DC,0x0000,0x0000, 0x20DD,0x0000,0x0000, /* A85A */
+0x20E0,0x0000,0x0000, 0x20E5,0x0000,0x0000, 0x20E6,0x0000,0x0000, /* A85D */
+0x20E7,0x0000,0x0000, 0x20E8,0x0000,0x0000, 0x20E1,0x0000,0x0000, /* A860 */
+0x20E2,0x0000,0x0000, 0x20E3,0x0000,0x0000, 0x20E4,0x0000,0x0000, /* A863 */
+0x20E9,0x0000,0x0000, 0x20CF,0x0000,0x0000, 0x20D4,0x0000,0x0000, /* A866 */
+0x20BF,0x0000,0x0000, 0x20C0,0x0000,0x0000, 0x20C1,0x0000,0x0000, /* A869 */
+0x20C2,0x0000,0x0000, 0x20D5,0x0000,0x0000, 0x20DB,0x0000,0x0000, /* A86C */
+0x20DE,0x0000,0x0000, 0x20DF,0x0000,0x0000, 0x20D7,0x0000,0x0000, /* A86F */
+0x20D8,0x0000,0x0000, 0x20EA,0x0000,0x0000, 0x03D9,0x0000,0x0000, /* A872 */
+0x03DA,0x0000,0x0000, 0x029A,0x0000,0x0000, 0x029B,0x0000,0x0000, /* A875 */
+0xFBC1,0xA878,0x0000, 0xFBC1,0xA879,0x0000, 0xFBC1,0xA87A,0x0000, /* A878 */
+0xFBC1,0xA87B,0x0000, 0xFBC1,0xA87C,0x0000, 0xFBC1,0xA87D,0x0000, /* A87B */
+0xFBC1,0xA87E,0x0000, 0xFBC1,0xA87F,0x0000, 0x0000,0x0000,0x0000, /* A87E */
+0x0000,0x0000,0x0000, 0x1EA5,0x0000,0x0000, 0x1EA6,0x0000,0x0000, /* A881 */
+0x1EA7,0x0000,0x0000, 0x1EA8,0x0000,0x0000, 0x1EA9,0x0000,0x0000, /* A884 */
+0x1EAA,0x0000,0x0000, 0x1EAB,0x0000,0x0000, 0x1EAC,0x0000,0x0000, /* A887 */
+0x1EAD,0x0000,0x0000, 0x1EAE,0x0000,0x0000, 0x1EAF,0x0000,0x0000, /* A88A */
+0x1EB0,0x0000,0x0000, 0x1EB1,0x0000,0x0000, 0x1EB2,0x0000,0x0000, /* A88D */
+0x1EB3,0x0000,0x0000, 0x1EB4,0x0000,0x0000, 0x1EB5,0x0000,0x0000, /* A890 */
+0x1EB6,0x0000,0x0000, 0x1EB7,0x0000,0x0000, 0x1EB8,0x0000,0x0000, /* A893 */
+0x1EB9,0x0000,0x0000, 0x1EBA,0x0000,0x0000, 0x1EBB,0x0000,0x0000, /* A896 */
+0x1EBC,0x0000,0x0000, 0x1EBD,0x0000,0x0000, 0x1EBE,0x0000,0x0000, /* A899 */
+0x1EBF,0x0000,0x0000, 0x1EC0,0x0000,0x0000, 0x1EC1,0x0000,0x0000, /* A89C */
+0x1EC2,0x0000,0x0000, 0x1EC3,0x0000,0x0000, 0x1EC4,0x0000,0x0000, /* A89F */
+0x1EC5,0x0000,0x0000, 0x1EC6,0x0000,0x0000, 0x1EC7,0x0000,0x0000, /* A8A2 */
+0x1EC8,0x0000,0x0000, 0x1EC9,0x0000,0x0000, 0x1ECA,0x0000,0x0000, /* A8A5 */
+0x1ECB,0x0000,0x0000, 0x1ECC,0x0000,0x0000, 0x1ECD,0x0000,0x0000, /* A8A8 */
+0x1ECE,0x0000,0x0000, 0x1ECF,0x0000,0x0000, 0x1ED0,0x0000,0x0000, /* A8AB */
+0x1ED1,0x0000,0x0000, 0x1ED2,0x0000,0x0000, 0x1ED3,0x0000,0x0000, /* A8AE */
+0x1ED4,0x0000,0x0000, 0x1ED5,0x0000,0x0000, 0x1ED6,0x0000,0x0000, /* A8B1 */
+0x1ED7,0x0000,0x0000, 0x1ED8,0x0000,0x0000, 0x1ED9,0x0000,0x0000, /* A8B4 */
+0x1EDA,0x0000,0x0000, 0x1EDB,0x0000,0x0000, 0x1EDC,0x0000,0x0000, /* A8B7 */
+0x1EDD,0x0000,0x0000, 0x1EDE,0x0000,0x0000, 0x1EDF,0x0000,0x0000, /* A8BA */
+0x1EE0,0x0000,0x0000, 0x1EE1,0x0000,0x0000, 0x1EE2,0x0000,0x0000, /* A8BD */
+0x1EE3,0x0000,0x0000, 0x1EE4,0x0000,0x0000, 0x1EE5,0x0000,0x0000, /* A8C0 */
+0x1EE6,0x0000,0x0000, 0x1EE7,0x0000,0x0000, 0xFBC1,0xA8C5,0x0000, /* A8C3 */
+0xFBC1,0xA8C6,0x0000, 0xFBC1,0xA8C7,0x0000, 0xFBC1,0xA8C8,0x0000, /* A8C6 */
+0xFBC1,0xA8C9,0x0000, 0xFBC1,0xA8CA,0x0000, 0xFBC1,0xA8CB,0x0000, /* A8C9 */
+0xFBC1,0xA8CC,0x0000, 0xFBC1,0xA8CD,0x0000, 0x0296,0x0000,0x0000, /* A8CC */
+0x0297,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* A8CF */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* A8D2 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* A8D5 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC1,0xA8DA,0x0000, /* A8D8 */
+0xFBC1,0xA8DB,0x0000, 0xFBC1,0xA8DC,0x0000, 0xFBC1,0xA8DD,0x0000, /* A8DB */
+0xFBC1,0xA8DE,0x0000, 0xFBC1,0xA8DF,0x0000, 0x0000,0x0000,0x0000, /* A8DE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E1 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E7 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8EA */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8ED */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1BE8,0x0000,0x0000, /* A8F0 */
+0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, /* A8F3 */
+0x1BE8,0x0000,0x0000, 0x1BE8,0x0000,0x0000, 0x03A2,0x0000,0x0000, /* A8F6 */
+0x03A3,0x0000,0x0000, 0x03A4,0x0000,0x0000, 0x1BE9,0x0000,0x0000, /* A8F9 */
+0xFBC1,0xA8FC,0x0000, 0xFBC1,0xA8FD,0x0000, 0xFBC1,0xA8FE,0x0000, /* A8FC */
+0xFBC1,0xA8FF,0x0000 };
+
+static const uint16 uca520_p0A9[]= { /* A900 (3 weights per char) */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* A900 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* A903 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* A906 */
+0x120E,0x0000,0x0000, 0x21AC,0x0000,0x0000, 0x21AD,0x0000,0x0000, /* A909 */
+0x21AE,0x0000,0x0000, 0x21AF,0x0000,0x0000, 0x21B0,0x0000,0x0000, /* A90C */
+0x21B1,0x0000,0x0000, 0x21B2,0x0000,0x0000, 0x21B3,0x0000,0x0000, /* A90F */
+0x21B4,0x0000,0x0000, 0x21B5,0x0000,0x0000, 0x21B6,0x0000,0x0000, /* A912 */
+0x21B7,0x0000,0x0000, 0x21B8,0x0000,0x0000, 0x21B9,0x0000,0x0000, /* A915 */
+0x21BA,0x0000,0x0000, 0x21BB,0x0000,0x0000, 0x21BC,0x0000,0x0000, /* A918 */
+0x21BD,0x0000,0x0000, 0x21BE,0x0000,0x0000, 0x21BF,0x0000,0x0000, /* A91B */
+0x21C0,0x0000,0x0000, 0x21C1,0x0000,0x0000, 0x21C2,0x0000,0x0000, /* A91E */
+0x21C3,0x0000,0x0000, 0x21C4,0x0000,0x0000, 0x21C5,0x0000,0x0000, /* A921 */
+0x21C6,0x0000,0x0000, 0x21C7,0x0000,0x0000, 0x21C8,0x0000,0x0000, /* A924 */
+0x21C9,0x0000,0x0000, 0x21CA,0x0000,0x0000, 0x21CB,0x0000,0x0000, /* A927 */
+0x21CC,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A92A */
+0x0000,0x0000,0x0000, 0x03DB,0x0000,0x0000, 0x029E,0x0000,0x0000, /* A92D */
+0x2188,0x0000,0x0000, 0x2189,0x0000,0x0000, 0x218A,0x0000,0x0000, /* A930 */
+0x218B,0x0000,0x0000, 0x218C,0x0000,0x0000, 0x218D,0x0000,0x0000, /* A933 */
+0x218E,0x0000,0x0000, 0x218F,0x0000,0x0000, 0x2190,0x0000,0x0000, /* A936 */
+0x2191,0x0000,0x0000, 0x2192,0x0000,0x0000, 0x2193,0x0000,0x0000, /* A939 */
+0x2194,0x0000,0x0000, 0x2195,0x0000,0x0000, 0x2196,0x0000,0x0000, /* A93C */
+0x2197,0x0000,0x0000, 0x2198,0x0000,0x0000, 0x2199,0x0000,0x0000, /* A93F */
+0x219A,0x0000,0x0000, 0x219B,0x0000,0x0000, 0x219C,0x0000,0x0000, /* A942 */
+0x219D,0x0000,0x0000, 0x219E,0x0000,0x0000, 0x219F,0x0000,0x0000, /* A945 */
+0x21A0,0x0000,0x0000, 0x21A1,0x0000,0x0000, 0x21A2,0x0000,0x0000, /* A948 */
+0x21A3,0x0000,0x0000, 0x21A4,0x0000,0x0000, 0x21A5,0x0000,0x0000, /* A94B */
+0x21A6,0x0000,0x0000, 0x21A7,0x0000,0x0000, 0x21A8,0x0000,0x0000, /* A94E */
+0x21A9,0x0000,0x0000, 0x21AA,0x0000,0x0000, 0x21AB,0x0000,0x0000, /* A951 */
+0xFBC1,0xA954,0x0000, 0xFBC1,0xA955,0x0000, 0xFBC1,0xA956,0x0000, /* A954 */
+0xFBC1,0xA957,0x0000, 0xFBC1,0xA958,0x0000, 0xFBC1,0xA959,0x0000, /* A957 */
+0xFBC1,0xA95A,0x0000, 0xFBC1,0xA95B,0x0000, 0xFBC1,0xA95C,0x0000, /* A95A */
+0xFBC1,0xA95D,0x0000, 0xFBC1,0xA95E,0x0000, 0x02C9,0x0000,0x0000, /* A95D */
+0x2A0F,0x0000,0x0000, 0x2A10,0x0000,0x0000, 0x2A11,0x0000,0x0000, /* A960 */
+0x2A12,0x0000,0x0000, 0x2A13,0x0000,0x0000, 0x2A14,0x0000,0x0000, /* A963 */
+0x2A15,0x0000,0x0000, 0x2A16,0x0000,0x0000, 0x2A17,0x0000,0x0000, /* A966 */
+0x2A18,0x0000,0x0000, 0x2A19,0x0000,0x0000, 0x2A1A,0x0000,0x0000, /* A969 */
+0x2A1B,0x0000,0x0000, 0x2A1C,0x0000,0x0000, 0x2A1D,0x0000,0x0000, /* A96C */
+0x2A1E,0x0000,0x0000, 0x2A1F,0x0000,0x0000, 0x2A20,0x0000,0x0000, /* A96F */
+0x2A21,0x0000,0x0000, 0x2A22,0x0000,0x0000, 0x2A23,0x0000,0x0000, /* A972 */
+0x2A24,0x0000,0x0000, 0x2A25,0x0000,0x0000, 0x2A26,0x0000,0x0000, /* A975 */
+0x2A27,0x0000,0x0000, 0x2A28,0x0000,0x0000, 0x2A29,0x0000,0x0000, /* A978 */
+0x2A2A,0x0000,0x0000, 0x2A2B,0x0000,0x0000, 0xFBC1,0xA97D,0x0000, /* A97B */
+0xFBC1,0xA97E,0x0000, 0xFBC1,0xA97F,0x0000, 0x0000,0x0000,0x0000, /* A97E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A981 */
+0x23EC,0x0000,0x0000, 0x23ED,0x0000,0x0000, 0x23EE,0x0000,0x0000, /* A984 */
+0x23EF,0x0000,0x0000, 0x23F0,0x0000,0x0000, 0x23F1,0x0000,0x0000, /* A987 */
+0x23F2,0x0000,0x0000, 0x23F3,0x0000,0x0000, 0x23F4,0x0000,0x0000, /* A98A */
+0x23F5,0x0000,0x0000, 0x23F6,0x0000,0x0000, 0x23F7,0x0000,0x0000, /* A98D */
+0x23F8,0x0000,0x0000, 0x23F9,0x0000,0x0000, 0x23FA,0x0000,0x0000, /* A990 */
+0x23FB,0x0000,0x0000, 0x23FC,0x0000,0x0000, 0x23FD,0x0000,0x0000, /* A993 */
+0x23FE,0x0000,0x0000, 0x23FF,0x0000,0x0000, 0x2400,0x0000,0x0000, /* A996 */
+0x2401,0x0000,0x0000, 0x2402,0x0000,0x0000, 0x2403,0x0000,0x0000, /* A999 */
+0x2404,0x0000,0x0000, 0x2405,0x0000,0x0000, 0x2406,0x0000,0x0000, /* A99C */
+0x2407,0x0000,0x0000, 0x2408,0x0000,0x0000, 0x2409,0x0000,0x0000, /* A99F */
+0x240A,0x0000,0x0000, 0x240B,0x0000,0x0000, 0x240C,0x0000,0x0000, /* A9A2 */
+0x240D,0x0000,0x0000, 0x240E,0x0000,0x0000, 0x240F,0x0000,0x0000, /* A9A5 */
+0x2410,0x0000,0x0000, 0x2411,0x0000,0x0000, 0x2412,0x0000,0x0000, /* A9A8 */
+0x2414,0x0000,0x0000, 0x2414,0x0000,0x0000, 0x2416,0x0000,0x0000, /* A9AB */
+0x2417,0x0000,0x0000, 0x2418,0x0000,0x0000, 0x2419,0x0000,0x0000, /* A9AE */
+0x241A,0x0000,0x0000, 0x241B,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A9B1 */
+0x241C,0x0000,0x0000, 0x2425,0x0000,0x0000, 0x241E,0x0000,0x0000, /* A9B4 */
+0x241F,0x0000,0x0000, 0x2420,0x0000,0x0000, 0x2421,0x0000,0x0000, /* A9B7 */
+0x2423,0x0000,0x0000, 0x2424,0x0000,0x0000, 0x241D,0x0000,0x0000, /* A9BA */
+0x2422,0x0000,0x0000, 0x2413,0x0000,0x0000, 0x2415,0x0000,0x0000, /* A9BD */
+0x2426,0x0000,0x0000, 0x02BE,0x0000,0x0000, 0x02BF,0x0000,0x0000, /* A9C0 */
+0x02C0,0x0000,0x0000, 0x02C1,0x0000,0x0000, 0x02C2,0x0000,0x0000, /* A9C3 */
+0x02C3,0x0000,0x0000, 0x0269,0x0000,0x0000, 0x02A9,0x0000,0x0000, /* A9C6 */
+0x02AA,0x0000,0x0000, 0x02C4,0x0000,0x0000, 0x02C5,0x0000,0x0000, /* A9C9 */
+0x02C6,0x0000,0x0000, 0x02C7,0x0000,0x0000, 0xFBC1,0xA9CE,0x0000, /* A9CC */
+0x11D4,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* A9CF */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* A9D2 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* A9D5 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC1,0xA9DA,0x0000, /* A9D8 */
+0xFBC1,0xA9DB,0x0000, 0xFBC1,0xA9DC,0x0000, 0xFBC1,0xA9DD,0x0000, /* A9DB */
+0x03DC,0x0000,0x0000, 0x03DD,0x0000,0x0000, 0xFBC1,0xA9E0,0x0000, /* A9DE */
+0xFBC1,0xA9E1,0x0000, 0xFBC1,0xA9E2,0x0000, 0xFBC1,0xA9E3,0x0000, /* A9E1 */
+0xFBC1,0xA9E4,0x0000, 0xFBC1,0xA9E5,0x0000, 0xFBC1,0xA9E6,0x0000, /* A9E4 */
+0xFBC1,0xA9E7,0x0000, 0xFBC1,0xA9E8,0x0000, 0xFBC1,0xA9E9,0x0000, /* A9E7 */
+0xFBC1,0xA9EA,0x0000, 0xFBC1,0xA9EB,0x0000, 0xFBC1,0xA9EC,0x0000, /* A9EA */
+0xFBC1,0xA9ED,0x0000, 0xFBC1,0xA9EE,0x0000, 0xFBC1,0xA9EF,0x0000, /* A9ED */
+0xFBC1,0xA9F0,0x0000, 0xFBC1,0xA9F1,0x0000, 0xFBC1,0xA9F2,0x0000, /* A9F0 */
+0xFBC1,0xA9F3,0x0000, 0xFBC1,0xA9F4,0x0000, 0xFBC1,0xA9F5,0x0000, /* A9F3 */
+0xFBC1,0xA9F6,0x0000, 0xFBC1,0xA9F7,0x0000, 0xFBC1,0xA9F8,0x0000, /* A9F6 */
+0xFBC1,0xA9F9,0x0000, 0xFBC1,0xA9FA,0x0000, 0xFBC1,0xA9FB,0x0000, /* A9F9 */
+0xFBC1,0xA9FC,0x0000, 0xFBC1,0xA9FD,0x0000, 0xFBC1,0xA9FE,0x0000, /* A9FC */
+0xFBC1,0xA9FF,0x0000 };
+
+static const uint16 uca520_p0AA[]= { /* AA00 (3 weights per char) */
+0x2361,0x0000,0x0000, 0x2362,0x0000,0x0000, 0x2363,0x0000,0x0000, /* AA00 */
+0x2364,0x0000,0x0000, 0x2365,0x0000,0x0000, 0x2366,0x0000,0x0000, /* AA03 */
+0x2367,0x0000,0x0000, 0x2368,0x0000,0x0000, 0x2369,0x0000,0x0000, /* AA06 */
+0x236A,0x0000,0x0000, 0x236B,0x0000,0x0000, 0x236C,0x0000,0x0000, /* AA09 */
+0x236D,0x0000,0x0000, 0x236E,0x0000,0x0000, 0x236F,0x0000,0x0000, /* AA0C */
+0x2370,0x0000,0x0000, 0x2371,0x0000,0x0000, 0x2372,0x0000,0x0000, /* AA0F */
+0x2373,0x0000,0x0000, 0x2374,0x0000,0x0000, 0x2375,0x0000,0x0000, /* AA12 */
+0x2376,0x0000,0x0000, 0x2377,0x0000,0x0000, 0x2378,0x0000,0x0000, /* AA15 */
+0x2379,0x0000,0x0000, 0x237A,0x0000,0x0000, 0x237B,0x0000,0x0000, /* AA18 */
+0x237C,0x0000,0x0000, 0x237D,0x0000,0x0000, 0x237E,0x0000,0x0000, /* AA1B */
+0x237F,0x0000,0x0000, 0x2380,0x0000,0x0000, 0x2381,0x0000,0x0000, /* AA1E */
+0x2382,0x0000,0x0000, 0x2383,0x0000,0x0000, 0x2384,0x0000,0x0000, /* AA21 */
+0x2385,0x0000,0x0000, 0x2386,0x0000,0x0000, 0x2387,0x0000,0x0000, /* AA24 */
+0x2388,0x0000,0x0000, 0x2389,0x0000,0x0000, 0x238E,0x0000,0x0000, /* AA27 */
+0x238F,0x0000,0x0000, 0x2390,0x0000,0x0000, 0x2391,0x0000,0x0000, /* AA2A */
+0x2392,0x0000,0x0000, 0x2393,0x0000,0x0000, 0x2394,0x0000,0x0000, /* AA2D */
+0x2395,0x0000,0x0000, 0x2396,0x0000,0x0000, 0x2397,0x0000,0x0000, /* AA30 */
+0x238A,0x0000,0x0000, 0x238B,0x0000,0x0000, 0x238C,0x0000,0x0000, /* AA33 */
+0x238D,0x0000,0x0000, 0xFBC1,0xAA37,0x0000, 0xFBC1,0xAA38,0x0000, /* AA36 */
+0xFBC1,0xAA39,0x0000, 0xFBC1,0xAA3A,0x0000, 0xFBC1,0xAA3B,0x0000, /* AA39 */
+0xFBC1,0xAA3C,0x0000, 0xFBC1,0xAA3D,0x0000, 0xFBC1,0xAA3E,0x0000, /* AA3C */
+0xFBC1,0xAA3F,0x0000, 0x2398,0x0000,0x0000, 0x2399,0x0000,0x0000, /* AA3F */
+0x239A,0x0000,0x0000, 0x239B,0x0000,0x0000, 0x239C,0x0000,0x0000, /* AA42 */
+0x239D,0x0000,0x0000, 0x239E,0x0000,0x0000, 0x239F,0x0000,0x0000, /* AA45 */
+0x23A0,0x0000,0x0000, 0x23A1,0x0000,0x0000, 0x23A2,0x0000,0x0000, /* AA48 */
+0x23A3,0x0000,0x0000, 0x23A4,0x0000,0x0000, 0x23A5,0x0000,0x0000, /* AA4B */
+0xFBC1,0xAA4E,0x0000, 0xFBC1,0xAA4F,0x0000, 0x1205,0x0000,0x0000, /* AA4E */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* AA51 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* AA54 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* AA57 */
+0xFBC1,0xAA5A,0x0000, 0xFBC1,0xAA5B,0x0000, 0x03DE,0x0000,0x0000, /* AA5A */
+0x02AB,0x0000,0x0000, 0x02AC,0x0000,0x0000, 0x02AD,0x0000,0x0000, /* AA5D */
+0x21D3,0x0000,0x0000, 0x21D9,0x0000,0x0000, 0x21DB,0x0000,0x0000, /* AA60 */
+0x21DD,0x0000,0x0000, 0x21E2,0x0000,0x0000, 0x21E6,0x0000,0x0000, /* AA63 */
+0x21E9,0x0000,0x0000, 0x21EB,0x0000,0x0000, 0x21ED,0x0000,0x0000, /* AA66 */
+0x21EF,0x0000,0x0000, 0x21F7,0x0000,0x0000, 0x21FA,0x0000,0x0000, /* AA69 */
+0x2217,0x0000,0x0000, 0x221A,0x0000,0x0000, 0x221C,0x0000,0x0000, /* AA6C */
+0x2200,0x0000,0x0000, 0x11D5,0x0000,0x0000, 0x221D,0x0000,0x0000, /* AA6F */
+0x21DF,0x0000,0x0000, 0x220A,0x0000,0x0000, 0x2260,0x0000,0x0000, /* AA72 */
+0x2261,0x0000,0x0000, 0x2262,0x0000,0x0000, 0x03C8,0x0000,0x0000, /* AA75 */
+0x03C9,0x0000,0x0000, 0x03CA,0x0000,0x0000, 0x220B,0x0000,0x0000, /* AA78 */
+0x225F,0x0000,0x0000, 0xFBC1,0xAA7C,0x0000, 0xFBC1,0xAA7D,0x0000, /* AA7B */
+0xFBC1,0xAA7E,0x0000, 0xFBC1,0xAA7F,0x0000, 0x1FDE,0x0000,0x0000, /* AA7E */
+0x1FDF,0x0000,0x0000, 0x1FE0,0x0000,0x0000, 0x1FE1,0x0000,0x0000, /* AA81 */
+0x1FE2,0x0000,0x0000, 0x1FE3,0x0000,0x0000, 0x1FE4,0x0000,0x0000, /* AA84 */
+0x1FE5,0x0000,0x0000, 0x1FE6,0x0000,0x0000, 0x1FE7,0x0000,0x0000, /* AA87 */
+0x1FE8,0x0000,0x0000, 0x1FE9,0x0000,0x0000, 0x1FEA,0x0000,0x0000, /* AA8A */
+0x1FEB,0x0000,0x0000, 0x1FEC,0x0000,0x0000, 0x1FED,0x0000,0x0000, /* AA8D */
+0x1FEE,0x0000,0x0000, 0x1FEF,0x0000,0x0000, 0x1FF0,0x0000,0x0000, /* AA90 */
+0x1FF1,0x0000,0x0000, 0x1FF2,0x0000,0x0000, 0x1FF3,0x0000,0x0000, /* AA93 */
+0x1FF4,0x0000,0x0000, 0x1FF5,0x0000,0x0000, 0x1FF6,0x0000,0x0000, /* AA96 */
+0x1FF7,0x0000,0x0000, 0x1FF8,0x0000,0x0000, 0x1FF9,0x0000,0x0000, /* AA99 */
+0x1FFA,0x0000,0x0000, 0x1FFB,0x0000,0x0000, 0x1FFC,0x0000,0x0000, /* AA9C */
+0x1FFD,0x0000,0x0000, 0x1FFE,0x0000,0x0000, 0x1FFF,0x0000,0x0000, /* AA9F */
+0x2000,0x0000,0x0000, 0x2001,0x0000,0x0000, 0x2002,0x0000,0x0000, /* AAA2 */
+0x2003,0x0000,0x0000, 0x2004,0x0000,0x0000, 0x2005,0x0000,0x0000, /* AAA5 */
+0x2006,0x0000,0x0000, 0x2007,0x0000,0x0000, 0x2008,0x0000,0x0000, /* AAA8 */
+0x2009,0x0000,0x0000, 0x200A,0x0000,0x0000, 0x200B,0x0000,0x0000, /* AAAB */
+0x200C,0x0000,0x0000, 0x200D,0x0000,0x0000, 0x200E,0x0000,0x0000, /* AAAE */
+0x200F,0x0000,0x0000, 0x2010,0x0000,0x0000, 0x2011,0x0000,0x0000, /* AAB1 */
+0x2012,0x0000,0x0000, 0x2013,0x0000,0x0000, 0x2014,0x0000,0x0000, /* AAB4 */
+0x2015,0x0000,0x0000, 0x2016,0x0000,0x0000, 0x2017,0x0000,0x0000, /* AAB7 */
+0x2018,0x0000,0x0000, 0x2019,0x0000,0x0000, 0x201A,0x0000,0x0000, /* AABA */
+0x201B,0x0000,0x0000, 0x201C,0x0000,0x0000, 0x0000,0x0000,0x0000, /* AABD */
+0x201D,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x201E,0x0000,0x0000, /* AAC0 */
+0xFBC1,0xAAC3,0x0000, 0xFBC1,0xAAC4,0x0000, 0xFBC1,0xAAC5,0x0000, /* AAC3 */
+0xFBC1,0xAAC6,0x0000, 0xFBC1,0xAAC7,0x0000, 0xFBC1,0xAAC8,0x0000, /* AAC6 */
+0xFBC1,0xAAC9,0x0000, 0xFBC1,0xAACA,0x0000, 0xFBC1,0xAACB,0x0000, /* AAC9 */
+0xFBC1,0xAACC,0x0000, 0xFBC1,0xAACD,0x0000, 0xFBC1,0xAACE,0x0000, /* AACC */
+0xFBC1,0xAACF,0x0000, 0xFBC1,0xAAD0,0x0000, 0xFBC1,0xAAD1,0x0000, /* AACF */
+0xFBC1,0xAAD2,0x0000, 0xFBC1,0xAAD3,0x0000, 0xFBC1,0xAAD4,0x0000, /* AAD2 */
+0xFBC1,0xAAD5,0x0000, 0xFBC1,0xAAD6,0x0000, 0xFBC1,0xAAD7,0x0000, /* AAD5 */
+0xFBC1,0xAAD8,0x0000, 0xFBC1,0xAAD9,0x0000, 0xFBC1,0xAADA,0x0000, /* AAD8 */
+0x201F,0x0000,0x0000, 0x2020,0x0000,0x0000, 0x11D6,0x0000,0x0000, /* AADB */
+0x03A8,0x0000,0x0000, 0x03A9,0x0000,0x0000, 0xFBC1,0xAAE0,0x0000, /* AADE */
+0xFBC1,0xAAE1,0x0000, 0xFBC1,0xAAE2,0x0000, 0xFBC1,0xAAE3,0x0000, /* AAE1 */
+0xFBC1,0xAAE4,0x0000, 0xFBC1,0xAAE5,0x0000, 0xFBC1,0xAAE6,0x0000, /* AAE4 */
+0xFBC1,0xAAE7,0x0000, 0xFBC1,0xAAE8,0x0000, 0xFBC1,0xAAE9,0x0000, /* AAE7 */
+0xFBC1,0xAAEA,0x0000, 0xFBC1,0xAAEB,0x0000, 0xFBC1,0xAAEC,0x0000, /* AAEA */
+0xFBC1,0xAAED,0x0000, 0xFBC1,0xAAEE,0x0000, 0xFBC1,0xAAEF,0x0000, /* AAED */
+0xFBC1,0xAAF0,0x0000, 0xFBC1,0xAAF1,0x0000, 0xFBC1,0xAAF2,0x0000, /* AAF0 */
+0xFBC1,0xAAF3,0x0000, 0xFBC1,0xAAF4,0x0000, 0xFBC1,0xAAF5,0x0000, /* AAF3 */
+0xFBC1,0xAAF6,0x0000, 0xFBC1,0xAAF7,0x0000, 0xFBC1,0xAAF8,0x0000, /* AAF6 */
+0xFBC1,0xAAF9,0x0000, 0xFBC1,0xAAFA,0x0000, 0xFBC1,0xAAFB,0x0000, /* AAF9 */
+0xFBC1,0xAAFC,0x0000, 0xFBC1,0xAAFD,0x0000, 0xFBC1,0xAAFE,0x0000, /* AAFC */
+0xFBC1,0xAAFF,0x0000 };
+
+static const uint16 uca520_p0AB[]= { /* AB00 (3 weights per char) */
+0xFBC1,0xAB00,0x0000, 0xFBC1,0xAB01,0x0000, 0xFBC1,0xAB02,0x0000, /* AB00 */
+0xFBC1,0xAB03,0x0000, 0xFBC1,0xAB04,0x0000, 0xFBC1,0xAB05,0x0000, /* AB03 */
+0xFBC1,0xAB06,0x0000, 0xFBC1,0xAB07,0x0000, 0xFBC1,0xAB08,0x0000, /* AB06 */
+0xFBC1,0xAB09,0x0000, 0xFBC1,0xAB0A,0x0000, 0xFBC1,0xAB0B,0x0000, /* AB09 */
+0xFBC1,0xAB0C,0x0000, 0xFBC1,0xAB0D,0x0000, 0xFBC1,0xAB0E,0x0000, /* AB0C */
+0xFBC1,0xAB0F,0x0000, 0xFBC1,0xAB10,0x0000, 0xFBC1,0xAB11,0x0000, /* AB0F */
+0xFBC1,0xAB12,0x0000, 0xFBC1,0xAB13,0x0000, 0xFBC1,0xAB14,0x0000, /* AB12 */
+0xFBC1,0xAB15,0x0000, 0xFBC1,0xAB16,0x0000, 0xFBC1,0xAB17,0x0000, /* AB15 */
+0xFBC1,0xAB18,0x0000, 0xFBC1,0xAB19,0x0000, 0xFBC1,0xAB1A,0x0000, /* AB18 */
+0xFBC1,0xAB1B,0x0000, 0xFBC1,0xAB1C,0x0000, 0xFBC1,0xAB1D,0x0000, /* AB1B */
+0xFBC1,0xAB1E,0x0000, 0xFBC1,0xAB1F,0x0000, 0xFBC1,0xAB20,0x0000, /* AB1E */
+0xFBC1,0xAB21,0x0000, 0xFBC1,0xAB22,0x0000, 0xFBC1,0xAB23,0x0000, /* AB21 */
+0xFBC1,0xAB24,0x0000, 0xFBC1,0xAB25,0x0000, 0xFBC1,0xAB26,0x0000, /* AB24 */
+0xFBC1,0xAB27,0x0000, 0xFBC1,0xAB28,0x0000, 0xFBC1,0xAB29,0x0000, /* AB27 */
+0xFBC1,0xAB2A,0x0000, 0xFBC1,0xAB2B,0x0000, 0xFBC1,0xAB2C,0x0000, /* AB2A */
+0xFBC1,0xAB2D,0x0000, 0xFBC1,0xAB2E,0x0000, 0xFBC1,0xAB2F,0x0000, /* AB2D */
+0xFBC1,0xAB30,0x0000, 0xFBC1,0xAB31,0x0000, 0xFBC1,0xAB32,0x0000, /* AB30 */
+0xFBC1,0xAB33,0x0000, 0xFBC1,0xAB34,0x0000, 0xFBC1,0xAB35,0x0000, /* AB33 */
+0xFBC1,0xAB36,0x0000, 0xFBC1,0xAB37,0x0000, 0xFBC1,0xAB38,0x0000, /* AB36 */
+0xFBC1,0xAB39,0x0000, 0xFBC1,0xAB3A,0x0000, 0xFBC1,0xAB3B,0x0000, /* AB39 */
+0xFBC1,0xAB3C,0x0000, 0xFBC1,0xAB3D,0x0000, 0xFBC1,0xAB3E,0x0000, /* AB3C */
+0xFBC1,0xAB3F,0x0000, 0xFBC1,0xAB40,0x0000, 0xFBC1,0xAB41,0x0000, /* AB3F */
+0xFBC1,0xAB42,0x0000, 0xFBC1,0xAB43,0x0000, 0xFBC1,0xAB44,0x0000, /* AB42 */
+0xFBC1,0xAB45,0x0000, 0xFBC1,0xAB46,0x0000, 0xFBC1,0xAB47,0x0000, /* AB45 */
+0xFBC1,0xAB48,0x0000, 0xFBC1,0xAB49,0x0000, 0xFBC1,0xAB4A,0x0000, /* AB48 */
+0xFBC1,0xAB4B,0x0000, 0xFBC1,0xAB4C,0x0000, 0xFBC1,0xAB4D,0x0000, /* AB4B */
+0xFBC1,0xAB4E,0x0000, 0xFBC1,0xAB4F,0x0000, 0xFBC1,0xAB50,0x0000, /* AB4E */
+0xFBC1,0xAB51,0x0000, 0xFBC1,0xAB52,0x0000, 0xFBC1,0xAB53,0x0000, /* AB51 */
+0xFBC1,0xAB54,0x0000, 0xFBC1,0xAB55,0x0000, 0xFBC1,0xAB56,0x0000, /* AB54 */
+0xFBC1,0xAB57,0x0000, 0xFBC1,0xAB58,0x0000, 0xFBC1,0xAB59,0x0000, /* AB57 */
+0xFBC1,0xAB5A,0x0000, 0xFBC1,0xAB5B,0x0000, 0xFBC1,0xAB5C,0x0000, /* AB5A */
+0xFBC1,0xAB5D,0x0000, 0xFBC1,0xAB5E,0x0000, 0xFBC1,0xAB5F,0x0000, /* AB5D */
+0xFBC1,0xAB60,0x0000, 0xFBC1,0xAB61,0x0000, 0xFBC1,0xAB62,0x0000, /* AB60 */
+0xFBC1,0xAB63,0x0000, 0xFBC1,0xAB64,0x0000, 0xFBC1,0xAB65,0x0000, /* AB63 */
+0xFBC1,0xAB66,0x0000, 0xFBC1,0xAB67,0x0000, 0xFBC1,0xAB68,0x0000, /* AB66 */
+0xFBC1,0xAB69,0x0000, 0xFBC1,0xAB6A,0x0000, 0xFBC1,0xAB6B,0x0000, /* AB69 */
+0xFBC1,0xAB6C,0x0000, 0xFBC1,0xAB6D,0x0000, 0xFBC1,0xAB6E,0x0000, /* AB6C */
+0xFBC1,0xAB6F,0x0000, 0xFBC1,0xAB70,0x0000, 0xFBC1,0xAB71,0x0000, /* AB6F */
+0xFBC1,0xAB72,0x0000, 0xFBC1,0xAB73,0x0000, 0xFBC1,0xAB74,0x0000, /* AB72 */
+0xFBC1,0xAB75,0x0000, 0xFBC1,0xAB76,0x0000, 0xFBC1,0xAB77,0x0000, /* AB75 */
+0xFBC1,0xAB78,0x0000, 0xFBC1,0xAB79,0x0000, 0xFBC1,0xAB7A,0x0000, /* AB78 */
+0xFBC1,0xAB7B,0x0000, 0xFBC1,0xAB7C,0x0000, 0xFBC1,0xAB7D,0x0000, /* AB7B */
+0xFBC1,0xAB7E,0x0000, 0xFBC1,0xAB7F,0x0000, 0xFBC1,0xAB80,0x0000, /* AB7E */
+0xFBC1,0xAB81,0x0000, 0xFBC1,0xAB82,0x0000, 0xFBC1,0xAB83,0x0000, /* AB81 */
+0xFBC1,0xAB84,0x0000, 0xFBC1,0xAB85,0x0000, 0xFBC1,0xAB86,0x0000, /* AB84 */
+0xFBC1,0xAB87,0x0000, 0xFBC1,0xAB88,0x0000, 0xFBC1,0xAB89,0x0000, /* AB87 */
+0xFBC1,0xAB8A,0x0000, 0xFBC1,0xAB8B,0x0000, 0xFBC1,0xAB8C,0x0000, /* AB8A */
+0xFBC1,0xAB8D,0x0000, 0xFBC1,0xAB8E,0x0000, 0xFBC1,0xAB8F,0x0000, /* AB8D */
+0xFBC1,0xAB90,0x0000, 0xFBC1,0xAB91,0x0000, 0xFBC1,0xAB92,0x0000, /* AB90 */
+0xFBC1,0xAB93,0x0000, 0xFBC1,0xAB94,0x0000, 0xFBC1,0xAB95,0x0000, /* AB93 */
+0xFBC1,0xAB96,0x0000, 0xFBC1,0xAB97,0x0000, 0xFBC1,0xAB98,0x0000, /* AB96 */
+0xFBC1,0xAB99,0x0000, 0xFBC1,0xAB9A,0x0000, 0xFBC1,0xAB9B,0x0000, /* AB99 */
+0xFBC1,0xAB9C,0x0000, 0xFBC1,0xAB9D,0x0000, 0xFBC1,0xAB9E,0x0000, /* AB9C */
+0xFBC1,0xAB9F,0x0000, 0xFBC1,0xABA0,0x0000, 0xFBC1,0xABA1,0x0000, /* AB9F */
+0xFBC1,0xABA2,0x0000, 0xFBC1,0xABA3,0x0000, 0xFBC1,0xABA4,0x0000, /* ABA2 */
+0xFBC1,0xABA5,0x0000, 0xFBC1,0xABA6,0x0000, 0xFBC1,0xABA7,0x0000, /* ABA5 */
+0xFBC1,0xABA8,0x0000, 0xFBC1,0xABA9,0x0000, 0xFBC1,0xABAA,0x0000, /* ABA8 */
+0xFBC1,0xABAB,0x0000, 0xFBC1,0xABAC,0x0000, 0xFBC1,0xABAD,0x0000, /* ABAB */
+0xFBC1,0xABAE,0x0000, 0xFBC1,0xABAF,0x0000, 0xFBC1,0xABB0,0x0000, /* ABAE */
+0xFBC1,0xABB1,0x0000, 0xFBC1,0xABB2,0x0000, 0xFBC1,0xABB3,0x0000, /* ABB1 */
+0xFBC1,0xABB4,0x0000, 0xFBC1,0xABB5,0x0000, 0xFBC1,0xABB6,0x0000, /* ABB4 */
+0xFBC1,0xABB7,0x0000, 0xFBC1,0xABB8,0x0000, 0xFBC1,0xABB9,0x0000, /* ABB7 */
+0xFBC1,0xABBA,0x0000, 0xFBC1,0xABBB,0x0000, 0xFBC1,0xABBC,0x0000, /* ABBA */
+0xFBC1,0xABBD,0x0000, 0xFBC1,0xABBE,0x0000, 0xFBC1,0xABBF,0x0000, /* ABBD */
+0x1E52,0x0000,0x0000, 0x1E53,0x0000,0x0000, 0x1E54,0x0000,0x0000, /* ABC0 */
+0x1E55,0x0000,0x0000, 0x1E56,0x0000,0x0000, 0x1E57,0x0000,0x0000, /* ABC3 */
+0x1E58,0x0000,0x0000, 0x1E59,0x0000,0x0000, 0x1E5A,0x0000,0x0000, /* ABC6 */
+0x1E5B,0x0000,0x0000, 0x1E5C,0x0000,0x0000, 0x1E5D,0x0000,0x0000, /* ABC9 */
+0x1E5E,0x0000,0x0000, 0x1E5F,0x0000,0x0000, 0x1E60,0x0000,0x0000, /* ABCC */
+0x1E61,0x0000,0x0000, 0x1E62,0x0000,0x0000, 0x1E63,0x0000,0x0000, /* ABCF */
+0x1E64,0x0000,0x0000, 0x1E65,0x0000,0x0000, 0x1E66,0x0000,0x0000, /* ABD2 */
+0x1E67,0x0000,0x0000, 0x1E68,0x0000,0x0000, 0x1E69,0x0000,0x0000, /* ABD5 */
+0x1E6A,0x0000,0x0000, 0x1E6B,0x0000,0x0000, 0x1E6C,0x0000,0x0000, /* ABD8 */
+0x1E75,0x0000,0x0000, 0x1E76,0x0000,0x0000, 0x1E77,0x0000,0x0000, /* ABDB */
+0x1E78,0x0000,0x0000, 0x1E79,0x0000,0x0000, 0x1E7A,0x0000,0x0000, /* ABDE */
+0x1E7B,0x0000,0x0000, 0x1E7C,0x0000,0x0000, 0x1E6D,0x0000,0x0000, /* ABE1 */
+0x1E6E,0x0000,0x0000, 0x1E6F,0x0000,0x0000, 0x1E70,0x0000,0x0000, /* ABE4 */
+0x1E71,0x0000,0x0000, 0x1E72,0x0000,0x0000, 0x1E73,0x0000,0x0000, /* ABE7 */
+0x1E74,0x0000,0x0000, 0x02AE,0x0000,0x0000, 0x0000,0x0000,0x0000, /* ABEA */
+0x1E7D,0x0000,0x0000, 0xFBC1,0xABEE,0x0000, 0xFBC1,0xABEF,0x0000, /* ABED */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* ABF0 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* ABF3 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* ABF6 */
+0x120E,0x0000,0x0000, 0xFBC1,0xABFA,0x0000, 0xFBC1,0xABFB,0x0000, /* ABF9 */
+0xFBC1,0xABFC,0x0000, 0xFBC1,0xABFD,0x0000, 0xFBC1,0xABFE,0x0000, /* ABFC */
+0xFBC1,0xABFF,0x0000 };
+
+static const uint16 uca520_p0D7[]= { /* D700 (3 weights per char) */
+0xFBC1,0xD700,0x0000, 0xFBC1,0xD701,0x0000, 0xFBC1,0xD702,0x0000, /* D700 */
+0xFBC1,0xD703,0x0000, 0xFBC1,0xD704,0x0000, 0xFBC1,0xD705,0x0000, /* D703 */
+0xFBC1,0xD706,0x0000, 0xFBC1,0xD707,0x0000, 0xFBC1,0xD708,0x0000, /* D706 */
+0xFBC1,0xD709,0x0000, 0xFBC1,0xD70A,0x0000, 0xFBC1,0xD70B,0x0000, /* D709 */
+0xFBC1,0xD70C,0x0000, 0xFBC1,0xD70D,0x0000, 0xFBC1,0xD70E,0x0000, /* D70C */
+0xFBC1,0xD70F,0x0000, 0xFBC1,0xD710,0x0000, 0xFBC1,0xD711,0x0000, /* D70F */
+0xFBC1,0xD712,0x0000, 0xFBC1,0xD713,0x0000, 0xFBC1,0xD714,0x0000, /* D712 */
+0xFBC1,0xD715,0x0000, 0xFBC1,0xD716,0x0000, 0xFBC1,0xD717,0x0000, /* D715 */
+0xFBC1,0xD718,0x0000, 0xFBC1,0xD719,0x0000, 0xFBC1,0xD71A,0x0000, /* D718 */
+0xFBC1,0xD71B,0x0000, 0xFBC1,0xD71C,0x0000, 0xFBC1,0xD71D,0x0000, /* D71B */
+0xFBC1,0xD71E,0x0000, 0xFBC1,0xD71F,0x0000, 0xFBC1,0xD720,0x0000, /* D71E */
+0xFBC1,0xD721,0x0000, 0xFBC1,0xD722,0x0000, 0xFBC1,0xD723,0x0000, /* D721 */
+0xFBC1,0xD724,0x0000, 0xFBC1,0xD725,0x0000, 0xFBC1,0xD726,0x0000, /* D724 */
+0xFBC1,0xD727,0x0000, 0xFBC1,0xD728,0x0000, 0xFBC1,0xD729,0x0000, /* D727 */
+0xFBC1,0xD72A,0x0000, 0xFBC1,0xD72B,0x0000, 0xFBC1,0xD72C,0x0000, /* D72A */
+0xFBC1,0xD72D,0x0000, 0xFBC1,0xD72E,0x0000, 0xFBC1,0xD72F,0x0000, /* D72D */
+0xFBC1,0xD730,0x0000, 0xFBC1,0xD731,0x0000, 0xFBC1,0xD732,0x0000, /* D730 */
+0xFBC1,0xD733,0x0000, 0xFBC1,0xD734,0x0000, 0xFBC1,0xD735,0x0000, /* D733 */
+0xFBC1,0xD736,0x0000, 0xFBC1,0xD737,0x0000, 0xFBC1,0xD738,0x0000, /* D736 */
+0xFBC1,0xD739,0x0000, 0xFBC1,0xD73A,0x0000, 0xFBC1,0xD73B,0x0000, /* D739 */
+0xFBC1,0xD73C,0x0000, 0xFBC1,0xD73D,0x0000, 0xFBC1,0xD73E,0x0000, /* D73C */
+0xFBC1,0xD73F,0x0000, 0xFBC1,0xD740,0x0000, 0xFBC1,0xD741,0x0000, /* D73F */
+0xFBC1,0xD742,0x0000, 0xFBC1,0xD743,0x0000, 0xFBC1,0xD744,0x0000, /* D742 */
+0xFBC1,0xD745,0x0000, 0xFBC1,0xD746,0x0000, 0xFBC1,0xD747,0x0000, /* D745 */
+0xFBC1,0xD748,0x0000, 0xFBC1,0xD749,0x0000, 0xFBC1,0xD74A,0x0000, /* D748 */
+0xFBC1,0xD74B,0x0000, 0xFBC1,0xD74C,0x0000, 0xFBC1,0xD74D,0x0000, /* D74B */
+0xFBC1,0xD74E,0x0000, 0xFBC1,0xD74F,0x0000, 0xFBC1,0xD750,0x0000, /* D74E */
+0xFBC1,0xD751,0x0000, 0xFBC1,0xD752,0x0000, 0xFBC1,0xD753,0x0000, /* D751 */
+0xFBC1,0xD754,0x0000, 0xFBC1,0xD755,0x0000, 0xFBC1,0xD756,0x0000, /* D754 */
+0xFBC1,0xD757,0x0000, 0xFBC1,0xD758,0x0000, 0xFBC1,0xD759,0x0000, /* D757 */
+0xFBC1,0xD75A,0x0000, 0xFBC1,0xD75B,0x0000, 0xFBC1,0xD75C,0x0000, /* D75A */
+0xFBC1,0xD75D,0x0000, 0xFBC1,0xD75E,0x0000, 0xFBC1,0xD75F,0x0000, /* D75D */
+0xFBC1,0xD760,0x0000, 0xFBC1,0xD761,0x0000, 0xFBC1,0xD762,0x0000, /* D760 */
+0xFBC1,0xD763,0x0000, 0xFBC1,0xD764,0x0000, 0xFBC1,0xD765,0x0000, /* D763 */
+0xFBC1,0xD766,0x0000, 0xFBC1,0xD767,0x0000, 0xFBC1,0xD768,0x0000, /* D766 */
+0xFBC1,0xD769,0x0000, 0xFBC1,0xD76A,0x0000, 0xFBC1,0xD76B,0x0000, /* D769 */
+0xFBC1,0xD76C,0x0000, 0xFBC1,0xD76D,0x0000, 0xFBC1,0xD76E,0x0000, /* D76C */
+0xFBC1,0xD76F,0x0000, 0xFBC1,0xD770,0x0000, 0xFBC1,0xD771,0x0000, /* D76F */
+0xFBC1,0xD772,0x0000, 0xFBC1,0xD773,0x0000, 0xFBC1,0xD774,0x0000, /* D772 */
+0xFBC1,0xD775,0x0000, 0xFBC1,0xD776,0x0000, 0xFBC1,0xD777,0x0000, /* D775 */
+0xFBC1,0xD778,0x0000, 0xFBC1,0xD779,0x0000, 0xFBC1,0xD77A,0x0000, /* D778 */
+0xFBC1,0xD77B,0x0000, 0xFBC1,0xD77C,0x0000, 0xFBC1,0xD77D,0x0000, /* D77B */
+0xFBC1,0xD77E,0x0000, 0xFBC1,0xD77F,0x0000, 0xFBC1,0xD780,0x0000, /* D77E */
+0xFBC1,0xD781,0x0000, 0xFBC1,0xD782,0x0000, 0xFBC1,0xD783,0x0000, /* D781 */
+0xFBC1,0xD784,0x0000, 0xFBC1,0xD785,0x0000, 0xFBC1,0xD786,0x0000, /* D784 */
+0xFBC1,0xD787,0x0000, 0xFBC1,0xD788,0x0000, 0xFBC1,0xD789,0x0000, /* D787 */
+0xFBC1,0xD78A,0x0000, 0xFBC1,0xD78B,0x0000, 0xFBC1,0xD78C,0x0000, /* D78A */
+0xFBC1,0xD78D,0x0000, 0xFBC1,0xD78E,0x0000, 0xFBC1,0xD78F,0x0000, /* D78D */
+0xFBC1,0xD790,0x0000, 0xFBC1,0xD791,0x0000, 0xFBC1,0xD792,0x0000, /* D790 */
+0xFBC1,0xD793,0x0000, 0xFBC1,0xD794,0x0000, 0xFBC1,0xD795,0x0000, /* D793 */
+0xFBC1,0xD796,0x0000, 0xFBC1,0xD797,0x0000, 0xFBC1,0xD798,0x0000, /* D796 */
+0xFBC1,0xD799,0x0000, 0xFBC1,0xD79A,0x0000, 0xFBC1,0xD79B,0x0000, /* D799 */
+0xFBC1,0xD79C,0x0000, 0xFBC1,0xD79D,0x0000, 0xFBC1,0xD79E,0x0000, /* D79C */
+0xFBC1,0xD79F,0x0000, 0xFBC1,0xD7A0,0x0000, 0xFBC1,0xD7A1,0x0000, /* D79F */
+0xFBC1,0xD7A2,0x0000, 0xFBC1,0xD7A3,0x0000, 0xFBC1,0xD7A4,0x0000, /* D7A2 */
+0xFBC1,0xD7A5,0x0000, 0xFBC1,0xD7A6,0x0000, 0xFBC1,0xD7A7,0x0000, /* D7A5 */
+0xFBC1,0xD7A8,0x0000, 0xFBC1,0xD7A9,0x0000, 0xFBC1,0xD7AA,0x0000, /* D7A8 */
+0xFBC1,0xD7AB,0x0000, 0xFBC1,0xD7AC,0x0000, 0xFBC1,0xD7AD,0x0000, /* D7AB */
+0xFBC1,0xD7AE,0x0000, 0xFBC1,0xD7AF,0x0000, 0x2A75,0x0000,0x0000, /* D7AE */
+0x2A76,0x0000,0x0000, 0x2A77,0x0000,0x0000, 0x2A78,0x0000,0x0000, /* D7B1 */
+0x2A79,0x0000,0x0000, 0x2A7A,0x0000,0x0000, 0x2A7B,0x0000,0x0000, /* D7B4 */
+0x2A7C,0x0000,0x0000, 0x2A7D,0x0000,0x0000, 0x2A7E,0x0000,0x0000, /* D7B7 */
+0x2A7F,0x0000,0x0000, 0x2A80,0x0000,0x0000, 0x2A81,0x0000,0x0000, /* D7BA */
+0x2A82,0x0000,0x0000, 0x2A83,0x0000,0x0000, 0x2A84,0x0000,0x0000, /* D7BD */
+0x2A85,0x0000,0x0000, 0x2A86,0x0000,0x0000, 0x2A87,0x0000,0x0000, /* D7C0 */
+0x2A88,0x0000,0x0000, 0x2A89,0x0000,0x0000, 0x2A8A,0x0000,0x0000, /* D7C3 */
+0x2A8B,0x0000,0x0000, 0xFBC1,0xD7C7,0x0000, 0xFBC1,0xD7C8,0x0000, /* D7C6 */
+0xFBC1,0xD7C9,0x0000, 0xFBC1,0xD7CA,0x0000, 0x2AE4,0x0000,0x0000, /* D7C9 */
+0x2AE5,0x0000,0x0000, 0x2AE6,0x0000,0x0000, 0x2AE7,0x0000,0x0000, /* D7CC */
+0x2AE8,0x0000,0x0000, 0x2AE9,0x0000,0x0000, 0x2AEA,0x0000,0x0000, /* D7CF */
+0x2AEB,0x0000,0x0000, 0x2AEC,0x0000,0x0000, 0x2AED,0x0000,0x0000, /* D7D2 */
+0x2AEE,0x0000,0x0000, 0x2AEF,0x0000,0x0000, 0x2AF0,0x0000,0x0000, /* D7D5 */
+0x2AF1,0x0000,0x0000, 0x2AF2,0x0000,0x0000, 0x2AF3,0x0000,0x0000, /* D7D8 */
+0x2AF4,0x0000,0x0000, 0x2AF5,0x0000,0x0000, 0x2AF6,0x0000,0x0000, /* D7DB */
+0x2AF7,0x0000,0x0000, 0x2AF8,0x0000,0x0000, 0x2AF9,0x0000,0x0000, /* D7DE */
+0x2AFA,0x0000,0x0000, 0x2AFB,0x0000,0x0000, 0x2AFC,0x0000,0x0000, /* D7E1 */
+0x2AFD,0x0000,0x0000, 0x2AFE,0x0000,0x0000, 0x2AFF,0x0000,0x0000, /* D7E4 */
+0x2B00,0x0000,0x0000, 0x2B01,0x0000,0x0000, 0x2B02,0x0000,0x0000, /* D7E7 */
+0x2B03,0x0000,0x0000, 0x2B04,0x0000,0x0000, 0x2B05,0x0000,0x0000, /* D7EA */
+0x2B06,0x0000,0x0000, 0x2B07,0x0000,0x0000, 0x2B08,0x0000,0x0000, /* D7ED */
+0x2B09,0x0000,0x0000, 0x2B0A,0x0000,0x0000, 0x2B0B,0x0000,0x0000, /* D7F0 */
+0x2B0C,0x0000,0x0000, 0x2B0D,0x0000,0x0000, 0x2B0E,0x0000,0x0000, /* D7F3 */
+0x2B0F,0x0000,0x0000, 0x2B10,0x0000,0x0000, 0x2B11,0x0000,0x0000, /* D7F6 */
+0x2B12,0x0000,0x0000, 0x2B13,0x0000,0x0000, 0x2B14,0x0000,0x0000, /* D7F9 */
+0xFBC1,0xD7FC,0x0000, 0xFBC1,0xD7FD,0x0000, 0xFBC1,0xD7FE,0x0000, /* D7FC */
+0xFBC1,0xD7FF,0x0000 };
+
+static const uint16 uca520_p0F9[]= { /* F900 (3 weights per char) */
+0xFB41,0x8C48,0x0000, 0xFB40,0xE6F4,0x0000, 0xFB41,0x8ECA,0x0000, /* F900 */
+0xFB41,0x8CC8,0x0000, 0xFB40,0xEED1,0x0000, 0xFB40,0xCE32,0x0000, /* F903 */
+0xFB40,0xD3E5,0x0000, 0xFB41,0x9F9C,0x0000, 0xFB41,0x9F9C,0x0000, /* F906 */
+0xFB40,0xD951,0x0000, 0xFB41,0x91D1,0x0000, 0xFB40,0xD587,0x0000, /* F909 */
+0xFB40,0xD948,0x0000, 0xFB40,0xE1F6,0x0000, 0xFB40,0xF669,0x0000, /* F90C */
+0xFB40,0xFF85,0x0000, 0xFB41,0x863F,0x0000, 0xFB41,0x87BA,0x0000, /* F90F */
+0xFB41,0x88F8,0x0000, 0xFB41,0x908F,0x0000, 0xFB40,0xEA02,0x0000, /* F912 */
+0xFB40,0xED1B,0x0000, 0xFB40,0xF0D9,0x0000, 0xFB40,0xF3DE,0x0000, /* F915 */
+0xFB41,0x843D,0x0000, 0xFB41,0x916A,0x0000, 0xFB41,0x99F1,0x0000, /* F918 */
+0xFB40,0xCE82,0x0000, 0xFB40,0xD375,0x0000, 0xFB40,0xEB04,0x0000, /* F91B */
+0xFB40,0xF21B,0x0000, 0xFB41,0x862D,0x0000, 0xFB41,0x9E1E,0x0000, /* F91E */
+0xFB40,0xDD50,0x0000, 0xFB40,0xEFEB,0x0000, 0xFB41,0x85CD,0x0000, /* F921 */
+0xFB41,0x8964,0x0000, 0xFB40,0xE2C9,0x0000, 0xFB41,0x81D8,0x0000, /* F924 */
+0xFB41,0x881F,0x0000, 0xFB40,0xDECA,0x0000, 0xFB40,0xE717,0x0000, /* F927 */
+0xFB40,0xED6A,0x0000, 0xFB40,0xF2FC,0x0000, 0xFB41,0x90CE,0x0000, /* F92A */
+0xFB40,0xCF86,0x0000, 0xFB40,0xD1B7,0x0000, 0xFB40,0xD2DE,0x0000, /* F92D */
+0xFB40,0xE4C4,0x0000, 0xFB40,0xEAD3,0x0000, 0xFB40,0xF210,0x0000, /* F930 */
+0xFB40,0xF6E7,0x0000, 0xFB41,0x8001,0x0000, 0xFB41,0x8606,0x0000, /* F933 */
+0xFB41,0x865C,0x0000, 0xFB41,0x8DEF,0x0000, 0xFB41,0x9732,0x0000, /* F936 */
+0xFB41,0x9B6F,0x0000, 0xFB41,0x9DFA,0x0000, 0xFB40,0xF88C,0x0000, /* F939 */
+0xFB40,0xF97F,0x0000, 0xFB40,0xFDA0,0x0000, 0xFB41,0x83C9,0x0000, /* F93C */
+0xFB41,0x9304,0x0000, 0xFB41,0x9E7F,0x0000, 0xFB41,0x8AD6,0x0000, /* F93F */
+0xFB40,0xD8DF,0x0000, 0xFB40,0xDF04,0x0000, 0xFB40,0xFC60,0x0000, /* F942 */
+0xFB41,0x807E,0x0000, 0xFB40,0xF262,0x0000, 0xFB40,0xF8CA,0x0000, /* F945 */
+0xFB41,0x8CC2,0x0000, 0xFB41,0x96F7,0x0000, 0xFB40,0xD8D8,0x0000, /* F948 */
+0xFB40,0xDC62,0x0000, 0xFB40,0xEA13,0x0000, 0xFB40,0xEDDA,0x0000, /* F94B */
+0xFB40,0xEF0F,0x0000, 0xFB40,0xFD2F,0x0000, 0xFB40,0xFE37,0x0000, /* F94E */
+0xFB41,0x964B,0x0000, 0xFB40,0xD2D2,0x0000, 0xFB41,0x808B,0x0000, /* F951 */
+0xFB40,0xD1DC,0x0000, 0xFB40,0xD1CC,0x0000, 0xFB40,0xFA1C,0x0000, /* F954 */
+0xFB40,0xFDBE,0x0000, 0xFB41,0x83F1,0x0000, 0xFB41,0x9675,0x0000, /* F957 */
+0xFB41,0x8B80,0x0000, 0xFB40,0xE2CF,0x0000, 0xFB40,0xEA02,0x0000, /* F95A */
+0xFB41,0x8AFE,0x0000, 0xFB40,0xCE39,0x0000, 0xFB40,0xDBE7,0x0000, /* F95D */
+0xFB40,0xE012,0x0000, 0xFB40,0xF387,0x0000, 0xFB40,0xF570,0x0000, /* F960 */
+0xFB40,0xD317,0x0000, 0xFB40,0xF8FB,0x0000, 0xFB40,0xCFBF,0x0000, /* F963 */
+0xFB40,0xDFA9,0x0000, 0xFB40,0xCE0D,0x0000, 0xFB40,0xECCC,0x0000, /* F966 */
+0xFB40,0xE578,0x0000, 0xFB40,0xFD22,0x0000, 0xFB40,0xD3C3,0x0000, /* F969 */
+0xFB40,0xD85E,0x0000, 0xFB40,0xF701,0x0000, 0xFB41,0x8449,0x0000, /* F96C */
+0xFB41,0x8AAA,0x0000, 0xFB40,0xEBBA,0x0000, 0xFB41,0x8FB0,0x0000, /* F96F */
+0xFB40,0xEC88,0x0000, 0xFB40,0xE2FE,0x0000, 0xFB41,0x82E5,0x0000, /* F972 */
+0xFB40,0xE3A0,0x0000, 0xFB40,0xF565,0x0000, 0xFB40,0xCEAE,0x0000, /* F975 */
+0xFB40,0xD169,0x0000, 0xFB40,0xD1C9,0x0000, 0xFB40,0xE881,0x0000, /* F978 */
+0xFB40,0xFCE7,0x0000, 0xFB41,0x826F,0x0000, 0xFB41,0x8AD2,0x0000, /* F97B */
+0xFB41,0x91CF,0x0000, 0xFB40,0xD2F5,0x0000, 0xFB40,0xD442,0x0000, /* F97E */
+0xFB40,0xD973,0x0000, 0xFB40,0xDEEC,0x0000, 0xFB40,0xE5C5,0x0000, /* F981 */
+0xFB40,0xEFFE,0x0000, 0xFB40,0xF92A,0x0000, 0xFB41,0x95AD,0x0000, /* F984 */
+0xFB41,0x9A6A,0x0000, 0xFB41,0x9E97,0x0000, 0xFB41,0x9ECE,0x0000, /* F987 */
+0xFB40,0xD29B,0x0000, 0xFB40,0xE6C6,0x0000, 0xFB40,0xEB77,0x0000, /* F98A */
+0xFB41,0x8F62,0x0000, 0xFB40,0xDE74,0x0000, 0xFB40,0xE190,0x0000, /* F98D */
+0xFB40,0xE200,0x0000, 0xFB40,0xE49A,0x0000, 0xFB40,0xEF23,0x0000, /* F990 */
+0xFB40,0xF149,0x0000, 0xFB40,0xF489,0x0000, 0xFB40,0xF9CA,0x0000, /* F993 */
+0xFB40,0xFDF4,0x0000, 0xFB41,0x806F,0x0000, 0xFB41,0x8F26,0x0000, /* F996 */
+0xFB41,0x84EE,0x0000, 0xFB41,0x9023,0x0000, 0xFB41,0x934A,0x0000, /* F999 */
+0xFB40,0xD217,0x0000, 0xFB40,0xD2A3,0x0000, 0xFB40,0xD4BD,0x0000, /* F99C */
+0xFB40,0xF0C8,0x0000, 0xFB41,0x88C2,0x0000, 0xFB41,0x8AAA,0x0000, /* F99F */
+0xFB40,0xDEC9,0x0000, 0xFB40,0xDFF5,0x0000, 0xFB40,0xE37B,0x0000, /* F9A2 */
+0xFB40,0xEBAE,0x0000, 0xFB40,0xFC3E,0x0000, 0xFB40,0xF375,0x0000, /* F9A5 */
+0xFB40,0xCEE4,0x0000, 0xFB40,0xD6F9,0x0000, 0xFB40,0xDBE7,0x0000, /* F9A8 */
+0xFB40,0xDDBA,0x0000, 0xFB40,0xE01C,0x0000, 0xFB40,0xF3B2,0x0000, /* F9AB */
+0xFB40,0xF469,0x0000, 0xFB40,0xFF9A,0x0000, 0xFB41,0x8046,0x0000, /* F9AE */
+0xFB41,0x9234,0x0000, 0xFB41,0x96F6,0x0000, 0xFB41,0x9748,0x0000, /* F9B1 */
+0xFB41,0x9818,0x0000, 0xFB40,0xCF8B,0x0000, 0xFB40,0xF9AE,0x0000, /* F9B4 */
+0xFB41,0x91B4,0x0000, 0xFB41,0x96B8,0x0000, 0xFB40,0xE0E1,0x0000, /* F9B7 */
+0xFB40,0xCE86,0x0000, 0xFB40,0xD0DA,0x0000, 0xFB40,0xDBEE,0x0000, /* F9BA */
+0xFB40,0xDC3F,0x0000, 0xFB40,0xE599,0x0000, 0xFB40,0xEA02,0x0000, /* F9BD */
+0xFB40,0xF1CE,0x0000, 0xFB40,0xF642,0x0000, 0xFB41,0x84FC,0x0000, /* F9C0 */
+0xFB41,0x907C,0x0000, 0xFB41,0x9F8D,0x0000, 0xFB40,0xE688,0x0000, /* F9C3 */
+0xFB41,0x962E,0x0000, 0xFB40,0xD289,0x0000, 0xFB40,0xE77B,0x0000, /* F9C6 */
+0xFB40,0xE7F3,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEE9C,0x0000, /* F9C9 */
+0xFB40,0xF409,0x0000, 0xFB40,0xF559,0x0000, 0xFB40,0xF86B,0x0000, /* F9CC */
+0xFB40,0xFD10,0x0000, 0xFB41,0x985E,0x0000, 0xFB40,0xD16D,0x0000, /* F9CF */
+0xFB40,0xE22E,0x0000, 0xFB41,0x9678,0x0000, 0xFB40,0xD02B,0x0000, /* F9D2 */
+0xFB40,0xDD19,0x0000, 0xFB40,0xEDEA,0x0000, 0xFB41,0x8F2A,0x0000, /* F9D5 */
+0xFB40,0xDF8B,0x0000, 0xFB40,0xE144,0x0000, 0xFB40,0xE817,0x0000, /* F9D8 */
+0xFB40,0xF387,0x0000, 0xFB41,0x9686,0x0000, 0xFB40,0xD229,0x0000, /* F9DB */
+0xFB40,0xD40F,0x0000, 0xFB40,0xDC65,0x0000, 0xFB40,0xE613,0x0000, /* F9DE */
+0xFB40,0xE74E,0x0000, 0xFB40,0xE8A8,0x0000, 0xFB40,0xECE5,0x0000, /* F9E1 */
+0xFB40,0xF406,0x0000, 0xFB40,0xF5E2,0x0000, 0xFB40,0xFF79,0x0000, /* F9E4 */
+0xFB41,0x88CF,0x0000, 0xFB41,0x88E1,0x0000, 0xFB41,0x91CC,0x0000, /* F9E7 */
+0xFB41,0x96E2,0x0000, 0xFB40,0xD33F,0x0000, 0xFB40,0xEEBA,0x0000, /* F9EA */
+0xFB40,0xD41D,0x0000, 0xFB40,0xF1D0,0x0000, 0xFB40,0xF498,0x0000, /* F9ED */
+0xFB41,0x85FA,0x0000, 0xFB41,0x96A3,0x0000, 0xFB41,0x9C57,0x0000, /* F9F0 */
+0xFB41,0x9E9F,0x0000, 0xFB40,0xE797,0x0000, 0xFB40,0xEDCB,0x0000, /* F9F3 */
+0xFB41,0x81E8,0x0000, 0xFB40,0xFACB,0x0000, 0xFB40,0xFB20,0x0000, /* F9F6 */
+0xFB40,0xFC92,0x0000, 0xFB40,0xF2C0,0x0000, 0xFB40,0xF099,0x0000, /* F9F9 */
+0xFB41,0x8B58,0x0000, 0xFB40,0xCEC0,0x0000, 0xFB41,0x8336,0x0000, /* F9FC */
+0xFB40,0xD23A,0x0000 };
+
+static const uint16 uca520_p0FA[]= { /* FA00 (3 weights per char) */
+0xFB40,0xD207,0x0000, 0xFB40,0xDEA6,0x0000, 0xFB40,0xE2D3,0x0000, /* FA00 */
+0xFB40,0xFCD6,0x0000, 0xFB40,0xDB85,0x0000, 0xFB40,0xED1E,0x0000, /* FA03 */
+0xFB40,0xE6B4,0x0000, 0xFB41,0x8F3B,0x0000, 0xFB41,0x884C,0x0000, /* FA06 */
+0xFB41,0x964D,0x0000, 0xFB41,0x898B,0x0000, 0xFB40,0xDED3,0x0000, /* FA09 */
+0xFB40,0xD140,0x0000, 0xFB40,0xD5C0,0x0000, 0xFB41,0xFA0E,0x0000, /* FA0C */
+0xFB41,0xFA0F,0x0000, 0xFB40,0xD85A,0x0000, 0xFB41,0xFA11,0x0000, /* FA0F */
+0xFB40,0xE674,0x0000, 0xFB41,0xFA13,0x0000, 0xFB41,0xFA14,0x0000, /* FA12 */
+0xFB40,0xD1DE,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF6CA,0x0000, /* FA15 */
+0xFB40,0xF93C,0x0000, 0xFB40,0xF95E,0x0000, 0xFB40,0xF965,0x0000, /* FA18 */
+0xFB40,0xF98F,0x0000, 0xFB41,0x9756,0x0000, 0xFB40,0xFCBE,0x0000, /* FA1B */
+0xFB40,0xFFBD,0x0000, 0xFB41,0xFA1F,0x0000, 0xFB41,0x8612,0x0000, /* FA1E */
+0xFB41,0xFA21,0x0000, 0xFB41,0x8AF8,0x0000, 0xFB41,0xFA23,0x0000, /* FA21 */
+0xFB41,0xFA24,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x90FD,0x0000, /* FA24 */
+0xFB41,0xFA27,0x0000, 0xFB41,0xFA28,0x0000, 0xFB41,0xFA29,0x0000, /* FA27 */
+0xFB41,0x98EF,0x0000, 0xFB41,0x98FC,0x0000, 0xFB41,0x9928,0x0000, /* FA2A */
+0xFB41,0x9DB4,0x0000, 0xFBC1,0xFA2E,0x0000, 0xFBC1,0xFA2F,0x0000, /* FA2D */
+0xFB40,0xCFAE,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD14D,0x0000, /* FA30 */
+0xFB40,0xD2C9,0x0000, 0xFB40,0xD2E4,0x0000, 0xFB40,0xD351,0x0000, /* FA33 */
+0xFB40,0xD59D,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD668,0x0000, /* FA36 */
+0xFB40,0xD840,0x0000, 0xFB40,0xD8A8,0x0000, 0xFB40,0xDC64,0x0000, /* FA39 */
+0xFB40,0xDC6E,0x0000, 0xFB40,0xE094,0x0000, 0xFB40,0xE168,0x0000, /* FA3C */
+0xFB40,0xE18E,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE54F,0x0000, /* FA3F */
+0xFB40,0xE5E2,0x0000, 0xFB40,0xE691,0x0000, 0xFB40,0xE885,0x0000, /* FA42 */
+0xFB40,0xED77,0x0000, 0xFB40,0xEE1A,0x0000, 0xFB40,0xEF22,0x0000, /* FA45 */
+0xFB40,0xF16E,0x0000, 0xFB40,0xF22B,0x0000, 0xFB40,0xF422,0x0000, /* FA48 */
+0xFB40,0xF891,0x0000, 0xFB40,0xF93E,0x0000, 0xFB40,0xF949,0x0000, /* FA4B */
+0xFB40,0xF948,0x0000, 0xFB40,0xF950,0x0000, 0xFB40,0xF956,0x0000, /* FA4E */
+0xFB40,0xF95D,0x0000, 0xFB40,0xF98D,0x0000, 0xFB40,0xF98E,0x0000, /* FA51 */
+0xFB40,0xFA40,0x0000, 0xFB40,0xFA81,0x0000, 0xFB40,0xFBC0,0x0000, /* FA54 */
+0xFB40,0xFDF4,0x0000, 0xFB40,0xFE09,0x0000, 0xFB40,0xFE41,0x0000, /* FA57 */
+0xFB40,0xFF72,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x81ED,0x0000, /* FA5A */
+0xFB41,0x8279,0x0000, 0xFB41,0x8279,0x0000, 0xFB41,0x8457,0x0000, /* FA5D */
+0xFB41,0x8910,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8B01,0x0000, /* FA60 */
+0xFB41,0x8B39,0x0000, 0xFB41,0x8CD3,0x0000, 0xFB41,0x8D08,0x0000, /* FA63 */
+0xFB41,0x8FB6,0x0000, 0xFB41,0x9038,0x0000, 0xFB41,0x96E3,0x0000, /* FA66 */
+0xFB41,0x97FF,0x0000, 0xFB41,0x983B,0x0000, 0xFB40,0xE075,0x0000, /* FA69 */
+0xFB84,0xC2EE,0x0000, 0xFB41,0x8218,0x0000, 0xFBC1,0xFA6E,0x0000, /* FA6C */
+0xFBC1,0xFA6F,0x0000, 0xFB40,0xCE26,0x0000, 0xFB40,0xD1B5,0x0000, /* FA6F */
+0xFB40,0xD168,0x0000, 0xFB40,0xCF80,0x0000, 0xFB40,0xD145,0x0000, /* FA72 */
+0xFB40,0xD180,0x0000, 0xFB40,0xD2C7,0x0000, 0xFB40,0xD2FA,0x0000, /* FA75 */
+0xFB40,0xD59D,0x0000, 0xFB40,0xD555,0x0000, 0xFB40,0xD599,0x0000, /* FA78 */
+0xFB40,0xD5E2,0x0000, 0xFB40,0xD85A,0x0000, 0xFB40,0xD8B3,0x0000, /* FA7B */
+0xFB40,0xD944,0x0000, 0xFB40,0xD954,0x0000, 0xFB40,0xDA62,0x0000, /* FA7E */
+0xFB40,0xDB28,0x0000, 0xFB40,0xDED2,0x0000, 0xFB40,0xDED9,0x0000, /* FA81 */
+0xFB40,0xDF69,0x0000, 0xFB40,0xDFAD,0x0000, 0xFB40,0xE0D8,0x0000, /* FA84 */
+0xFB40,0xE14E,0x0000, 0xFB40,0xE108,0x0000, 0xFB40,0xE18E,0x0000, /* FA87 */
+0xFB40,0xE160,0x0000, 0xFB40,0xE1F2,0x0000, 0xFB40,0xE234,0x0000, /* FA8A */
+0xFB40,0xE3C4,0x0000, 0xFB40,0xE41C,0x0000, 0xFB40,0xE452,0x0000, /* FA8D */
+0xFB40,0xE556,0x0000, 0xFB40,0xE674,0x0000, 0xFB40,0xE717,0x0000, /* FA90 */
+0xFB40,0xE71B,0x0000, 0xFB40,0xE756,0x0000, 0xFB40,0xEB79,0x0000, /* FA93 */
+0xFB40,0xEBBA,0x0000, 0xFB40,0xED41,0x0000, 0xFB40,0xEEDB,0x0000, /* FA96 */
+0xFB40,0xEECB,0x0000, 0xFB40,0xEF22,0x0000, 0xFB40,0xF01E,0x0000, /* FA99 */
+0xFB40,0xF16E,0x0000, 0xFB40,0xF7A7,0x0000, 0xFB40,0xF235,0x0000, /* FA9C */
+0xFB40,0xF2AF,0x0000, 0xFB40,0xF32A,0x0000, 0xFB40,0xF471,0x0000, /* FA9F */
+0xFB40,0xF506,0x0000, 0xFB40,0xF53B,0x0000, 0xFB40,0xF61D,0x0000, /* FAA2 */
+0xFB40,0xF61F,0x0000, 0xFB40,0xF6CA,0x0000, 0xFB40,0xF6DB,0x0000, /* FAA5 */
+0xFB40,0xF6F4,0x0000, 0xFB40,0xF74A,0x0000, 0xFB40,0xF740,0x0000, /* FAA8 */
+0xFB40,0xF8CC,0x0000, 0xFB40,0xFAB1,0x0000, 0xFB40,0xFBC0,0x0000, /* FAAB */
+0xFB40,0xFC7B,0x0000, 0xFB40,0xFD5B,0x0000, 0xFB40,0xFDF4,0x0000, /* FAAE */
+0xFB40,0xFF3E,0x0000, 0xFB41,0x8005,0x0000, 0xFB41,0x8352,0x0000, /* FAB1 */
+0xFB41,0x83EF,0x0000, 0xFB41,0x8779,0x0000, 0xFB41,0x8941,0x0000, /* FAB4 */
+0xFB41,0x8986,0x0000, 0xFB41,0x8996,0x0000, 0xFB41,0x8ABF,0x0000, /* FAB7 */
+0xFB41,0x8AF8,0x0000, 0xFB41,0x8ACB,0x0000, 0xFB41,0x8B01,0x0000, /* FABA */
+0xFB41,0x8AFE,0x0000, 0xFB41,0x8AED,0x0000, 0xFB41,0x8B39,0x0000, /* FABD */
+0xFB41,0x8B8A,0x0000, 0xFB41,0x8D08,0x0000, 0xFB41,0x8F38,0x0000, /* FAC0 */
+0xFB41,0x9072,0x0000, 0xFB41,0x9199,0x0000, 0xFB41,0x9276,0x0000, /* FAC3 */
+0xFB41,0x967C,0x0000, 0xFB41,0x96E3,0x0000, 0xFB41,0x9756,0x0000, /* FAC6 */
+0xFB41,0x97DB,0x0000, 0xFB41,0x97FF,0x0000, 0xFB41,0x980B,0x0000, /* FAC9 */
+0xFB41,0x983B,0x0000, 0xFB41,0x9B12,0x0000, 0xFB41,0x9F9C,0x0000, /* FACC */
+0xFB84,0xA84A,0x0000, 0xFB84,0xA844,0x0000, 0xFB84,0xB3D5,0x0000, /* FACF */
+0xFB80,0xBB9D,0x0000, 0xFB80,0xC018,0x0000, 0xFB80,0xC039,0x0000, /* FAD2 */
+0xFB84,0xD249,0x0000, 0xFB84,0xDCD0,0x0000, 0xFB84,0xFED3,0x0000, /* FAD5 */
+0xFB41,0x9F43,0x0000, 0xFB41,0x9F8E,0x0000, 0xFBC1,0xFADA,0x0000, /* FAD8 */
+0xFBC1,0xFADB,0x0000, 0xFBC1,0xFADC,0x0000, 0xFBC1,0xFADD,0x0000, /* FADB */
+0xFBC1,0xFADE,0x0000, 0xFBC1,0xFADF,0x0000, 0xFBC1,0xFAE0,0x0000, /* FADE */
+0xFBC1,0xFAE1,0x0000, 0xFBC1,0xFAE2,0x0000, 0xFBC1,0xFAE3,0x0000, /* FAE1 */
+0xFBC1,0xFAE4,0x0000, 0xFBC1,0xFAE5,0x0000, 0xFBC1,0xFAE6,0x0000, /* FAE4 */
+0xFBC1,0xFAE7,0x0000, 0xFBC1,0xFAE8,0x0000, 0xFBC1,0xFAE9,0x0000, /* FAE7 */
+0xFBC1,0xFAEA,0x0000, 0xFBC1,0xFAEB,0x0000, 0xFBC1,0xFAEC,0x0000, /* FAEA */
+0xFBC1,0xFAED,0x0000, 0xFBC1,0xFAEE,0x0000, 0xFBC1,0xFAEF,0x0000, /* FAED */
+0xFBC1,0xFAF0,0x0000, 0xFBC1,0xFAF1,0x0000, 0xFBC1,0xFAF2,0x0000, /* FAF0 */
+0xFBC1,0xFAF3,0x0000, 0xFBC1,0xFAF4,0x0000, 0xFBC1,0xFAF5,0x0000, /* FAF3 */
+0xFBC1,0xFAF6,0x0000, 0xFBC1,0xFAF7,0x0000, 0xFBC1,0xFAF8,0x0000, /* FAF6 */
+0xFBC1,0xFAF9,0x0000, 0xFBC1,0xFAFA,0x0000, 0xFBC1,0xFAFB,0x0000, /* FAF9 */
+0xFBC1,0xFAFC,0x0000, 0xFBC1,0xFAFD,0x0000, 0xFBC1,0xFAFE,0x0000, /* FAFC */
+0xFBC1,0xFAFF,0x0000 };
+
+static const uint16 uca520_p0FB[]= { /* FB00 (4 weights per char) */
+0x12A3,0x12A3,0x0000,0x0000, 0x12A3,0x12EC,0x0000,0x0000, /* FB00 */
+0x12A3,0x1330,0x0000,0x0000, 0x12A3,0x12A3,0x12EC,0x0000, /* FB02 */
+0x12A3,0x12A3,0x1330,0x0000, 0x1410,0x1433,0x0000,0x0000, /* FB04 */
+0x1410,0x1433,0x0000,0x0000, 0xFBC1,0xFB07,0x0000,0x0000, /* FB06 */
+0xFBC1,0xFB08,0x0000,0x0000, 0xFBC1,0xFB09,0x0000,0x0000, /* FB08 */
+0xFBC1,0xFB0A,0x0000,0x0000, 0xFBC1,0xFB0B,0x0000,0x0000, /* FB0A */
+0xFBC1,0xFB0C,0x0000,0x0000, 0xFBC1,0xFB0D,0x0000,0x0000, /* FB0C */
+0xFBC1,0xFB0E,0x0000,0x0000, 0xFBC1,0xFB0F,0x0000,0x0000, /* FB0E */
+0xFBC1,0xFB10,0x0000,0x0000, 0xFBC1,0xFB11,0x0000,0x0000, /* FB10 */
+0xFBC1,0xFB12,0x0000,0x0000, 0x1848,0x184A,0x0000,0x0000, /* FB12 */
+0x1848,0x1839,0x0000,0x0000, 0x1848,0x183F,0x0000,0x0000, /* FB14 */
+0x1852,0x184A,0x0000,0x0000, 0x1848,0x1841,0x0000,0x0000, /* FB16 */
+0xFBC1,0xFB18,0x0000,0x0000, 0xFBC1,0xFB19,0x0000,0x0000, /* FB18 */
+0xFBC1,0xFB1A,0x0000,0x0000, 0xFBC1,0xFB1B,0x0000,0x0000, /* FB1A */
+0xFBC1,0xFB1C,0x0000,0x0000, 0x1865,0x0000,0x0000,0x0000, /* FB1C */
+0x0000,0x0000,0x0000,0x0000, 0x1865,0x1865,0x0000,0x0000, /* FB1E */
+0x186B,0x0000,0x0000,0x0000, 0x185C,0x0000,0x0000,0x0000, /* FB20 */
+0x185F,0x0000,0x0000,0x0000, 0x1860,0x0000,0x0000,0x0000, /* FB22 */
+0x1866,0x0000,0x0000,0x0000, 0x1867,0x0000,0x0000,0x0000, /* FB24 */
+0x1868,0x0000,0x0000,0x0000, 0x186F,0x0000,0x0000,0x0000, /* FB26 */
+0x1871,0x0000,0x0000,0x0000, 0x0550,0x0000,0x0000,0x0000, /* FB28 */
+0x1870,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB2A */
+0x1870,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB2C */
+0x185C,0x0000,0x0000,0x0000, 0x185C,0x0000,0x0000,0x0000, /* FB2E */
+0x185C,0x0000,0x0000,0x0000, 0x185D,0x0000,0x0000,0x0000, /* FB30 */
+0x185E,0x0000,0x0000,0x0000, 0x185F,0x0000,0x0000,0x0000, /* FB32 */
+0x1860,0x0000,0x0000,0x0000, 0x1861,0x0000,0x0000,0x0000, /* FB34 */
+0x1862,0x0000,0x0000,0x0000, 0xFBC1,0xFB37,0x0000,0x0000, /* FB36 */
+0x1864,0x0000,0x0000,0x0000, 0x1865,0x0000,0x0000,0x0000, /* FB38 */
+0x1866,0x0000,0x0000,0x0000, 0x1866,0x0000,0x0000,0x0000, /* FB3A */
+0x1867,0x0000,0x0000,0x0000, 0xFBC1,0xFB3D,0x0000,0x0000, /* FB3C */
+0x1868,0x0000,0x0000,0x0000, 0xFBC1,0xFB3F,0x0000,0x0000, /* FB3E */
+0x1869,0x0000,0x0000,0x0000, 0x186A,0x0000,0x0000,0x0000, /* FB40 */
+0xFBC1,0xFB42,0x0000,0x0000, 0x186C,0x0000,0x0000,0x0000, /* FB42 */
+0x186C,0x0000,0x0000,0x0000, 0xFBC1,0xFB45,0x0000,0x0000, /* FB44 */
+0x186D,0x0000,0x0000,0x0000, 0x186E,0x0000,0x0000,0x0000, /* FB46 */
+0x186F,0x0000,0x0000,0x0000, 0x1870,0x0000,0x0000,0x0000, /* FB48 */
+0x1871,0x0000,0x0000,0x0000, 0x1861,0x0000,0x0000,0x0000, /* FB4A */
+0x185D,0x0000,0x0000,0x0000, 0x1866,0x0000,0x0000,0x0000, /* FB4C */
+0x186C,0x0000,0x0000,0x0000, 0x185C,0x1867,0x0000,0x0000, /* FB4E */
+0x18A6,0x0000,0x0000,0x0000, 0x18A6,0x0000,0x0000,0x0000, /* FB50 */
+0x18B0,0x0000,0x0000,0x0000, 0x18B0,0x0000,0x0000,0x0000, /* FB52 */
+0x18B0,0x0000,0x0000,0x0000, 0x18B0,0x0000,0x0000,0x0000, /* FB54 */
+0x18B1,0x0000,0x0000,0x0000, 0x18B1,0x0000,0x0000,0x0000, /* FB56 */
+0x18B1,0x0000,0x0000,0x0000, 0x18B1,0x0000,0x0000,0x0000, /* FB58 */
+0x18B2,0x0000,0x0000,0x0000, 0x18B2,0x0000,0x0000,0x0000, /* FB5A */
+0x18B2,0x0000,0x0000,0x0000, 0x18B2,0x0000,0x0000,0x0000, /* FB5C */
+0x18BE,0x0000,0x0000,0x0000, 0x18BE,0x0000,0x0000,0x0000, /* FB5E */
+0x18BE,0x0000,0x0000,0x0000, 0x18BE,0x0000,0x0000,0x0000, /* FB60 */
+0x18C1,0x0000,0x0000,0x0000, 0x18C1,0x0000,0x0000,0x0000, /* FB62 */
+0x18C1,0x0000,0x0000,0x0000, 0x18C1,0x0000,0x0000,0x0000, /* FB64 */
+0x18BD,0x0000,0x0000,0x0000, 0x18BD,0x0000,0x0000,0x0000, /* FB66 */
+0x18BD,0x0000,0x0000,0x0000, 0x18BD,0x0000,0x0000,0x0000, /* FB68 */
+0x190F,0x0000,0x0000,0x0000, 0x190F,0x0000,0x0000,0x0000, /* FB6A */
+0x190F,0x0000,0x0000,0x0000, 0x190F,0x0000,0x0000,0x0000, /* FB6C */
+0x1911,0x0000,0x0000,0x0000, 0x1911,0x0000,0x0000,0x0000, /* FB6E */
+0x1911,0x0000,0x0000,0x0000, 0x1911,0x0000,0x0000,0x0000, /* FB70 */
+0x18C4,0x0000,0x0000,0x0000, 0x18C4,0x0000,0x0000,0x0000, /* FB72 */
+0x18C4,0x0000,0x0000,0x0000, 0x18C4,0x0000,0x0000,0x0000, /* FB74 */
+0x18C3,0x0000,0x0000,0x0000, 0x18C3,0x0000,0x0000,0x0000, /* FB76 */
+0x18C3,0x0000,0x0000,0x0000, 0x18C3,0x0000,0x0000,0x0000, /* FB78 */
+0x18C5,0x0000,0x0000,0x0000, 0x18C5,0x0000,0x0000,0x0000, /* FB7A */
+0x18C5,0x0000,0x0000,0x0000, 0x18C5,0x0000,0x0000,0x0000, /* FB7C */
+0x18C7,0x0000,0x0000,0x0000, 0x18C7,0x0000,0x0000,0x0000, /* FB7E */
+0x18C7,0x0000,0x0000,0x0000, 0x18C7,0x0000,0x0000,0x0000, /* FB80 */
+0x18DA,0x0000,0x0000,0x0000, 0x18DA,0x0000,0x0000,0x0000, /* FB82 */
+0x18D9,0x0000,0x0000,0x0000, 0x18D9,0x0000,0x0000,0x0000, /* FB84 */
+0x18DB,0x0000,0x0000,0x0000, 0x18DB,0x0000,0x0000,0x0000, /* FB86 */
+0x18D5,0x0000,0x0000,0x0000, 0x18D5,0x0000,0x0000,0x0000, /* FB88 */
+0x18EA,0x0000,0x0000,0x0000, 0x18EA,0x0000,0x0000,0x0000, /* FB8A */
+0x18E3,0x0000,0x0000,0x0000, 0x18E3,0x0000,0x0000,0x0000, /* FB8C */
+0x1919,0x0000,0x0000,0x0000, 0x1919,0x0000,0x0000,0x0000, /* FB8E */
+0x1919,0x0000,0x0000,0x0000, 0x1919,0x0000,0x0000,0x0000, /* FB90 */
+0x1920,0x0000,0x0000,0x0000, 0x1920,0x0000,0x0000,0x0000, /* FB92 */
+0x1920,0x0000,0x0000,0x0000, 0x1920,0x0000,0x0000,0x0000, /* FB94 */
+0x1924,0x0000,0x0000,0x0000, 0x1924,0x0000,0x0000,0x0000, /* FB96 */
+0x1924,0x0000,0x0000,0x0000, 0x1924,0x0000,0x0000,0x0000, /* FB98 */
+0x1922,0x0000,0x0000,0x0000, 0x1922,0x0000,0x0000,0x0000, /* FB9A */
+0x1922,0x0000,0x0000,0x0000, 0x1922,0x0000,0x0000,0x0000, /* FB9C */
+0x1935,0x0000,0x0000,0x0000, 0x1935,0x0000,0x0000,0x0000, /* FB9E */
+0x1936,0x0000,0x0000,0x0000, 0x1936,0x0000,0x0000,0x0000, /* FBA0 */
+0x1936,0x0000,0x0000,0x0000, 0x1936,0x0000,0x0000,0x0000, /* FBA2 */
+0x1942,0x0000,0x0000,0x0000, 0x1942,0x0000,0x0000,0x0000, /* FBA4 */
+0x193F,0x0000,0x0000,0x0000, 0x193F,0x0000,0x0000,0x0000, /* FBA6 */
+0x193F,0x0000,0x0000,0x0000, 0x193F,0x0000,0x0000,0x0000, /* FBA8 */
+0x193E,0x0000,0x0000,0x0000, 0x193E,0x0000,0x0000,0x0000, /* FBAA */
+0x193E,0x0000,0x0000,0x0000, 0x193E,0x0000,0x0000,0x0000, /* FBAC */
+0x195C,0x0000,0x0000,0x0000, 0x195C,0x0000,0x0000,0x0000, /* FBAE */
+0x195C,0x0000,0x0000,0x0000, 0x195C,0x0000,0x0000,0x0000, /* FBB0 */
+0xFBC1,0xFBB2,0x0000,0x0000, 0xFBC1,0xFBB3,0x0000,0x0000, /* FBB2 */
+0xFBC1,0xFBB4,0x0000,0x0000, 0xFBC1,0xFBB5,0x0000,0x0000, /* FBB4 */
+0xFBC1,0xFBB6,0x0000,0x0000, 0xFBC1,0xFBB7,0x0000,0x0000, /* FBB6 */
+0xFBC1,0xFBB8,0x0000,0x0000, 0xFBC1,0xFBB9,0x0000,0x0000, /* FBB8 */
+0xFBC1,0xFBBA,0x0000,0x0000, 0xFBC1,0xFBBB,0x0000,0x0000, /* FBBA */
+0xFBC1,0xFBBC,0x0000,0x0000, 0xFBC1,0xFBBD,0x0000,0x0000, /* FBBC */
+0xFBC1,0xFBBE,0x0000,0x0000, 0xFBC1,0xFBBF,0x0000,0x0000, /* FBBE */
+0xFBC1,0xFBC0,0x0000,0x0000, 0xFBC1,0xFBC1,0x0000,0x0000, /* FBC0 */
+0xFBC1,0xFBC2,0x0000,0x0000, 0xFBC1,0xFBC3,0x0000,0x0000, /* FBC2 */
+0xFBC1,0xFBC4,0x0000,0x0000, 0xFBC1,0xFBC5,0x0000,0x0000, /* FBC4 */
+0xFBC1,0xFBC6,0x0000,0x0000, 0xFBC1,0xFBC7,0x0000,0x0000, /* FBC6 */
+0xFBC1,0xFBC8,0x0000,0x0000, 0xFBC1,0xFBC9,0x0000,0x0000, /* FBC8 */
+0xFBC1,0xFBCA,0x0000,0x0000, 0xFBC1,0xFBCB,0x0000,0x0000, /* FBCA */
+0xFBC1,0xFBCC,0x0000,0x0000, 0xFBC1,0xFBCD,0x0000,0x0000, /* FBCC */
+0xFBC1,0xFBCE,0x0000,0x0000, 0xFBC1,0xFBCF,0x0000,0x0000, /* FBCE */
+0xFBC1,0xFBD0,0x0000,0x0000, 0xFBC1,0xFBD1,0x0000,0x0000, /* FBD0 */
+0xFBC1,0xFBD2,0x0000,0x0000, 0x191E,0x0000,0x0000,0x0000, /* FBD2 */
+0x191E,0x0000,0x0000,0x0000, 0x191E,0x0000,0x0000,0x0000, /* FBD4 */
+0x191E,0x0000,0x0000,0x0000, 0x1947,0x0000,0x0000,0x0000, /* FBD6 */
+0x1947,0x0000,0x0000,0x0000, 0x1946,0x0000,0x0000,0x0000, /* FBD8 */
+0x1946,0x0000,0x0000,0x0000, 0x1948,0x0000,0x0000,0x0000, /* FBDA */
+0x1948,0x0000,0x0000,0x0000, 0x1947,0x18A2,0x0000,0x0000, /* FBDC */
+0x194B,0x0000,0x0000,0x0000, 0x194B,0x0000,0x0000,0x0000, /* FBDE */
+0x1945,0x0000,0x0000,0x0000, 0x1945,0x0000,0x0000,0x0000, /* FBE0 */
+0x1949,0x0000,0x0000,0x0000, 0x1949,0x0000,0x0000,0x0000, /* FBE2 */
+0x1954,0x0000,0x0000,0x0000, 0x1954,0x0000,0x0000,0x0000, /* FBE4 */
+0x1954,0x0000,0x0000,0x0000, 0x1954,0x0000,0x0000,0x0000, /* FBE6 */
+0x194F,0x0000,0x0000,0x0000, 0x194F,0x0000,0x0000,0x0000, /* FBE8 */
+0x18AC,0x18AD,0x0000,0x0000, 0x18AC,0x18AD,0x0000,0x0000, /* FBEA */
+0x18AC,0x1942,0x0000,0x0000, 0x18AC,0x1942,0x0000,0x0000, /* FBEC */
+0x18AC,0x1943,0x0000,0x0000, 0x18AC,0x1943,0x0000,0x0000, /* FBEE */
+0x18AC,0x1947,0x0000,0x0000, 0x18AC,0x1947,0x0000,0x0000, /* FBF0 */
+0x18AC,0x1946,0x0000,0x0000, 0x18AC,0x1946,0x0000,0x0000, /* FBF2 */
+0x18AC,0x1948,0x0000,0x0000, 0x18AC,0x1948,0x0000,0x0000, /* FBF4 */
+0x18AC,0x1954,0x0000,0x0000, 0x18AC,0x1954,0x0000,0x0000, /* FBF6 */
+0x18AC,0x1954,0x0000,0x0000, 0x18AC,0x194F,0x0000,0x0000, /* FBF8 */
+0x18AC,0x194F,0x0000,0x0000, 0x18AC,0x194F,0x0000,0x0000, /* FBFA */
+0x1951,0x0000,0x0000,0x0000, 0x1951,0x0000,0x0000,0x0000, /* FBFC */
+0x1951,0x0000,0x0000,0x0000, 0x1951,0x0000,0x0000,0x0000 /* FBFE */
+};
+
+static const uint16 uca520_p0FC[]= { /* FC00 (3 weights per char) */
+0x18AC,0x18C2,0x0000, 0x18AC,0x18C8,0x0000, 0x18AC,0x1931,0x0000, /* FC00 */
+0x18AC,0x194F,0x0000, 0x18AC,0x1950,0x0000, 0x18AF,0x18C2,0x0000, /* FC03 */
+0x18AF,0x18C8,0x0000, 0x18AF,0x18C9,0x0000, 0x18AF,0x1931,0x0000, /* FC06 */
+0x18AF,0x194F,0x0000, 0x18AF,0x1950,0x0000, 0x18BB,0x18C2,0x0000, /* FC09 */
+0x18BB,0x18C8,0x0000, 0x18BB,0x18C9,0x0000, 0x18BB,0x1931,0x0000, /* FC0C */
+0x18BB,0x194F,0x0000, 0x18BB,0x1950,0x0000, 0x18BC,0x18C2,0x0000, /* FC0F */
+0x18BC,0x1931,0x0000, 0x18BC,0x194F,0x0000, 0x18BC,0x1950,0x0000, /* FC12 */
+0x18C2,0x18C8,0x0000, 0x18C2,0x1931,0x0000, 0x18C8,0x18C2,0x0000, /* FC15 */
+0x18C8,0x1931,0x0000, 0x18C9,0x18C2,0x0000, 0x18C9,0x18C8,0x0000, /* FC18 */
+0x18C9,0x1931,0x0000, 0x18F1,0x18C2,0x0000, 0x18F1,0x18C8,0x0000, /* FC1B */
+0x18F1,0x18C9,0x0000, 0x18F1,0x1931,0x0000, 0x18FC,0x18C8,0x0000, /* FC1E */
+0x18FC,0x1931,0x0000, 0x18FD,0x18C2,0x0000, 0x18FD,0x18C8,0x0000, /* FC21 */
+0x18FD,0x18C9,0x0000, 0x18FD,0x1931,0x0000, 0x1901,0x18C8,0x0000, /* FC24 */
+0x1901,0x1931,0x0000, 0x1902,0x1931,0x0000, 0x1904,0x18C2,0x0000, /* FC27 */
+0x1904,0x1931,0x0000, 0x1905,0x18C2,0x0000, 0x1905,0x1931,0x0000, /* FC2A */
+0x190B,0x18C2,0x0000, 0x190B,0x18C8,0x0000, 0x190B,0x18C9,0x0000, /* FC2D */
+0x190B,0x1931,0x0000, 0x190B,0x194F,0x0000, 0x190B,0x1950,0x0000, /* FC30 */
+0x1915,0x18C8,0x0000, 0x1915,0x1931,0x0000, 0x1915,0x194F,0x0000, /* FC33 */
+0x1915,0x1950,0x0000, 0x1918,0x18AD,0x0000, 0x1918,0x18C2,0x0000, /* FC36 */
+0x1918,0x18C8,0x0000, 0x1918,0x18C9,0x0000, 0x1918,0x192B,0x0000, /* FC39 */
+0x1918,0x1931,0x0000, 0x1918,0x194F,0x0000, 0x1918,0x1950,0x0000, /* FC3C */
+0x192B,0x18C2,0x0000, 0x192B,0x18C8,0x0000, 0x192B,0x18C9,0x0000, /* FC3F */
+0x192B,0x1931,0x0000, 0x192B,0x194F,0x0000, 0x192B,0x1950,0x0000, /* FC42 */
+0x1931,0x18C2,0x0000, 0x1931,0x18C8,0x0000, 0x1931,0x18C9,0x0000, /* FC45 */
+0x1931,0x1931,0x0000, 0x1931,0x194F,0x0000, 0x1931,0x1950,0x0000, /* FC48 */
+0x1934,0x18C2,0x0000, 0x1934,0x18C8,0x0000, 0x1934,0x18C9,0x0000, /* FC4B */
+0x1934,0x1931,0x0000, 0x1934,0x194F,0x0000, 0x1934,0x1950,0x0000, /* FC4E */
+0x193D,0x18C2,0x0000, 0x193D,0x1931,0x0000, 0x193D,0x194F,0x0000, /* FC51 */
+0x193D,0x1950,0x0000, 0x1950,0x18C2,0x0000, 0x1950,0x18C8,0x0000, /* FC54 */
+0x1950,0x18C9,0x0000, 0x1950,0x1931,0x0000, 0x1950,0x194F,0x0000, /* FC57 */
+0x1950,0x1950,0x0000, 0x18D4,0x0000,0x0000, 0x18E1,0x0000,0x0000, /* FC5A */
+0x194F,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FC5D */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FC60 */
+0x0000,0x0000,0x0000, 0x18AC,0x18E1,0x0000, 0x18AC,0x18E2,0x0000, /* FC63 */
+0x18AC,0x1931,0x0000, 0x18AC,0x1934,0x0000, 0x18AC,0x194F,0x0000, /* FC66 */
+0x18AC,0x1950,0x0000, 0x18AF,0x18E1,0x0000, 0x18AF,0x18E2,0x0000, /* FC69 */
+0x18AF,0x1931,0x0000, 0x18AF,0x1934,0x0000, 0x18AF,0x194F,0x0000, /* FC6C */
+0x18AF,0x1950,0x0000, 0x18BB,0x18E1,0x0000, 0x18BB,0x18E2,0x0000, /* FC6F */
+0x18BB,0x1931,0x0000, 0x18BB,0x1934,0x0000, 0x18BB,0x194F,0x0000, /* FC72 */
+0x18BB,0x1950,0x0000, 0x18BC,0x18E1,0x0000, 0x18BC,0x18E2,0x0000, /* FC75 */
+0x18BC,0x1931,0x0000, 0x18BC,0x1934,0x0000, 0x18BC,0x194F,0x0000, /* FC78 */
+0x18BC,0x1950,0x0000, 0x190B,0x194F,0x0000, 0x190B,0x1950,0x0000, /* FC7B */
+0x1915,0x194F,0x0000, 0x1915,0x1950,0x0000, 0x1918,0x18AD,0x0000, /* FC7E */
+0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, 0x1918,0x194F,0x0000, /* FC81 */
+0x1918,0x1950,0x0000, 0x192B,0x1931,0x0000, 0x192B,0x194F,0x0000, /* FC84 */
+0x192B,0x1950,0x0000, 0x1931,0x18AD,0x0000, 0x1931,0x1931,0x0000, /* FC87 */
+0x1934,0x18E1,0x0000, 0x1934,0x18E2,0x0000, 0x1934,0x1931,0x0000, /* FC8A */
+0x1934,0x1934,0x0000, 0x1934,0x194F,0x0000, 0x1934,0x1950,0x0000, /* FC8D */
+0x194F,0x0000,0x0000, 0x1950,0x18E1,0x0000, 0x1950,0x18E2,0x0000, /* FC90 */
+0x1950,0x1931,0x0000, 0x1950,0x1934,0x0000, 0x1950,0x194F,0x0000, /* FC93 */
+0x1950,0x1950,0x0000, 0x18AC,0x18C2,0x0000, 0x18AC,0x18C8,0x0000, /* FC96 */
+0x18AC,0x18C9,0x0000, 0x18AC,0x1931,0x0000, 0x18AC,0x193D,0x0000, /* FC99 */
+0x18AF,0x18C2,0x0000, 0x18AF,0x18C8,0x0000, 0x18AF,0x18C9,0x0000, /* FC9C */
+0x18AF,0x1931,0x0000, 0x18AF,0x193D,0x0000, 0x18BB,0x18C2,0x0000, /* FC9F */
+0x18BB,0x18C8,0x0000, 0x18BB,0x18C9,0x0000, 0x18BB,0x1931,0x0000, /* FCA2 */
+0x18BB,0x193D,0x0000, 0x18BC,0x1931,0x0000, 0x18C2,0x18C8,0x0000, /* FCA5 */
+0x18C2,0x1931,0x0000, 0x18C8,0x18C2,0x0000, 0x18C8,0x1931,0x0000, /* FCA8 */
+0x18C9,0x18C2,0x0000, 0x18C9,0x1931,0x0000, 0x18F1,0x18C2,0x0000, /* FCAB */
+0x18F1,0x18C8,0x0000, 0x18F1,0x18C9,0x0000, 0x18F1,0x1931,0x0000, /* FCAE */
+0x18FC,0x18C8,0x0000, 0x18FC,0x18C9,0x0000, 0x18FC,0x1931,0x0000, /* FCB1 */
+0x18FD,0x18C2,0x0000, 0x18FD,0x18C8,0x0000, 0x18FD,0x18C9,0x0000, /* FCB4 */
+0x18FD,0x1931,0x0000, 0x1901,0x18C8,0x0000, 0x1902,0x1931,0x0000, /* FCB7 */
+0x1904,0x18C2,0x0000, 0x1904,0x1931,0x0000, 0x1905,0x18C2,0x0000, /* FCBA */
+0x1905,0x1931,0x0000, 0x190B,0x18C2,0x0000, 0x190B,0x18C8,0x0000, /* FCBD */
+0x190B,0x18C9,0x0000, 0x190B,0x1931,0x0000, 0x1915,0x18C8,0x0000, /* FCC0 */
+0x1915,0x1931,0x0000, 0x1918,0x18C2,0x0000, 0x1918,0x18C8,0x0000, /* FCC3 */
+0x1918,0x18C9,0x0000, 0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, /* FCC6 */
+0x192B,0x18C2,0x0000, 0x192B,0x18C8,0x0000, 0x192B,0x18C9,0x0000, /* FCC9 */
+0x192B,0x1931,0x0000, 0x192B,0x193D,0x0000, 0x1931,0x18C2,0x0000, /* FCCC */
+0x1931,0x18C8,0x0000, 0x1931,0x18C9,0x0000, 0x1931,0x1931,0x0000, /* FCCF */
+0x1934,0x18C2,0x0000, 0x1934,0x18C8,0x0000, 0x1934,0x18C9,0x0000, /* FCD2 */
+0x1934,0x1931,0x0000, 0x1934,0x193D,0x0000, 0x193D,0x18C2,0x0000, /* FCD5 */
+0x193D,0x1931,0x0000, 0x193D,0x0000,0x0000, 0x1950,0x18C2,0x0000, /* FCD8 */
+0x1950,0x18C8,0x0000, 0x1950,0x18C9,0x0000, 0x1950,0x1931,0x0000, /* FCDB */
+0x1950,0x193D,0x0000, 0x18AC,0x1931,0x0000, 0x18AC,0x193D,0x0000, /* FCDE */
+0x18AF,0x1931,0x0000, 0x18AF,0x193D,0x0000, 0x18BB,0x1931,0x0000, /* FCE1 */
+0x18BB,0x193D,0x0000, 0x18BC,0x1931,0x0000, 0x18BC,0x193D,0x0000, /* FCE4 */
+0x18F1,0x1931,0x0000, 0x18F1,0x193D,0x0000, 0x18F2,0x1931,0x0000, /* FCE7 */
+0x18F2,0x193D,0x0000, 0x1918,0x192B,0x0000, 0x1918,0x1931,0x0000, /* FCEA */
+0x192B,0x1931,0x0000, 0x1934,0x1931,0x0000, 0x1934,0x193D,0x0000, /* FCED */
+0x1950,0x1931,0x0000, 0x1950,0x193D,0x0000, 0x0000,0x0000,0x0000, /* FCF0 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1901,0x194F,0x0000, /* FCF3 */
+0x1901,0x1950,0x0000, 0x1904,0x194F,0x0000, 0x1904,0x1950,0x0000, /* FCF6 */
+0x1905,0x194F,0x0000, 0x1905,0x1950,0x0000, 0x18F1,0x194F,0x0000, /* FCF9 */
+0x18F1,0x1950,0x0000, 0x18F2,0x194F,0x0000, 0x18F2,0x1950,0x0000, /* FCFC */
+0x18C8,0x194F,0x0000 };
+
+static const uint16 uca520_p0FD[]= { /* FD00 (9 weights per char) */
+0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD00 */
+0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD01 */
+0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD02 */
+0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD03 */
+0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD04 */
+0x18FC,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD05 */
+0x18FC,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD06 */
+0x18FD,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD07 */
+0x18FD,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD08 */
+0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD09 */
+0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0A */
+0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0B */
+0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0C */
+0x18F2,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0D */
+0x18F1,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0E */
+0x18FC,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0F */
+0x18FD,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD10 */
+0x1901,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD11 */
+0x1901,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD12 */
+0x1904,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD13 */
+0x1904,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD14 */
+0x1905,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD15 */
+0x1905,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD16 */
+0x18F1,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD17 */
+0x18F1,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD18 */
+0x18F2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD19 */
+0x18F2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1A */
+0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1B */
+0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1C */
+0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1D */
+0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1E */
+0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1F */
+0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD20 */
+0x18FC,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD21 */
+0x18FC,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD22 */
+0x18FD,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD23 */
+0x18FD,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD24 */
+0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD25 */
+0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD26 */
+0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD27 */
+0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD28 */
+0x18F2,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD29 */
+0x18F1,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2A */
+0x18FC,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2B */
+0x18FD,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2C */
+0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2D */
+0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2E */
+0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2F */
+0x18F2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD30 */
+0x18F1,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD31 */
+0x18F2,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD32 */
+0x1901,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD33 */
+0x18F1,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD34 */
+0x18F1,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD35 */
+0x18F1,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD36 */
+0x18F2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD37 */
+0x18F2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD38 */
+0x18F2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD39 */
+0x1901,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3A */
+0x1902,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3B */
+0x18AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3C */
+0x18AD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3D */
+0x034F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3E */
+0x0350,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3F */
+0xFBC1,0xFD40,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD40 */
+0xFBC1,0xFD41,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD41 */
+0xFBC1,0xFD42,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD42 */
+0xFBC1,0xFD43,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD43 */
+0xFBC1,0xFD44,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD44 */
+0xFBC1,0xFD45,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD45 */
+0xFBC1,0xFD46,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD46 */
+0xFBC1,0xFD47,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD47 */
+0xFBC1,0xFD48,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD48 */
+0xFBC1,0xFD49,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD49 */
+0xFBC1,0xFD4A,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4A */
+0xFBC1,0xFD4B,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4B */
+0xFBC1,0xFD4C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4C */
+0xFBC1,0xFD4D,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4D */
+0xFBC1,0xFD4E,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4E */
+0xFBC1,0xFD4F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4F */
+0x18BB,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD50 */
+0x18BB,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD51 */
+0x18BB,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD52 */
+0x18BB,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD53 */
+0x18BB,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD54 */
+0x18BB,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD55 */
+0x18BB,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD56 */
+0x18BB,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD57 */
+0x18C2,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD58 */
+0x18C2,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD59 */
+0x18C8,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5A */
+0x18C8,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5B */
+0x18F1,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5C */
+0x18F1,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5D */
+0x18F1,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5E */
+0x18F1,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5F */
+0x18F1,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD60 */
+0x18F1,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD61 */
+0x18F1,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD62 */
+0x18F1,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD63 */
+0x18FC,0x18C8,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD64 */
+0x18FC,0x18C8,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD65 */
+0x18FC,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD66 */
+0x18F2,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD67 */
+0x18F2,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD68 */
+0x18F2,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD69 */
+0x18F2,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6A */
+0x18F2,0x1931,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6B */
+0x18F2,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6C */
+0x18F2,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6D */
+0x18FD,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6E */
+0x18FD,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6F */
+0x18FD,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD70 */
+0x1901,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD71 */
+0x1901,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD72 */
+0x1901,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD73 */
+0x1901,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD74 */
+0x1904,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD75 */
+0x1904,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD76 */
+0x1904,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD77 */
+0x1904,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD78 */
+0x1905,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD79 */
+0x1905,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7A */
+0x1905,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7B */
+0x190B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7C */
+0x190B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7D */
+0x1915,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7E */
+0x1915,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7F */
+0x192B,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD80 */
+0x192B,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD81 */
+0x192B,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD82 */
+0x192B,0x18C2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD83 */
+0x192B,0x18C2,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD84 */
+0x192B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD85 */
+0x192B,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD86 */
+0x192B,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD87 */
+0x192B,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD88 */
+0x1931,0x18C8,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD89 */
+0x1931,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8A */
+0x1931,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8B */
+0x1931,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8C */
+0x1931,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8D */
+0x1931,0x18C9,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8E */
+0x1931,0x18C9,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8F */
+0xFBC1,0xFD90,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD90 */
+0xFBC1,0xFD91,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD91 */
+0x1931,0x18C2,0x18C9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD92 */
+0x193D,0x1931,0x18C2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD93 */
+0x193D,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD94 */
+0x1934,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD95 */
+0x1934,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD96 */
+0x1934,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD97 */
+0x1934,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD98 */
+0x1934,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD99 */
+0x1934,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9A */
+0x1934,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9B */
+0x1950,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9C */
+0x1950,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9D */
+0x18AF,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9E */
+0x18BB,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9F */
+0x18BB,0x18C2,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA0 */
+0x18BB,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA1 */
+0x18BB,0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA2 */
+0x18BB,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA3 */
+0x18BB,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA4 */
+0x18C2,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA5 */
+0x18C2,0x18C8,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA6 */
+0x18C2,0x1931,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA7 */
+0x18F1,0x18C9,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA8 */
+0x18FC,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA9 */
+0x18F2,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAA */
+0x18FD,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAB */
+0x192B,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAC */
+0x192B,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAD */
+0x1950,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAE */
+0x1950,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAF */
+0x1950,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB0 */
+0x1931,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB1 */
+0x1915,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB2 */
+0x1934,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB3 */
+0x1915,0x1931,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB4 */
+0x192B,0x18C8,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB5 */
+0x1904,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB6 */
+0x1918,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB7 */
+0x1934,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB8 */
+0x1931,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB9 */
+0x192B,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBA */
+0x1918,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBB */
+0x192B,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBC */
+0x1934,0x18C2,0x18C8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBD */
+0x18C2,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBE */
+0x18C8,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBF */
+0x1931,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC0 */
+0x190B,0x1931,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC1 */
+0x18AF,0x18C8,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC2 */
+0x1918,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC3 */
+0x1904,0x18C2,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC4 */
+0x18FC,0x1931,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC5 */
+0x18F1,0x18C9,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC6 */
+0x1934,0x18C2,0x1950,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC7 */
+0xFBC1,0xFDC8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC8 */
+0xFBC1,0xFDC9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC9 */
+0xFBC1,0xFDCA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCA */
+0xFBC1,0xFDCB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCB */
+0xFBC1,0xFDCC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCC */
+0xFBC1,0xFDCD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCD */
+0xFBC1,0xFDCE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCE */
+0xFBC1,0xFDCF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCF */
+0xFBC1,0xFDD0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD0 */
+0xFBC1,0xFDD1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD1 */
+0xFBC1,0xFDD2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD2 */
+0xFBC1,0xFDD3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD3 */
+0xFBC1,0xFDD4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD4 */
+0xFBC1,0xFDD5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD5 */
+0xFBC1,0xFDD6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD6 */
+0xFBC1,0xFDD7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD7 */
+0xFBC1,0xFDD8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD8 */
+0xFBC1,0xFDD9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD9 */
+0xFBC1,0xFDDA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDA */
+0xFBC1,0xFDDB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDB */
+0xFBC1,0xFDDC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDC */
+0xFBC1,0xFDDD,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDD */
+0xFBC1,0xFDDE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDE */
+0xFBC1,0xFDDF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDF */
+0xFBC1,0xFDE0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE0 */
+0xFBC1,0xFDE1,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE1 */
+0xFBC1,0xFDE2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE2 */
+0xFBC1,0xFDE3,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE3 */
+0xFBC1,0xFDE4,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE4 */
+0xFBC1,0xFDE5,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE5 */
+0xFBC1,0xFDE6,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE6 */
+0xFBC1,0xFDE7,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE7 */
+0xFBC1,0xFDE8,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE8 */
+0xFBC1,0xFDE9,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE9 */
+0xFBC1,0xFDEA,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEA */
+0xFBC1,0xFDEB,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEB */
+0xFBC1,0xFDEC,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEC */
+0xFBC1,0xFDED,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDED */
+0xFBC1,0xFDEE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEE */
+0xFBC1,0xFDEF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEF */
+0x18FC,0x192B,0x195C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF0 */
+0x1915,0x192B,0x195C,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF1 */
+0x18AD,0x192B,0x192B,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF2 */
+0x18AD,0x1918,0x18AF,0x18E1,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF3 */
+0x1931,0x18C8,0x1931,0x18D3,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF4 */
+0x18FC,0x192B,0x1904,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF5 */
+0x18E1,0x18F1,0x1943,0x192B,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF6 */
+0x1904,0x192B,0x1950,0x193D,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF7 */
+0x1943,0x18F1,0x192B,0x1931,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF8 */
+0x18FC,0x192B,0x194F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF9 */
+0x18FC,0x192B,0x194F,0x020A,0x18AD,0x192B,0x192B,0x193D,0x0000, /* FDFA */
+0x18C2,0x192B,0x020A,0x18C2,0x192B,0x18AD,0x192B,0x193D,0x0000, /* FDFB */
+0x18E1,0x1951,0x18AD,0x192B,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFC */
+0x0451,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFD */
+0xFBC1,0xFDFE,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFE */
+0xFBC1,0xFDFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* FDFF */
+};
+
+static const uint16 uca520_p0FE[]= { /* FE00 (4 weights per char) */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE00 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE02 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE04 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE06 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE08 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0E */
+0x0234,0x0000,0x0000,0x0000, 0x0240,0x0000,0x0000,0x0000, /* FE10 */
+0x0291,0x0000,0x0000,0x0000, 0x0247,0x0000,0x0000,0x0000, /* FE12 */
+0x0243,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* FE14 */
+0x0273,0x0000,0x0000,0x0000, 0x0349,0x0000,0x0000,0x0000, /* FE16 */
+0x034A,0x0000,0x0000,0x0000, 0x0281,0x0281,0x0281,0x0000, /* FE18 */
+0xFBC1,0xFE1A,0x0000,0x0000, 0xFBC1,0xFE1B,0x0000,0x0000, /* FE1A */
+0xFBC1,0xFE1C,0x0000,0x0000, 0xFBC1,0xFE1D,0x0000,0x0000, /* FE1C */
+0xFBC1,0xFE1E,0x0000,0x0000, 0xFBC1,0xFE1F,0x0000,0x0000, /* FE1E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE20 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE22 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE24 */
+0x0000,0x0000,0x0000,0x0000, 0xFBC1,0xFE27,0x0000,0x0000, /* FE26 */
+0xFBC1,0xFE28,0x0000,0x0000, 0xFBC1,0xFE29,0x0000,0x0000, /* FE28 */
+0xFBC1,0xFE2A,0x0000,0x0000, 0xFBC1,0xFE2B,0x0000,0x0000, /* FE2A */
+0xFBC1,0xFE2C,0x0000,0x0000, 0xFBC1,0xFE2D,0x0000,0x0000, /* FE2C */
+0xFBC1,0xFE2E,0x0000,0x0000, 0xFBC1,0xFE2F,0x0000,0x0000, /* FE2E */
+0x0281,0x0281,0x0000,0x0000, 0x022C,0x0000,0x0000,0x0000, /* FE30 */
+0x022B,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE32 */
+0x021D,0x0000,0x0000,0x0000, 0x02FF,0x0000,0x0000,0x0000, /* FE34 */
+0x0300,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* FE36 */
+0x0304,0x0000,0x0000,0x0000, 0x0347,0x0000,0x0000,0x0000, /* FE38 */
+0x0348,0x0000,0x0000,0x0000, 0x0345,0x0000,0x0000,0x0000, /* FE3A */
+0x0346,0x0000,0x0000,0x0000, 0x033F,0x0000,0x0000,0x0000, /* FE3C */
+0x0340,0x0000,0x0000,0x0000, 0x033D,0x0000,0x0000,0x0000, /* FE3E */
+0x033E,0x0000,0x0000,0x0000, 0x0341,0x0000,0x0000,0x0000, /* FE40 */
+0x0342,0x0000,0x0000,0x0000, 0x0343,0x0000,0x0000,0x0000, /* FE42 */
+0x0344,0x0000,0x0000,0x0000, 0x0241,0x0000,0x0000,0x0000, /* FE44 */
+0x0242,0x0000,0x0000,0x0000, 0x0301,0x0000,0x0000,0x0000, /* FE46 */
+0x0302,0x0000,0x0000,0x0000, 0x0213,0x0000,0x0000,0x0000, /* FE48 */
+0x0213,0x0000,0x0000,0x0000, 0x0213,0x0000,0x0000,0x0000, /* FE4A */
+0x0213,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE4C */
+0x021D,0x0000,0x0000,0x0000, 0x021D,0x0000,0x0000,0x0000, /* FE4E */
+0x0234,0x0000,0x0000,0x0000, 0x0240,0x0000,0x0000,0x0000, /* FE50 */
+0x0281,0x0000,0x0000,0x0000, 0xFBC1,0xFE53,0x0000,0x0000, /* FE52 */
+0x0243,0x0000,0x0000,0x0000, 0x0247,0x0000,0x0000,0x0000, /* FE54 */
+0x0273,0x0000,0x0000,0x0000, 0x026E,0x0000,0x0000,0x0000, /* FE56 */
+0x022C,0x0000,0x0000,0x0000, 0x02FF,0x0000,0x0000,0x0000, /* FE58 */
+0x0300,0x0000,0x0000,0x0000, 0x0303,0x0000,0x0000,0x0000, /* FE5A */
+0x0304,0x0000,0x0000,0x0000, 0x0347,0x0000,0x0000,0x0000, /* FE5C */
+0x0348,0x0000,0x0000,0x0000, 0x0362,0x0000,0x0000,0x0000, /* FE5E */
+0x035F,0x0000,0x0000,0x0000, 0x0357,0x0000,0x0000,0x0000, /* FE60 */
+0x0550,0x0000,0x0000,0x0000, 0x0223,0x0000,0x0000,0x0000, /* FE62 */
+0x0554,0x0000,0x0000,0x0000, 0x0556,0x0000,0x0000,0x0000, /* FE64 */
+0x0555,0x0000,0x0000,0x0000, 0xFBC1,0xFE67,0x0000,0x0000, /* FE66 */
+0x035E,0x0000,0x0000,0x0000, 0x11E1,0x0000,0x0000,0x0000, /* FE68 */
+0x0363,0x0000,0x0000,0x0000, 0x0356,0x0000,0x0000,0x0000, /* FE6A */
+0xFBC1,0xFE6C,0x0000,0x0000, 0xFBC1,0xFE6D,0x0000,0x0000, /* FE6C */
+0xFBC1,0xFE6E,0x0000,0x0000, 0xFBC1,0xFE6F,0x0000,0x0000, /* FE6E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE70 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE72 */
+0x0000,0x0000,0x0000,0x0000, 0xFBC1,0xFE75,0x0000,0x0000, /* FE74 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE76 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE78 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE7E */
+0x18A2,0x0000,0x0000,0x0000, 0x18A3,0x0000,0x0000,0x0000, /* FE80 */
+0x18A3,0x0000,0x0000,0x0000, 0x18A4,0x0000,0x0000,0x0000, /* FE82 */
+0x18A4,0x0000,0x0000,0x0000, 0x18A7,0x0000,0x0000,0x0000, /* FE84 */
+0x18A7,0x0000,0x0000,0x0000, 0x18A8,0x0000,0x0000,0x0000, /* FE86 */
+0x18A8,0x0000,0x0000,0x0000, 0x18AC,0x0000,0x0000,0x0000, /* FE88 */
+0x18AC,0x0000,0x0000,0x0000, 0x18AC,0x0000,0x0000,0x0000, /* FE8A */
+0x18AC,0x0000,0x0000,0x0000, 0x18AD,0x0000,0x0000,0x0000, /* FE8C */
+0x18AD,0x0000,0x0000,0x0000, 0x18AF,0x0000,0x0000,0x0000, /* FE8E */
+0x18AF,0x0000,0x0000,0x0000, 0x18AF,0x0000,0x0000,0x0000, /* FE90 */
+0x18AF,0x0000,0x0000,0x0000, 0x18BA,0x0000,0x0000,0x0000, /* FE92 */
+0x18BA,0x0000,0x0000,0x0000, 0x18BB,0x0000,0x0000,0x0000, /* FE94 */
+0x18BB,0x0000,0x0000,0x0000, 0x18BB,0x0000,0x0000,0x0000, /* FE96 */
+0x18BB,0x0000,0x0000,0x0000, 0x18BC,0x0000,0x0000,0x0000, /* FE98 */
+0x18BC,0x0000,0x0000,0x0000, 0x18BC,0x0000,0x0000,0x0000, /* FE9A */
+0x18BC,0x0000,0x0000,0x0000, 0x18C2,0x0000,0x0000,0x0000, /* FE9C */
+0x18C2,0x0000,0x0000,0x0000, 0x18C2,0x0000,0x0000,0x0000, /* FE9E */
+0x18C2,0x0000,0x0000,0x0000, 0x18C8,0x0000,0x0000,0x0000, /* FEA0 */
+0x18C8,0x0000,0x0000,0x0000, 0x18C8,0x0000,0x0000,0x0000, /* FEA2 */
+0x18C8,0x0000,0x0000,0x0000, 0x18C9,0x0000,0x0000,0x0000, /* FEA4 */
+0x18C9,0x0000,0x0000,0x0000, 0x18C9,0x0000,0x0000,0x0000, /* FEA6 */
+0x18C9,0x0000,0x0000,0x0000, 0x18D3,0x0000,0x0000,0x0000, /* FEA8 */
+0x18D3,0x0000,0x0000,0x0000, 0x18D4,0x0000,0x0000,0x0000, /* FEAA */
+0x18D4,0x0000,0x0000,0x0000, 0x18E1,0x0000,0x0000,0x0000, /* FEAC */
+0x18E1,0x0000,0x0000,0x0000, 0x18E2,0x0000,0x0000,0x0000, /* FEAE */
+0x18E2,0x0000,0x0000,0x0000, 0x18F1,0x0000,0x0000,0x0000, /* FEB0 */
+0x18F1,0x0000,0x0000,0x0000, 0x18F1,0x0000,0x0000,0x0000, /* FEB2 */
+0x18F1,0x0000,0x0000,0x0000, 0x18F2,0x0000,0x0000,0x0000, /* FEB4 */
+0x18F2,0x0000,0x0000,0x0000, 0x18F2,0x0000,0x0000,0x0000, /* FEB6 */
+0x18F2,0x0000,0x0000,0x0000, 0x18FC,0x0000,0x0000,0x0000, /* FEB8 */
+0x18FC,0x0000,0x0000,0x0000, 0x18FC,0x0000,0x0000,0x0000, /* FEBA */
+0x18FC,0x0000,0x0000,0x0000, 0x18FD,0x0000,0x0000,0x0000, /* FEBC */
+0x18FD,0x0000,0x0000,0x0000, 0x18FD,0x0000,0x0000,0x0000, /* FEBE */
+0x18FD,0x0000,0x0000,0x0000, 0x1901,0x0000,0x0000,0x0000, /* FEC0 */
+0x1901,0x0000,0x0000,0x0000, 0x1901,0x0000,0x0000,0x0000, /* FEC2 */
+0x1901,0x0000,0x0000,0x0000, 0x1902,0x0000,0x0000,0x0000, /* FEC4 */
+0x1902,0x0000,0x0000,0x0000, 0x1902,0x0000,0x0000,0x0000, /* FEC6 */
+0x1902,0x0000,0x0000,0x0000, 0x1904,0x0000,0x0000,0x0000, /* FEC8 */
+0x1904,0x0000,0x0000,0x0000, 0x1904,0x0000,0x0000,0x0000, /* FECA */
+0x1904,0x0000,0x0000,0x0000, 0x1905,0x0000,0x0000,0x0000, /* FECC */
+0x1905,0x0000,0x0000,0x0000, 0x1905,0x0000,0x0000,0x0000, /* FECE */
+0x1905,0x0000,0x0000,0x0000, 0x190B,0x0000,0x0000,0x0000, /* FED0 */
+0x190B,0x0000,0x0000,0x0000, 0x190B,0x0000,0x0000,0x0000, /* FED2 */
+0x190B,0x0000,0x0000,0x0000, 0x1915,0x0000,0x0000,0x0000, /* FED4 */
+0x1915,0x0000,0x0000,0x0000, 0x1915,0x0000,0x0000,0x0000, /* FED6 */
+0x1915,0x0000,0x0000,0x0000, 0x1918,0x0000,0x0000,0x0000, /* FED8 */
+0x1918,0x0000,0x0000,0x0000, 0x1918,0x0000,0x0000,0x0000, /* FEDA */
+0x1918,0x0000,0x0000,0x0000, 0x192B,0x0000,0x0000,0x0000, /* FEDC */
+0x192B,0x0000,0x0000,0x0000, 0x192B,0x0000,0x0000,0x0000, /* FEDE */
+0x192B,0x0000,0x0000,0x0000, 0x1931,0x0000,0x0000,0x0000, /* FEE0 */
+0x1931,0x0000,0x0000,0x0000, 0x1931,0x0000,0x0000,0x0000, /* FEE2 */
+0x1931,0x0000,0x0000,0x0000, 0x1934,0x0000,0x0000,0x0000, /* FEE4 */
+0x1934,0x0000,0x0000,0x0000, 0x1934,0x0000,0x0000,0x0000, /* FEE6 */
+0x1934,0x0000,0x0000,0x0000, 0x193D,0x0000,0x0000,0x0000, /* FEE8 */
+0x193D,0x0000,0x0000,0x0000, 0x193D,0x0000,0x0000,0x0000, /* FEEA */
+0x193D,0x0000,0x0000,0x0000, 0x1943,0x0000,0x0000,0x0000, /* FEEC */
+0x1943,0x0000,0x0000,0x0000, 0x194F,0x0000,0x0000,0x0000, /* FEEE */
+0x194F,0x0000,0x0000,0x0000, 0x1950,0x0000,0x0000,0x0000, /* FEF0 */
+0x1950,0x0000,0x0000,0x0000, 0x1950,0x0000,0x0000,0x0000, /* FEF2 */
+0x1950,0x0000,0x0000,0x0000, 0x192B,0x18A3,0x0000,0x0000, /* FEF4 */
+0x192B,0x18A3,0x0000,0x0000, 0x192B,0x18A4,0x0000,0x0000, /* FEF6 */
+0x192B,0x18A4,0x0000,0x0000, 0x192B,0x18A8,0x0000,0x0000, /* FEF8 */
+0x192B,0x18A8,0x0000,0x0000, 0x192B,0x18AD,0x0000,0x0000, /* FEFA */
+0x192B,0x18AD,0x0000,0x0000, 0xFBC1,0xFEFD,0x0000,0x0000, /* FEFC */
+0xFBC1,0xFEFE,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 /* FEFE */
+};
+
+static const uint16 uca520_p0FF[]= { /* FF00 (3 weights per char) */
+0xFBC1,0xFF00,0x0000, 0x026E,0x0000,0x0000, 0x02F5,0x0000,0x0000, /* FF00 */
+0x0362,0x0000,0x0000, 0x11E1,0x0000,0x0000, 0x0363,0x0000,0x0000, /* FF03 */
+0x035F,0x0000,0x0000, 0x02EE,0x0000,0x0000, 0x02FF,0x0000,0x0000, /* FF06 */
+0x0300,0x0000,0x0000, 0x0357,0x0000,0x0000, 0x0550,0x0000,0x0000, /* FF09 */
+0x0234,0x0000,0x0000, 0x0223,0x0000,0x0000, 0x0281,0x0000,0x0000, /* FF0C */
+0x035C,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* FF0F */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* FF12 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* FF15 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x0247,0x0000,0x0000, /* FF18 */
+0x0243,0x0000,0x0000, 0x0554,0x0000,0x0000, 0x0555,0x0000,0x0000, /* FF1B */
+0x0556,0x0000,0x0000, 0x0273,0x0000,0x0000, 0x0356,0x0000,0x0000, /* FF1E */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* FF21 */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* FF24 */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* FF27 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* FF2A */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* FF2D */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* FF30 */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* FF33 */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* FF36 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x0301,0x0000,0x0000, /* FF39 */
+0x035E,0x0000,0x0000, 0x0302,0x0000,0x0000, 0x0211,0x0000,0x0000, /* FF3C */
+0x021D,0x0000,0x0000, 0x020E,0x0000,0x0000, 0x120F,0x0000,0x0000, /* FF3F */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* FF42 */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* FF45 */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* FF48 */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* FF4B */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* FF4E */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* FF51 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* FF54 */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* FF57 */
+0x14AD,0x0000,0x0000, 0x0303,0x0000,0x0000, 0x0558,0x0000,0x0000, /* FF5A */
+0x0304,0x0000,0x0000, 0x055B,0x0000,0x0000, 0x0311,0x0000,0x0000, /* FF5D */
+0x0312,0x0000,0x0000, 0x0291,0x0000,0x0000, 0x0341,0x0000,0x0000, /* FF60 */
+0x0342,0x0000,0x0000, 0x0240,0x0000,0x0000, 0x0233,0x0000,0x0000, /* FF63 */
+0x2B43,0x0000,0x0000, 0x2B15,0x0000,0x0000, 0x2B16,0x0000,0x0000, /* FF66 */
+0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, 0x2B19,0x0000,0x0000, /* FF69 */
+0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, 0x2B3A,0x0000,0x0000, /* FF6C */
+0x2B26,0x0000,0x0000, 0x11DD,0x0000,0x0000, 0x2B15,0x0000,0x0000, /* FF6F */
+0x2B16,0x0000,0x0000, 0x2B17,0x0000,0x0000, 0x2B18,0x0000,0x0000, /* FF72 */
+0x2B19,0x0000,0x0000, 0x2B1A,0x0000,0x0000, 0x2B1B,0x0000,0x0000, /* FF75 */
+0x2B1C,0x0000,0x0000, 0x2B1D,0x0000,0x0000, 0x2B1E,0x0000,0x0000, /* FF78 */
+0x2B1F,0x0000,0x0000, 0x2B20,0x0000,0x0000, 0x2B21,0x0000,0x0000, /* FF7B */
+0x2B22,0x0000,0x0000, 0x2B23,0x0000,0x0000, 0x2B24,0x0000,0x0000, /* FF7E */
+0x2B25,0x0000,0x0000, 0x2B26,0x0000,0x0000, 0x2B27,0x0000,0x0000, /* FF81 */
+0x2B28,0x0000,0x0000, 0x2B29,0x0000,0x0000, 0x2B2A,0x0000,0x0000, /* FF84 */
+0x2B2B,0x0000,0x0000, 0x2B2C,0x0000,0x0000, 0x2B2D,0x0000,0x0000, /* FF87 */
+0x2B2E,0x0000,0x0000, 0x2B2F,0x0000,0x0000, 0x2B30,0x0000,0x0000, /* FF8A */
+0x2B31,0x0000,0x0000, 0x2B32,0x0000,0x0000, 0x2B33,0x0000,0x0000, /* FF8D */
+0x2B34,0x0000,0x0000, 0x2B35,0x0000,0x0000, 0x2B36,0x0000,0x0000, /* FF90 */
+0x2B37,0x0000,0x0000, 0x2B38,0x0000,0x0000, 0x2B39,0x0000,0x0000, /* FF93 */
+0x2B3A,0x0000,0x0000, 0x2B3B,0x0000,0x0000, 0x2B3C,0x0000,0x0000, /* FF96 */
+0x2B3D,0x0000,0x0000, 0x2B3E,0x0000,0x0000, 0x2B3F,0x0000,0x0000, /* FF99 */
+0x2B40,0x0000,0x0000, 0x2B44,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FF9C */
+0x0000,0x0000,0x0000, 0x2A2D,0x0000,0x0000, 0x29B0,0x0000,0x0000, /* FF9F */
+0x29B1,0x0000,0x0000, 0x2A8E,0x0000,0x0000, 0x29B2,0x0000,0x0000, /* FFA2 */
+0x2A90,0x0000,0x0000, 0x2A91,0x0000,0x0000, 0x29B3,0x0000,0x0000, /* FFA5 */
+0x29B4,0x0000,0x0000, 0x29B5,0x0000,0x0000, 0x2A94,0x0000,0x0000, /* FFA8 */
+0x2A95,0x0000,0x0000, 0x2A96,0x0000,0x0000, 0x2A97,0x0000,0x0000, /* FFAB */
+0x2A98,0x0000,0x0000, 0x2A99,0x0000,0x0000, 0x29CA,0x0000,0x0000, /* FFAE */
+0x29B6,0x0000,0x0000, 0x29B7,0x0000,0x0000, 0x29B8,0x0000,0x0000, /* FFB1 */
+0x29D1,0x0000,0x0000, 0x29B9,0x0000,0x0000, 0x29BA,0x0000,0x0000, /* FFB4 */
+0x29BB,0x0000,0x0000, 0x29BC,0x0000,0x0000, 0x29BD,0x0000,0x0000, /* FFB7 */
+0x29BE,0x0000,0x0000, 0x29BF,0x0000,0x0000, 0x29C0,0x0000,0x0000, /* FFBA */
+0x29C1,0x0000,0x0000, 0x29C2,0x0000,0x0000, 0xFBC1,0xFFBF,0x0000, /* FFBD */
+0xFBC1,0xFFC0,0x0000, 0xFBC1,0xFFC1,0x0000, 0x2A2E,0x0000,0x0000, /* FFC0 */
+0x2A2F,0x0000,0x0000, 0x2A30,0x0000,0x0000, 0x2A31,0x0000,0x0000, /* FFC3 */
+0x2A32,0x0000,0x0000, 0x2A33,0x0000,0x0000, 0xFBC1,0xFFC8,0x0000, /* FFC6 */
+0xFBC1,0xFFC9,0x0000, 0x2A34,0x0000,0x0000, 0x2A35,0x0000,0x0000, /* FFC9 */
+0x2A36,0x0000,0x0000, 0x2A37,0x0000,0x0000, 0x2A38,0x0000,0x0000, /* FFCC */
+0x2A39,0x0000,0x0000, 0xFBC1,0xFFD0,0x0000, 0xFBC1,0xFFD1,0x0000, /* FFCF */
+0x2A3A,0x0000,0x0000, 0x2A3B,0x0000,0x0000, 0x2A3C,0x0000,0x0000, /* FFD2 */
+0x2A3D,0x0000,0x0000, 0x2A3E,0x0000,0x0000, 0x2A3F,0x0000,0x0000, /* FFD5 */
+0xFBC1,0xFFD8,0x0000, 0xFBC1,0xFFD9,0x0000, 0x2A40,0x0000,0x0000, /* FFD8 */
+0x2A41,0x0000,0x0000, 0x2A42,0x0000,0x0000, 0xFBC1,0xFFDD,0x0000, /* FFDB */
+0xFBC1,0xFFDE,0x0000, 0xFBC1,0xFFDF,0x0000, 0x11E0,0x0000,0x0000, /* FFDE */
+0x11E2,0x0000,0x0000, 0x0557,0x0000,0x0000, 0x0212,0x0000,0x0000, /* FFE1 */
+0x0559,0x0000,0x0000, 0x11E3,0x0000,0x0000, 0x11F5,0x0000,0x0000, /* FFE4 */
+0xFBC1,0xFFE7,0x0000, 0x0740,0x0000,0x0000, 0x04D6,0x0000,0x0000, /* FFE7 */
+0x04D8,0x0000,0x0000, 0x04D7,0x0000,0x0000, 0x04D9,0x0000,0x0000, /* FFEA */
+0x07DE,0x0000,0x0000, 0x0809,0x0000,0x0000, 0xFBC1,0xFFEF,0x0000, /* FFED */
+0xFBC1,0xFFF0,0x0000, 0xFBC1,0xFFF1,0x0000, 0xFBC1,0xFFF2,0x0000, /* FFF0 */
+0xFBC1,0xFFF3,0x0000, 0xFBC1,0xFFF4,0x0000, 0xFBC1,0xFFF5,0x0000, /* FFF3 */
+0xFBC1,0xFFF6,0x0000, 0xFBC1,0xFFF7,0x0000, 0xFBC1,0xFFF8,0x0000, /* FFF6 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* FFF9 */
+0x110E,0x0000,0x0000, 0x110F,0x0000,0x0000, 0xFBC1,0xFFFE,0x0000, /* FFFC */
+0xFBC1,0xFFFF,0x0000 };
+
+static const uint16 uca520_p100[]= { /* 10000 (3 weights per char) */
+0x3148,0x0000,0x0000, 0x3149,0x0000,0x0000, 0x314A,0x0000,0x0000, /* 10000 */
+0x314B,0x0000,0x0000, 0x314C,0x0000,0x0000, 0x314D,0x0000,0x0000, /* 10003 */
+0x314E,0x0000,0x0000, 0x314F,0x0000,0x0000, 0x3150,0x0000,0x0000, /* 10006 */
+0x3151,0x0000,0x0000, 0x3152,0x0000,0x0000, 0x3153,0x0000,0x0000, /* 10009 */
+0xFBC2,0x800C,0x0000, 0x3154,0x0000,0x0000, 0x3155,0x0000,0x0000, /* 1000C */
+0x3156,0x0000,0x0000, 0x3157,0x0000,0x0000, 0x3158,0x0000,0x0000, /* 1000F */
+0x3159,0x0000,0x0000, 0x315A,0x0000,0x0000, 0x315B,0x0000,0x0000, /* 10012 */
+0x315C,0x0000,0x0000, 0x315D,0x0000,0x0000, 0x315E,0x0000,0x0000, /* 10015 */
+0x315F,0x0000,0x0000, 0x3160,0x0000,0x0000, 0x3161,0x0000,0x0000, /* 10018 */
+0x3162,0x0000,0x0000, 0x3163,0x0000,0x0000, 0x3164,0x0000,0x0000, /* 1001B */
+0x3165,0x0000,0x0000, 0x3166,0x0000,0x0000, 0x3167,0x0000,0x0000, /* 1001E */
+0x3168,0x0000,0x0000, 0x3169,0x0000,0x0000, 0x316A,0x0000,0x0000, /* 10021 */
+0x316B,0x0000,0x0000, 0x316C,0x0000,0x0000, 0x316D,0x0000,0x0000, /* 10024 */
+0xFBC2,0x8027,0x0000, 0x316E,0x0000,0x0000, 0x316F,0x0000,0x0000, /* 10027 */
+0x3170,0x0000,0x0000, 0x3171,0x0000,0x0000, 0x3172,0x0000,0x0000, /* 1002A */
+0x3173,0x0000,0x0000, 0x3174,0x0000,0x0000, 0x3175,0x0000,0x0000, /* 1002D */
+0x3176,0x0000,0x0000, 0x3177,0x0000,0x0000, 0x3178,0x0000,0x0000, /* 10030 */
+0x3179,0x0000,0x0000, 0x317A,0x0000,0x0000, 0x317B,0x0000,0x0000, /* 10033 */
+0x317C,0x0000,0x0000, 0x317D,0x0000,0x0000, 0x317E,0x0000,0x0000, /* 10036 */
+0x317F,0x0000,0x0000, 0x3180,0x0000,0x0000, 0xFBC2,0x803B,0x0000, /* 10039 */
+0x3181,0x0000,0x0000, 0x3182,0x0000,0x0000, 0xFBC2,0x803E,0x0000, /* 1003C */
+0x3183,0x0000,0x0000, 0x3184,0x0000,0x0000, 0x3185,0x0000,0x0000, /* 1003F */
+0x3186,0x0000,0x0000, 0x3187,0x0000,0x0000, 0x3188,0x0000,0x0000, /* 10042 */
+0x3189,0x0000,0x0000, 0x318A,0x0000,0x0000, 0x318B,0x0000,0x0000, /* 10045 */
+0x318C,0x0000,0x0000, 0x318D,0x0000,0x0000, 0x318E,0x0000,0x0000, /* 10048 */
+0x318F,0x0000,0x0000, 0x3190,0x0000,0x0000, 0x3191,0x0000,0x0000, /* 1004B */
+0xFBC2,0x804E,0x0000, 0xFBC2,0x804F,0x0000, 0x3192,0x0000,0x0000, /* 1004E */
+0x3193,0x0000,0x0000, 0x3194,0x0000,0x0000, 0x3195,0x0000,0x0000, /* 10051 */
+0x3196,0x0000,0x0000, 0x3197,0x0000,0x0000, 0x3198,0x0000,0x0000, /* 10054 */
+0x3199,0x0000,0x0000, 0x319A,0x0000,0x0000, 0x319B,0x0000,0x0000, /* 10057 */
+0x319C,0x0000,0x0000, 0x319D,0x0000,0x0000, 0x319E,0x0000,0x0000, /* 1005A */
+0x319F,0x0000,0x0000, 0xFBC2,0x805E,0x0000, 0xFBC2,0x805F,0x0000, /* 1005D */
+0xFBC2,0x8060,0x0000, 0xFBC2,0x8061,0x0000, 0xFBC2,0x8062,0x0000, /* 10060 */
+0xFBC2,0x8063,0x0000, 0xFBC2,0x8064,0x0000, 0xFBC2,0x8065,0x0000, /* 10063 */
+0xFBC2,0x8066,0x0000, 0xFBC2,0x8067,0x0000, 0xFBC2,0x8068,0x0000, /* 10066 */
+0xFBC2,0x8069,0x0000, 0xFBC2,0x806A,0x0000, 0xFBC2,0x806B,0x0000, /* 10069 */
+0xFBC2,0x806C,0x0000, 0xFBC2,0x806D,0x0000, 0xFBC2,0x806E,0x0000, /* 1006C */
+0xFBC2,0x806F,0x0000, 0xFBC2,0x8070,0x0000, 0xFBC2,0x8071,0x0000, /* 1006F */
+0xFBC2,0x8072,0x0000, 0xFBC2,0x8073,0x0000, 0xFBC2,0x8074,0x0000, /* 10072 */
+0xFBC2,0x8075,0x0000, 0xFBC2,0x8076,0x0000, 0xFBC2,0x8077,0x0000, /* 10075 */
+0xFBC2,0x8078,0x0000, 0xFBC2,0x8079,0x0000, 0xFBC2,0x807A,0x0000, /* 10078 */
+0xFBC2,0x807B,0x0000, 0xFBC2,0x807C,0x0000, 0xFBC2,0x807D,0x0000, /* 1007B */
+0xFBC2,0x807E,0x0000, 0xFBC2,0x807F,0x0000, 0x31A0,0x0000,0x0000, /* 1007E */
+0x31A1,0x0000,0x0000, 0x31A2,0x0000,0x0000, 0x31A3,0x0000,0x0000, /* 10081 */
+0x31A4,0x0000,0x0000, 0x31A5,0x0000,0x0000, 0x31A6,0x0000,0x0000, /* 10084 */
+0x31A7,0x0000,0x0000, 0x31A8,0x0000,0x0000, 0x31A9,0x0000,0x0000, /* 10087 */
+0x31AA,0x0000,0x0000, 0x31AB,0x0000,0x0000, 0x31AC,0x0000,0x0000, /* 1008A */
+0x31AD,0x0000,0x0000, 0x31AE,0x0000,0x0000, 0x31AF,0x0000,0x0000, /* 1008D */
+0x31B0,0x0000,0x0000, 0x31B1,0x0000,0x0000, 0x31B2,0x0000,0x0000, /* 10090 */
+0x31B3,0x0000,0x0000, 0x31B4,0x0000,0x0000, 0x31B5,0x0000,0x0000, /* 10093 */
+0x31B6,0x0000,0x0000, 0x31B7,0x0000,0x0000, 0x31B8,0x0000,0x0000, /* 10096 */
+0x31B9,0x0000,0x0000, 0x31BA,0x0000,0x0000, 0x31BB,0x0000,0x0000, /* 10099 */
+0x31BC,0x0000,0x0000, 0x31BD,0x0000,0x0000, 0x31BE,0x0000,0x0000, /* 1009C */
+0x31BF,0x0000,0x0000, 0x31C0,0x0000,0x0000, 0x31C1,0x0000,0x0000, /* 1009F */
+0x31C2,0x0000,0x0000, 0x31C3,0x0000,0x0000, 0x31C4,0x0000,0x0000, /* 100A2 */
+0x31C5,0x0000,0x0000, 0x31C6,0x0000,0x0000, 0x31C7,0x0000,0x0000, /* 100A5 */
+0x31C8,0x0000,0x0000, 0x31C9,0x0000,0x0000, 0x31CA,0x0000,0x0000, /* 100A8 */
+0x31CB,0x0000,0x0000, 0x31CC,0x0000,0x0000, 0x31CD,0x0000,0x0000, /* 100AB */
+0x31CE,0x0000,0x0000, 0x31CF,0x0000,0x0000, 0x31D0,0x0000,0x0000, /* 100AE */
+0x31D1,0x0000,0x0000, 0x31D2,0x0000,0x0000, 0x31D3,0x0000,0x0000, /* 100B1 */
+0x31D4,0x0000,0x0000, 0x31D5,0x0000,0x0000, 0x31D6,0x0000,0x0000, /* 100B4 */
+0x31D7,0x0000,0x0000, 0x31D8,0x0000,0x0000, 0x31D9,0x0000,0x0000, /* 100B7 */
+0x31DA,0x0000,0x0000, 0x31DB,0x0000,0x0000, 0x31DC,0x0000,0x0000, /* 100BA */
+0x31DD,0x0000,0x0000, 0x31DE,0x0000,0x0000, 0x31DF,0x0000,0x0000, /* 100BD */
+0x31E0,0x0000,0x0000, 0x31E1,0x0000,0x0000, 0x31E2,0x0000,0x0000, /* 100C0 */
+0x31E3,0x0000,0x0000, 0x31E4,0x0000,0x0000, 0x31E5,0x0000,0x0000, /* 100C3 */
+0x31E6,0x0000,0x0000, 0x31E7,0x0000,0x0000, 0x31E8,0x0000,0x0000, /* 100C6 */
+0x31E9,0x0000,0x0000, 0x31EA,0x0000,0x0000, 0x31EB,0x0000,0x0000, /* 100C9 */
+0x31EC,0x0000,0x0000, 0x31ED,0x0000,0x0000, 0x31EE,0x0000,0x0000, /* 100CC */
+0x31EF,0x0000,0x0000, 0x31F0,0x0000,0x0000, 0x31F1,0x0000,0x0000, /* 100CF */
+0x31F2,0x0000,0x0000, 0x31F3,0x0000,0x0000, 0x31F4,0x0000,0x0000, /* 100D2 */
+0x31F5,0x0000,0x0000, 0x31F6,0x0000,0x0000, 0x31F7,0x0000,0x0000, /* 100D5 */
+0x31F8,0x0000,0x0000, 0x31F9,0x0000,0x0000, 0x31FA,0x0000,0x0000, /* 100D8 */
+0x31FB,0x0000,0x0000, 0x31FC,0x0000,0x0000, 0x31FD,0x0000,0x0000, /* 100DB */
+0x31FE,0x0000,0x0000, 0x31FF,0x0000,0x0000, 0x3200,0x0000,0x0000, /* 100DE */
+0x3201,0x0000,0x0000, 0x3202,0x0000,0x0000, 0x3203,0x0000,0x0000, /* 100E1 */
+0x3204,0x0000,0x0000, 0x3205,0x0000,0x0000, 0x3206,0x0000,0x0000, /* 100E4 */
+0x3207,0x0000,0x0000, 0x3208,0x0000,0x0000, 0x3209,0x0000,0x0000, /* 100E7 */
+0x320A,0x0000,0x0000, 0x320B,0x0000,0x0000, 0x320C,0x0000,0x0000, /* 100EA */
+0x320D,0x0000,0x0000, 0x320E,0x0000,0x0000, 0x320F,0x0000,0x0000, /* 100ED */
+0x3210,0x0000,0x0000, 0x3211,0x0000,0x0000, 0x3212,0x0000,0x0000, /* 100F0 */
+0x3213,0x0000,0x0000, 0x3214,0x0000,0x0000, 0x3215,0x0000,0x0000, /* 100F3 */
+0x3216,0x0000,0x0000, 0x3217,0x0000,0x0000, 0x3218,0x0000,0x0000, /* 100F6 */
+0x3219,0x0000,0x0000, 0x321A,0x0000,0x0000, 0xFBC2,0x80FB,0x0000, /* 100F9 */
+0xFBC2,0x80FC,0x0000, 0xFBC2,0x80FD,0x0000, 0xFBC2,0x80FE,0x0000, /* 100FC */
+0xFBC2,0x80FF,0x0000 };
+
+static const uint16 uca520_p101[]= { /* 10100 (3 weights per char) */
+0x02E4,0x0000,0x0000, 0x02E5,0x0000,0x0000, 0x02E6,0x0000,0x0000, /* 10100 */
+0xFBC2,0x8103,0x0000, 0xFBC2,0x8104,0x0000, 0xFBC2,0x8105,0x0000, /* 10103 */
+0xFBC2,0x8106,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10106 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 10109 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1010C */
+0x120E,0x0000,0x0000, 0x114F,0x0000,0x0000, 0x1150,0x0000,0x0000, /* 1010F */
+0x1151,0x0000,0x0000, 0x1152,0x0000,0x0000, 0x1153,0x0000,0x0000, /* 10112 */
+0x1154,0x0000,0x0000, 0x1155,0x0000,0x0000, 0x1156,0x0000,0x0000, /* 10115 */
+0x1157,0x0000,0x0000, 0x1158,0x0000,0x0000, 0x1159,0x0000,0x0000, /* 10118 */
+0x115A,0x0000,0x0000, 0x115B,0x0000,0x0000, 0x115C,0x0000,0x0000, /* 1011B */
+0x115D,0x0000,0x0000, 0x115E,0x0000,0x0000, 0x115F,0x0000,0x0000, /* 1011E */
+0x1160,0x0000,0x0000, 0x1161,0x0000,0x0000, 0x1162,0x0000,0x0000, /* 10121 */
+0x1163,0x0000,0x0000, 0x1164,0x0000,0x0000, 0x1165,0x0000,0x0000, /* 10124 */
+0x1166,0x0000,0x0000, 0x1167,0x0000,0x0000, 0x1168,0x0000,0x0000, /* 10127 */
+0x1169,0x0000,0x0000, 0x116A,0x0000,0x0000, 0x116B,0x0000,0x0000, /* 1012A */
+0x116C,0x0000,0x0000, 0x116D,0x0000,0x0000, 0x116E,0x0000,0x0000, /* 1012D */
+0x116F,0x0000,0x0000, 0x1170,0x0000,0x0000, 0x1171,0x0000,0x0000, /* 10130 */
+0x1172,0x0000,0x0000, 0xFBC2,0x8134,0x0000, 0xFBC2,0x8135,0x0000, /* 10133 */
+0xFBC2,0x8136,0x0000, 0x0E0C,0x0000,0x0000, 0x0E0D,0x0000,0x0000, /* 10136 */
+0x0E0E,0x0000,0x0000, 0x0E0F,0x0000,0x0000, 0x0E10,0x0000,0x0000, /* 10139 */
+0x0E11,0x0000,0x0000, 0x0E12,0x0000,0x0000, 0x0E13,0x0000,0x0000, /* 1013C */
+0x0E14,0x0000,0x0000, 0x1173,0x0000,0x0000, 0x1174,0x0000,0x0000, /* 1013F */
+0x1206,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x1175,0x0000,0x0000, /* 10142 */
+0x1176,0x0000,0x0000, 0x1177,0x0000,0x0000, 0x1178,0x0000,0x0000, /* 10145 */
+0x120A,0x0000,0x0000, 0x1179,0x0000,0x0000, 0x117A,0x0000,0x0000, /* 10148 */
+0x117B,0x0000,0x0000, 0x117C,0x0000,0x0000, 0x117D,0x0000,0x0000, /* 1014B */
+0x117E,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x117F,0x0000,0x0000, /* 1014E */
+0x1180,0x0000,0x0000, 0x1181,0x0000,0x0000, 0x1182,0x0000,0x0000, /* 10151 */
+0x1183,0x0000,0x0000, 0x1184,0x0000,0x0000, 0x1185,0x0000,0x0000, /* 10154 */
+0x1186,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 10157 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1015A */
+0x1207,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1015D */
+0x1187,0x0000,0x0000, 0x1188,0x0000,0x0000, 0x1189,0x0000,0x0000, /* 10160 */
+0x118A,0x0000,0x0000, 0x118B,0x0000,0x0000, 0x118C,0x0000,0x0000, /* 10163 */
+0x118D,0x0000,0x0000, 0x118E,0x0000,0x0000, 0x118F,0x0000,0x0000, /* 10166 */
+0x1190,0x0000,0x0000, 0x1191,0x0000,0x0000, 0x1192,0x0000,0x0000, /* 10169 */
+0x1193,0x0000,0x0000, 0x1194,0x0000,0x0000, 0x1195,0x0000,0x0000, /* 1016C */
+0x1196,0x0000,0x0000, 0x1197,0x0000,0x0000, 0x1198,0x0000,0x0000, /* 1016F */
+0x1199,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x119A,0x0000,0x0000, /* 10172 */
+0x119B,0x0000,0x0000, 0x119C,0x0000,0x0000, 0x119D,0x0000,0x0000, /* 10175 */
+0x119E,0x0000,0x0000, 0x0E15,0x0000,0x0000, 0x0E16,0x0000,0x0000, /* 10178 */
+0x0E17,0x0000,0x0000, 0x0E18,0x0000,0x0000, 0x0E19,0x0000,0x0000, /* 1017B */
+0x0E1A,0x0000,0x0000, 0x0E1B,0x0000,0x0000, 0x0E1C,0x0000,0x0000, /* 1017E */
+0x0E1D,0x0000,0x0000, 0x0E1E,0x0000,0x0000, 0x0E1F,0x0000,0x0000, /* 10181 */
+0x0E20,0x0000,0x0000, 0x0E21,0x0000,0x0000, 0x0E22,0x0000,0x0000, /* 10184 */
+0x0E23,0x0000,0x0000, 0x0E24,0x0000,0x0000, 0x0E25,0x0000,0x0000, /* 10187 */
+0x1205,0x0000,0x0000, 0xFBC2,0x818B,0x0000, 0xFBC2,0x818C,0x0000, /* 1018A */
+0xFBC2,0x818D,0x0000, 0xFBC2,0x818E,0x0000, 0xFBC2,0x818F,0x0000, /* 1018D */
+0x0E26,0x0000,0x0000, 0x0E27,0x0000,0x0000, 0x0E28,0x0000,0x0000, /* 10190 */
+0x0E29,0x0000,0x0000, 0x0E2A,0x0000,0x0000, 0x0E2B,0x0000,0x0000, /* 10193 */
+0x0E2C,0x0000,0x0000, 0x0E2D,0x0000,0x0000, 0x0E2E,0x0000,0x0000, /* 10196 */
+0x0E2F,0x0000,0x0000, 0x0E30,0x0000,0x0000, 0x0E31,0x0000,0x0000, /* 10199 */
+0xFBC2,0x819C,0x0000, 0xFBC2,0x819D,0x0000, 0xFBC2,0x819E,0x0000, /* 1019C */
+0xFBC2,0x819F,0x0000, 0xFBC2,0x81A0,0x0000, 0xFBC2,0x81A1,0x0000, /* 1019F */
+0xFBC2,0x81A2,0x0000, 0xFBC2,0x81A3,0x0000, 0xFBC2,0x81A4,0x0000, /* 101A2 */
+0xFBC2,0x81A5,0x0000, 0xFBC2,0x81A6,0x0000, 0xFBC2,0x81A7,0x0000, /* 101A5 */
+0xFBC2,0x81A8,0x0000, 0xFBC2,0x81A9,0x0000, 0xFBC2,0x81AA,0x0000, /* 101A8 */
+0xFBC2,0x81AB,0x0000, 0xFBC2,0x81AC,0x0000, 0xFBC2,0x81AD,0x0000, /* 101AB */
+0xFBC2,0x81AE,0x0000, 0xFBC2,0x81AF,0x0000, 0xFBC2,0x81B0,0x0000, /* 101AE */
+0xFBC2,0x81B1,0x0000, 0xFBC2,0x81B2,0x0000, 0xFBC2,0x81B3,0x0000, /* 101B1 */
+0xFBC2,0x81B4,0x0000, 0xFBC2,0x81B5,0x0000, 0xFBC2,0x81B6,0x0000, /* 101B4 */
+0xFBC2,0x81B7,0x0000, 0xFBC2,0x81B8,0x0000, 0xFBC2,0x81B9,0x0000, /* 101B7 */
+0xFBC2,0x81BA,0x0000, 0xFBC2,0x81BB,0x0000, 0xFBC2,0x81BC,0x0000, /* 101BA */
+0xFBC2,0x81BD,0x0000, 0xFBC2,0x81BE,0x0000, 0xFBC2,0x81BF,0x0000, /* 101BD */
+0xFBC2,0x81C0,0x0000, 0xFBC2,0x81C1,0x0000, 0xFBC2,0x81C2,0x0000, /* 101C0 */
+0xFBC2,0x81C3,0x0000, 0xFBC2,0x81C4,0x0000, 0xFBC2,0x81C5,0x0000, /* 101C3 */
+0xFBC2,0x81C6,0x0000, 0xFBC2,0x81C7,0x0000, 0xFBC2,0x81C8,0x0000, /* 101C6 */
+0xFBC2,0x81C9,0x0000, 0xFBC2,0x81CA,0x0000, 0xFBC2,0x81CB,0x0000, /* 101C9 */
+0xFBC2,0x81CC,0x0000, 0xFBC2,0x81CD,0x0000, 0xFBC2,0x81CE,0x0000, /* 101CC */
+0xFBC2,0x81CF,0x0000, 0x0E32,0x0000,0x0000, 0x0E33,0x0000,0x0000, /* 101CF */
+0x0E34,0x0000,0x0000, 0x0E35,0x0000,0x0000, 0x0E36,0x0000,0x0000, /* 101D2 */
+0x0E37,0x0000,0x0000, 0x0E38,0x0000,0x0000, 0x0E39,0x0000,0x0000, /* 101D5 */
+0x0E3A,0x0000,0x0000, 0x0E3B,0x0000,0x0000, 0x0E3C,0x0000,0x0000, /* 101D8 */
+0x0E3D,0x0000,0x0000, 0x0E3E,0x0000,0x0000, 0x0E3F,0x0000,0x0000, /* 101DB */
+0x0E40,0x0000,0x0000, 0x0E41,0x0000,0x0000, 0x0E42,0x0000,0x0000, /* 101DE */
+0x0E43,0x0000,0x0000, 0x0E44,0x0000,0x0000, 0x0E45,0x0000,0x0000, /* 101E1 */
+0x0E46,0x0000,0x0000, 0x0E47,0x0000,0x0000, 0x0E48,0x0000,0x0000, /* 101E4 */
+0x0E49,0x0000,0x0000, 0x0E4A,0x0000,0x0000, 0x0E4B,0x0000,0x0000, /* 101E7 */
+0x0E4C,0x0000,0x0000, 0x0E4D,0x0000,0x0000, 0x0E4E,0x0000,0x0000, /* 101EA */
+0x0E4F,0x0000,0x0000, 0x0E50,0x0000,0x0000, 0x0E51,0x0000,0x0000, /* 101ED */
+0x0E52,0x0000,0x0000, 0x0E53,0x0000,0x0000, 0x0E54,0x0000,0x0000, /* 101F0 */
+0x0E55,0x0000,0x0000, 0x0E56,0x0000,0x0000, 0x0E57,0x0000,0x0000, /* 101F3 */
+0x0E58,0x0000,0x0000, 0x0E59,0x0000,0x0000, 0x0E5A,0x0000,0x0000, /* 101F6 */
+0x0E5B,0x0000,0x0000, 0x0E5C,0x0000,0x0000, 0x0E5D,0x0000,0x0000, /* 101F9 */
+0x0E5E,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC2,0x81FE,0x0000, /* 101FC */
+0xFBC2,0x81FF,0x0000 };
+
+static const uint16 uca520_p102[]= { /* 10200 (3 weights per char) */
+0xFBC2,0x8200,0x0000, 0xFBC2,0x8201,0x0000, 0xFBC2,0x8202,0x0000, /* 10200 */
+0xFBC2,0x8203,0x0000, 0xFBC2,0x8204,0x0000, 0xFBC2,0x8205,0x0000, /* 10203 */
+0xFBC2,0x8206,0x0000, 0xFBC2,0x8207,0x0000, 0xFBC2,0x8208,0x0000, /* 10206 */
+0xFBC2,0x8209,0x0000, 0xFBC2,0x820A,0x0000, 0xFBC2,0x820B,0x0000, /* 10209 */
+0xFBC2,0x820C,0x0000, 0xFBC2,0x820D,0x0000, 0xFBC2,0x820E,0x0000, /* 1020C */
+0xFBC2,0x820F,0x0000, 0xFBC2,0x8210,0x0000, 0xFBC2,0x8211,0x0000, /* 1020F */
+0xFBC2,0x8212,0x0000, 0xFBC2,0x8213,0x0000, 0xFBC2,0x8214,0x0000, /* 10212 */
+0xFBC2,0x8215,0x0000, 0xFBC2,0x8216,0x0000, 0xFBC2,0x8217,0x0000, /* 10215 */
+0xFBC2,0x8218,0x0000, 0xFBC2,0x8219,0x0000, 0xFBC2,0x821A,0x0000, /* 10218 */
+0xFBC2,0x821B,0x0000, 0xFBC2,0x821C,0x0000, 0xFBC2,0x821D,0x0000, /* 1021B */
+0xFBC2,0x821E,0x0000, 0xFBC2,0x821F,0x0000, 0xFBC2,0x8220,0x0000, /* 1021E */
+0xFBC2,0x8221,0x0000, 0xFBC2,0x8222,0x0000, 0xFBC2,0x8223,0x0000, /* 10221 */
+0xFBC2,0x8224,0x0000, 0xFBC2,0x8225,0x0000, 0xFBC2,0x8226,0x0000, /* 10224 */
+0xFBC2,0x8227,0x0000, 0xFBC2,0x8228,0x0000, 0xFBC2,0x8229,0x0000, /* 10227 */
+0xFBC2,0x822A,0x0000, 0xFBC2,0x822B,0x0000, 0xFBC2,0x822C,0x0000, /* 1022A */
+0xFBC2,0x822D,0x0000, 0xFBC2,0x822E,0x0000, 0xFBC2,0x822F,0x0000, /* 1022D */
+0xFBC2,0x8230,0x0000, 0xFBC2,0x8231,0x0000, 0xFBC2,0x8232,0x0000, /* 10230 */
+0xFBC2,0x8233,0x0000, 0xFBC2,0x8234,0x0000, 0xFBC2,0x8235,0x0000, /* 10233 */
+0xFBC2,0x8236,0x0000, 0xFBC2,0x8237,0x0000, 0xFBC2,0x8238,0x0000, /* 10236 */
+0xFBC2,0x8239,0x0000, 0xFBC2,0x823A,0x0000, 0xFBC2,0x823B,0x0000, /* 10239 */
+0xFBC2,0x823C,0x0000, 0xFBC2,0x823D,0x0000, 0xFBC2,0x823E,0x0000, /* 1023C */
+0xFBC2,0x823F,0x0000, 0xFBC2,0x8240,0x0000, 0xFBC2,0x8241,0x0000, /* 1023F */
+0xFBC2,0x8242,0x0000, 0xFBC2,0x8243,0x0000, 0xFBC2,0x8244,0x0000, /* 10242 */
+0xFBC2,0x8245,0x0000, 0xFBC2,0x8246,0x0000, 0xFBC2,0x8247,0x0000, /* 10245 */
+0xFBC2,0x8248,0x0000, 0xFBC2,0x8249,0x0000, 0xFBC2,0x824A,0x0000, /* 10248 */
+0xFBC2,0x824B,0x0000, 0xFBC2,0x824C,0x0000, 0xFBC2,0x824D,0x0000, /* 1024B */
+0xFBC2,0x824E,0x0000, 0xFBC2,0x824F,0x0000, 0xFBC2,0x8250,0x0000, /* 1024E */
+0xFBC2,0x8251,0x0000, 0xFBC2,0x8252,0x0000, 0xFBC2,0x8253,0x0000, /* 10251 */
+0xFBC2,0x8254,0x0000, 0xFBC2,0x8255,0x0000, 0xFBC2,0x8256,0x0000, /* 10254 */
+0xFBC2,0x8257,0x0000, 0xFBC2,0x8258,0x0000, 0xFBC2,0x8259,0x0000, /* 10257 */
+0xFBC2,0x825A,0x0000, 0xFBC2,0x825B,0x0000, 0xFBC2,0x825C,0x0000, /* 1025A */
+0xFBC2,0x825D,0x0000, 0xFBC2,0x825E,0x0000, 0xFBC2,0x825F,0x0000, /* 1025D */
+0xFBC2,0x8260,0x0000, 0xFBC2,0x8261,0x0000, 0xFBC2,0x8262,0x0000, /* 10260 */
+0xFBC2,0x8263,0x0000, 0xFBC2,0x8264,0x0000, 0xFBC2,0x8265,0x0000, /* 10263 */
+0xFBC2,0x8266,0x0000, 0xFBC2,0x8267,0x0000, 0xFBC2,0x8268,0x0000, /* 10266 */
+0xFBC2,0x8269,0x0000, 0xFBC2,0x826A,0x0000, 0xFBC2,0x826B,0x0000, /* 10269 */
+0xFBC2,0x826C,0x0000, 0xFBC2,0x826D,0x0000, 0xFBC2,0x826E,0x0000, /* 1026C */
+0xFBC2,0x826F,0x0000, 0xFBC2,0x8270,0x0000, 0xFBC2,0x8271,0x0000, /* 1026F */
+0xFBC2,0x8272,0x0000, 0xFBC2,0x8273,0x0000, 0xFBC2,0x8274,0x0000, /* 10272 */
+0xFBC2,0x8275,0x0000, 0xFBC2,0x8276,0x0000, 0xFBC2,0x8277,0x0000, /* 10275 */
+0xFBC2,0x8278,0x0000, 0xFBC2,0x8279,0x0000, 0xFBC2,0x827A,0x0000, /* 10278 */
+0xFBC2,0x827B,0x0000, 0xFBC2,0x827C,0x0000, 0xFBC2,0x827D,0x0000, /* 1027B */
+0xFBC2,0x827E,0x0000, 0xFBC2,0x827F,0x0000, 0x3030,0x0000,0x0000, /* 1027E */
+0x3031,0x0000,0x0000, 0x3032,0x0000,0x0000, 0x3033,0x0000,0x0000, /* 10281 */
+0x3034,0x0000,0x0000, 0x3035,0x0000,0x0000, 0x3036,0x0000,0x0000, /* 10284 */
+0x3037,0x0000,0x0000, 0x3038,0x0000,0x0000, 0x3039,0x0000,0x0000, /* 10287 */
+0x303A,0x0000,0x0000, 0x303B,0x0000,0x0000, 0x303C,0x0000,0x0000, /* 1028A */
+0x303D,0x0000,0x0000, 0x303E,0x0000,0x0000, 0x303F,0x0000,0x0000, /* 1028D */
+0x3040,0x0000,0x0000, 0x3041,0x0000,0x0000, 0x3042,0x0000,0x0000, /* 10290 */
+0x3043,0x0000,0x0000, 0x3044,0x0000,0x0000, 0x3045,0x0000,0x0000, /* 10293 */
+0x3046,0x0000,0x0000, 0x3047,0x0000,0x0000, 0x3048,0x0000,0x0000, /* 10296 */
+0x3049,0x0000,0x0000, 0x304A,0x0000,0x0000, 0x304B,0x0000,0x0000, /* 10299 */
+0x304C,0x0000,0x0000, 0xFBC2,0x829D,0x0000, 0xFBC2,0x829E,0x0000, /* 1029C */
+0xFBC2,0x829F,0x0000, 0x304D,0x0000,0x0000, 0x304E,0x0000,0x0000, /* 1029F */
+0x304F,0x0000,0x0000, 0x3050,0x0000,0x0000, 0x3051,0x0000,0x0000, /* 102A2 */
+0x3052,0x0000,0x0000, 0x3053,0x0000,0x0000, 0x3054,0x0000,0x0000, /* 102A5 */
+0x3055,0x0000,0x0000, 0x3056,0x0000,0x0000, 0x3057,0x0000,0x0000, /* 102A8 */
+0x3058,0x0000,0x0000, 0x3059,0x0000,0x0000, 0x305A,0x0000,0x0000, /* 102AB */
+0x305B,0x0000,0x0000, 0x305C,0x0000,0x0000, 0x305D,0x0000,0x0000, /* 102AE */
+0x305E,0x0000,0x0000, 0x305F,0x0000,0x0000, 0x3060,0x0000,0x0000, /* 102B1 */
+0x3061,0x0000,0x0000, 0x3062,0x0000,0x0000, 0x3063,0x0000,0x0000, /* 102B4 */
+0x3064,0x0000,0x0000, 0x3065,0x0000,0x0000, 0x3066,0x0000,0x0000, /* 102B7 */
+0x3067,0x0000,0x0000, 0x3068,0x0000,0x0000, 0x3069,0x0000,0x0000, /* 102BA */
+0x306A,0x0000,0x0000, 0x306B,0x0000,0x0000, 0x306C,0x0000,0x0000, /* 102BD */
+0x306D,0x0000,0x0000, 0x306E,0x0000,0x0000, 0x306F,0x0000,0x0000, /* 102C0 */
+0x3070,0x0000,0x0000, 0x3071,0x0000,0x0000, 0x3072,0x0000,0x0000, /* 102C3 */
+0x3073,0x0000,0x0000, 0x3074,0x0000,0x0000, 0x3075,0x0000,0x0000, /* 102C6 */
+0x3076,0x0000,0x0000, 0x3077,0x0000,0x0000, 0x3078,0x0000,0x0000, /* 102C9 */
+0x3079,0x0000,0x0000, 0x307A,0x0000,0x0000, 0x307B,0x0000,0x0000, /* 102CC */
+0x307C,0x0000,0x0000, 0x307D,0x0000,0x0000, 0xFBC2,0x82D1,0x0000, /* 102CF */
+0xFBC2,0x82D2,0x0000, 0xFBC2,0x82D3,0x0000, 0xFBC2,0x82D4,0x0000, /* 102D2 */
+0xFBC2,0x82D5,0x0000, 0xFBC2,0x82D6,0x0000, 0xFBC2,0x82D7,0x0000, /* 102D5 */
+0xFBC2,0x82D8,0x0000, 0xFBC2,0x82D9,0x0000, 0xFBC2,0x82DA,0x0000, /* 102D8 */
+0xFBC2,0x82DB,0x0000, 0xFBC2,0x82DC,0x0000, 0xFBC2,0x82DD,0x0000, /* 102DB */
+0xFBC2,0x82DE,0x0000, 0xFBC2,0x82DF,0x0000, 0xFBC2,0x82E0,0x0000, /* 102DE */
+0xFBC2,0x82E1,0x0000, 0xFBC2,0x82E2,0x0000, 0xFBC2,0x82E3,0x0000, /* 102E1 */
+0xFBC2,0x82E4,0x0000, 0xFBC2,0x82E5,0x0000, 0xFBC2,0x82E6,0x0000, /* 102E4 */
+0xFBC2,0x82E7,0x0000, 0xFBC2,0x82E8,0x0000, 0xFBC2,0x82E9,0x0000, /* 102E7 */
+0xFBC2,0x82EA,0x0000, 0xFBC2,0x82EB,0x0000, 0xFBC2,0x82EC,0x0000, /* 102EA */
+0xFBC2,0x82ED,0x0000, 0xFBC2,0x82EE,0x0000, 0xFBC2,0x82EF,0x0000, /* 102ED */
+0xFBC2,0x82F0,0x0000, 0xFBC2,0x82F1,0x0000, 0xFBC2,0x82F2,0x0000, /* 102F0 */
+0xFBC2,0x82F3,0x0000, 0xFBC2,0x82F4,0x0000, 0xFBC2,0x82F5,0x0000, /* 102F3 */
+0xFBC2,0x82F6,0x0000, 0xFBC2,0x82F7,0x0000, 0xFBC2,0x82F8,0x0000, /* 102F6 */
+0xFBC2,0x82F9,0x0000, 0xFBC2,0x82FA,0x0000, 0xFBC2,0x82FB,0x0000, /* 102F9 */
+0xFBC2,0x82FC,0x0000, 0xFBC2,0x82FD,0x0000, 0xFBC2,0x82FE,0x0000, /* 102FC */
+0xFBC2,0x82FF,0x0000 };
+
+static const uint16 uca520_p103[]= { /* 10300 (3 weights per char) */
+0x3098,0x0000,0x0000, 0x3099,0x0000,0x0000, 0x309A,0x0000,0x0000, /* 10300 */
+0x309B,0x0000,0x0000, 0x309C,0x0000,0x0000, 0x309D,0x0000,0x0000, /* 10303 */
+0x309E,0x0000,0x0000, 0x309F,0x0000,0x0000, 0x30A0,0x0000,0x0000, /* 10306 */
+0x30A1,0x0000,0x0000, 0x30A2,0x0000,0x0000, 0x30A3,0x0000,0x0000, /* 10309 */
+0x30A4,0x0000,0x0000, 0x30A5,0x0000,0x0000, 0x30A6,0x0000,0x0000, /* 1030C */
+0x30A7,0x0000,0x0000, 0x30A8,0x0000,0x0000, 0x30A9,0x0000,0x0000, /* 1030F */
+0x30AA,0x0000,0x0000, 0x30AB,0x0000,0x0000, 0x30AC,0x0000,0x0000, /* 10312 */
+0x30AD,0x0000,0x0000, 0x30AE,0x0000,0x0000, 0x30AF,0x0000,0x0000, /* 10315 */
+0x30B0,0x0000,0x0000, 0x30B1,0x0000,0x0000, 0x30B2,0x0000,0x0000, /* 10318 */
+0x30B3,0x0000,0x0000, 0x30B4,0x0000,0x0000, 0x30B5,0x0000,0x0000, /* 1031B */
+0x30B6,0x0000,0x0000, 0xFBC2,0x831F,0x0000, 0x1206,0x0000,0x0000, /* 1031E */
+0x120A,0x0000,0x0000, 0x114D,0x0000,0x0000, 0x114E,0x0000,0x0000, /* 10321 */
+0xFBC2,0x8324,0x0000, 0xFBC2,0x8325,0x0000, 0xFBC2,0x8326,0x0000, /* 10324 */
+0xFBC2,0x8327,0x0000, 0xFBC2,0x8328,0x0000, 0xFBC2,0x8329,0x0000, /* 10327 */
+0xFBC2,0x832A,0x0000, 0xFBC2,0x832B,0x0000, 0xFBC2,0x832C,0x0000, /* 1032A */
+0xFBC2,0x832D,0x0000, 0xFBC2,0x832E,0x0000, 0xFBC2,0x832F,0x0000, /* 1032D */
+0x30B7,0x0000,0x0000, 0x30B8,0x0000,0x0000, 0x30B9,0x0000,0x0000, /* 10330 */
+0x30BA,0x0000,0x0000, 0x30BB,0x0000,0x0000, 0x30BC,0x0000,0x0000, /* 10333 */
+0x30BD,0x0000,0x0000, 0x30BE,0x0000,0x0000, 0x30BF,0x0000,0x0000, /* 10336 */
+0x30C0,0x0000,0x0000, 0x30C1,0x0000,0x0000, 0x30C2,0x0000,0x0000, /* 10339 */
+0x30C3,0x0000,0x0000, 0x30C4,0x0000,0x0000, 0x30C5,0x0000,0x0000, /* 1033C */
+0x30C6,0x0000,0x0000, 0x30C7,0x0000,0x0000, 0x30C8,0x0000,0x0000, /* 1033F */
+0x30C9,0x0000,0x0000, 0x30CA,0x0000,0x0000, 0x30CB,0x0000,0x0000, /* 10342 */
+0x30CC,0x0000,0x0000, 0x30CD,0x0000,0x0000, 0x30CE,0x0000,0x0000, /* 10345 */
+0x30CF,0x0000,0x0000, 0x30D0,0x0000,0x0000, 0x30D1,0x0000,0x0000, /* 10348 */
+0xFBC2,0x834B,0x0000, 0xFBC2,0x834C,0x0000, 0xFBC2,0x834D,0x0000, /* 1034B */
+0xFBC2,0x834E,0x0000, 0xFBC2,0x834F,0x0000, 0xFBC2,0x8350,0x0000, /* 1034E */
+0xFBC2,0x8351,0x0000, 0xFBC2,0x8352,0x0000, 0xFBC2,0x8353,0x0000, /* 10351 */
+0xFBC2,0x8354,0x0000, 0xFBC2,0x8355,0x0000, 0xFBC2,0x8356,0x0000, /* 10354 */
+0xFBC2,0x8357,0x0000, 0xFBC2,0x8358,0x0000, 0xFBC2,0x8359,0x0000, /* 10357 */
+0xFBC2,0x835A,0x0000, 0xFBC2,0x835B,0x0000, 0xFBC2,0x835C,0x0000, /* 1035A */
+0xFBC2,0x835D,0x0000, 0xFBC2,0x835E,0x0000, 0xFBC2,0x835F,0x0000, /* 1035D */
+0xFBC2,0x8360,0x0000, 0xFBC2,0x8361,0x0000, 0xFBC2,0x8362,0x0000, /* 10360 */
+0xFBC2,0x8363,0x0000, 0xFBC2,0x8364,0x0000, 0xFBC2,0x8365,0x0000, /* 10363 */
+0xFBC2,0x8366,0x0000, 0xFBC2,0x8367,0x0000, 0xFBC2,0x8368,0x0000, /* 10366 */
+0xFBC2,0x8369,0x0000, 0xFBC2,0x836A,0x0000, 0xFBC2,0x836B,0x0000, /* 10369 */
+0xFBC2,0x836C,0x0000, 0xFBC2,0x836D,0x0000, 0xFBC2,0x836E,0x0000, /* 1036C */
+0xFBC2,0x836F,0x0000, 0xFBC2,0x8370,0x0000, 0xFBC2,0x8371,0x0000, /* 1036F */
+0xFBC2,0x8372,0x0000, 0xFBC2,0x8373,0x0000, 0xFBC2,0x8374,0x0000, /* 10372 */
+0xFBC2,0x8375,0x0000, 0xFBC2,0x8376,0x0000, 0xFBC2,0x8377,0x0000, /* 10375 */
+0xFBC2,0x8378,0x0000, 0xFBC2,0x8379,0x0000, 0xFBC2,0x837A,0x0000, /* 10378 */
+0xFBC2,0x837B,0x0000, 0xFBC2,0x837C,0x0000, 0xFBC2,0x837D,0x0000, /* 1037B */
+0xFBC2,0x837E,0x0000, 0xFBC2,0x837F,0x0000, 0x32E3,0x0000,0x0000, /* 1037E */
+0x32E4,0x0000,0x0000, 0x32E5,0x0000,0x0000, 0x32E6,0x0000,0x0000, /* 10381 */
+0x32E7,0x0000,0x0000, 0x32E8,0x0000,0x0000, 0x32E9,0x0000,0x0000, /* 10384 */
+0x32EA,0x0000,0x0000, 0x32EB,0x0000,0x0000, 0x32EC,0x0000,0x0000, /* 10387 */
+0x32ED,0x0000,0x0000, 0x32EE,0x0000,0x0000, 0x32EF,0x0000,0x0000, /* 1038A */
+0x32F0,0x0000,0x0000, 0x32F1,0x0000,0x0000, 0x32F2,0x0000,0x0000, /* 1038D */
+0x32F3,0x0000,0x0000, 0x32F4,0x0000,0x0000, 0x32F5,0x0000,0x0000, /* 10390 */
+0x32F6,0x0000,0x0000, 0x32F7,0x0000,0x0000, 0x32F8,0x0000,0x0000, /* 10393 */
+0x32F9,0x0000,0x0000, 0x32FA,0x0000,0x0000, 0x32FB,0x0000,0x0000, /* 10396 */
+0x32FC,0x0000,0x0000, 0x32FD,0x0000,0x0000, 0x32FE,0x0000,0x0000, /* 10399 */
+0x32FF,0x0000,0x0000, 0x3300,0x0000,0x0000, 0xFBC2,0x839E,0x0000, /* 1039C */
+0x02E7,0x0000,0x0000, 0x3301,0x0000,0x0000, 0x3302,0x0000,0x0000, /* 1039F */
+0x3303,0x0000,0x0000, 0x3304,0x0000,0x0000, 0x3305,0x0000,0x0000, /* 103A2 */
+0x3306,0x0000,0x0000, 0x3307,0x0000,0x0000, 0x3308,0x0000,0x0000, /* 103A5 */
+0x3309,0x0000,0x0000, 0x330A,0x0000,0x0000, 0x330B,0x0000,0x0000, /* 103A8 */
+0x330C,0x0000,0x0000, 0x330D,0x0000,0x0000, 0x330E,0x0000,0x0000, /* 103AB */
+0x330F,0x0000,0x0000, 0x3310,0x0000,0x0000, 0x3311,0x0000,0x0000, /* 103AE */
+0x3312,0x0000,0x0000, 0x3313,0x0000,0x0000, 0x3314,0x0000,0x0000, /* 103B1 */
+0x3315,0x0000,0x0000, 0x3316,0x0000,0x0000, 0x3317,0x0000,0x0000, /* 103B4 */
+0x3318,0x0000,0x0000, 0x3319,0x0000,0x0000, 0x331A,0x0000,0x0000, /* 103B7 */
+0x331B,0x0000,0x0000, 0x331C,0x0000,0x0000, 0x331D,0x0000,0x0000, /* 103BA */
+0x331E,0x0000,0x0000, 0x331F,0x0000,0x0000, 0x3320,0x0000,0x0000, /* 103BD */
+0x3321,0x0000,0x0000, 0x3322,0x0000,0x0000, 0x3323,0x0000,0x0000, /* 103C0 */
+0x3324,0x0000,0x0000, 0xFBC2,0x83C4,0x0000, 0xFBC2,0x83C5,0x0000, /* 103C3 */
+0xFBC2,0x83C6,0x0000, 0xFBC2,0x83C7,0x0000, 0x3325,0x0000,0x0000, /* 103C6 */
+0x3326,0x0000,0x0000, 0x3327,0x0000,0x0000, 0x3328,0x0000,0x0000, /* 103C9 */
+0x3329,0x0000,0x0000, 0x332A,0x0000,0x0000, 0x332B,0x0000,0x0000, /* 103CC */
+0x332C,0x0000,0x0000, 0x02E8,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 103CF */
+0x1207,0x0000,0x0000, 0x119F,0x0000,0x0000, 0x11A0,0x0000,0x0000, /* 103D2 */
+0x11A1,0x0000,0x0000, 0xFBC2,0x83D6,0x0000, 0xFBC2,0x83D7,0x0000, /* 103D5 */
+0xFBC2,0x83D8,0x0000, 0xFBC2,0x83D9,0x0000, 0xFBC2,0x83DA,0x0000, /* 103D8 */
+0xFBC2,0x83DB,0x0000, 0xFBC2,0x83DC,0x0000, 0xFBC2,0x83DD,0x0000, /* 103DB */
+0xFBC2,0x83DE,0x0000, 0xFBC2,0x83DF,0x0000, 0xFBC2,0x83E0,0x0000, /* 103DE */
+0xFBC2,0x83E1,0x0000, 0xFBC2,0x83E2,0x0000, 0xFBC2,0x83E3,0x0000, /* 103E1 */
+0xFBC2,0x83E4,0x0000, 0xFBC2,0x83E5,0x0000, 0xFBC2,0x83E6,0x0000, /* 103E4 */
+0xFBC2,0x83E7,0x0000, 0xFBC2,0x83E8,0x0000, 0xFBC2,0x83E9,0x0000, /* 103E7 */
+0xFBC2,0x83EA,0x0000, 0xFBC2,0x83EB,0x0000, 0xFBC2,0x83EC,0x0000, /* 103EA */
+0xFBC2,0x83ED,0x0000, 0xFBC2,0x83EE,0x0000, 0xFBC2,0x83EF,0x0000, /* 103ED */
+0xFBC2,0x83F0,0x0000, 0xFBC2,0x83F1,0x0000, 0xFBC2,0x83F2,0x0000, /* 103F0 */
+0xFBC2,0x83F3,0x0000, 0xFBC2,0x83F4,0x0000, 0xFBC2,0x83F5,0x0000, /* 103F3 */
+0xFBC2,0x83F6,0x0000, 0xFBC2,0x83F7,0x0000, 0xFBC2,0x83F8,0x0000, /* 103F6 */
+0xFBC2,0x83F9,0x0000, 0xFBC2,0x83FA,0x0000, 0xFBC2,0x83FB,0x0000, /* 103F9 */
+0xFBC2,0x83FC,0x0000, 0xFBC2,0x83FD,0x0000, 0xFBC2,0x83FE,0x0000, /* 103FC */
+0xFBC2,0x83FF,0x0000 };
+
+static const uint16 uca520_p104[]= { /* 10400 (3 weights per char) */
+0x30D2,0x0000,0x0000, 0x30D3,0x0000,0x0000, 0x30D4,0x0000,0x0000, /* 10400 */
+0x30D5,0x0000,0x0000, 0x30D6,0x0000,0x0000, 0x30D7,0x0000,0x0000, /* 10403 */
+0x30D8,0x0000,0x0000, 0x30D9,0x0000,0x0000, 0x30DA,0x0000,0x0000, /* 10406 */
+0x30DB,0x0000,0x0000, 0x30DC,0x0000,0x0000, 0x30DD,0x0000,0x0000, /* 10409 */
+0x30DE,0x0000,0x0000, 0x30DF,0x0000,0x0000, 0x30E0,0x0000,0x0000, /* 1040C */
+0x30E1,0x0000,0x0000, 0x30E2,0x0000,0x0000, 0x30E3,0x0000,0x0000, /* 1040F */
+0x30E4,0x0000,0x0000, 0x30E5,0x0000,0x0000, 0x30E6,0x0000,0x0000, /* 10412 */
+0x30E7,0x0000,0x0000, 0x30E8,0x0000,0x0000, 0x30E9,0x0000,0x0000, /* 10415 */
+0x30EA,0x0000,0x0000, 0x30EB,0x0000,0x0000, 0x30EC,0x0000,0x0000, /* 10418 */
+0x30ED,0x0000,0x0000, 0x30EE,0x0000,0x0000, 0x30EF,0x0000,0x0000, /* 1041B */
+0x30F0,0x0000,0x0000, 0x30F1,0x0000,0x0000, 0x30F2,0x0000,0x0000, /* 1041E */
+0x30F3,0x0000,0x0000, 0x30F4,0x0000,0x0000, 0x30F5,0x0000,0x0000, /* 10421 */
+0x30F6,0x0000,0x0000, 0x30F7,0x0000,0x0000, 0x30F8,0x0000,0x0000, /* 10424 */
+0x30F9,0x0000,0x0000, 0x30D2,0x0000,0x0000, 0x30D3,0x0000,0x0000, /* 10427 */
+0x30D4,0x0000,0x0000, 0x30D5,0x0000,0x0000, 0x30D6,0x0000,0x0000, /* 1042A */
+0x30D7,0x0000,0x0000, 0x30D8,0x0000,0x0000, 0x30D9,0x0000,0x0000, /* 1042D */
+0x30DA,0x0000,0x0000, 0x30DB,0x0000,0x0000, 0x30DC,0x0000,0x0000, /* 10430 */
+0x30DD,0x0000,0x0000, 0x30DE,0x0000,0x0000, 0x30DF,0x0000,0x0000, /* 10433 */
+0x30E0,0x0000,0x0000, 0x30E1,0x0000,0x0000, 0x30E2,0x0000,0x0000, /* 10436 */
+0x30E3,0x0000,0x0000, 0x30E4,0x0000,0x0000, 0x30E5,0x0000,0x0000, /* 10439 */
+0x30E6,0x0000,0x0000, 0x30E7,0x0000,0x0000, 0x30E8,0x0000,0x0000, /* 1043C */
+0x30E9,0x0000,0x0000, 0x30EA,0x0000,0x0000, 0x30EB,0x0000,0x0000, /* 1043F */
+0x30EC,0x0000,0x0000, 0x30ED,0x0000,0x0000, 0x30EE,0x0000,0x0000, /* 10442 */
+0x30EF,0x0000,0x0000, 0x30F0,0x0000,0x0000, 0x30F1,0x0000,0x0000, /* 10445 */
+0x30F2,0x0000,0x0000, 0x30F3,0x0000,0x0000, 0x30F4,0x0000,0x0000, /* 10448 */
+0x30F5,0x0000,0x0000, 0x30F6,0x0000,0x0000, 0x30F7,0x0000,0x0000, /* 1044B */
+0x30F8,0x0000,0x0000, 0x30F9,0x0000,0x0000, 0x30FA,0x0000,0x0000, /* 1044E */
+0x30FB,0x0000,0x0000, 0x30FC,0x0000,0x0000, 0x30FD,0x0000,0x0000, /* 10451 */
+0x30FE,0x0000,0x0000, 0x30FF,0x0000,0x0000, 0x3100,0x0000,0x0000, /* 10454 */
+0x3101,0x0000,0x0000, 0x3102,0x0000,0x0000, 0x3103,0x0000,0x0000, /* 10457 */
+0x3104,0x0000,0x0000, 0x3105,0x0000,0x0000, 0x3106,0x0000,0x0000, /* 1045A */
+0x3107,0x0000,0x0000, 0x3108,0x0000,0x0000, 0x3109,0x0000,0x0000, /* 1045D */
+0x310A,0x0000,0x0000, 0x310B,0x0000,0x0000, 0x310C,0x0000,0x0000, /* 10460 */
+0x310D,0x0000,0x0000, 0x310E,0x0000,0x0000, 0x310F,0x0000,0x0000, /* 10463 */
+0x3110,0x0000,0x0000, 0x3111,0x0000,0x0000, 0x3112,0x0000,0x0000, /* 10466 */
+0x3113,0x0000,0x0000, 0x3114,0x0000,0x0000, 0x3115,0x0000,0x0000, /* 10469 */
+0x3116,0x0000,0x0000, 0x3117,0x0000,0x0000, 0x3118,0x0000,0x0000, /* 1046C */
+0x3119,0x0000,0x0000, 0x311A,0x0000,0x0000, 0x311B,0x0000,0x0000, /* 1046F */
+0x311C,0x0000,0x0000, 0x311D,0x0000,0x0000, 0x311E,0x0000,0x0000, /* 10472 */
+0x311F,0x0000,0x0000, 0x3120,0x0000,0x0000, 0x3121,0x0000,0x0000, /* 10475 */
+0x3122,0x0000,0x0000, 0x3123,0x0000,0x0000, 0x3124,0x0000,0x0000, /* 10478 */
+0x3125,0x0000,0x0000, 0x3126,0x0000,0x0000, 0x3127,0x0000,0x0000, /* 1047B */
+0x3128,0x0000,0x0000, 0x3129,0x0000,0x0000, 0x312A,0x0000,0x0000, /* 1047E */
+0x312B,0x0000,0x0000, 0x312C,0x0000,0x0000, 0x312D,0x0000,0x0000, /* 10481 */
+0x312E,0x0000,0x0000, 0x312F,0x0000,0x0000, 0x3130,0x0000,0x0000, /* 10484 */
+0x3131,0x0000,0x0000, 0x3132,0x0000,0x0000, 0x3133,0x0000,0x0000, /* 10487 */
+0x3134,0x0000,0x0000, 0x3135,0x0000,0x0000, 0x3136,0x0000,0x0000, /* 1048A */
+0x3137,0x0000,0x0000, 0x3138,0x0000,0x0000, 0x3139,0x0000,0x0000, /* 1048D */
+0x313A,0x0000,0x0000, 0x313B,0x0000,0x0000, 0x313C,0x0000,0x0000, /* 10490 */
+0x313D,0x0000,0x0000, 0x313E,0x0000,0x0000, 0x313F,0x0000,0x0000, /* 10493 */
+0x3140,0x0000,0x0000, 0x3141,0x0000,0x0000, 0x3142,0x0000,0x0000, /* 10496 */
+0x3143,0x0000,0x0000, 0x3144,0x0000,0x0000, 0x3145,0x0000,0x0000, /* 10499 */
+0x3146,0x0000,0x0000, 0x3147,0x0000,0x0000, 0xFBC2,0x849E,0x0000, /* 1049C */
+0xFBC2,0x849F,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1049F */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 104A2 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 104A5 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0xFBC2,0x84AA,0x0000, /* 104A8 */
+0xFBC2,0x84AB,0x0000, 0xFBC2,0x84AC,0x0000, 0xFBC2,0x84AD,0x0000, /* 104AB */
+0xFBC2,0x84AE,0x0000, 0xFBC2,0x84AF,0x0000, 0xFBC2,0x84B0,0x0000, /* 104AE */
+0xFBC2,0x84B1,0x0000, 0xFBC2,0x84B2,0x0000, 0xFBC2,0x84B3,0x0000, /* 104B1 */
+0xFBC2,0x84B4,0x0000, 0xFBC2,0x84B5,0x0000, 0xFBC2,0x84B6,0x0000, /* 104B4 */
+0xFBC2,0x84B7,0x0000, 0xFBC2,0x84B8,0x0000, 0xFBC2,0x84B9,0x0000, /* 104B7 */
+0xFBC2,0x84BA,0x0000, 0xFBC2,0x84BB,0x0000, 0xFBC2,0x84BC,0x0000, /* 104BA */
+0xFBC2,0x84BD,0x0000, 0xFBC2,0x84BE,0x0000, 0xFBC2,0x84BF,0x0000, /* 104BD */
+0xFBC2,0x84C0,0x0000, 0xFBC2,0x84C1,0x0000, 0xFBC2,0x84C2,0x0000, /* 104C0 */
+0xFBC2,0x84C3,0x0000, 0xFBC2,0x84C4,0x0000, 0xFBC2,0x84C5,0x0000, /* 104C3 */
+0xFBC2,0x84C6,0x0000, 0xFBC2,0x84C7,0x0000, 0xFBC2,0x84C8,0x0000, /* 104C6 */
+0xFBC2,0x84C9,0x0000, 0xFBC2,0x84CA,0x0000, 0xFBC2,0x84CB,0x0000, /* 104C9 */
+0xFBC2,0x84CC,0x0000, 0xFBC2,0x84CD,0x0000, 0xFBC2,0x84CE,0x0000, /* 104CC */
+0xFBC2,0x84CF,0x0000, 0xFBC2,0x84D0,0x0000, 0xFBC2,0x84D1,0x0000, /* 104CF */
+0xFBC2,0x84D2,0x0000, 0xFBC2,0x84D3,0x0000, 0xFBC2,0x84D4,0x0000, /* 104D2 */
+0xFBC2,0x84D5,0x0000, 0xFBC2,0x84D6,0x0000, 0xFBC2,0x84D7,0x0000, /* 104D5 */
+0xFBC2,0x84D8,0x0000, 0xFBC2,0x84D9,0x0000, 0xFBC2,0x84DA,0x0000, /* 104D8 */
+0xFBC2,0x84DB,0x0000, 0xFBC2,0x84DC,0x0000, 0xFBC2,0x84DD,0x0000, /* 104DB */
+0xFBC2,0x84DE,0x0000, 0xFBC2,0x84DF,0x0000, 0xFBC2,0x84E0,0x0000, /* 104DE */
+0xFBC2,0x84E1,0x0000, 0xFBC2,0x84E2,0x0000, 0xFBC2,0x84E3,0x0000, /* 104E1 */
+0xFBC2,0x84E4,0x0000, 0xFBC2,0x84E5,0x0000, 0xFBC2,0x84E6,0x0000, /* 104E4 */
+0xFBC2,0x84E7,0x0000, 0xFBC2,0x84E8,0x0000, 0xFBC2,0x84E9,0x0000, /* 104E7 */
+0xFBC2,0x84EA,0x0000, 0xFBC2,0x84EB,0x0000, 0xFBC2,0x84EC,0x0000, /* 104EA */
+0xFBC2,0x84ED,0x0000, 0xFBC2,0x84EE,0x0000, 0xFBC2,0x84EF,0x0000, /* 104ED */
+0xFBC2,0x84F0,0x0000, 0xFBC2,0x84F1,0x0000, 0xFBC2,0x84F2,0x0000, /* 104F0 */
+0xFBC2,0x84F3,0x0000, 0xFBC2,0x84F4,0x0000, 0xFBC2,0x84F5,0x0000, /* 104F3 */
+0xFBC2,0x84F6,0x0000, 0xFBC2,0x84F7,0x0000, 0xFBC2,0x84F8,0x0000, /* 104F6 */
+0xFBC2,0x84F9,0x0000, 0xFBC2,0x84FA,0x0000, 0xFBC2,0x84FB,0x0000, /* 104F9 */
+0xFBC2,0x84FC,0x0000, 0xFBC2,0x84FD,0x0000, 0xFBC2,0x84FE,0x0000, /* 104FC */
+0xFBC2,0x84FF,0x0000 };
+
+static const uint16 uca520_p108[]= { /* 10800 (3 weights per char) */
+0x321B,0x0000,0x0000, 0x321C,0x0000,0x0000, 0x321D,0x0000,0x0000, /* 10800 */
+0x321E,0x0000,0x0000, 0x321F,0x0000,0x0000, 0x3220,0x0000,0x0000, /* 10803 */
+0xFBC2,0x8806,0x0000, 0xFBC2,0x8807,0x0000, 0x3221,0x0000,0x0000, /* 10806 */
+0xFBC2,0x8809,0x0000, 0x3222,0x0000,0x0000, 0x3223,0x0000,0x0000, /* 10809 */
+0x3224,0x0000,0x0000, 0x3225,0x0000,0x0000, 0x3226,0x0000,0x0000, /* 1080C */
+0x3227,0x0000,0x0000, 0x3228,0x0000,0x0000, 0x3229,0x0000,0x0000, /* 1080F */
+0x322A,0x0000,0x0000, 0x322B,0x0000,0x0000, 0x322C,0x0000,0x0000, /* 10812 */
+0x322D,0x0000,0x0000, 0x322E,0x0000,0x0000, 0x322F,0x0000,0x0000, /* 10815 */
+0x3230,0x0000,0x0000, 0x3231,0x0000,0x0000, 0x3232,0x0000,0x0000, /* 10818 */
+0x3233,0x0000,0x0000, 0x3234,0x0000,0x0000, 0x3235,0x0000,0x0000, /* 1081B */
+0x3236,0x0000,0x0000, 0x3237,0x0000,0x0000, 0x3238,0x0000,0x0000, /* 1081E */
+0x3239,0x0000,0x0000, 0x323A,0x0000,0x0000, 0x323B,0x0000,0x0000, /* 10821 */
+0x323C,0x0000,0x0000, 0x323D,0x0000,0x0000, 0x323E,0x0000,0x0000, /* 10824 */
+0x323F,0x0000,0x0000, 0x3240,0x0000,0x0000, 0x3241,0x0000,0x0000, /* 10827 */
+0x3242,0x0000,0x0000, 0x3243,0x0000,0x0000, 0x3244,0x0000,0x0000, /* 1082A */
+0x3245,0x0000,0x0000, 0x3246,0x0000,0x0000, 0x3247,0x0000,0x0000, /* 1082D */
+0x3248,0x0000,0x0000, 0x3249,0x0000,0x0000, 0x324A,0x0000,0x0000, /* 10830 */
+0x324B,0x0000,0x0000, 0x324C,0x0000,0x0000, 0x324D,0x0000,0x0000, /* 10833 */
+0xFBC2,0x8836,0x0000, 0x324E,0x0000,0x0000, 0x324F,0x0000,0x0000, /* 10836 */
+0xFBC2,0x8839,0x0000, 0xFBC2,0x883A,0x0000, 0xFBC2,0x883B,0x0000, /* 10839 */
+0x3250,0x0000,0x0000, 0xFBC2,0x883D,0x0000, 0xFBC2,0x883E,0x0000, /* 1083C */
+0x3251,0x0000,0x0000, 0x32A4,0x0000,0x0000, 0x32A5,0x0000,0x0000, /* 1083F */
+0x32A6,0x0000,0x0000, 0x32A7,0x0000,0x0000, 0x32A8,0x0000,0x0000, /* 10842 */
+0x32A9,0x0000,0x0000, 0x32AA,0x0000,0x0000, 0x32AB,0x0000,0x0000, /* 10845 */
+0x32AC,0x0000,0x0000, 0x32AD,0x0000,0x0000, 0x32AE,0x0000,0x0000, /* 10848 */
+0x32AF,0x0000,0x0000, 0x32B0,0x0000,0x0000, 0x32B1,0x0000,0x0000, /* 1084B */
+0x32B2,0x0000,0x0000, 0x32B3,0x0000,0x0000, 0x32B4,0x0000,0x0000, /* 1084E */
+0x32B5,0x0000,0x0000, 0x32B6,0x0000,0x0000, 0x32B7,0x0000,0x0000, /* 10851 */
+0x32B8,0x0000,0x0000, 0x32B9,0x0000,0x0000, 0xFBC2,0x8856,0x0000, /* 10854 */
+0x02CA,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10857 */
+0x1208,0x0000,0x0000, 0x11A7,0x0000,0x0000, 0x11A8,0x0000,0x0000, /* 1085A */
+0x11A9,0x0000,0x0000, 0x11AA,0x0000,0x0000, 0x11AB,0x0000,0x0000, /* 1085D */
+0xFBC2,0x8860,0x0000, 0xFBC2,0x8861,0x0000, 0xFBC2,0x8862,0x0000, /* 10860 */
+0xFBC2,0x8863,0x0000, 0xFBC2,0x8864,0x0000, 0xFBC2,0x8865,0x0000, /* 10863 */
+0xFBC2,0x8866,0x0000, 0xFBC2,0x8867,0x0000, 0xFBC2,0x8868,0x0000, /* 10866 */
+0xFBC2,0x8869,0x0000, 0xFBC2,0x886A,0x0000, 0xFBC2,0x886B,0x0000, /* 10869 */
+0xFBC2,0x886C,0x0000, 0xFBC2,0x886D,0x0000, 0xFBC2,0x886E,0x0000, /* 1086C */
+0xFBC2,0x886F,0x0000, 0xFBC2,0x8870,0x0000, 0xFBC2,0x8871,0x0000, /* 1086F */
+0xFBC2,0x8872,0x0000, 0xFBC2,0x8873,0x0000, 0xFBC2,0x8874,0x0000, /* 10872 */
+0xFBC2,0x8875,0x0000, 0xFBC2,0x8876,0x0000, 0xFBC2,0x8877,0x0000, /* 10875 */
+0xFBC2,0x8878,0x0000, 0xFBC2,0x8879,0x0000, 0xFBC2,0x887A,0x0000, /* 10878 */
+0xFBC2,0x887B,0x0000, 0xFBC2,0x887C,0x0000, 0xFBC2,0x887D,0x0000, /* 1087B */
+0xFBC2,0x887E,0x0000, 0xFBC2,0x887F,0x0000, 0xFBC2,0x8880,0x0000, /* 1087E */
+0xFBC2,0x8881,0x0000, 0xFBC2,0x8882,0x0000, 0xFBC2,0x8883,0x0000, /* 10881 */
+0xFBC2,0x8884,0x0000, 0xFBC2,0x8885,0x0000, 0xFBC2,0x8886,0x0000, /* 10884 */
+0xFBC2,0x8887,0x0000, 0xFBC2,0x8888,0x0000, 0xFBC2,0x8889,0x0000, /* 10887 */
+0xFBC2,0x888A,0x0000, 0xFBC2,0x888B,0x0000, 0xFBC2,0x888C,0x0000, /* 1088A */
+0xFBC2,0x888D,0x0000, 0xFBC2,0x888E,0x0000, 0xFBC2,0x888F,0x0000, /* 1088D */
+0xFBC2,0x8890,0x0000, 0xFBC2,0x8891,0x0000, 0xFBC2,0x8892,0x0000, /* 10890 */
+0xFBC2,0x8893,0x0000, 0xFBC2,0x8894,0x0000, 0xFBC2,0x8895,0x0000, /* 10893 */
+0xFBC2,0x8896,0x0000, 0xFBC2,0x8897,0x0000, 0xFBC2,0x8898,0x0000, /* 10896 */
+0xFBC2,0x8899,0x0000, 0xFBC2,0x889A,0x0000, 0xFBC2,0x889B,0x0000, /* 10899 */
+0xFBC2,0x889C,0x0000, 0xFBC2,0x889D,0x0000, 0xFBC2,0x889E,0x0000, /* 1089C */
+0xFBC2,0x889F,0x0000, 0xFBC2,0x88A0,0x0000, 0xFBC2,0x88A1,0x0000, /* 1089F */
+0xFBC2,0x88A2,0x0000, 0xFBC2,0x88A3,0x0000, 0xFBC2,0x88A4,0x0000, /* 108A2 */
+0xFBC2,0x88A5,0x0000, 0xFBC2,0x88A6,0x0000, 0xFBC2,0x88A7,0x0000, /* 108A5 */
+0xFBC2,0x88A8,0x0000, 0xFBC2,0x88A9,0x0000, 0xFBC2,0x88AA,0x0000, /* 108A8 */
+0xFBC2,0x88AB,0x0000, 0xFBC2,0x88AC,0x0000, 0xFBC2,0x88AD,0x0000, /* 108AB */
+0xFBC2,0x88AE,0x0000, 0xFBC2,0x88AF,0x0000, 0xFBC2,0x88B0,0x0000, /* 108AE */
+0xFBC2,0x88B1,0x0000, 0xFBC2,0x88B2,0x0000, 0xFBC2,0x88B3,0x0000, /* 108B1 */
+0xFBC2,0x88B4,0x0000, 0xFBC2,0x88B5,0x0000, 0xFBC2,0x88B6,0x0000, /* 108B4 */
+0xFBC2,0x88B7,0x0000, 0xFBC2,0x88B8,0x0000, 0xFBC2,0x88B9,0x0000, /* 108B7 */
+0xFBC2,0x88BA,0x0000, 0xFBC2,0x88BB,0x0000, 0xFBC2,0x88BC,0x0000, /* 108BA */
+0xFBC2,0x88BD,0x0000, 0xFBC2,0x88BE,0x0000, 0xFBC2,0x88BF,0x0000, /* 108BD */
+0xFBC2,0x88C0,0x0000, 0xFBC2,0x88C1,0x0000, 0xFBC2,0x88C2,0x0000, /* 108C0 */
+0xFBC2,0x88C3,0x0000, 0xFBC2,0x88C4,0x0000, 0xFBC2,0x88C5,0x0000, /* 108C3 */
+0xFBC2,0x88C6,0x0000, 0xFBC2,0x88C7,0x0000, 0xFBC2,0x88C8,0x0000, /* 108C6 */
+0xFBC2,0x88C9,0x0000, 0xFBC2,0x88CA,0x0000, 0xFBC2,0x88CB,0x0000, /* 108C9 */
+0xFBC2,0x88CC,0x0000, 0xFBC2,0x88CD,0x0000, 0xFBC2,0x88CE,0x0000, /* 108CC */
+0xFBC2,0x88CF,0x0000, 0xFBC2,0x88D0,0x0000, 0xFBC2,0x88D1,0x0000, /* 108CF */
+0xFBC2,0x88D2,0x0000, 0xFBC2,0x88D3,0x0000, 0xFBC2,0x88D4,0x0000, /* 108D2 */
+0xFBC2,0x88D5,0x0000, 0xFBC2,0x88D6,0x0000, 0xFBC2,0x88D7,0x0000, /* 108D5 */
+0xFBC2,0x88D8,0x0000, 0xFBC2,0x88D9,0x0000, 0xFBC2,0x88DA,0x0000, /* 108D8 */
+0xFBC2,0x88DB,0x0000, 0xFBC2,0x88DC,0x0000, 0xFBC2,0x88DD,0x0000, /* 108DB */
+0xFBC2,0x88DE,0x0000, 0xFBC2,0x88DF,0x0000, 0xFBC2,0x88E0,0x0000, /* 108DE */
+0xFBC2,0x88E1,0x0000, 0xFBC2,0x88E2,0x0000, 0xFBC2,0x88E3,0x0000, /* 108E1 */
+0xFBC2,0x88E4,0x0000, 0xFBC2,0x88E5,0x0000, 0xFBC2,0x88E6,0x0000, /* 108E4 */
+0xFBC2,0x88E7,0x0000, 0xFBC2,0x88E8,0x0000, 0xFBC2,0x88E9,0x0000, /* 108E7 */
+0xFBC2,0x88EA,0x0000, 0xFBC2,0x88EB,0x0000, 0xFBC2,0x88EC,0x0000, /* 108EA */
+0xFBC2,0x88ED,0x0000, 0xFBC2,0x88EE,0x0000, 0xFBC2,0x88EF,0x0000, /* 108ED */
+0xFBC2,0x88F0,0x0000, 0xFBC2,0x88F1,0x0000, 0xFBC2,0x88F2,0x0000, /* 108F0 */
+0xFBC2,0x88F3,0x0000, 0xFBC2,0x88F4,0x0000, 0xFBC2,0x88F5,0x0000, /* 108F3 */
+0xFBC2,0x88F6,0x0000, 0xFBC2,0x88F7,0x0000, 0xFBC2,0x88F8,0x0000, /* 108F6 */
+0xFBC2,0x88F9,0x0000, 0xFBC2,0x88FA,0x0000, 0xFBC2,0x88FB,0x0000, /* 108F9 */
+0xFBC2,0x88FC,0x0000, 0xFBC2,0x88FD,0x0000, 0xFBC2,0x88FE,0x0000, /* 108FC */
+0xFBC2,0x88FF,0x0000 };
+
+static const uint16 uca520_p109[]= { /* 10900 (3 weights per char) */
+0x1872,0x0000,0x0000, 0x1873,0x0000,0x0000, 0x1874,0x0000,0x0000, /* 10900 */
+0x1875,0x0000,0x0000, 0x1876,0x0000,0x0000, 0x1877,0x0000,0x0000, /* 10903 */
+0x1878,0x0000,0x0000, 0x1879,0x0000,0x0000, 0x187A,0x0000,0x0000, /* 10906 */
+0x187B,0x0000,0x0000, 0x187C,0x0000,0x0000, 0x187D,0x0000,0x0000, /* 10909 */
+0x187E,0x0000,0x0000, 0x187F,0x0000,0x0000, 0x1880,0x0000,0x0000, /* 1090C */
+0x1881,0x0000,0x0000, 0x1882,0x0000,0x0000, 0x1883,0x0000,0x0000, /* 1090F */
+0x1884,0x0000,0x0000, 0x1885,0x0000,0x0000, 0x1886,0x0000,0x0000, /* 10912 */
+0x1887,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x11A4,0x0000,0x0000, /* 10915 */
+0x11A5,0x0000,0x0000, 0x11A6,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10918 */
+0x1208,0x0000,0x0000, 0xFBC2,0x891C,0x0000, 0xFBC2,0x891D,0x0000, /* 1091B */
+0xFBC2,0x891E,0x0000, 0x02E9,0x0000,0x0000, 0x307E,0x0000,0x0000, /* 1091E */
+0x307F,0x0000,0x0000, 0x3080,0x0000,0x0000, 0x3081,0x0000,0x0000, /* 10921 */
+0x3082,0x0000,0x0000, 0x3083,0x0000,0x0000, 0x3084,0x0000,0x0000, /* 10924 */
+0x3085,0x0000,0x0000, 0x3086,0x0000,0x0000, 0x3087,0x0000,0x0000, /* 10927 */
+0x3088,0x0000,0x0000, 0x3089,0x0000,0x0000, 0x308A,0x0000,0x0000, /* 1092A */
+0x308B,0x0000,0x0000, 0x308C,0x0000,0x0000, 0x308D,0x0000,0x0000, /* 1092D */
+0x308E,0x0000,0x0000, 0x308F,0x0000,0x0000, 0x3090,0x0000,0x0000, /* 10930 */
+0x3091,0x0000,0x0000, 0x3092,0x0000,0x0000, 0x3093,0x0000,0x0000, /* 10933 */
+0x3094,0x0000,0x0000, 0x3095,0x0000,0x0000, 0x3096,0x0000,0x0000, /* 10936 */
+0x3097,0x0000,0x0000, 0xFBC2,0x893A,0x0000, 0xFBC2,0x893B,0x0000, /* 10939 */
+0xFBC2,0x893C,0x0000, 0xFBC2,0x893D,0x0000, 0xFBC2,0x893E,0x0000, /* 1093C */
+0x02E3,0x0000,0x0000, 0xFBC2,0x8940,0x0000, 0xFBC2,0x8941,0x0000, /* 1093F */
+0xFBC2,0x8942,0x0000, 0xFBC2,0x8943,0x0000, 0xFBC2,0x8944,0x0000, /* 10942 */
+0xFBC2,0x8945,0x0000, 0xFBC2,0x8946,0x0000, 0xFBC2,0x8947,0x0000, /* 10945 */
+0xFBC2,0x8948,0x0000, 0xFBC2,0x8949,0x0000, 0xFBC2,0x894A,0x0000, /* 10948 */
+0xFBC2,0x894B,0x0000, 0xFBC2,0x894C,0x0000, 0xFBC2,0x894D,0x0000, /* 1094B */
+0xFBC2,0x894E,0x0000, 0xFBC2,0x894F,0x0000, 0xFBC2,0x8950,0x0000, /* 1094E */
+0xFBC2,0x8951,0x0000, 0xFBC2,0x8952,0x0000, 0xFBC2,0x8953,0x0000, /* 10951 */
+0xFBC2,0x8954,0x0000, 0xFBC2,0x8955,0x0000, 0xFBC2,0x8956,0x0000, /* 10954 */
+0xFBC2,0x8957,0x0000, 0xFBC2,0x8958,0x0000, 0xFBC2,0x8959,0x0000, /* 10957 */
+0xFBC2,0x895A,0x0000, 0xFBC2,0x895B,0x0000, 0xFBC2,0x895C,0x0000, /* 1095A */
+0xFBC2,0x895D,0x0000, 0xFBC2,0x895E,0x0000, 0xFBC2,0x895F,0x0000, /* 1095D */
+0xFBC2,0x8960,0x0000, 0xFBC2,0x8961,0x0000, 0xFBC2,0x8962,0x0000, /* 10960 */
+0xFBC2,0x8963,0x0000, 0xFBC2,0x8964,0x0000, 0xFBC2,0x8965,0x0000, /* 10963 */
+0xFBC2,0x8966,0x0000, 0xFBC2,0x8967,0x0000, 0xFBC2,0x8968,0x0000, /* 10966 */
+0xFBC2,0x8969,0x0000, 0xFBC2,0x896A,0x0000, 0xFBC2,0x896B,0x0000, /* 10969 */
+0xFBC2,0x896C,0x0000, 0xFBC2,0x896D,0x0000, 0xFBC2,0x896E,0x0000, /* 1096C */
+0xFBC2,0x896F,0x0000, 0xFBC2,0x8970,0x0000, 0xFBC2,0x8971,0x0000, /* 1096F */
+0xFBC2,0x8972,0x0000, 0xFBC2,0x8973,0x0000, 0xFBC2,0x8974,0x0000, /* 10972 */
+0xFBC2,0x8975,0x0000, 0xFBC2,0x8976,0x0000, 0xFBC2,0x8977,0x0000, /* 10975 */
+0xFBC2,0x8978,0x0000, 0xFBC2,0x8979,0x0000, 0xFBC2,0x897A,0x0000, /* 10978 */
+0xFBC2,0x897B,0x0000, 0xFBC2,0x897C,0x0000, 0xFBC2,0x897D,0x0000, /* 1097B */
+0xFBC2,0x897E,0x0000, 0xFBC2,0x897F,0x0000, 0xFBC2,0x8980,0x0000, /* 1097E */
+0xFBC2,0x8981,0x0000, 0xFBC2,0x8982,0x0000, 0xFBC2,0x8983,0x0000, /* 10981 */
+0xFBC2,0x8984,0x0000, 0xFBC2,0x8985,0x0000, 0xFBC2,0x8986,0x0000, /* 10984 */
+0xFBC2,0x8987,0x0000, 0xFBC2,0x8988,0x0000, 0xFBC2,0x8989,0x0000, /* 10987 */
+0xFBC2,0x898A,0x0000, 0xFBC2,0x898B,0x0000, 0xFBC2,0x898C,0x0000, /* 1098A */
+0xFBC2,0x898D,0x0000, 0xFBC2,0x898E,0x0000, 0xFBC2,0x898F,0x0000, /* 1098D */
+0xFBC2,0x8990,0x0000, 0xFBC2,0x8991,0x0000, 0xFBC2,0x8992,0x0000, /* 10990 */
+0xFBC2,0x8993,0x0000, 0xFBC2,0x8994,0x0000, 0xFBC2,0x8995,0x0000, /* 10993 */
+0xFBC2,0x8996,0x0000, 0xFBC2,0x8997,0x0000, 0xFBC2,0x8998,0x0000, /* 10996 */
+0xFBC2,0x8999,0x0000, 0xFBC2,0x899A,0x0000, 0xFBC2,0x899B,0x0000, /* 10999 */
+0xFBC2,0x899C,0x0000, 0xFBC2,0x899D,0x0000, 0xFBC2,0x899E,0x0000, /* 1099C */
+0xFBC2,0x899F,0x0000, 0xFBC2,0x89A0,0x0000, 0xFBC2,0x89A1,0x0000, /* 1099F */
+0xFBC2,0x89A2,0x0000, 0xFBC2,0x89A3,0x0000, 0xFBC2,0x89A4,0x0000, /* 109A2 */
+0xFBC2,0x89A5,0x0000, 0xFBC2,0x89A6,0x0000, 0xFBC2,0x89A7,0x0000, /* 109A5 */
+0xFBC2,0x89A8,0x0000, 0xFBC2,0x89A9,0x0000, 0xFBC2,0x89AA,0x0000, /* 109A8 */
+0xFBC2,0x89AB,0x0000, 0xFBC2,0x89AC,0x0000, 0xFBC2,0x89AD,0x0000, /* 109AB */
+0xFBC2,0x89AE,0x0000, 0xFBC2,0x89AF,0x0000, 0xFBC2,0x89B0,0x0000, /* 109AE */
+0xFBC2,0x89B1,0x0000, 0xFBC2,0x89B2,0x0000, 0xFBC2,0x89B3,0x0000, /* 109B1 */
+0xFBC2,0x89B4,0x0000, 0xFBC2,0x89B5,0x0000, 0xFBC2,0x89B6,0x0000, /* 109B4 */
+0xFBC2,0x89B7,0x0000, 0xFBC2,0x89B8,0x0000, 0xFBC2,0x89B9,0x0000, /* 109B7 */
+0xFBC2,0x89BA,0x0000, 0xFBC2,0x89BB,0x0000, 0xFBC2,0x89BC,0x0000, /* 109BA */
+0xFBC2,0x89BD,0x0000, 0xFBC2,0x89BE,0x0000, 0xFBC2,0x89BF,0x0000, /* 109BD */
+0xFBC2,0x89C0,0x0000, 0xFBC2,0x89C1,0x0000, 0xFBC2,0x89C2,0x0000, /* 109C0 */
+0xFBC2,0x89C3,0x0000, 0xFBC2,0x89C4,0x0000, 0xFBC2,0x89C5,0x0000, /* 109C3 */
+0xFBC2,0x89C6,0x0000, 0xFBC2,0x89C7,0x0000, 0xFBC2,0x89C8,0x0000, /* 109C6 */
+0xFBC2,0x89C9,0x0000, 0xFBC2,0x89CA,0x0000, 0xFBC2,0x89CB,0x0000, /* 109C9 */
+0xFBC2,0x89CC,0x0000, 0xFBC2,0x89CD,0x0000, 0xFBC2,0x89CE,0x0000, /* 109CC */
+0xFBC2,0x89CF,0x0000, 0xFBC2,0x89D0,0x0000, 0xFBC2,0x89D1,0x0000, /* 109CF */
+0xFBC2,0x89D2,0x0000, 0xFBC2,0x89D3,0x0000, 0xFBC2,0x89D4,0x0000, /* 109D2 */
+0xFBC2,0x89D5,0x0000, 0xFBC2,0x89D6,0x0000, 0xFBC2,0x89D7,0x0000, /* 109D5 */
+0xFBC2,0x89D8,0x0000, 0xFBC2,0x89D9,0x0000, 0xFBC2,0x89DA,0x0000, /* 109D8 */
+0xFBC2,0x89DB,0x0000, 0xFBC2,0x89DC,0x0000, 0xFBC2,0x89DD,0x0000, /* 109DB */
+0xFBC2,0x89DE,0x0000, 0xFBC2,0x89DF,0x0000, 0xFBC2,0x89E0,0x0000, /* 109DE */
+0xFBC2,0x89E1,0x0000, 0xFBC2,0x89E2,0x0000, 0xFBC2,0x89E3,0x0000, /* 109E1 */
+0xFBC2,0x89E4,0x0000, 0xFBC2,0x89E5,0x0000, 0xFBC2,0x89E6,0x0000, /* 109E4 */
+0xFBC2,0x89E7,0x0000, 0xFBC2,0x89E8,0x0000, 0xFBC2,0x89E9,0x0000, /* 109E7 */
+0xFBC2,0x89EA,0x0000, 0xFBC2,0x89EB,0x0000, 0xFBC2,0x89EC,0x0000, /* 109EA */
+0xFBC2,0x89ED,0x0000, 0xFBC2,0x89EE,0x0000, 0xFBC2,0x89EF,0x0000, /* 109ED */
+0xFBC2,0x89F0,0x0000, 0xFBC2,0x89F1,0x0000, 0xFBC2,0x89F2,0x0000, /* 109F0 */
+0xFBC2,0x89F3,0x0000, 0xFBC2,0x89F4,0x0000, 0xFBC2,0x89F5,0x0000, /* 109F3 */
+0xFBC2,0x89F6,0x0000, 0xFBC2,0x89F7,0x0000, 0xFBC2,0x89F8,0x0000, /* 109F6 */
+0xFBC2,0x89F9,0x0000, 0xFBC2,0x89FA,0x0000, 0xFBC2,0x89FB,0x0000, /* 109F9 */
+0xFBC2,0x89FC,0x0000, 0xFBC2,0x89FD,0x0000, 0xFBC2,0x89FE,0x0000, /* 109FC */
+0xFBC2,0x89FF,0x0000 };
+
+static const uint16 uca520_p10A[]= { /* 10A00 (3 weights per char) */
+0x1F46,0x0000,0x0000, 0x1F47,0x0000,0x0000, 0x1F48,0x0000,0x0000, /* 10A00 */
+0x1F49,0x0000,0x0000, 0xFBC2,0x8A04,0x0000, 0x1F4A,0x0000,0x0000, /* 10A03 */
+0x1F4B,0x0000,0x0000, 0xFBC2,0x8A07,0x0000, 0xFBC2,0x8A08,0x0000, /* 10A06 */
+0xFBC2,0x8A09,0x0000, 0xFBC2,0x8A0A,0x0000, 0xFBC2,0x8A0B,0x0000, /* 10A09 */
+0x1F4C,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 10A0C */
+0x0000,0x0000,0x0000, 0x1F4D,0x0000,0x0000, 0x1F4E,0x0000,0x0000, /* 10A0F */
+0x1F4F,0x0000,0x0000, 0x1F50,0x0000,0x0000, 0xFBC2,0x8A14,0x0000, /* 10A12 */
+0x1F51,0x0000,0x0000, 0x1F52,0x0000,0x0000, 0x1F53,0x0000,0x0000, /* 10A15 */
+0xFBC2,0x8A18,0x0000, 0x1F54,0x0000,0x0000, 0x1F55,0x0000,0x0000, /* 10A18 */
+0x1F56,0x0000,0x0000, 0x1F57,0x0000,0x0000, 0x1F58,0x0000,0x0000, /* 10A1B */
+0x1F59,0x0000,0x0000, 0x1F5A,0x0000,0x0000, 0x1F5B,0x0000,0x0000, /* 10A1E */
+0x1F5C,0x0000,0x0000, 0x1F5D,0x0000,0x0000, 0x1F5E,0x0000,0x0000, /* 10A21 */
+0x1F5F,0x0000,0x0000, 0x1F60,0x0000,0x0000, 0x1F61,0x0000,0x0000, /* 10A24 */
+0x1F62,0x0000,0x0000, 0x1F63,0x0000,0x0000, 0x1F64,0x0000,0x0000, /* 10A27 */
+0x1F65,0x0000,0x0000, 0x1F66,0x0000,0x0000, 0x1F67,0x0000,0x0000, /* 10A2A */
+0x1F68,0x0000,0x0000, 0x1F69,0x0000,0x0000, 0x1F6A,0x0000,0x0000, /* 10A2D */
+0x1F6B,0x0000,0x0000, 0x1F6C,0x0000,0x0000, 0x1F6D,0x0000,0x0000, /* 10A30 */
+0x1F6E,0x0000,0x0000, 0xFBC2,0x8A34,0x0000, 0xFBC2,0x8A35,0x0000, /* 10A33 */
+0xFBC2,0x8A36,0x0000, 0xFBC2,0x8A37,0x0000, 0x0000,0x0000,0x0000, /* 10A36 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBC2,0x8A3B,0x0000, /* 10A39 */
+0xFBC2,0x8A3C,0x0000, 0xFBC2,0x8A3D,0x0000, 0xFBC2,0x8A3E,0x0000, /* 10A3C */
+0x1F6F,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10A3F */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x11B4,0x0000,0x0000, /* 10A42 */
+0x11B5,0x0000,0x0000, 0x11B6,0x0000,0x0000, 0x11B7,0x0000,0x0000, /* 10A45 */
+0xFBC2,0x8A48,0x0000, 0xFBC2,0x8A49,0x0000, 0xFBC2,0x8A4A,0x0000, /* 10A48 */
+0xFBC2,0x8A4B,0x0000, 0xFBC2,0x8A4C,0x0000, 0xFBC2,0x8A4D,0x0000, /* 10A4B */
+0xFBC2,0x8A4E,0x0000, 0xFBC2,0x8A4F,0x0000, 0x03DF,0x0000,0x0000, /* 10A4E */
+0x03E0,0x0000,0x0000, 0x03E1,0x0000,0x0000, 0x03E2,0x0000,0x0000, /* 10A51 */
+0x03E3,0x0000,0x0000, 0x03E4,0x0000,0x0000, 0x02AF,0x0000,0x0000, /* 10A54 */
+0x02B0,0x0000,0x0000, 0x03E5,0x0000,0x0000, 0xFBC2,0x8A59,0x0000, /* 10A57 */
+0xFBC2,0x8A5A,0x0000, 0xFBC2,0x8A5B,0x0000, 0xFBC2,0x8A5C,0x0000, /* 10A5A */
+0xFBC2,0x8A5D,0x0000, 0xFBC2,0x8A5E,0x0000, 0xFBC2,0x8A5F,0x0000, /* 10A5D */
+0x3252,0x0000,0x0000, 0x3253,0x0000,0x0000, 0x3254,0x0000,0x0000, /* 10A60 */
+0x3255,0x0000,0x0000, 0x3256,0x0000,0x0000, 0x3257,0x0000,0x0000, /* 10A63 */
+0x3258,0x0000,0x0000, 0x3259,0x0000,0x0000, 0x325A,0x0000,0x0000, /* 10A66 */
+0x325B,0x0000,0x0000, 0x325C,0x0000,0x0000, 0x325D,0x0000,0x0000, /* 10A69 */
+0x325E,0x0000,0x0000, 0x325F,0x0000,0x0000, 0x3260,0x0000,0x0000, /* 10A6C */
+0x3261,0x0000,0x0000, 0x3262,0x0000,0x0000, 0x3263,0x0000,0x0000, /* 10A6F */
+0x3264,0x0000,0x0000, 0x3265,0x0000,0x0000, 0x3266,0x0000,0x0000, /* 10A72 */
+0x3267,0x0000,0x0000, 0x3268,0x0000,0x0000, 0x3269,0x0000,0x0000, /* 10A75 */
+0x326A,0x0000,0x0000, 0x326B,0x0000,0x0000, 0x326C,0x0000,0x0000, /* 10A78 */
+0x326D,0x0000,0x0000, 0x326E,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 10A7B */
+0x11A2,0x0000,0x0000, 0x11A3,0x0000,0x0000, 0xFBC2,0x8A80,0x0000, /* 10A7E */
+0xFBC2,0x8A81,0x0000, 0xFBC2,0x8A82,0x0000, 0xFBC2,0x8A83,0x0000, /* 10A81 */
+0xFBC2,0x8A84,0x0000, 0xFBC2,0x8A85,0x0000, 0xFBC2,0x8A86,0x0000, /* 10A84 */
+0xFBC2,0x8A87,0x0000, 0xFBC2,0x8A88,0x0000, 0xFBC2,0x8A89,0x0000, /* 10A87 */
+0xFBC2,0x8A8A,0x0000, 0xFBC2,0x8A8B,0x0000, 0xFBC2,0x8A8C,0x0000, /* 10A8A */
+0xFBC2,0x8A8D,0x0000, 0xFBC2,0x8A8E,0x0000, 0xFBC2,0x8A8F,0x0000, /* 10A8D */
+0xFBC2,0x8A90,0x0000, 0xFBC2,0x8A91,0x0000, 0xFBC2,0x8A92,0x0000, /* 10A90 */
+0xFBC2,0x8A93,0x0000, 0xFBC2,0x8A94,0x0000, 0xFBC2,0x8A95,0x0000, /* 10A93 */
+0xFBC2,0x8A96,0x0000, 0xFBC2,0x8A97,0x0000, 0xFBC2,0x8A98,0x0000, /* 10A96 */
+0xFBC2,0x8A99,0x0000, 0xFBC2,0x8A9A,0x0000, 0xFBC2,0x8A9B,0x0000, /* 10A99 */
+0xFBC2,0x8A9C,0x0000, 0xFBC2,0x8A9D,0x0000, 0xFBC2,0x8A9E,0x0000, /* 10A9C */
+0xFBC2,0x8A9F,0x0000, 0xFBC2,0x8AA0,0x0000, 0xFBC2,0x8AA1,0x0000, /* 10A9F */
+0xFBC2,0x8AA2,0x0000, 0xFBC2,0x8AA3,0x0000, 0xFBC2,0x8AA4,0x0000, /* 10AA2 */
+0xFBC2,0x8AA5,0x0000, 0xFBC2,0x8AA6,0x0000, 0xFBC2,0x8AA7,0x0000, /* 10AA5 */
+0xFBC2,0x8AA8,0x0000, 0xFBC2,0x8AA9,0x0000, 0xFBC2,0x8AAA,0x0000, /* 10AA8 */
+0xFBC2,0x8AAB,0x0000, 0xFBC2,0x8AAC,0x0000, 0xFBC2,0x8AAD,0x0000, /* 10AAB */
+0xFBC2,0x8AAE,0x0000, 0xFBC2,0x8AAF,0x0000, 0xFBC2,0x8AB0,0x0000, /* 10AAE */
+0xFBC2,0x8AB1,0x0000, 0xFBC2,0x8AB2,0x0000, 0xFBC2,0x8AB3,0x0000, /* 10AB1 */
+0xFBC2,0x8AB4,0x0000, 0xFBC2,0x8AB5,0x0000, 0xFBC2,0x8AB6,0x0000, /* 10AB4 */
+0xFBC2,0x8AB7,0x0000, 0xFBC2,0x8AB8,0x0000, 0xFBC2,0x8AB9,0x0000, /* 10AB7 */
+0xFBC2,0x8ABA,0x0000, 0xFBC2,0x8ABB,0x0000, 0xFBC2,0x8ABC,0x0000, /* 10ABA */
+0xFBC2,0x8ABD,0x0000, 0xFBC2,0x8ABE,0x0000, 0xFBC2,0x8ABF,0x0000, /* 10ABD */
+0xFBC2,0x8AC0,0x0000, 0xFBC2,0x8AC1,0x0000, 0xFBC2,0x8AC2,0x0000, /* 10AC0 */
+0xFBC2,0x8AC3,0x0000, 0xFBC2,0x8AC4,0x0000, 0xFBC2,0x8AC5,0x0000, /* 10AC3 */
+0xFBC2,0x8AC6,0x0000, 0xFBC2,0x8AC7,0x0000, 0xFBC2,0x8AC8,0x0000, /* 10AC6 */
+0xFBC2,0x8AC9,0x0000, 0xFBC2,0x8ACA,0x0000, 0xFBC2,0x8ACB,0x0000, /* 10AC9 */
+0xFBC2,0x8ACC,0x0000, 0xFBC2,0x8ACD,0x0000, 0xFBC2,0x8ACE,0x0000, /* 10ACC */
+0xFBC2,0x8ACF,0x0000, 0xFBC2,0x8AD0,0x0000, 0xFBC2,0x8AD1,0x0000, /* 10ACF */
+0xFBC2,0x8AD2,0x0000, 0xFBC2,0x8AD3,0x0000, 0xFBC2,0x8AD4,0x0000, /* 10AD2 */
+0xFBC2,0x8AD5,0x0000, 0xFBC2,0x8AD6,0x0000, 0xFBC2,0x8AD7,0x0000, /* 10AD5 */
+0xFBC2,0x8AD8,0x0000, 0xFBC2,0x8AD9,0x0000, 0xFBC2,0x8ADA,0x0000, /* 10AD8 */
+0xFBC2,0x8ADB,0x0000, 0xFBC2,0x8ADC,0x0000, 0xFBC2,0x8ADD,0x0000, /* 10ADB */
+0xFBC2,0x8ADE,0x0000, 0xFBC2,0x8ADF,0x0000, 0xFBC2,0x8AE0,0x0000, /* 10ADE */
+0xFBC2,0x8AE1,0x0000, 0xFBC2,0x8AE2,0x0000, 0xFBC2,0x8AE3,0x0000, /* 10AE1 */
+0xFBC2,0x8AE4,0x0000, 0xFBC2,0x8AE5,0x0000, 0xFBC2,0x8AE6,0x0000, /* 10AE4 */
+0xFBC2,0x8AE7,0x0000, 0xFBC2,0x8AE8,0x0000, 0xFBC2,0x8AE9,0x0000, /* 10AE7 */
+0xFBC2,0x8AEA,0x0000, 0xFBC2,0x8AEB,0x0000, 0xFBC2,0x8AEC,0x0000, /* 10AEA */
+0xFBC2,0x8AED,0x0000, 0xFBC2,0x8AEE,0x0000, 0xFBC2,0x8AEF,0x0000, /* 10AED */
+0xFBC2,0x8AF0,0x0000, 0xFBC2,0x8AF1,0x0000, 0xFBC2,0x8AF2,0x0000, /* 10AF0 */
+0xFBC2,0x8AF3,0x0000, 0xFBC2,0x8AF4,0x0000, 0xFBC2,0x8AF5,0x0000, /* 10AF3 */
+0xFBC2,0x8AF6,0x0000, 0xFBC2,0x8AF7,0x0000, 0xFBC2,0x8AF8,0x0000, /* 10AF6 */
+0xFBC2,0x8AF9,0x0000, 0xFBC2,0x8AFA,0x0000, 0xFBC2,0x8AFB,0x0000, /* 10AF9 */
+0xFBC2,0x8AFC,0x0000, 0xFBC2,0x8AFD,0x0000, 0xFBC2,0x8AFE,0x0000, /* 10AFC */
+0xFBC2,0x8AFF,0x0000 };
+
+static const uint16 uca520_p10B[]= { /* 10B00 (3 weights per char) */
+0x326F,0x0000,0x0000, 0x3270,0x0000,0x0000, 0x3271,0x0000,0x0000, /* 10B00 */
+0x3272,0x0000,0x0000, 0x3273,0x0000,0x0000, 0x3274,0x0000,0x0000, /* 10B03 */
+0x3275,0x0000,0x0000, 0x3276,0x0000,0x0000, 0x3277,0x0000,0x0000, /* 10B06 */
+0x3278,0x0000,0x0000, 0x3279,0x0000,0x0000, 0x327A,0x0000,0x0000, /* 10B09 */
+0x327B,0x0000,0x0000, 0x327C,0x0000,0x0000, 0x327D,0x0000,0x0000, /* 10B0C */
+0x327E,0x0000,0x0000, 0x327F,0x0000,0x0000, 0x3280,0x0000,0x0000, /* 10B0F */
+0x3281,0x0000,0x0000, 0x3282,0x0000,0x0000, 0x3283,0x0000,0x0000, /* 10B12 */
+0x3284,0x0000,0x0000, 0x3285,0x0000,0x0000, 0x3286,0x0000,0x0000, /* 10B15 */
+0x3287,0x0000,0x0000, 0x3288,0x0000,0x0000, 0x3289,0x0000,0x0000, /* 10B18 */
+0x328A,0x0000,0x0000, 0x328B,0x0000,0x0000, 0x328C,0x0000,0x0000, /* 10B1B */
+0x328D,0x0000,0x0000, 0x328E,0x0000,0x0000, 0x328F,0x0000,0x0000, /* 10B1E */
+0x3290,0x0000,0x0000, 0x3291,0x0000,0x0000, 0x3292,0x0000,0x0000, /* 10B21 */
+0x3293,0x0000,0x0000, 0x3294,0x0000,0x0000, 0x3295,0x0000,0x0000, /* 10B24 */
+0x3296,0x0000,0x0000, 0x3297,0x0000,0x0000, 0x3298,0x0000,0x0000, /* 10B27 */
+0x3299,0x0000,0x0000, 0x329A,0x0000,0x0000, 0x329B,0x0000,0x0000, /* 10B2A */
+0x329C,0x0000,0x0000, 0x329C,0x0000,0x0000, 0x329D,0x0000,0x0000, /* 10B2D */
+0x329E,0x0000,0x0000, 0x329F,0x0000,0x0000, 0x32A0,0x0000,0x0000, /* 10B30 */
+0x32A1,0x0000,0x0000, 0x32A2,0x0000,0x0000, 0x32A3,0x0000,0x0000, /* 10B33 */
+0xFBC2,0x8B36,0x0000, 0xFBC2,0x8B37,0x0000, 0xFBC2,0x8B38,0x0000, /* 10B36 */
+0x03E6,0x0000,0x0000, 0x02CB,0x0000,0x0000, 0x02CC,0x0000,0x0000, /* 10B39 */
+0x02CD,0x0000,0x0000, 0x02CE,0x0000,0x0000, 0x02CF,0x0000,0x0000, /* 10B3C */
+0x02D0,0x0000,0x0000, 0x32BA,0x0000,0x0000, 0x32BB,0x0000,0x0000, /* 10B3F */
+0x32BC,0x0000,0x0000, 0x32BD,0x0000,0x0000, 0x32BE,0x0000,0x0000, /* 10B42 */
+0x32BF,0x0000,0x0000, 0x32C0,0x0000,0x0000, 0x32C1,0x0000,0x0000, /* 10B45 */
+0x32C2,0x0000,0x0000, 0x32C3,0x0000,0x0000, 0x32C4,0x0000,0x0000, /* 10B48 */
+0x32C5,0x0000,0x0000, 0x32C6,0x0000,0x0000, 0x32C7,0x0000,0x0000, /* 10B4B */
+0x32C8,0x0000,0x0000, 0x32C9,0x0000,0x0000, 0x32CA,0x0000,0x0000, /* 10B4E */
+0x32CB,0x0000,0x0000, 0x32CC,0x0000,0x0000, 0x32CD,0x0000,0x0000, /* 10B51 */
+0x32CE,0x0000,0x0000, 0x32CF,0x0000,0x0000, 0xFBC2,0x8B56,0x0000, /* 10B54 */
+0xFBC2,0x8B57,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 10B57 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x11AC,0x0000,0x0000, /* 10B5A */
+0x11AD,0x0000,0x0000, 0x11AE,0x0000,0x0000, 0x11AF,0x0000,0x0000, /* 10B5D */
+0x32D0,0x0000,0x0000, 0x32D1,0x0000,0x0000, 0x32D2,0x0000,0x0000, /* 10B60 */
+0x32D3,0x0000,0x0000, 0x32D4,0x0000,0x0000, 0x32D5,0x0000,0x0000, /* 10B63 */
+0x32D6,0x0000,0x0000, 0x32D7,0x0000,0x0000, 0x32D8,0x0000,0x0000, /* 10B66 */
+0x32D9,0x0000,0x0000, 0x32DA,0x0000,0x0000, 0x32DB,0x0000,0x0000, /* 10B69 */
+0x32DC,0x0000,0x0000, 0x32DD,0x0000,0x0000, 0x32DE,0x0000,0x0000, /* 10B6C */
+0x32DF,0x0000,0x0000, 0x32E0,0x0000,0x0000, 0x32E1,0x0000,0x0000, /* 10B6F */
+0x32E2,0x0000,0x0000, 0xFBC2,0x8B73,0x0000, 0xFBC2,0x8B74,0x0000, /* 10B72 */
+0xFBC2,0x8B75,0x0000, 0xFBC2,0x8B76,0x0000, 0xFBC2,0x8B77,0x0000, /* 10B75 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 10B78 */
+0x1209,0x0000,0x0000, 0x11B0,0x0000,0x0000, 0x11B1,0x0000,0x0000, /* 10B7B */
+0x11B2,0x0000,0x0000, 0x11B3,0x0000,0x0000, 0xFBC2,0x8B80,0x0000, /* 10B7E */
+0xFBC2,0x8B81,0x0000, 0xFBC2,0x8B82,0x0000, 0xFBC2,0x8B83,0x0000, /* 10B81 */
+0xFBC2,0x8B84,0x0000, 0xFBC2,0x8B85,0x0000, 0xFBC2,0x8B86,0x0000, /* 10B84 */
+0xFBC2,0x8B87,0x0000, 0xFBC2,0x8B88,0x0000, 0xFBC2,0x8B89,0x0000, /* 10B87 */
+0xFBC2,0x8B8A,0x0000, 0xFBC2,0x8B8B,0x0000, 0xFBC2,0x8B8C,0x0000, /* 10B8A */
+0xFBC2,0x8B8D,0x0000, 0xFBC2,0x8B8E,0x0000, 0xFBC2,0x8B8F,0x0000, /* 10B8D */
+0xFBC2,0x8B90,0x0000, 0xFBC2,0x8B91,0x0000, 0xFBC2,0x8B92,0x0000, /* 10B90 */
+0xFBC2,0x8B93,0x0000, 0xFBC2,0x8B94,0x0000, 0xFBC2,0x8B95,0x0000, /* 10B93 */
+0xFBC2,0x8B96,0x0000, 0xFBC2,0x8B97,0x0000, 0xFBC2,0x8B98,0x0000, /* 10B96 */
+0xFBC2,0x8B99,0x0000, 0xFBC2,0x8B9A,0x0000, 0xFBC2,0x8B9B,0x0000, /* 10B99 */
+0xFBC2,0x8B9C,0x0000, 0xFBC2,0x8B9D,0x0000, 0xFBC2,0x8B9E,0x0000, /* 10B9C */
+0xFBC2,0x8B9F,0x0000, 0xFBC2,0x8BA0,0x0000, 0xFBC2,0x8BA1,0x0000, /* 10B9F */
+0xFBC2,0x8BA2,0x0000, 0xFBC2,0x8BA3,0x0000, 0xFBC2,0x8BA4,0x0000, /* 10BA2 */
+0xFBC2,0x8BA5,0x0000, 0xFBC2,0x8BA6,0x0000, 0xFBC2,0x8BA7,0x0000, /* 10BA5 */
+0xFBC2,0x8BA8,0x0000, 0xFBC2,0x8BA9,0x0000, 0xFBC2,0x8BAA,0x0000, /* 10BA8 */
+0xFBC2,0x8BAB,0x0000, 0xFBC2,0x8BAC,0x0000, 0xFBC2,0x8BAD,0x0000, /* 10BAB */
+0xFBC2,0x8BAE,0x0000, 0xFBC2,0x8BAF,0x0000, 0xFBC2,0x8BB0,0x0000, /* 10BAE */
+0xFBC2,0x8BB1,0x0000, 0xFBC2,0x8BB2,0x0000, 0xFBC2,0x8BB3,0x0000, /* 10BB1 */
+0xFBC2,0x8BB4,0x0000, 0xFBC2,0x8BB5,0x0000, 0xFBC2,0x8BB6,0x0000, /* 10BB4 */
+0xFBC2,0x8BB7,0x0000, 0xFBC2,0x8BB8,0x0000, 0xFBC2,0x8BB9,0x0000, /* 10BB7 */
+0xFBC2,0x8BBA,0x0000, 0xFBC2,0x8BBB,0x0000, 0xFBC2,0x8BBC,0x0000, /* 10BBA */
+0xFBC2,0x8BBD,0x0000, 0xFBC2,0x8BBE,0x0000, 0xFBC2,0x8BBF,0x0000, /* 10BBD */
+0xFBC2,0x8BC0,0x0000, 0xFBC2,0x8BC1,0x0000, 0xFBC2,0x8BC2,0x0000, /* 10BC0 */
+0xFBC2,0x8BC3,0x0000, 0xFBC2,0x8BC4,0x0000, 0xFBC2,0x8BC5,0x0000, /* 10BC3 */
+0xFBC2,0x8BC6,0x0000, 0xFBC2,0x8BC7,0x0000, 0xFBC2,0x8BC8,0x0000, /* 10BC6 */
+0xFBC2,0x8BC9,0x0000, 0xFBC2,0x8BCA,0x0000, 0xFBC2,0x8BCB,0x0000, /* 10BC9 */
+0xFBC2,0x8BCC,0x0000, 0xFBC2,0x8BCD,0x0000, 0xFBC2,0x8BCE,0x0000, /* 10BCC */
+0xFBC2,0x8BCF,0x0000, 0xFBC2,0x8BD0,0x0000, 0xFBC2,0x8BD1,0x0000, /* 10BCF */
+0xFBC2,0x8BD2,0x0000, 0xFBC2,0x8BD3,0x0000, 0xFBC2,0x8BD4,0x0000, /* 10BD2 */
+0xFBC2,0x8BD5,0x0000, 0xFBC2,0x8BD6,0x0000, 0xFBC2,0x8BD7,0x0000, /* 10BD5 */
+0xFBC2,0x8BD8,0x0000, 0xFBC2,0x8BD9,0x0000, 0xFBC2,0x8BDA,0x0000, /* 10BD8 */
+0xFBC2,0x8BDB,0x0000, 0xFBC2,0x8BDC,0x0000, 0xFBC2,0x8BDD,0x0000, /* 10BDB */
+0xFBC2,0x8BDE,0x0000, 0xFBC2,0x8BDF,0x0000, 0xFBC2,0x8BE0,0x0000, /* 10BDE */
+0xFBC2,0x8BE1,0x0000, 0xFBC2,0x8BE2,0x0000, 0xFBC2,0x8BE3,0x0000, /* 10BE1 */
+0xFBC2,0x8BE4,0x0000, 0xFBC2,0x8BE5,0x0000, 0xFBC2,0x8BE6,0x0000, /* 10BE4 */
+0xFBC2,0x8BE7,0x0000, 0xFBC2,0x8BE8,0x0000, 0xFBC2,0x8BE9,0x0000, /* 10BE7 */
+0xFBC2,0x8BEA,0x0000, 0xFBC2,0x8BEB,0x0000, 0xFBC2,0x8BEC,0x0000, /* 10BEA */
+0xFBC2,0x8BED,0x0000, 0xFBC2,0x8BEE,0x0000, 0xFBC2,0x8BEF,0x0000, /* 10BED */
+0xFBC2,0x8BF0,0x0000, 0xFBC2,0x8BF1,0x0000, 0xFBC2,0x8BF2,0x0000, /* 10BF0 */
+0xFBC2,0x8BF3,0x0000, 0xFBC2,0x8BF4,0x0000, 0xFBC2,0x8BF5,0x0000, /* 10BF3 */
+0xFBC2,0x8BF6,0x0000, 0xFBC2,0x8BF7,0x0000, 0xFBC2,0x8BF8,0x0000, /* 10BF6 */
+0xFBC2,0x8BF9,0x0000, 0xFBC2,0x8BFA,0x0000, 0xFBC2,0x8BFB,0x0000, /* 10BF9 */
+0xFBC2,0x8BFC,0x0000, 0xFBC2,0x8BFD,0x0000, 0xFBC2,0x8BFE,0x0000, /* 10BFC */
+0xFBC2,0x8BFF,0x0000 };
+
+static const uint16 uca520_p10C[]= { /* 10C00 (3 weights per char) */
+0x2826,0x0000,0x0000, 0x2826,0x0000,0x0000, 0x2827,0x0000,0x0000, /* 10C00 */
+0x2828,0x0000,0x0000, 0x2828,0x0000,0x0000, 0x2829,0x0000,0x0000, /* 10C03 */
+0x282A,0x0000,0x0000, 0x282B,0x0000,0x0000, 0x282B,0x0000,0x0000, /* 10C06 */
+0x282C,0x0000,0x0000, 0x282C,0x0000,0x0000, 0x282D,0x0000,0x0000, /* 10C09 */
+0x282D,0x0000,0x0000, 0x282E,0x0000,0x0000, 0x282E,0x0000,0x0000, /* 10C0C */
+0x282F,0x0000,0x0000, 0x282F,0x0000,0x0000, 0x2830,0x0000,0x0000, /* 10C0F */
+0x2830,0x0000,0x0000, 0x2831,0x0000,0x0000, 0x2832,0x0000,0x0000, /* 10C12 */
+0x2832,0x0000,0x0000, 0x2833,0x0000,0x0000, 0x2833,0x0000,0x0000, /* 10C15 */
+0x2834,0x0000,0x0000, 0x2834,0x0000,0x0000, 0x2835,0x0000,0x0000, /* 10C18 */
+0x2835,0x0000,0x0000, 0x2836,0x0000,0x0000, 0x2836,0x0000,0x0000, /* 10C1B */
+0x2837,0x0000,0x0000, 0x2837,0x0000,0x0000, 0x2838,0x0000,0x0000, /* 10C1E */
+0x2839,0x0000,0x0000, 0x283A,0x0000,0x0000, 0x283B,0x0000,0x0000, /* 10C21 */
+0x283C,0x0000,0x0000, 0x283C,0x0000,0x0000, 0x283D,0x0000,0x0000, /* 10C24 */
+0x283D,0x0000,0x0000, 0x283E,0x0000,0x0000, 0x283E,0x0000,0x0000, /* 10C27 */
+0x283F,0x0000,0x0000, 0x283F,0x0000,0x0000, 0x2840,0x0000,0x0000, /* 10C2A */
+0x2841,0x0000,0x0000, 0x2841,0x0000,0x0000, 0x2842,0x0000,0x0000, /* 10C2D */
+0x2843,0x0000,0x0000, 0x2844,0x0000,0x0000, 0x2845,0x0000,0x0000, /* 10C30 */
+0x2845,0x0000,0x0000, 0x2846,0x0000,0x0000, 0x2846,0x0000,0x0000, /* 10C33 */
+0x2847,0x0000,0x0000, 0x2847,0x0000,0x0000, 0x2848,0x0000,0x0000, /* 10C36 */
+0x2848,0x0000,0x0000, 0x2849,0x0000,0x0000, 0x2849,0x0000,0x0000, /* 10C39 */
+0x284A,0x0000,0x0000, 0x284B,0x0000,0x0000, 0x284C,0x0000,0x0000, /* 10C3C */
+0x284D,0x0000,0x0000, 0x284D,0x0000,0x0000, 0x284E,0x0000,0x0000, /* 10C3F */
+0x284E,0x0000,0x0000, 0x284F,0x0000,0x0000, 0x284F,0x0000,0x0000, /* 10C42 */
+0x2850,0x0000,0x0000, 0x2850,0x0000,0x0000, 0x2851,0x0000,0x0000, /* 10C45 */
+0x2852,0x0000,0x0000, 0xFBC2,0x8C49,0x0000, 0xFBC2,0x8C4A,0x0000, /* 10C48 */
+0xFBC2,0x8C4B,0x0000, 0xFBC2,0x8C4C,0x0000, 0xFBC2,0x8C4D,0x0000, /* 10C4B */
+0xFBC2,0x8C4E,0x0000, 0xFBC2,0x8C4F,0x0000, 0xFBC2,0x8C50,0x0000, /* 10C4E */
+0xFBC2,0x8C51,0x0000, 0xFBC2,0x8C52,0x0000, 0xFBC2,0x8C53,0x0000, /* 10C51 */
+0xFBC2,0x8C54,0x0000, 0xFBC2,0x8C55,0x0000, 0xFBC2,0x8C56,0x0000, /* 10C54 */
+0xFBC2,0x8C57,0x0000, 0xFBC2,0x8C58,0x0000, 0xFBC2,0x8C59,0x0000, /* 10C57 */
+0xFBC2,0x8C5A,0x0000, 0xFBC2,0x8C5B,0x0000, 0xFBC2,0x8C5C,0x0000, /* 10C5A */
+0xFBC2,0x8C5D,0x0000, 0xFBC2,0x8C5E,0x0000, 0xFBC2,0x8C5F,0x0000, /* 10C5D */
+0xFBC2,0x8C60,0x0000, 0xFBC2,0x8C61,0x0000, 0xFBC2,0x8C62,0x0000, /* 10C60 */
+0xFBC2,0x8C63,0x0000, 0xFBC2,0x8C64,0x0000, 0xFBC2,0x8C65,0x0000, /* 10C63 */
+0xFBC2,0x8C66,0x0000, 0xFBC2,0x8C67,0x0000, 0xFBC2,0x8C68,0x0000, /* 10C66 */
+0xFBC2,0x8C69,0x0000, 0xFBC2,0x8C6A,0x0000, 0xFBC2,0x8C6B,0x0000, /* 10C69 */
+0xFBC2,0x8C6C,0x0000, 0xFBC2,0x8C6D,0x0000, 0xFBC2,0x8C6E,0x0000, /* 10C6C */
+0xFBC2,0x8C6F,0x0000, 0xFBC2,0x8C70,0x0000, 0xFBC2,0x8C71,0x0000, /* 10C6F */
+0xFBC2,0x8C72,0x0000, 0xFBC2,0x8C73,0x0000, 0xFBC2,0x8C74,0x0000, /* 10C72 */
+0xFBC2,0x8C75,0x0000, 0xFBC2,0x8C76,0x0000, 0xFBC2,0x8C77,0x0000, /* 10C75 */
+0xFBC2,0x8C78,0x0000, 0xFBC2,0x8C79,0x0000, 0xFBC2,0x8C7A,0x0000, /* 10C78 */
+0xFBC2,0x8C7B,0x0000, 0xFBC2,0x8C7C,0x0000, 0xFBC2,0x8C7D,0x0000, /* 10C7B */
+0xFBC2,0x8C7E,0x0000, 0xFBC2,0x8C7F,0x0000, 0xFBC2,0x8C80,0x0000, /* 10C7E */
+0xFBC2,0x8C81,0x0000, 0xFBC2,0x8C82,0x0000, 0xFBC2,0x8C83,0x0000, /* 10C81 */
+0xFBC2,0x8C84,0x0000, 0xFBC2,0x8C85,0x0000, 0xFBC2,0x8C86,0x0000, /* 10C84 */
+0xFBC2,0x8C87,0x0000, 0xFBC2,0x8C88,0x0000, 0xFBC2,0x8C89,0x0000, /* 10C87 */
+0xFBC2,0x8C8A,0x0000, 0xFBC2,0x8C8B,0x0000, 0xFBC2,0x8C8C,0x0000, /* 10C8A */
+0xFBC2,0x8C8D,0x0000, 0xFBC2,0x8C8E,0x0000, 0xFBC2,0x8C8F,0x0000, /* 10C8D */
+0xFBC2,0x8C90,0x0000, 0xFBC2,0x8C91,0x0000, 0xFBC2,0x8C92,0x0000, /* 10C90 */
+0xFBC2,0x8C93,0x0000, 0xFBC2,0x8C94,0x0000, 0xFBC2,0x8C95,0x0000, /* 10C93 */
+0xFBC2,0x8C96,0x0000, 0xFBC2,0x8C97,0x0000, 0xFBC2,0x8C98,0x0000, /* 10C96 */
+0xFBC2,0x8C99,0x0000, 0xFBC2,0x8C9A,0x0000, 0xFBC2,0x8C9B,0x0000, /* 10C99 */
+0xFBC2,0x8C9C,0x0000, 0xFBC2,0x8C9D,0x0000, 0xFBC2,0x8C9E,0x0000, /* 10C9C */
+0xFBC2,0x8C9F,0x0000, 0xFBC2,0x8CA0,0x0000, 0xFBC2,0x8CA1,0x0000, /* 10C9F */
+0xFBC2,0x8CA2,0x0000, 0xFBC2,0x8CA3,0x0000, 0xFBC2,0x8CA4,0x0000, /* 10CA2 */
+0xFBC2,0x8CA5,0x0000, 0xFBC2,0x8CA6,0x0000, 0xFBC2,0x8CA7,0x0000, /* 10CA5 */
+0xFBC2,0x8CA8,0x0000, 0xFBC2,0x8CA9,0x0000, 0xFBC2,0x8CAA,0x0000, /* 10CA8 */
+0xFBC2,0x8CAB,0x0000, 0xFBC2,0x8CAC,0x0000, 0xFBC2,0x8CAD,0x0000, /* 10CAB */
+0xFBC2,0x8CAE,0x0000, 0xFBC2,0x8CAF,0x0000, 0xFBC2,0x8CB0,0x0000, /* 10CAE */
+0xFBC2,0x8CB1,0x0000, 0xFBC2,0x8CB2,0x0000, 0xFBC2,0x8CB3,0x0000, /* 10CB1 */
+0xFBC2,0x8CB4,0x0000, 0xFBC2,0x8CB5,0x0000, 0xFBC2,0x8CB6,0x0000, /* 10CB4 */
+0xFBC2,0x8CB7,0x0000, 0xFBC2,0x8CB8,0x0000, 0xFBC2,0x8CB9,0x0000, /* 10CB7 */
+0xFBC2,0x8CBA,0x0000, 0xFBC2,0x8CBB,0x0000, 0xFBC2,0x8CBC,0x0000, /* 10CBA */
+0xFBC2,0x8CBD,0x0000, 0xFBC2,0x8CBE,0x0000, 0xFBC2,0x8CBF,0x0000, /* 10CBD */
+0xFBC2,0x8CC0,0x0000, 0xFBC2,0x8CC1,0x0000, 0xFBC2,0x8CC2,0x0000, /* 10CC0 */
+0xFBC2,0x8CC3,0x0000, 0xFBC2,0x8CC4,0x0000, 0xFBC2,0x8CC5,0x0000, /* 10CC3 */
+0xFBC2,0x8CC6,0x0000, 0xFBC2,0x8CC7,0x0000, 0xFBC2,0x8CC8,0x0000, /* 10CC6 */
+0xFBC2,0x8CC9,0x0000, 0xFBC2,0x8CCA,0x0000, 0xFBC2,0x8CCB,0x0000, /* 10CC9 */
+0xFBC2,0x8CCC,0x0000, 0xFBC2,0x8CCD,0x0000, 0xFBC2,0x8CCE,0x0000, /* 10CCC */
+0xFBC2,0x8CCF,0x0000, 0xFBC2,0x8CD0,0x0000, 0xFBC2,0x8CD1,0x0000, /* 10CCF */
+0xFBC2,0x8CD2,0x0000, 0xFBC2,0x8CD3,0x0000, 0xFBC2,0x8CD4,0x0000, /* 10CD2 */
+0xFBC2,0x8CD5,0x0000, 0xFBC2,0x8CD6,0x0000, 0xFBC2,0x8CD7,0x0000, /* 10CD5 */
+0xFBC2,0x8CD8,0x0000, 0xFBC2,0x8CD9,0x0000, 0xFBC2,0x8CDA,0x0000, /* 10CD8 */
+0xFBC2,0x8CDB,0x0000, 0xFBC2,0x8CDC,0x0000, 0xFBC2,0x8CDD,0x0000, /* 10CDB */
+0xFBC2,0x8CDE,0x0000, 0xFBC2,0x8CDF,0x0000, 0xFBC2,0x8CE0,0x0000, /* 10CDE */
+0xFBC2,0x8CE1,0x0000, 0xFBC2,0x8CE2,0x0000, 0xFBC2,0x8CE3,0x0000, /* 10CE1 */
+0xFBC2,0x8CE4,0x0000, 0xFBC2,0x8CE5,0x0000, 0xFBC2,0x8CE6,0x0000, /* 10CE4 */
+0xFBC2,0x8CE7,0x0000, 0xFBC2,0x8CE8,0x0000, 0xFBC2,0x8CE9,0x0000, /* 10CE7 */
+0xFBC2,0x8CEA,0x0000, 0xFBC2,0x8CEB,0x0000, 0xFBC2,0x8CEC,0x0000, /* 10CEA */
+0xFBC2,0x8CED,0x0000, 0xFBC2,0x8CEE,0x0000, 0xFBC2,0x8CEF,0x0000, /* 10CED */
+0xFBC2,0x8CF0,0x0000, 0xFBC2,0x8CF1,0x0000, 0xFBC2,0x8CF2,0x0000, /* 10CF0 */
+0xFBC2,0x8CF3,0x0000, 0xFBC2,0x8CF4,0x0000, 0xFBC2,0x8CF5,0x0000, /* 10CF3 */
+0xFBC2,0x8CF6,0x0000, 0xFBC2,0x8CF7,0x0000, 0xFBC2,0x8CF8,0x0000, /* 10CF6 */
+0xFBC2,0x8CF9,0x0000, 0xFBC2,0x8CFA,0x0000, 0xFBC2,0x8CFB,0x0000, /* 10CF9 */
+0xFBC2,0x8CFC,0x0000, 0xFBC2,0x8CFD,0x0000, 0xFBC2,0x8CFE,0x0000, /* 10CFC */
+0xFBC2,0x8CFF,0x0000 };
+
+static const uint16 uca520_p10E[]= { /* 10E00 (3 weights per char) */
+0xFBC2,0x8E00,0x0000, 0xFBC2,0x8E01,0x0000, 0xFBC2,0x8E02,0x0000, /* 10E00 */
+0xFBC2,0x8E03,0x0000, 0xFBC2,0x8E04,0x0000, 0xFBC2,0x8E05,0x0000, /* 10E03 */
+0xFBC2,0x8E06,0x0000, 0xFBC2,0x8E07,0x0000, 0xFBC2,0x8E08,0x0000, /* 10E06 */
+0xFBC2,0x8E09,0x0000, 0xFBC2,0x8E0A,0x0000, 0xFBC2,0x8E0B,0x0000, /* 10E09 */
+0xFBC2,0x8E0C,0x0000, 0xFBC2,0x8E0D,0x0000, 0xFBC2,0x8E0E,0x0000, /* 10E0C */
+0xFBC2,0x8E0F,0x0000, 0xFBC2,0x8E10,0x0000, 0xFBC2,0x8E11,0x0000, /* 10E0F */
+0xFBC2,0x8E12,0x0000, 0xFBC2,0x8E13,0x0000, 0xFBC2,0x8E14,0x0000, /* 10E12 */
+0xFBC2,0x8E15,0x0000, 0xFBC2,0x8E16,0x0000, 0xFBC2,0x8E17,0x0000, /* 10E15 */
+0xFBC2,0x8E18,0x0000, 0xFBC2,0x8E19,0x0000, 0xFBC2,0x8E1A,0x0000, /* 10E18 */
+0xFBC2,0x8E1B,0x0000, 0xFBC2,0x8E1C,0x0000, 0xFBC2,0x8E1D,0x0000, /* 10E1B */
+0xFBC2,0x8E1E,0x0000, 0xFBC2,0x8E1F,0x0000, 0xFBC2,0x8E20,0x0000, /* 10E1E */
+0xFBC2,0x8E21,0x0000, 0xFBC2,0x8E22,0x0000, 0xFBC2,0x8E23,0x0000, /* 10E21 */
+0xFBC2,0x8E24,0x0000, 0xFBC2,0x8E25,0x0000, 0xFBC2,0x8E26,0x0000, /* 10E24 */
+0xFBC2,0x8E27,0x0000, 0xFBC2,0x8E28,0x0000, 0xFBC2,0x8E29,0x0000, /* 10E27 */
+0xFBC2,0x8E2A,0x0000, 0xFBC2,0x8E2B,0x0000, 0xFBC2,0x8E2C,0x0000, /* 10E2A */
+0xFBC2,0x8E2D,0x0000, 0xFBC2,0x8E2E,0x0000, 0xFBC2,0x8E2F,0x0000, /* 10E2D */
+0xFBC2,0x8E30,0x0000, 0xFBC2,0x8E31,0x0000, 0xFBC2,0x8E32,0x0000, /* 10E30 */
+0xFBC2,0x8E33,0x0000, 0xFBC2,0x8E34,0x0000, 0xFBC2,0x8E35,0x0000, /* 10E33 */
+0xFBC2,0x8E36,0x0000, 0xFBC2,0x8E37,0x0000, 0xFBC2,0x8E38,0x0000, /* 10E36 */
+0xFBC2,0x8E39,0x0000, 0xFBC2,0x8E3A,0x0000, 0xFBC2,0x8E3B,0x0000, /* 10E39 */
+0xFBC2,0x8E3C,0x0000, 0xFBC2,0x8E3D,0x0000, 0xFBC2,0x8E3E,0x0000, /* 10E3C */
+0xFBC2,0x8E3F,0x0000, 0xFBC2,0x8E40,0x0000, 0xFBC2,0x8E41,0x0000, /* 10E3F */
+0xFBC2,0x8E42,0x0000, 0xFBC2,0x8E43,0x0000, 0xFBC2,0x8E44,0x0000, /* 10E42 */
+0xFBC2,0x8E45,0x0000, 0xFBC2,0x8E46,0x0000, 0xFBC2,0x8E47,0x0000, /* 10E45 */
+0xFBC2,0x8E48,0x0000, 0xFBC2,0x8E49,0x0000, 0xFBC2,0x8E4A,0x0000, /* 10E48 */
+0xFBC2,0x8E4B,0x0000, 0xFBC2,0x8E4C,0x0000, 0xFBC2,0x8E4D,0x0000, /* 10E4B */
+0xFBC2,0x8E4E,0x0000, 0xFBC2,0x8E4F,0x0000, 0xFBC2,0x8E50,0x0000, /* 10E4E */
+0xFBC2,0x8E51,0x0000, 0xFBC2,0x8E52,0x0000, 0xFBC2,0x8E53,0x0000, /* 10E51 */
+0xFBC2,0x8E54,0x0000, 0xFBC2,0x8E55,0x0000, 0xFBC2,0x8E56,0x0000, /* 10E54 */
+0xFBC2,0x8E57,0x0000, 0xFBC2,0x8E58,0x0000, 0xFBC2,0x8E59,0x0000, /* 10E57 */
+0xFBC2,0x8E5A,0x0000, 0xFBC2,0x8E5B,0x0000, 0xFBC2,0x8E5C,0x0000, /* 10E5A */
+0xFBC2,0x8E5D,0x0000, 0xFBC2,0x8E5E,0x0000, 0xFBC2,0x8E5F,0x0000, /* 10E5D */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 10E60 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 10E63 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 10E66 */
+0x1136,0x0000,0x0000, 0x1137,0x0000,0x0000, 0x1138,0x0000,0x0000, /* 10E69 */
+0x1139,0x0000,0x0000, 0x113A,0x0000,0x0000, 0x113B,0x0000,0x0000, /* 10E6C */
+0x113C,0x0000,0x0000, 0x113D,0x0000,0x0000, 0x113E,0x0000,0x0000, /* 10E6F */
+0x113F,0x0000,0x0000, 0x1140,0x0000,0x0000, 0x1141,0x0000,0x0000, /* 10E72 */
+0x1142,0x0000,0x0000, 0x1143,0x0000,0x0000, 0x1144,0x0000,0x0000, /* 10E75 */
+0x1145,0x0000,0x0000, 0x1146,0x0000,0x0000, 0x1147,0x0000,0x0000, /* 10E78 */
+0x1148,0x0000,0x0000, 0x1149,0x0000,0x0000, 0x114A,0x0000,0x0000, /* 10E7B */
+0x114B,0x0000,0x0000, 0xFBC2,0x8E7F,0x0000, 0xFBC2,0x8E80,0x0000, /* 10E7E */
+0xFBC2,0x8E81,0x0000, 0xFBC2,0x8E82,0x0000, 0xFBC2,0x8E83,0x0000, /* 10E81 */
+0xFBC2,0x8E84,0x0000, 0xFBC2,0x8E85,0x0000, 0xFBC2,0x8E86,0x0000, /* 10E84 */
+0xFBC2,0x8E87,0x0000, 0xFBC2,0x8E88,0x0000, 0xFBC2,0x8E89,0x0000, /* 10E87 */
+0xFBC2,0x8E8A,0x0000, 0xFBC2,0x8E8B,0x0000, 0xFBC2,0x8E8C,0x0000, /* 10E8A */
+0xFBC2,0x8E8D,0x0000, 0xFBC2,0x8E8E,0x0000, 0xFBC2,0x8E8F,0x0000, /* 10E8D */
+0xFBC2,0x8E90,0x0000, 0xFBC2,0x8E91,0x0000, 0xFBC2,0x8E92,0x0000, /* 10E90 */
+0xFBC2,0x8E93,0x0000, 0xFBC2,0x8E94,0x0000, 0xFBC2,0x8E95,0x0000, /* 10E93 */
+0xFBC2,0x8E96,0x0000, 0xFBC2,0x8E97,0x0000, 0xFBC2,0x8E98,0x0000, /* 10E96 */
+0xFBC2,0x8E99,0x0000, 0xFBC2,0x8E9A,0x0000, 0xFBC2,0x8E9B,0x0000, /* 10E99 */
+0xFBC2,0x8E9C,0x0000, 0xFBC2,0x8E9D,0x0000, 0xFBC2,0x8E9E,0x0000, /* 10E9C */
+0xFBC2,0x8E9F,0x0000, 0xFBC2,0x8EA0,0x0000, 0xFBC2,0x8EA1,0x0000, /* 10E9F */
+0xFBC2,0x8EA2,0x0000, 0xFBC2,0x8EA3,0x0000, 0xFBC2,0x8EA4,0x0000, /* 10EA2 */
+0xFBC2,0x8EA5,0x0000, 0xFBC2,0x8EA6,0x0000, 0xFBC2,0x8EA7,0x0000, /* 10EA5 */
+0xFBC2,0x8EA8,0x0000, 0xFBC2,0x8EA9,0x0000, 0xFBC2,0x8EAA,0x0000, /* 10EA8 */
+0xFBC2,0x8EAB,0x0000, 0xFBC2,0x8EAC,0x0000, 0xFBC2,0x8EAD,0x0000, /* 10EAB */
+0xFBC2,0x8EAE,0x0000, 0xFBC2,0x8EAF,0x0000, 0xFBC2,0x8EB0,0x0000, /* 10EAE */
+0xFBC2,0x8EB1,0x0000, 0xFBC2,0x8EB2,0x0000, 0xFBC2,0x8EB3,0x0000, /* 10EB1 */
+0xFBC2,0x8EB4,0x0000, 0xFBC2,0x8EB5,0x0000, 0xFBC2,0x8EB6,0x0000, /* 10EB4 */
+0xFBC2,0x8EB7,0x0000, 0xFBC2,0x8EB8,0x0000, 0xFBC2,0x8EB9,0x0000, /* 10EB7 */
+0xFBC2,0x8EBA,0x0000, 0xFBC2,0x8EBB,0x0000, 0xFBC2,0x8EBC,0x0000, /* 10EBA */
+0xFBC2,0x8EBD,0x0000, 0xFBC2,0x8EBE,0x0000, 0xFBC2,0x8EBF,0x0000, /* 10EBD */
+0xFBC2,0x8EC0,0x0000, 0xFBC2,0x8EC1,0x0000, 0xFBC2,0x8EC2,0x0000, /* 10EC0 */
+0xFBC2,0x8EC3,0x0000, 0xFBC2,0x8EC4,0x0000, 0xFBC2,0x8EC5,0x0000, /* 10EC3 */
+0xFBC2,0x8EC6,0x0000, 0xFBC2,0x8EC7,0x0000, 0xFBC2,0x8EC8,0x0000, /* 10EC6 */
+0xFBC2,0x8EC9,0x0000, 0xFBC2,0x8ECA,0x0000, 0xFBC2,0x8ECB,0x0000, /* 10EC9 */
+0xFBC2,0x8ECC,0x0000, 0xFBC2,0x8ECD,0x0000, 0xFBC2,0x8ECE,0x0000, /* 10ECC */
+0xFBC2,0x8ECF,0x0000, 0xFBC2,0x8ED0,0x0000, 0xFBC2,0x8ED1,0x0000, /* 10ECF */
+0xFBC2,0x8ED2,0x0000, 0xFBC2,0x8ED3,0x0000, 0xFBC2,0x8ED4,0x0000, /* 10ED2 */
+0xFBC2,0x8ED5,0x0000, 0xFBC2,0x8ED6,0x0000, 0xFBC2,0x8ED7,0x0000, /* 10ED5 */
+0xFBC2,0x8ED8,0x0000, 0xFBC2,0x8ED9,0x0000, 0xFBC2,0x8EDA,0x0000, /* 10ED8 */
+0xFBC2,0x8EDB,0x0000, 0xFBC2,0x8EDC,0x0000, 0xFBC2,0x8EDD,0x0000, /* 10EDB */
+0xFBC2,0x8EDE,0x0000, 0xFBC2,0x8EDF,0x0000, 0xFBC2,0x8EE0,0x0000, /* 10EDE */
+0xFBC2,0x8EE1,0x0000, 0xFBC2,0x8EE2,0x0000, 0xFBC2,0x8EE3,0x0000, /* 10EE1 */
+0xFBC2,0x8EE4,0x0000, 0xFBC2,0x8EE5,0x0000, 0xFBC2,0x8EE6,0x0000, /* 10EE4 */
+0xFBC2,0x8EE7,0x0000, 0xFBC2,0x8EE8,0x0000, 0xFBC2,0x8EE9,0x0000, /* 10EE7 */
+0xFBC2,0x8EEA,0x0000, 0xFBC2,0x8EEB,0x0000, 0xFBC2,0x8EEC,0x0000, /* 10EEA */
+0xFBC2,0x8EED,0x0000, 0xFBC2,0x8EEE,0x0000, 0xFBC2,0x8EEF,0x0000, /* 10EED */
+0xFBC2,0x8EF0,0x0000, 0xFBC2,0x8EF1,0x0000, 0xFBC2,0x8EF2,0x0000, /* 10EF0 */
+0xFBC2,0x8EF3,0x0000, 0xFBC2,0x8EF4,0x0000, 0xFBC2,0x8EF5,0x0000, /* 10EF3 */
+0xFBC2,0x8EF6,0x0000, 0xFBC2,0x8EF7,0x0000, 0xFBC2,0x8EF8,0x0000, /* 10EF6 */
+0xFBC2,0x8EF9,0x0000, 0xFBC2,0x8EFA,0x0000, 0xFBC2,0x8EFB,0x0000, /* 10EF9 */
+0xFBC2,0x8EFC,0x0000, 0xFBC2,0x8EFD,0x0000, 0xFBC2,0x8EFE,0x0000, /* 10EFC */
+0xFBC2,0x8EFF,0x0000 };
+
+static const uint16 uca520_p110[]= { /* 11000 (3 weights per char) */
+0xFBC2,0x9000,0x0000, 0xFBC2,0x9001,0x0000, 0xFBC2,0x9002,0x0000, /* 11000 */
+0xFBC2,0x9003,0x0000, 0xFBC2,0x9004,0x0000, 0xFBC2,0x9005,0x0000, /* 11003 */
+0xFBC2,0x9006,0x0000, 0xFBC2,0x9007,0x0000, 0xFBC2,0x9008,0x0000, /* 11006 */
+0xFBC2,0x9009,0x0000, 0xFBC2,0x900A,0x0000, 0xFBC2,0x900B,0x0000, /* 11009 */
+0xFBC2,0x900C,0x0000, 0xFBC2,0x900D,0x0000, 0xFBC2,0x900E,0x0000, /* 1100C */
+0xFBC2,0x900F,0x0000, 0xFBC2,0x9010,0x0000, 0xFBC2,0x9011,0x0000, /* 1100F */
+0xFBC2,0x9012,0x0000, 0xFBC2,0x9013,0x0000, 0xFBC2,0x9014,0x0000, /* 11012 */
+0xFBC2,0x9015,0x0000, 0xFBC2,0x9016,0x0000, 0xFBC2,0x9017,0x0000, /* 11015 */
+0xFBC2,0x9018,0x0000, 0xFBC2,0x9019,0x0000, 0xFBC2,0x901A,0x0000, /* 11018 */
+0xFBC2,0x901B,0x0000, 0xFBC2,0x901C,0x0000, 0xFBC2,0x901D,0x0000, /* 1101B */
+0xFBC2,0x901E,0x0000, 0xFBC2,0x901F,0x0000, 0xFBC2,0x9020,0x0000, /* 1101E */
+0xFBC2,0x9021,0x0000, 0xFBC2,0x9022,0x0000, 0xFBC2,0x9023,0x0000, /* 11021 */
+0xFBC2,0x9024,0x0000, 0xFBC2,0x9025,0x0000, 0xFBC2,0x9026,0x0000, /* 11024 */
+0xFBC2,0x9027,0x0000, 0xFBC2,0x9028,0x0000, 0xFBC2,0x9029,0x0000, /* 11027 */
+0xFBC2,0x902A,0x0000, 0xFBC2,0x902B,0x0000, 0xFBC2,0x902C,0x0000, /* 1102A */
+0xFBC2,0x902D,0x0000, 0xFBC2,0x902E,0x0000, 0xFBC2,0x902F,0x0000, /* 1102D */
+0xFBC2,0x9030,0x0000, 0xFBC2,0x9031,0x0000, 0xFBC2,0x9032,0x0000, /* 11030 */
+0xFBC2,0x9033,0x0000, 0xFBC2,0x9034,0x0000, 0xFBC2,0x9035,0x0000, /* 11033 */
+0xFBC2,0x9036,0x0000, 0xFBC2,0x9037,0x0000, 0xFBC2,0x9038,0x0000, /* 11036 */
+0xFBC2,0x9039,0x0000, 0xFBC2,0x903A,0x0000, 0xFBC2,0x903B,0x0000, /* 11039 */
+0xFBC2,0x903C,0x0000, 0xFBC2,0x903D,0x0000, 0xFBC2,0x903E,0x0000, /* 1103C */
+0xFBC2,0x903F,0x0000, 0xFBC2,0x9040,0x0000, 0xFBC2,0x9041,0x0000, /* 1103F */
+0xFBC2,0x9042,0x0000, 0xFBC2,0x9043,0x0000, 0xFBC2,0x9044,0x0000, /* 11042 */
+0xFBC2,0x9045,0x0000, 0xFBC2,0x9046,0x0000, 0xFBC2,0x9047,0x0000, /* 11045 */
+0xFBC2,0x9048,0x0000, 0xFBC2,0x9049,0x0000, 0xFBC2,0x904A,0x0000, /* 11048 */
+0xFBC2,0x904B,0x0000, 0xFBC2,0x904C,0x0000, 0xFBC2,0x904D,0x0000, /* 1104B */
+0xFBC2,0x904E,0x0000, 0xFBC2,0x904F,0x0000, 0xFBC2,0x9050,0x0000, /* 1104E */
+0xFBC2,0x9051,0x0000, 0xFBC2,0x9052,0x0000, 0xFBC2,0x9053,0x0000, /* 11051 */
+0xFBC2,0x9054,0x0000, 0xFBC2,0x9055,0x0000, 0xFBC2,0x9056,0x0000, /* 11054 */
+0xFBC2,0x9057,0x0000, 0xFBC2,0x9058,0x0000, 0xFBC2,0x9059,0x0000, /* 11057 */
+0xFBC2,0x905A,0x0000, 0xFBC2,0x905B,0x0000, 0xFBC2,0x905C,0x0000, /* 1105A */
+0xFBC2,0x905D,0x0000, 0xFBC2,0x905E,0x0000, 0xFBC2,0x905F,0x0000, /* 1105D */
+0xFBC2,0x9060,0x0000, 0xFBC2,0x9061,0x0000, 0xFBC2,0x9062,0x0000, /* 11060 */
+0xFBC2,0x9063,0x0000, 0xFBC2,0x9064,0x0000, 0xFBC2,0x9065,0x0000, /* 11063 */
+0xFBC2,0x9066,0x0000, 0xFBC2,0x9067,0x0000, 0xFBC2,0x9068,0x0000, /* 11066 */
+0xFBC2,0x9069,0x0000, 0xFBC2,0x906A,0x0000, 0xFBC2,0x906B,0x0000, /* 11069 */
+0xFBC2,0x906C,0x0000, 0xFBC2,0x906D,0x0000, 0xFBC2,0x906E,0x0000, /* 1106C */
+0xFBC2,0x906F,0x0000, 0xFBC2,0x9070,0x0000, 0xFBC2,0x9071,0x0000, /* 1106F */
+0xFBC2,0x9072,0x0000, 0xFBC2,0x9073,0x0000, 0xFBC2,0x9074,0x0000, /* 11072 */
+0xFBC2,0x9075,0x0000, 0xFBC2,0x9076,0x0000, 0xFBC2,0x9077,0x0000, /* 11075 */
+0xFBC2,0x9078,0x0000, 0xFBC2,0x9079,0x0000, 0xFBC2,0x907A,0x0000, /* 11078 */
+0xFBC2,0x907B,0x0000, 0xFBC2,0x907C,0x0000, 0xFBC2,0x907D,0x0000, /* 1107B */
+0xFBC2,0x907E,0x0000, 0xFBC2,0x907F,0x0000, 0x0000,0x0000,0x0000, /* 1107E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x1EE8,0x0000,0x0000, /* 11081 */
+0x1EE9,0x0000,0x0000, 0x1EEA,0x0000,0x0000, 0x1EEB,0x0000,0x0000, /* 11084 */
+0x1EEC,0x0000,0x0000, 0x1EED,0x0000,0x0000, 0x1EEE,0x0000,0x0000, /* 11087 */
+0x1EEF,0x0000,0x0000, 0x1EF0,0x0000,0x0000, 0x1EF1,0x0000,0x0000, /* 1108A */
+0x1EF2,0x0000,0x0000, 0x1EF3,0x0000,0x0000, 0x1EF4,0x0000,0x0000, /* 1108D */
+0x1EF5,0x0000,0x0000, 0x1EF6,0x0000,0x0000, 0x1EF7,0x0000,0x0000, /* 11090 */
+0x1EF8,0x0000,0x0000, 0x1EF9,0x0000,0x0000, 0x1EFA,0x0000,0x0000, /* 11093 */
+0x1EFB,0x0000,0x0000, 0x1EFC,0x0000,0x0000, 0x1EFD,0x0000,0x0000, /* 11096 */
+0x1EFE,0x0000,0x0000, 0x1EFE,0x0000,0x0000, 0x1EFF,0x0000,0x0000, /* 11099 */
+0x1EFF,0x0000,0x0000, 0x1F00,0x0000,0x0000, 0x1F01,0x0000,0x0000, /* 1109C */
+0x1F02,0x0000,0x0000, 0x1F03,0x0000,0x0000, 0x1F04,0x0000,0x0000, /* 1109F */
+0x1F05,0x0000,0x0000, 0x1F06,0x0000,0x0000, 0x1F07,0x0000,0x0000, /* 110A2 */
+0x1F08,0x0000,0x0000, 0x1F09,0x0000,0x0000, 0x1F0A,0x0000,0x0000, /* 110A5 */
+0x1F0B,0x0000,0x0000, 0x1F0C,0x0000,0x0000, 0x1F0D,0x0000,0x0000, /* 110A8 */
+0x1F08,0x0000,0x0000, 0x1F0E,0x0000,0x0000, 0x1F0F,0x0000,0x0000, /* 110AB */
+0x1F10,0x0000,0x0000, 0x1F11,0x0000,0x0000, 0x1F12,0x0000,0x0000, /* 110AE */
+0x1F13,0x0000,0x0000, 0x1F14,0x0000,0x0000, 0x1F15,0x0000,0x0000, /* 110B1 */
+0x1F16,0x0000,0x0000, 0x1F17,0x0000,0x0000, 0x1F18,0x0000,0x0000, /* 110B4 */
+0x1F19,0x0000,0x0000, 0x1F1A,0x0000,0x0000, 0x1F1B,0x0000,0x0000, /* 110B7 */
+0x0000,0x0000,0x0000, 0x03E7,0x0000,0x0000, 0x03E8,0x0000,0x0000, /* 110BA */
+0x0000,0x0000,0x0000, 0x02D1,0x0000,0x0000, 0x02D2,0x0000,0x0000, /* 110BD */
+0x02B1,0x0000,0x0000, 0x02B2,0x0000,0x0000, 0xFBC2,0x90C2,0x0000, /* 110C0 */
+0xFBC2,0x90C3,0x0000, 0xFBC2,0x90C4,0x0000, 0xFBC2,0x90C5,0x0000, /* 110C3 */
+0xFBC2,0x90C6,0x0000, 0xFBC2,0x90C7,0x0000, 0xFBC2,0x90C8,0x0000, /* 110C6 */
+0xFBC2,0x90C9,0x0000, 0xFBC2,0x90CA,0x0000, 0xFBC2,0x90CB,0x0000, /* 110C9 */
+0xFBC2,0x90CC,0x0000, 0xFBC2,0x90CD,0x0000, 0xFBC2,0x90CE,0x0000, /* 110CC */
+0xFBC2,0x90CF,0x0000, 0xFBC2,0x90D0,0x0000, 0xFBC2,0x90D1,0x0000, /* 110CF */
+0xFBC2,0x90D2,0x0000, 0xFBC2,0x90D3,0x0000, 0xFBC2,0x90D4,0x0000, /* 110D2 */
+0xFBC2,0x90D5,0x0000, 0xFBC2,0x90D6,0x0000, 0xFBC2,0x90D7,0x0000, /* 110D5 */
+0xFBC2,0x90D8,0x0000, 0xFBC2,0x90D9,0x0000, 0xFBC2,0x90DA,0x0000, /* 110D8 */
+0xFBC2,0x90DB,0x0000, 0xFBC2,0x90DC,0x0000, 0xFBC2,0x90DD,0x0000, /* 110DB */
+0xFBC2,0x90DE,0x0000, 0xFBC2,0x90DF,0x0000, 0xFBC2,0x90E0,0x0000, /* 110DE */
+0xFBC2,0x90E1,0x0000, 0xFBC2,0x90E2,0x0000, 0xFBC2,0x90E3,0x0000, /* 110E1 */
+0xFBC2,0x90E4,0x0000, 0xFBC2,0x90E5,0x0000, 0xFBC2,0x90E6,0x0000, /* 110E4 */
+0xFBC2,0x90E7,0x0000, 0xFBC2,0x90E8,0x0000, 0xFBC2,0x90E9,0x0000, /* 110E7 */
+0xFBC2,0x90EA,0x0000, 0xFBC2,0x90EB,0x0000, 0xFBC2,0x90EC,0x0000, /* 110EA */
+0xFBC2,0x90ED,0x0000, 0xFBC2,0x90EE,0x0000, 0xFBC2,0x90EF,0x0000, /* 110ED */
+0xFBC2,0x90F0,0x0000, 0xFBC2,0x90F1,0x0000, 0xFBC2,0x90F2,0x0000, /* 110F0 */
+0xFBC2,0x90F3,0x0000, 0xFBC2,0x90F4,0x0000, 0xFBC2,0x90F5,0x0000, /* 110F3 */
+0xFBC2,0x90F6,0x0000, 0xFBC2,0x90F7,0x0000, 0xFBC2,0x90F8,0x0000, /* 110F6 */
+0xFBC2,0x90F9,0x0000, 0xFBC2,0x90FA,0x0000, 0xFBC2,0x90FB,0x0000, /* 110F9 */
+0xFBC2,0x90FC,0x0000, 0xFBC2,0x90FD,0x0000, 0xFBC2,0x90FE,0x0000, /* 110FC */
+0xFBC2,0x90FF,0x0000 };
+
+static const uint16 uca520_p120[]= { /* 12000 (2 weights per char) */
+0x332D,0x0000, 0x332E,0x0000, 0x332F,0x0000, 0x3330,0x0000, /* 12000 */
+0x3331,0x0000, 0x3332,0x0000, 0x3333,0x0000, 0x3334,0x0000, /* 12004 */
+0x3335,0x0000, 0x3336,0x0000, 0x3337,0x0000, 0x3338,0x0000, /* 12008 */
+0x3339,0x0000, 0x333A,0x0000, 0x333B,0x0000, 0x333C,0x0000, /* 1200C */
+0x333D,0x0000, 0x333E,0x0000, 0x333F,0x0000, 0x3340,0x0000, /* 12010 */
+0x3341,0x0000, 0x3342,0x0000, 0x3343,0x0000, 0x3344,0x0000, /* 12014 */
+0x3345,0x0000, 0x3346,0x0000, 0x3347,0x0000, 0x3348,0x0000, /* 12018 */
+0x3349,0x0000, 0x334A,0x0000, 0x334B,0x0000, 0x334C,0x0000, /* 1201C */
+0x334D,0x0000, 0x334E,0x0000, 0x334F,0x0000, 0x3350,0x0000, /* 12020 */
+0x3351,0x0000, 0x3352,0x0000, 0x3353,0x0000, 0x3354,0x0000, /* 12024 */
+0x3355,0x0000, 0x3356,0x0000, 0x3357,0x0000, 0x3358,0x0000, /* 12028 */
+0x3359,0x0000, 0x335A,0x0000, 0x335B,0x0000, 0x335C,0x0000, /* 1202C */
+0x335D,0x0000, 0x335E,0x0000, 0x335F,0x0000, 0x3360,0x0000, /* 12030 */
+0x3361,0x0000, 0x3362,0x0000, 0x3363,0x0000, 0x3364,0x0000, /* 12034 */
+0x3365,0x0000, 0x3366,0x0000, 0x3367,0x0000, 0x3368,0x0000, /* 12038 */
+0x3369,0x0000, 0x336A,0x0000, 0x336B,0x0000, 0x336C,0x0000, /* 1203C */
+0x336D,0x0000, 0x336E,0x0000, 0x336F,0x0000, 0x3370,0x0000, /* 12040 */
+0x3371,0x0000, 0x3372,0x0000, 0x3373,0x0000, 0x3374,0x0000, /* 12044 */
+0x3375,0x0000, 0x3376,0x0000, 0x3377,0x0000, 0x3378,0x0000, /* 12048 */
+0x3379,0x0000, 0x337A,0x0000, 0x337B,0x0000, 0x337C,0x0000, /* 1204C */
+0x337D,0x0000, 0x337E,0x0000, 0x337F,0x0000, 0x3380,0x0000, /* 12050 */
+0x3381,0x0000, 0x3382,0x0000, 0x3383,0x0000, 0x3384,0x0000, /* 12054 */
+0x3385,0x0000, 0x3386,0x0000, 0x3387,0x0000, 0x3388,0x0000, /* 12058 */
+0x3389,0x0000, 0x338A,0x0000, 0x338B,0x0000, 0x338C,0x0000, /* 1205C */
+0x338D,0x0000, 0x338E,0x0000, 0x338F,0x0000, 0x3390,0x0000, /* 12060 */
+0x3391,0x0000, 0x3392,0x0000, 0x3393,0x0000, 0x3394,0x0000, /* 12064 */
+0x3395,0x0000, 0x3396,0x0000, 0x3397,0x0000, 0x3398,0x0000, /* 12068 */
+0x3399,0x0000, 0x339A,0x0000, 0x339B,0x0000, 0x339C,0x0000, /* 1206C */
+0x339D,0x0000, 0x339E,0x0000, 0x339F,0x0000, 0x33A0,0x0000, /* 12070 */
+0x33A1,0x0000, 0x33A2,0x0000, 0x33A3,0x0000, 0x33A4,0x0000, /* 12074 */
+0x33A5,0x0000, 0x33A6,0x0000, 0x33A7,0x0000, 0x33A8,0x0000, /* 12078 */
+0x33A9,0x0000, 0x33AA,0x0000, 0x33AB,0x0000, 0x33AC,0x0000, /* 1207C */
+0x33AD,0x0000, 0x33AE,0x0000, 0x33AF,0x0000, 0x33B0,0x0000, /* 12080 */
+0x33B1,0x0000, 0x33B2,0x0000, 0x33B3,0x0000, 0x33B4,0x0000, /* 12084 */
+0x33B5,0x0000, 0x33B6,0x0000, 0x33B7,0x0000, 0x33B8,0x0000, /* 12088 */
+0x33B9,0x0000, 0x33BA,0x0000, 0x33BB,0x0000, 0x33BC,0x0000, /* 1208C */
+0x33BD,0x0000, 0x33BE,0x0000, 0x33BF,0x0000, 0x33C0,0x0000, /* 12090 */
+0x33C1,0x0000, 0x33C2,0x0000, 0x33C3,0x0000, 0x33C4,0x0000, /* 12094 */
+0x33C5,0x0000, 0x33C6,0x0000, 0x33C7,0x0000, 0x33C8,0x0000, /* 12098 */
+0x33C9,0x0000, 0x33CA,0x0000, 0x33CB,0x0000, 0x33CC,0x0000, /* 1209C */
+0x33CD,0x0000, 0x33CE,0x0000, 0x33CF,0x0000, 0x33D0,0x0000, /* 120A0 */
+0x33D1,0x0000, 0x33D2,0x0000, 0x33D3,0x0000, 0x33D4,0x0000, /* 120A4 */
+0x33D5,0x0000, 0x33D6,0x0000, 0x33D7,0x0000, 0x33D8,0x0000, /* 120A8 */
+0x33D9,0x0000, 0x33DA,0x0000, 0x33DB,0x0000, 0x33DC,0x0000, /* 120AC */
+0x33DD,0x0000, 0x33DE,0x0000, 0x33DF,0x0000, 0x33E0,0x0000, /* 120B0 */
+0x33E1,0x0000, 0x33E2,0x0000, 0x33E3,0x0000, 0x33E4,0x0000, /* 120B4 */
+0x33E5,0x0000, 0x33E6,0x0000, 0x33E7,0x0000, 0x33E8,0x0000, /* 120B8 */
+0x33E9,0x0000, 0x33EA,0x0000, 0x33EB,0x0000, 0x33EC,0x0000, /* 120BC */
+0x33ED,0x0000, 0x33EE,0x0000, 0x33EF,0x0000, 0x33F0,0x0000, /* 120C0 */
+0x33F1,0x0000, 0x33F2,0x0000, 0x33F3,0x0000, 0x33F4,0x0000, /* 120C4 */
+0x33F5,0x0000, 0x33F6,0x0000, 0x33F7,0x0000, 0x33F8,0x0000, /* 120C8 */
+0x33F9,0x0000, 0x33FA,0x0000, 0x33FB,0x0000, 0x33FC,0x0000, /* 120CC */
+0x33FD,0x0000, 0x33FE,0x0000, 0x33FF,0x0000, 0x3400,0x0000, /* 120D0 */
+0x3401,0x0000, 0x3402,0x0000, 0x3403,0x0000, 0x3404,0x0000, /* 120D4 */
+0x3405,0x0000, 0x3406,0x0000, 0x3407,0x0000, 0x3408,0x0000, /* 120D8 */
+0x3409,0x0000, 0x340A,0x0000, 0x340B,0x0000, 0x340C,0x0000, /* 120DC */
+0x340D,0x0000, 0x340E,0x0000, 0x340F,0x0000, 0x3410,0x0000, /* 120E0 */
+0x3411,0x0000, 0x3412,0x0000, 0x3413,0x0000, 0x3414,0x0000, /* 120E4 */
+0x3415,0x0000, 0x3416,0x0000, 0x3417,0x0000, 0x3418,0x0000, /* 120E8 */
+0x3419,0x0000, 0x341A,0x0000, 0x341B,0x0000, 0x341C,0x0000, /* 120EC */
+0x341D,0x0000, 0x341E,0x0000, 0x341F,0x0000, 0x3420,0x0000, /* 120F0 */
+0x3421,0x0000, 0x3422,0x0000, 0x3423,0x0000, 0x3424,0x0000, /* 120F4 */
+0x3425,0x0000, 0x3426,0x0000, 0x3427,0x0000, 0x3428,0x0000, /* 120F8 */
+0x3429,0x0000, 0x342A,0x0000, 0x342B,0x0000, 0x342C,0x0000 /* 120FC */
+};
+
+static const uint16 uca520_p121[]= { /* 12100 (2 weights per char) */
+0x342D,0x0000, 0x342E,0x0000, 0x342F,0x0000, 0x3430,0x0000, /* 12100 */
+0x3431,0x0000, 0x3432,0x0000, 0x3433,0x0000, 0x3434,0x0000, /* 12104 */
+0x3435,0x0000, 0x3436,0x0000, 0x3437,0x0000, 0x3438,0x0000, /* 12108 */
+0x3439,0x0000, 0x343A,0x0000, 0x343B,0x0000, 0x343C,0x0000, /* 1210C */
+0x343D,0x0000, 0x343E,0x0000, 0x343F,0x0000, 0x3440,0x0000, /* 12110 */
+0x3441,0x0000, 0x3442,0x0000, 0x3443,0x0000, 0x3444,0x0000, /* 12114 */
+0x3445,0x0000, 0x3446,0x0000, 0x3447,0x0000, 0x3448,0x0000, /* 12118 */
+0x3449,0x0000, 0x344A,0x0000, 0x344B,0x0000, 0x344C,0x0000, /* 1211C */
+0x344D,0x0000, 0x344E,0x0000, 0x344F,0x0000, 0x3450,0x0000, /* 12120 */
+0x3451,0x0000, 0x3452,0x0000, 0x3453,0x0000, 0x3454,0x0000, /* 12124 */
+0x3455,0x0000, 0x3456,0x0000, 0x3457,0x0000, 0x3458,0x0000, /* 12128 */
+0x3459,0x0000, 0x345A,0x0000, 0x345B,0x0000, 0x345C,0x0000, /* 1212C */
+0x345D,0x0000, 0x345E,0x0000, 0x345F,0x0000, 0x3460,0x0000, /* 12130 */
+0x3461,0x0000, 0x3462,0x0000, 0x3463,0x0000, 0x3464,0x0000, /* 12134 */
+0x3465,0x0000, 0x3466,0x0000, 0x3467,0x0000, 0x3468,0x0000, /* 12138 */
+0x3469,0x0000, 0x346A,0x0000, 0x346B,0x0000, 0x346C,0x0000, /* 1213C */
+0x346D,0x0000, 0x346E,0x0000, 0x346F,0x0000, 0x3470,0x0000, /* 12140 */
+0x3471,0x0000, 0x3472,0x0000, 0x3473,0x0000, 0x3474,0x0000, /* 12144 */
+0x3475,0x0000, 0x3476,0x0000, 0x3477,0x0000, 0x3478,0x0000, /* 12148 */
+0x3479,0x0000, 0x347A,0x0000, 0x347B,0x0000, 0x347C,0x0000, /* 1214C */
+0x347D,0x0000, 0x347E,0x0000, 0x347F,0x0000, 0x3480,0x0000, /* 12150 */
+0x3481,0x0000, 0x3482,0x0000, 0x3483,0x0000, 0x3484,0x0000, /* 12154 */
+0x3485,0x0000, 0x3486,0x0000, 0x3487,0x0000, 0x3488,0x0000, /* 12158 */
+0x3489,0x0000, 0x348A,0x0000, 0x348B,0x0000, 0x348C,0x0000, /* 1215C */
+0x348D,0x0000, 0x348E,0x0000, 0x348F,0x0000, 0x3490,0x0000, /* 12160 */
+0x3491,0x0000, 0x3492,0x0000, 0x3493,0x0000, 0x3494,0x0000, /* 12164 */
+0x3495,0x0000, 0x3496,0x0000, 0x3497,0x0000, 0x3498,0x0000, /* 12168 */
+0x3499,0x0000, 0x349A,0x0000, 0x349B,0x0000, 0x349C,0x0000, /* 1216C */
+0x349D,0x0000, 0x349E,0x0000, 0x349F,0x0000, 0x34A0,0x0000, /* 12170 */
+0x34A1,0x0000, 0x34A2,0x0000, 0x34A3,0x0000, 0x34A4,0x0000, /* 12174 */
+0x34A5,0x0000, 0x34A6,0x0000, 0x34A7,0x0000, 0x34A8,0x0000, /* 12178 */
+0x34A9,0x0000, 0x34AA,0x0000, 0x34AB,0x0000, 0x34AC,0x0000, /* 1217C */
+0x34AD,0x0000, 0x34AE,0x0000, 0x34AF,0x0000, 0x34B0,0x0000, /* 12180 */
+0x34B1,0x0000, 0x34B2,0x0000, 0x34B3,0x0000, 0x34B4,0x0000, /* 12184 */
+0x34B5,0x0000, 0x34B6,0x0000, 0x34B7,0x0000, 0x34B8,0x0000, /* 12188 */
+0x34B9,0x0000, 0x34BA,0x0000, 0x34BB,0x0000, 0x34BC,0x0000, /* 1218C */
+0x34BD,0x0000, 0x34BE,0x0000, 0x34BF,0x0000, 0x34C0,0x0000, /* 12190 */
+0x34C1,0x0000, 0x34C2,0x0000, 0x34C3,0x0000, 0x34C4,0x0000, /* 12194 */
+0x34C5,0x0000, 0x34C6,0x0000, 0x34C7,0x0000, 0x34C8,0x0000, /* 12198 */
+0x34C9,0x0000, 0x34CA,0x0000, 0x34CB,0x0000, 0x34CC,0x0000, /* 1219C */
+0x34CD,0x0000, 0x34CE,0x0000, 0x34CF,0x0000, 0x34D0,0x0000, /* 121A0 */
+0x34D1,0x0000, 0x34D2,0x0000, 0x34D3,0x0000, 0x34D4,0x0000, /* 121A4 */
+0x34D5,0x0000, 0x34D6,0x0000, 0x34D7,0x0000, 0x34D8,0x0000, /* 121A8 */
+0x34D9,0x0000, 0x34DA,0x0000, 0x34DB,0x0000, 0x34DC,0x0000, /* 121AC */
+0x34DD,0x0000, 0x34DE,0x0000, 0x34DF,0x0000, 0x34E0,0x0000, /* 121B0 */
+0x34E1,0x0000, 0x34E2,0x0000, 0x34E3,0x0000, 0x34E4,0x0000, /* 121B4 */
+0x34E5,0x0000, 0x34E6,0x0000, 0x34E7,0x0000, 0x34E8,0x0000, /* 121B8 */
+0x34E9,0x0000, 0x34EA,0x0000, 0x34EB,0x0000, 0x34EC,0x0000, /* 121BC */
+0x34ED,0x0000, 0x34EE,0x0000, 0x34EF,0x0000, 0x34F0,0x0000, /* 121C0 */
+0x34F1,0x0000, 0x34F2,0x0000, 0x34F3,0x0000, 0x34F4,0x0000, /* 121C4 */
+0x34F5,0x0000, 0x34F6,0x0000, 0x34F7,0x0000, 0x34F8,0x0000, /* 121C8 */
+0x34F9,0x0000, 0x34FA,0x0000, 0x34FB,0x0000, 0x34FC,0x0000, /* 121CC */
+0x34FD,0x0000, 0x34FE,0x0000, 0x34FF,0x0000, 0x3500,0x0000, /* 121D0 */
+0x3501,0x0000, 0x3502,0x0000, 0x3503,0x0000, 0x3504,0x0000, /* 121D4 */
+0x3505,0x0000, 0x3506,0x0000, 0x3507,0x0000, 0x3508,0x0000, /* 121D8 */
+0x3509,0x0000, 0x350A,0x0000, 0x350B,0x0000, 0x350C,0x0000, /* 121DC */
+0x350D,0x0000, 0x350E,0x0000, 0x350F,0x0000, 0x3510,0x0000, /* 121E0 */
+0x3511,0x0000, 0x3512,0x0000, 0x3513,0x0000, 0x3514,0x0000, /* 121E4 */
+0x3515,0x0000, 0x3516,0x0000, 0x3517,0x0000, 0x3518,0x0000, /* 121E8 */
+0x3519,0x0000, 0x351A,0x0000, 0x351B,0x0000, 0x351C,0x0000, /* 121EC */
+0x351D,0x0000, 0x351E,0x0000, 0x351F,0x0000, 0x3520,0x0000, /* 121F0 */
+0x3521,0x0000, 0x3522,0x0000, 0x3523,0x0000, 0x3524,0x0000, /* 121F4 */
+0x3525,0x0000, 0x3526,0x0000, 0x3527,0x0000, 0x3528,0x0000, /* 121F8 */
+0x3529,0x0000, 0x352A,0x0000, 0x352B,0x0000, 0x352C,0x0000 /* 121FC */
+};
+
+static const uint16 uca520_p122[]= { /* 12200 (2 weights per char) */
+0x352D,0x0000, 0x352E,0x0000, 0x352F,0x0000, 0x3530,0x0000, /* 12200 */
+0x3531,0x0000, 0x3532,0x0000, 0x3533,0x0000, 0x3534,0x0000, /* 12204 */
+0x3535,0x0000, 0x3536,0x0000, 0x3537,0x0000, 0x3538,0x0000, /* 12208 */
+0x3539,0x0000, 0x353A,0x0000, 0x353B,0x0000, 0x353C,0x0000, /* 1220C */
+0x353D,0x0000, 0x353E,0x0000, 0x353F,0x0000, 0x3540,0x0000, /* 12210 */
+0x3541,0x0000, 0x3542,0x0000, 0x3543,0x0000, 0x3544,0x0000, /* 12214 */
+0x3545,0x0000, 0x3546,0x0000, 0x3547,0x0000, 0x3548,0x0000, /* 12218 */
+0x3549,0x0000, 0x354A,0x0000, 0x354B,0x0000, 0x354C,0x0000, /* 1221C */
+0x354D,0x0000, 0x354E,0x0000, 0x354F,0x0000, 0x3550,0x0000, /* 12220 */
+0x3551,0x0000, 0x3552,0x0000, 0x3553,0x0000, 0x3554,0x0000, /* 12224 */
+0x3555,0x0000, 0x3556,0x0000, 0x3557,0x0000, 0x3558,0x0000, /* 12228 */
+0x3559,0x0000, 0x355A,0x0000, 0x355B,0x0000, 0x355C,0x0000, /* 1222C */
+0x355D,0x0000, 0x355E,0x0000, 0x355F,0x0000, 0x3560,0x0000, /* 12230 */
+0x3561,0x0000, 0x3562,0x0000, 0x3563,0x0000, 0x3564,0x0000, /* 12234 */
+0x3565,0x0000, 0x3566,0x0000, 0x3567,0x0000, 0x3568,0x0000, /* 12238 */
+0x3569,0x0000, 0x356A,0x0000, 0x356B,0x0000, 0x356C,0x0000, /* 1223C */
+0x356D,0x0000, 0x356E,0x0000, 0x356F,0x0000, 0x3570,0x0000, /* 12240 */
+0x3571,0x0000, 0x3572,0x0000, 0x3573,0x0000, 0x3574,0x0000, /* 12244 */
+0x3575,0x0000, 0x3576,0x0000, 0x3577,0x0000, 0x3578,0x0000, /* 12248 */
+0x3579,0x0000, 0x357A,0x0000, 0x357B,0x0000, 0x357C,0x0000, /* 1224C */
+0x357D,0x0000, 0x357E,0x0000, 0x357F,0x0000, 0x3580,0x0000, /* 12250 */
+0x3581,0x0000, 0x3582,0x0000, 0x3583,0x0000, 0x3584,0x0000, /* 12254 */
+0x3585,0x0000, 0x3586,0x0000, 0x3587,0x0000, 0x3588,0x0000, /* 12258 */
+0x3589,0x0000, 0x358A,0x0000, 0x358B,0x0000, 0x358C,0x0000, /* 1225C */
+0x358D,0x0000, 0x358E,0x0000, 0x358F,0x0000, 0x3590,0x0000, /* 12260 */
+0x3591,0x0000, 0x3592,0x0000, 0x3593,0x0000, 0x3594,0x0000, /* 12264 */
+0x3595,0x0000, 0x3596,0x0000, 0x3597,0x0000, 0x3598,0x0000, /* 12268 */
+0x3599,0x0000, 0x359A,0x0000, 0x359B,0x0000, 0x359C,0x0000, /* 1226C */
+0x359D,0x0000, 0x359E,0x0000, 0x359F,0x0000, 0x35A0,0x0000, /* 12270 */
+0x35A1,0x0000, 0x35A2,0x0000, 0x35A3,0x0000, 0x35A4,0x0000, /* 12274 */
+0x35A5,0x0000, 0x35A6,0x0000, 0x35A7,0x0000, 0x35A8,0x0000, /* 12278 */
+0x35A9,0x0000, 0x35AA,0x0000, 0x35AB,0x0000, 0x35AC,0x0000, /* 1227C */
+0x35AD,0x0000, 0x35AE,0x0000, 0x35AF,0x0000, 0x35B0,0x0000, /* 12280 */
+0x35B1,0x0000, 0x35B2,0x0000, 0x35B3,0x0000, 0x35B4,0x0000, /* 12284 */
+0x35B5,0x0000, 0x35B6,0x0000, 0x35B7,0x0000, 0x35B8,0x0000, /* 12288 */
+0x35B9,0x0000, 0x35BA,0x0000, 0x35BB,0x0000, 0x35BC,0x0000, /* 1228C */
+0x35BD,0x0000, 0x35BE,0x0000, 0x35BF,0x0000, 0x35C0,0x0000, /* 12290 */
+0x35C1,0x0000, 0x35C2,0x0000, 0x35C3,0x0000, 0x35C4,0x0000, /* 12294 */
+0x35C5,0x0000, 0x35C6,0x0000, 0x35C7,0x0000, 0x35C8,0x0000, /* 12298 */
+0x35C9,0x0000, 0x35CA,0x0000, 0x35CB,0x0000, 0x35CC,0x0000, /* 1229C */
+0x35CD,0x0000, 0x35CE,0x0000, 0x35CF,0x0000, 0x35D0,0x0000, /* 122A0 */
+0x35D1,0x0000, 0x35D2,0x0000, 0x35D3,0x0000, 0x35D4,0x0000, /* 122A4 */
+0x35D5,0x0000, 0x35D6,0x0000, 0x35D7,0x0000, 0x35D8,0x0000, /* 122A8 */
+0x35D9,0x0000, 0x35DA,0x0000, 0x35DB,0x0000, 0x35DC,0x0000, /* 122AC */
+0x35DD,0x0000, 0x35DE,0x0000, 0x35DF,0x0000, 0x35E0,0x0000, /* 122B0 */
+0x35E1,0x0000, 0x35E2,0x0000, 0x35E3,0x0000, 0x35E4,0x0000, /* 122B4 */
+0x35E5,0x0000, 0x35E6,0x0000, 0x35E7,0x0000, 0x35E8,0x0000, /* 122B8 */
+0x35E9,0x0000, 0x35EA,0x0000, 0x35EB,0x0000, 0x35EC,0x0000, /* 122BC */
+0x35ED,0x0000, 0x35EE,0x0000, 0x35EF,0x0000, 0x35F0,0x0000, /* 122C0 */
+0x35F1,0x0000, 0x35F2,0x0000, 0x35F3,0x0000, 0x35F4,0x0000, /* 122C4 */
+0x35F5,0x0000, 0x35F6,0x0000, 0x35F7,0x0000, 0x35F8,0x0000, /* 122C8 */
+0x35F9,0x0000, 0x35FA,0x0000, 0x35FB,0x0000, 0x35FC,0x0000, /* 122CC */
+0x35FD,0x0000, 0x35FE,0x0000, 0x35FF,0x0000, 0x3600,0x0000, /* 122D0 */
+0x3601,0x0000, 0x3602,0x0000, 0x3603,0x0000, 0x3604,0x0000, /* 122D4 */
+0x3605,0x0000, 0x3606,0x0000, 0x3607,0x0000, 0x3608,0x0000, /* 122D8 */
+0x3609,0x0000, 0x360A,0x0000, 0x360B,0x0000, 0x360C,0x0000, /* 122DC */
+0x360D,0x0000, 0x360E,0x0000, 0x360F,0x0000, 0x3610,0x0000, /* 122E0 */
+0x3611,0x0000, 0x3612,0x0000, 0x3613,0x0000, 0x3614,0x0000, /* 122E4 */
+0x3615,0x0000, 0x3616,0x0000, 0x3617,0x0000, 0x3618,0x0000, /* 122E8 */
+0x3619,0x0000, 0x361A,0x0000, 0x361B,0x0000, 0x361C,0x0000, /* 122EC */
+0x361D,0x0000, 0x361E,0x0000, 0x361F,0x0000, 0x3620,0x0000, /* 122F0 */
+0x3621,0x0000, 0x3622,0x0000, 0x3623,0x0000, 0x3624,0x0000, /* 122F4 */
+0x3625,0x0000, 0x3626,0x0000, 0x3627,0x0000, 0x3628,0x0000, /* 122F8 */
+0x3629,0x0000, 0x362A,0x0000, 0x362B,0x0000, 0x362C,0x0000 /* 122FC */
+};
+
+static const uint16 uca520_p123[]= { /* 12300 (3 weights per char) */
+0x362D,0x0000,0x0000, 0x362E,0x0000,0x0000, 0x362F,0x0000,0x0000, /* 12300 */
+0x3630,0x0000,0x0000, 0x3631,0x0000,0x0000, 0x3632,0x0000,0x0000, /* 12303 */
+0x3633,0x0000,0x0000, 0x3634,0x0000,0x0000, 0x3635,0x0000,0x0000, /* 12306 */
+0x3636,0x0000,0x0000, 0x3637,0x0000,0x0000, 0x3638,0x0000,0x0000, /* 12309 */
+0x3639,0x0000,0x0000, 0x363A,0x0000,0x0000, 0x363B,0x0000,0x0000, /* 1230C */
+0x363C,0x0000,0x0000, 0x363D,0x0000,0x0000, 0x363E,0x0000,0x0000, /* 1230F */
+0x363F,0x0000,0x0000, 0x3640,0x0000,0x0000, 0x3641,0x0000,0x0000, /* 12312 */
+0x3642,0x0000,0x0000, 0x3643,0x0000,0x0000, 0x3644,0x0000,0x0000, /* 12315 */
+0x3645,0x0000,0x0000, 0x3646,0x0000,0x0000, 0x3647,0x0000,0x0000, /* 12318 */
+0x3648,0x0000,0x0000, 0x3649,0x0000,0x0000, 0x364A,0x0000,0x0000, /* 1231B */
+0x364B,0x0000,0x0000, 0x364C,0x0000,0x0000, 0x364D,0x0000,0x0000, /* 1231E */
+0x364E,0x0000,0x0000, 0x364F,0x0000,0x0000, 0x3650,0x0000,0x0000, /* 12321 */
+0x3651,0x0000,0x0000, 0x3652,0x0000,0x0000, 0x3653,0x0000,0x0000, /* 12324 */
+0x3654,0x0000,0x0000, 0x3655,0x0000,0x0000, 0x3656,0x0000,0x0000, /* 12327 */
+0x3657,0x0000,0x0000, 0x3658,0x0000,0x0000, 0x3659,0x0000,0x0000, /* 1232A */
+0x365A,0x0000,0x0000, 0x365B,0x0000,0x0000, 0x365C,0x0000,0x0000, /* 1232D */
+0x365D,0x0000,0x0000, 0x365E,0x0000,0x0000, 0x365F,0x0000,0x0000, /* 12330 */
+0x3660,0x0000,0x0000, 0x3661,0x0000,0x0000, 0x3662,0x0000,0x0000, /* 12333 */
+0x3663,0x0000,0x0000, 0x3664,0x0000,0x0000, 0x3665,0x0000,0x0000, /* 12336 */
+0x3666,0x0000,0x0000, 0x3667,0x0000,0x0000, 0x3668,0x0000,0x0000, /* 12339 */
+0x3669,0x0000,0x0000, 0x366A,0x0000,0x0000, 0x366B,0x0000,0x0000, /* 1233C */
+0x366C,0x0000,0x0000, 0x366D,0x0000,0x0000, 0x366E,0x0000,0x0000, /* 1233F */
+0x366F,0x0000,0x0000, 0x3670,0x0000,0x0000, 0x3671,0x0000,0x0000, /* 12342 */
+0x3672,0x0000,0x0000, 0x3673,0x0000,0x0000, 0x3674,0x0000,0x0000, /* 12345 */
+0x3675,0x0000,0x0000, 0x3676,0x0000,0x0000, 0x3677,0x0000,0x0000, /* 12348 */
+0x3678,0x0000,0x0000, 0x3679,0x0000,0x0000, 0x367A,0x0000,0x0000, /* 1234B */
+0x367B,0x0000,0x0000, 0x367C,0x0000,0x0000, 0x367D,0x0000,0x0000, /* 1234E */
+0x367E,0x0000,0x0000, 0x367F,0x0000,0x0000, 0x3680,0x0000,0x0000, /* 12351 */
+0x3681,0x0000,0x0000, 0x3682,0x0000,0x0000, 0x3683,0x0000,0x0000, /* 12354 */
+0x3684,0x0000,0x0000, 0x3685,0x0000,0x0000, 0x3686,0x0000,0x0000, /* 12357 */
+0x3687,0x0000,0x0000, 0x3688,0x0000,0x0000, 0x3689,0x0000,0x0000, /* 1235A */
+0x368A,0x0000,0x0000, 0x368B,0x0000,0x0000, 0x368C,0x0000,0x0000, /* 1235D */
+0x368D,0x0000,0x0000, 0x368E,0x0000,0x0000, 0x368F,0x0000,0x0000, /* 12360 */
+0x3690,0x0000,0x0000, 0x3691,0x0000,0x0000, 0x3692,0x0000,0x0000, /* 12363 */
+0x3693,0x0000,0x0000, 0x3694,0x0000,0x0000, 0x3695,0x0000,0x0000, /* 12366 */
+0x3696,0x0000,0x0000, 0x3697,0x0000,0x0000, 0x3698,0x0000,0x0000, /* 12369 */
+0x3699,0x0000,0x0000, 0x369A,0x0000,0x0000, 0x369B,0x0000,0x0000, /* 1236C */
+0xFBC2,0xA36F,0x0000, 0xFBC2,0xA370,0x0000, 0xFBC2,0xA371,0x0000, /* 1236F */
+0xFBC2,0xA372,0x0000, 0xFBC2,0xA373,0x0000, 0xFBC2,0xA374,0x0000, /* 12372 */
+0xFBC2,0xA375,0x0000, 0xFBC2,0xA376,0x0000, 0xFBC2,0xA377,0x0000, /* 12375 */
+0xFBC2,0xA378,0x0000, 0xFBC2,0xA379,0x0000, 0xFBC2,0xA37A,0x0000, /* 12378 */
+0xFBC2,0xA37B,0x0000, 0xFBC2,0xA37C,0x0000, 0xFBC2,0xA37D,0x0000, /* 1237B */
+0xFBC2,0xA37E,0x0000, 0xFBC2,0xA37F,0x0000, 0xFBC2,0xA380,0x0000, /* 1237E */
+0xFBC2,0xA381,0x0000, 0xFBC2,0xA382,0x0000, 0xFBC2,0xA383,0x0000, /* 12381 */
+0xFBC2,0xA384,0x0000, 0xFBC2,0xA385,0x0000, 0xFBC2,0xA386,0x0000, /* 12384 */
+0xFBC2,0xA387,0x0000, 0xFBC2,0xA388,0x0000, 0xFBC2,0xA389,0x0000, /* 12387 */
+0xFBC2,0xA38A,0x0000, 0xFBC2,0xA38B,0x0000, 0xFBC2,0xA38C,0x0000, /* 1238A */
+0xFBC2,0xA38D,0x0000, 0xFBC2,0xA38E,0x0000, 0xFBC2,0xA38F,0x0000, /* 1238D */
+0xFBC2,0xA390,0x0000, 0xFBC2,0xA391,0x0000, 0xFBC2,0xA392,0x0000, /* 12390 */
+0xFBC2,0xA393,0x0000, 0xFBC2,0xA394,0x0000, 0xFBC2,0xA395,0x0000, /* 12393 */
+0xFBC2,0xA396,0x0000, 0xFBC2,0xA397,0x0000, 0xFBC2,0xA398,0x0000, /* 12396 */
+0xFBC2,0xA399,0x0000, 0xFBC2,0xA39A,0x0000, 0xFBC2,0xA39B,0x0000, /* 12399 */
+0xFBC2,0xA39C,0x0000, 0xFBC2,0xA39D,0x0000, 0xFBC2,0xA39E,0x0000, /* 1239C */
+0xFBC2,0xA39F,0x0000, 0xFBC2,0xA3A0,0x0000, 0xFBC2,0xA3A1,0x0000, /* 1239F */
+0xFBC2,0xA3A2,0x0000, 0xFBC2,0xA3A3,0x0000, 0xFBC2,0xA3A4,0x0000, /* 123A2 */
+0xFBC2,0xA3A5,0x0000, 0xFBC2,0xA3A6,0x0000, 0xFBC2,0xA3A7,0x0000, /* 123A5 */
+0xFBC2,0xA3A8,0x0000, 0xFBC2,0xA3A9,0x0000, 0xFBC2,0xA3AA,0x0000, /* 123A8 */
+0xFBC2,0xA3AB,0x0000, 0xFBC2,0xA3AC,0x0000, 0xFBC2,0xA3AD,0x0000, /* 123AB */
+0xFBC2,0xA3AE,0x0000, 0xFBC2,0xA3AF,0x0000, 0xFBC2,0xA3B0,0x0000, /* 123AE */
+0xFBC2,0xA3B1,0x0000, 0xFBC2,0xA3B2,0x0000, 0xFBC2,0xA3B3,0x0000, /* 123B1 */
+0xFBC2,0xA3B4,0x0000, 0xFBC2,0xA3B5,0x0000, 0xFBC2,0xA3B6,0x0000, /* 123B4 */
+0xFBC2,0xA3B7,0x0000, 0xFBC2,0xA3B8,0x0000, 0xFBC2,0xA3B9,0x0000, /* 123B7 */
+0xFBC2,0xA3BA,0x0000, 0xFBC2,0xA3BB,0x0000, 0xFBC2,0xA3BC,0x0000, /* 123BA */
+0xFBC2,0xA3BD,0x0000, 0xFBC2,0xA3BE,0x0000, 0xFBC2,0xA3BF,0x0000, /* 123BD */
+0xFBC2,0xA3C0,0x0000, 0xFBC2,0xA3C1,0x0000, 0xFBC2,0xA3C2,0x0000, /* 123C0 */
+0xFBC2,0xA3C3,0x0000, 0xFBC2,0xA3C4,0x0000, 0xFBC2,0xA3C5,0x0000, /* 123C3 */
+0xFBC2,0xA3C6,0x0000, 0xFBC2,0xA3C7,0x0000, 0xFBC2,0xA3C8,0x0000, /* 123C6 */
+0xFBC2,0xA3C9,0x0000, 0xFBC2,0xA3CA,0x0000, 0xFBC2,0xA3CB,0x0000, /* 123C9 */
+0xFBC2,0xA3CC,0x0000, 0xFBC2,0xA3CD,0x0000, 0xFBC2,0xA3CE,0x0000, /* 123CC */
+0xFBC2,0xA3CF,0x0000, 0xFBC2,0xA3D0,0x0000, 0xFBC2,0xA3D1,0x0000, /* 123CF */
+0xFBC2,0xA3D2,0x0000, 0xFBC2,0xA3D3,0x0000, 0xFBC2,0xA3D4,0x0000, /* 123D2 */
+0xFBC2,0xA3D5,0x0000, 0xFBC2,0xA3D6,0x0000, 0xFBC2,0xA3D7,0x0000, /* 123D5 */
+0xFBC2,0xA3D8,0x0000, 0xFBC2,0xA3D9,0x0000, 0xFBC2,0xA3DA,0x0000, /* 123D8 */
+0xFBC2,0xA3DB,0x0000, 0xFBC2,0xA3DC,0x0000, 0xFBC2,0xA3DD,0x0000, /* 123DB */
+0xFBC2,0xA3DE,0x0000, 0xFBC2,0xA3DF,0x0000, 0xFBC2,0xA3E0,0x0000, /* 123DE */
+0xFBC2,0xA3E1,0x0000, 0xFBC2,0xA3E2,0x0000, 0xFBC2,0xA3E3,0x0000, /* 123E1 */
+0xFBC2,0xA3E4,0x0000, 0xFBC2,0xA3E5,0x0000, 0xFBC2,0xA3E6,0x0000, /* 123E4 */
+0xFBC2,0xA3E7,0x0000, 0xFBC2,0xA3E8,0x0000, 0xFBC2,0xA3E9,0x0000, /* 123E7 */
+0xFBC2,0xA3EA,0x0000, 0xFBC2,0xA3EB,0x0000, 0xFBC2,0xA3EC,0x0000, /* 123EA */
+0xFBC2,0xA3ED,0x0000, 0xFBC2,0xA3EE,0x0000, 0xFBC2,0xA3EF,0x0000, /* 123ED */
+0xFBC2,0xA3F0,0x0000, 0xFBC2,0xA3F1,0x0000, 0xFBC2,0xA3F2,0x0000, /* 123F0 */
+0xFBC2,0xA3F3,0x0000, 0xFBC2,0xA3F4,0x0000, 0xFBC2,0xA3F5,0x0000, /* 123F3 */
+0xFBC2,0xA3F6,0x0000, 0xFBC2,0xA3F7,0x0000, 0xFBC2,0xA3F8,0x0000, /* 123F6 */
+0xFBC2,0xA3F9,0x0000, 0xFBC2,0xA3FA,0x0000, 0xFBC2,0xA3FB,0x0000, /* 123F9 */
+0xFBC2,0xA3FC,0x0000, 0xFBC2,0xA3FD,0x0000, 0xFBC2,0xA3FE,0x0000, /* 123FC */
+0xFBC2,0xA3FF,0x0000 };
+
+static const uint16 uca520_p124[]= { /* 12400 (3 weights per char) */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12400 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 12403 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12406 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 12409 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1240C */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1240F */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 12412 */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12415 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 12418 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1241B */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1241E */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12421 */
+0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12424 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 12427 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1242A */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1242D */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x11B8,0x0000,0x0000, /* 12430 */
+0x11B9,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12433 */
+0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12436 */
+0x120A,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 12439 */
+0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1243C */
+0x1209,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1243F */
+0x120C,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 12442 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 12445 */
+0x120E,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12448 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1244B */
+0x120B,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1244E */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 12451 */
+0x120A,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x11BA,0x0000,0x0000, /* 12454 */
+0x11BB,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 12457 */
+0x11BC,0x0000,0x0000, 0x11BD,0x0000,0x0000, 0x11BE,0x0000,0x0000, /* 1245A */
+0x11BF,0x0000,0x0000, 0x11C0,0x0000,0x0000, 0x11C1,0x0000,0x0000, /* 1245D */
+0x11C2,0x0000,0x0000, 0x11C3,0x0000,0x0000, 0x11C4,0x0000,0x0000, /* 12460 */
+0xFBC2,0xA463,0x0000, 0xFBC2,0xA464,0x0000, 0xFBC2,0xA465,0x0000, /* 12463 */
+0xFBC2,0xA466,0x0000, 0xFBC2,0xA467,0x0000, 0xFBC2,0xA468,0x0000, /* 12466 */
+0xFBC2,0xA469,0x0000, 0xFBC2,0xA46A,0x0000, 0xFBC2,0xA46B,0x0000, /* 12469 */
+0xFBC2,0xA46C,0x0000, 0xFBC2,0xA46D,0x0000, 0xFBC2,0xA46E,0x0000, /* 1246C */
+0xFBC2,0xA46F,0x0000, 0x02EA,0x0000,0x0000, 0x02EB,0x0000,0x0000, /* 1246F */
+0x02EC,0x0000,0x0000, 0x02ED,0x0000,0x0000, 0xFBC2,0xA474,0x0000, /* 12472 */
+0xFBC2,0xA475,0x0000, 0xFBC2,0xA476,0x0000, 0xFBC2,0xA477,0x0000, /* 12475 */
+0xFBC2,0xA478,0x0000, 0xFBC2,0xA479,0x0000, 0xFBC2,0xA47A,0x0000, /* 12478 */
+0xFBC2,0xA47B,0x0000, 0xFBC2,0xA47C,0x0000, 0xFBC2,0xA47D,0x0000, /* 1247B */
+0xFBC2,0xA47E,0x0000, 0xFBC2,0xA47F,0x0000, 0xFBC2,0xA480,0x0000, /* 1247E */
+0xFBC2,0xA481,0x0000, 0xFBC2,0xA482,0x0000, 0xFBC2,0xA483,0x0000, /* 12481 */
+0xFBC2,0xA484,0x0000, 0xFBC2,0xA485,0x0000, 0xFBC2,0xA486,0x0000, /* 12484 */
+0xFBC2,0xA487,0x0000, 0xFBC2,0xA488,0x0000, 0xFBC2,0xA489,0x0000, /* 12487 */
+0xFBC2,0xA48A,0x0000, 0xFBC2,0xA48B,0x0000, 0xFBC2,0xA48C,0x0000, /* 1248A */
+0xFBC2,0xA48D,0x0000, 0xFBC2,0xA48E,0x0000, 0xFBC2,0xA48F,0x0000, /* 1248D */
+0xFBC2,0xA490,0x0000, 0xFBC2,0xA491,0x0000, 0xFBC2,0xA492,0x0000, /* 12490 */
+0xFBC2,0xA493,0x0000, 0xFBC2,0xA494,0x0000, 0xFBC2,0xA495,0x0000, /* 12493 */
+0xFBC2,0xA496,0x0000, 0xFBC2,0xA497,0x0000, 0xFBC2,0xA498,0x0000, /* 12496 */
+0xFBC2,0xA499,0x0000, 0xFBC2,0xA49A,0x0000, 0xFBC2,0xA49B,0x0000, /* 12499 */
+0xFBC2,0xA49C,0x0000, 0xFBC2,0xA49D,0x0000, 0xFBC2,0xA49E,0x0000, /* 1249C */
+0xFBC2,0xA49F,0x0000, 0xFBC2,0xA4A0,0x0000, 0xFBC2,0xA4A1,0x0000, /* 1249F */
+0xFBC2,0xA4A2,0x0000, 0xFBC2,0xA4A3,0x0000, 0xFBC2,0xA4A4,0x0000, /* 124A2 */
+0xFBC2,0xA4A5,0x0000, 0xFBC2,0xA4A6,0x0000, 0xFBC2,0xA4A7,0x0000, /* 124A5 */
+0xFBC2,0xA4A8,0x0000, 0xFBC2,0xA4A9,0x0000, 0xFBC2,0xA4AA,0x0000, /* 124A8 */
+0xFBC2,0xA4AB,0x0000, 0xFBC2,0xA4AC,0x0000, 0xFBC2,0xA4AD,0x0000, /* 124AB */
+0xFBC2,0xA4AE,0x0000, 0xFBC2,0xA4AF,0x0000, 0xFBC2,0xA4B0,0x0000, /* 124AE */
+0xFBC2,0xA4B1,0x0000, 0xFBC2,0xA4B2,0x0000, 0xFBC2,0xA4B3,0x0000, /* 124B1 */
+0xFBC2,0xA4B4,0x0000, 0xFBC2,0xA4B5,0x0000, 0xFBC2,0xA4B6,0x0000, /* 124B4 */
+0xFBC2,0xA4B7,0x0000, 0xFBC2,0xA4B8,0x0000, 0xFBC2,0xA4B9,0x0000, /* 124B7 */
+0xFBC2,0xA4BA,0x0000, 0xFBC2,0xA4BB,0x0000, 0xFBC2,0xA4BC,0x0000, /* 124BA */
+0xFBC2,0xA4BD,0x0000, 0xFBC2,0xA4BE,0x0000, 0xFBC2,0xA4BF,0x0000, /* 124BD */
+0xFBC2,0xA4C0,0x0000, 0xFBC2,0xA4C1,0x0000, 0xFBC2,0xA4C2,0x0000, /* 124C0 */
+0xFBC2,0xA4C3,0x0000, 0xFBC2,0xA4C4,0x0000, 0xFBC2,0xA4C5,0x0000, /* 124C3 */
+0xFBC2,0xA4C6,0x0000, 0xFBC2,0xA4C7,0x0000, 0xFBC2,0xA4C8,0x0000, /* 124C6 */
+0xFBC2,0xA4C9,0x0000, 0xFBC2,0xA4CA,0x0000, 0xFBC2,0xA4CB,0x0000, /* 124C9 */
+0xFBC2,0xA4CC,0x0000, 0xFBC2,0xA4CD,0x0000, 0xFBC2,0xA4CE,0x0000, /* 124CC */
+0xFBC2,0xA4CF,0x0000, 0xFBC2,0xA4D0,0x0000, 0xFBC2,0xA4D1,0x0000, /* 124CF */
+0xFBC2,0xA4D2,0x0000, 0xFBC2,0xA4D3,0x0000, 0xFBC2,0xA4D4,0x0000, /* 124D2 */
+0xFBC2,0xA4D5,0x0000, 0xFBC2,0xA4D6,0x0000, 0xFBC2,0xA4D7,0x0000, /* 124D5 */
+0xFBC2,0xA4D8,0x0000, 0xFBC2,0xA4D9,0x0000, 0xFBC2,0xA4DA,0x0000, /* 124D8 */
+0xFBC2,0xA4DB,0x0000, 0xFBC2,0xA4DC,0x0000, 0xFBC2,0xA4DD,0x0000, /* 124DB */
+0xFBC2,0xA4DE,0x0000, 0xFBC2,0xA4DF,0x0000, 0xFBC2,0xA4E0,0x0000, /* 124DE */
+0xFBC2,0xA4E1,0x0000, 0xFBC2,0xA4E2,0x0000, 0xFBC2,0xA4E3,0x0000, /* 124E1 */
+0xFBC2,0xA4E4,0x0000, 0xFBC2,0xA4E5,0x0000, 0xFBC2,0xA4E6,0x0000, /* 124E4 */
+0xFBC2,0xA4E7,0x0000, 0xFBC2,0xA4E8,0x0000, 0xFBC2,0xA4E9,0x0000, /* 124E7 */
+0xFBC2,0xA4EA,0x0000, 0xFBC2,0xA4EB,0x0000, 0xFBC2,0xA4EC,0x0000, /* 124EA */
+0xFBC2,0xA4ED,0x0000, 0xFBC2,0xA4EE,0x0000, 0xFBC2,0xA4EF,0x0000, /* 124ED */
+0xFBC2,0xA4F0,0x0000, 0xFBC2,0xA4F1,0x0000, 0xFBC2,0xA4F2,0x0000, /* 124F0 */
+0xFBC2,0xA4F3,0x0000, 0xFBC2,0xA4F4,0x0000, 0xFBC2,0xA4F5,0x0000, /* 124F3 */
+0xFBC2,0xA4F6,0x0000, 0xFBC2,0xA4F7,0x0000, 0xFBC2,0xA4F8,0x0000, /* 124F6 */
+0xFBC2,0xA4F9,0x0000, 0xFBC2,0xA4FA,0x0000, 0xFBC2,0xA4FB,0x0000, /* 124F9 */
+0xFBC2,0xA4FC,0x0000, 0xFBC2,0xA4FD,0x0000, 0xFBC2,0xA4FE,0x0000, /* 124FC */
+0xFBC2,0xA4FF,0x0000 };
+
+static const uint16 uca520_p130[]= { /* 13000 (2 weights per char) */
+0x369C,0x0000, 0x369D,0x0000, 0x369E,0x0000, 0x369F,0x0000, /* 13000 */
+0x36A0,0x0000, 0x36A1,0x0000, 0x36A2,0x0000, 0x36A3,0x0000, /* 13004 */
+0x36A4,0x0000, 0x36A5,0x0000, 0x36A6,0x0000, 0x36A7,0x0000, /* 13008 */
+0x36A8,0x0000, 0x36A9,0x0000, 0x36AA,0x0000, 0x36AB,0x0000, /* 1300C */
+0x36AC,0x0000, 0x36AD,0x0000, 0x36AE,0x0000, 0x36AF,0x0000, /* 13010 */
+0x36B0,0x0000, 0x36B1,0x0000, 0x36B2,0x0000, 0x36B3,0x0000, /* 13014 */
+0x36B4,0x0000, 0x36B5,0x0000, 0x36B6,0x0000, 0x36B7,0x0000, /* 13018 */
+0x36B8,0x0000, 0x36B9,0x0000, 0x36BA,0x0000, 0x36BB,0x0000, /* 1301C */
+0x36BC,0x0000, 0x36BD,0x0000, 0x36BE,0x0000, 0x36BF,0x0000, /* 13020 */
+0x36C0,0x0000, 0x36C1,0x0000, 0x36C2,0x0000, 0x36C3,0x0000, /* 13024 */
+0x36C4,0x0000, 0x36C5,0x0000, 0x36C6,0x0000, 0x36C7,0x0000, /* 13028 */
+0x36C8,0x0000, 0x36C9,0x0000, 0x36CA,0x0000, 0x36CB,0x0000, /* 1302C */
+0x36CC,0x0000, 0x36CD,0x0000, 0x36CE,0x0000, 0x36CF,0x0000, /* 13030 */
+0x36D0,0x0000, 0x36D1,0x0000, 0x36D2,0x0000, 0x36D3,0x0000, /* 13034 */
+0x36D4,0x0000, 0x36D5,0x0000, 0x36D6,0x0000, 0x36D7,0x0000, /* 13038 */
+0x36D8,0x0000, 0x36D9,0x0000, 0x36DA,0x0000, 0x36DB,0x0000, /* 1303C */
+0x36DC,0x0000, 0x36DD,0x0000, 0x36DE,0x0000, 0x36DF,0x0000, /* 13040 */
+0x36E0,0x0000, 0x36E1,0x0000, 0x36E2,0x0000, 0x36E3,0x0000, /* 13044 */
+0x36E4,0x0000, 0x36E5,0x0000, 0x36E6,0x0000, 0x36E7,0x0000, /* 13048 */
+0x36E8,0x0000, 0x36E9,0x0000, 0x36EA,0x0000, 0x36EB,0x0000, /* 1304C */
+0x36EC,0x0000, 0x36ED,0x0000, 0x36EE,0x0000, 0x36EF,0x0000, /* 13050 */
+0x36F0,0x0000, 0x36F1,0x0000, 0x36F2,0x0000, 0x36F3,0x0000, /* 13054 */
+0x36F4,0x0000, 0x36F5,0x0000, 0x36F6,0x0000, 0x36F7,0x0000, /* 13058 */
+0x36F8,0x0000, 0x36F9,0x0000, 0x36FA,0x0000, 0x36FB,0x0000, /* 1305C */
+0x36FC,0x0000, 0x36FD,0x0000, 0x36FE,0x0000, 0x36FF,0x0000, /* 13060 */
+0x3700,0x0000, 0x3701,0x0000, 0x3702,0x0000, 0x3703,0x0000, /* 13064 */
+0x3704,0x0000, 0x3705,0x0000, 0x3706,0x0000, 0x3707,0x0000, /* 13068 */
+0x3708,0x0000, 0x3709,0x0000, 0x370A,0x0000, 0x370B,0x0000, /* 1306C */
+0x370C,0x0000, 0x370D,0x0000, 0x370E,0x0000, 0x370F,0x0000, /* 13070 */
+0x3710,0x0000, 0x3711,0x0000, 0x3712,0x0000, 0x3713,0x0000, /* 13074 */
+0x3714,0x0000, 0x3715,0x0000, 0x3716,0x0000, 0x3717,0x0000, /* 13078 */
+0x3718,0x0000, 0x3719,0x0000, 0x371A,0x0000, 0x371B,0x0000, /* 1307C */
+0x371C,0x0000, 0x371D,0x0000, 0x371E,0x0000, 0x371F,0x0000, /* 13080 */
+0x3720,0x0000, 0x3721,0x0000, 0x3722,0x0000, 0x3723,0x0000, /* 13084 */
+0x3724,0x0000, 0x3725,0x0000, 0x3726,0x0000, 0x3727,0x0000, /* 13088 */
+0x3728,0x0000, 0x3729,0x0000, 0x372A,0x0000, 0x372B,0x0000, /* 1308C */
+0x372C,0x0000, 0x372D,0x0000, 0x372E,0x0000, 0x372F,0x0000, /* 13090 */
+0x3730,0x0000, 0x3731,0x0000, 0x3732,0x0000, 0x3733,0x0000, /* 13094 */
+0x3734,0x0000, 0x3735,0x0000, 0x3736,0x0000, 0x3737,0x0000, /* 13098 */
+0x3738,0x0000, 0x3739,0x0000, 0x373A,0x0000, 0x373B,0x0000, /* 1309C */
+0x373C,0x0000, 0x373D,0x0000, 0x373E,0x0000, 0x373F,0x0000, /* 130A0 */
+0x3740,0x0000, 0x3741,0x0000, 0x3742,0x0000, 0x3743,0x0000, /* 130A4 */
+0x3744,0x0000, 0x3745,0x0000, 0x3746,0x0000, 0x3747,0x0000, /* 130A8 */
+0x3748,0x0000, 0x3749,0x0000, 0x374A,0x0000, 0x374B,0x0000, /* 130AC */
+0x374C,0x0000, 0x374D,0x0000, 0x374E,0x0000, 0x374F,0x0000, /* 130B0 */
+0x3750,0x0000, 0x3751,0x0000, 0x3752,0x0000, 0x3753,0x0000, /* 130B4 */
+0x3754,0x0000, 0x3755,0x0000, 0x3756,0x0000, 0x3757,0x0000, /* 130B8 */
+0x3758,0x0000, 0x3759,0x0000, 0x375A,0x0000, 0x375B,0x0000, /* 130BC */
+0x375C,0x0000, 0x375D,0x0000, 0x375E,0x0000, 0x375F,0x0000, /* 130C0 */
+0x3760,0x0000, 0x3761,0x0000, 0x3762,0x0000, 0x3763,0x0000, /* 130C4 */
+0x3764,0x0000, 0x3765,0x0000, 0x3766,0x0000, 0x3767,0x0000, /* 130C8 */
+0x3768,0x0000, 0x3769,0x0000, 0x376A,0x0000, 0x376B,0x0000, /* 130CC */
+0x376C,0x0000, 0x376D,0x0000, 0x376E,0x0000, 0x376F,0x0000, /* 130D0 */
+0x3770,0x0000, 0x3771,0x0000, 0x3772,0x0000, 0x3773,0x0000, /* 130D4 */
+0x3774,0x0000, 0x3775,0x0000, 0x3776,0x0000, 0x3777,0x0000, /* 130D8 */
+0x3778,0x0000, 0x3779,0x0000, 0x377A,0x0000, 0x377B,0x0000, /* 130DC */
+0x377C,0x0000, 0x377D,0x0000, 0x377E,0x0000, 0x377F,0x0000, /* 130E0 */
+0x3780,0x0000, 0x3781,0x0000, 0x3782,0x0000, 0x3783,0x0000, /* 130E4 */
+0x3784,0x0000, 0x3785,0x0000, 0x3786,0x0000, 0x3787,0x0000, /* 130E8 */
+0x3788,0x0000, 0x3789,0x0000, 0x378A,0x0000, 0x378B,0x0000, /* 130EC */
+0x378C,0x0000, 0x378D,0x0000, 0x378E,0x0000, 0x378F,0x0000, /* 130F0 */
+0x3790,0x0000, 0x3791,0x0000, 0x3792,0x0000, 0x3793,0x0000, /* 130F4 */
+0x3794,0x0000, 0x3795,0x0000, 0x3796,0x0000, 0x3797,0x0000, /* 130F8 */
+0x3798,0x0000, 0x3799,0x0000, 0x379A,0x0000, 0x379B,0x0000 /* 130FC */
+};
+
+static const uint16 uca520_p131[]= { /* 13100 (2 weights per char) */
+0x379C,0x0000, 0x379D,0x0000, 0x379E,0x0000, 0x379F,0x0000, /* 13100 */
+0x37A0,0x0000, 0x37A1,0x0000, 0x37A2,0x0000, 0x37A3,0x0000, /* 13104 */
+0x37A4,0x0000, 0x37A5,0x0000, 0x37A6,0x0000, 0x37A7,0x0000, /* 13108 */
+0x37A8,0x0000, 0x37A9,0x0000, 0x37AA,0x0000, 0x37AB,0x0000, /* 1310C */
+0x37AC,0x0000, 0x37AD,0x0000, 0x37AE,0x0000, 0x37AF,0x0000, /* 13110 */
+0x37B0,0x0000, 0x37B1,0x0000, 0x37B2,0x0000, 0x37B3,0x0000, /* 13114 */
+0x37B4,0x0000, 0x37B5,0x0000, 0x37B6,0x0000, 0x37B7,0x0000, /* 13118 */
+0x37B8,0x0000, 0x37B9,0x0000, 0x37BA,0x0000, 0x37BB,0x0000, /* 1311C */
+0x37BC,0x0000, 0x37BD,0x0000, 0x37BE,0x0000, 0x37BF,0x0000, /* 13120 */
+0x37C0,0x0000, 0x37C1,0x0000, 0x37C2,0x0000, 0x37C3,0x0000, /* 13124 */
+0x37C4,0x0000, 0x37C5,0x0000, 0x37C6,0x0000, 0x37C7,0x0000, /* 13128 */
+0x37C8,0x0000, 0x37C9,0x0000, 0x37CA,0x0000, 0x37CB,0x0000, /* 1312C */
+0x37CC,0x0000, 0x37CD,0x0000, 0x37CE,0x0000, 0x37CF,0x0000, /* 13130 */
+0x37D0,0x0000, 0x37D1,0x0000, 0x37D2,0x0000, 0x37D3,0x0000, /* 13134 */
+0x37D4,0x0000, 0x37D5,0x0000, 0x37D6,0x0000, 0x37D7,0x0000, /* 13138 */
+0x37D8,0x0000, 0x37D9,0x0000, 0x37DA,0x0000, 0x37DB,0x0000, /* 1313C */
+0x37DC,0x0000, 0x37DD,0x0000, 0x37DE,0x0000, 0x37DF,0x0000, /* 13140 */
+0x37E0,0x0000, 0x37E1,0x0000, 0x37E2,0x0000, 0x37E3,0x0000, /* 13144 */
+0x37E4,0x0000, 0x37E5,0x0000, 0x37E6,0x0000, 0x37E7,0x0000, /* 13148 */
+0x37E8,0x0000, 0x37E9,0x0000, 0x37EA,0x0000, 0x37EB,0x0000, /* 1314C */
+0x37EC,0x0000, 0x37ED,0x0000, 0x37EE,0x0000, 0x37EF,0x0000, /* 13150 */
+0x37F0,0x0000, 0x37F1,0x0000, 0x37F2,0x0000, 0x37F3,0x0000, /* 13154 */
+0x37F4,0x0000, 0x37F5,0x0000, 0x37F6,0x0000, 0x37F7,0x0000, /* 13158 */
+0x37F8,0x0000, 0x37F9,0x0000, 0x37FA,0x0000, 0x37FB,0x0000, /* 1315C */
+0x37FC,0x0000, 0x37FD,0x0000, 0x37FE,0x0000, 0x37FF,0x0000, /* 13160 */
+0x3800,0x0000, 0x3801,0x0000, 0x3802,0x0000, 0x3803,0x0000, /* 13164 */
+0x3804,0x0000, 0x3805,0x0000, 0x3806,0x0000, 0x3807,0x0000, /* 13168 */
+0x3808,0x0000, 0x3809,0x0000, 0x380A,0x0000, 0x380B,0x0000, /* 1316C */
+0x380C,0x0000, 0x380D,0x0000, 0x380E,0x0000, 0x380F,0x0000, /* 13170 */
+0x3810,0x0000, 0x3811,0x0000, 0x3812,0x0000, 0x3813,0x0000, /* 13174 */
+0x3814,0x0000, 0x3815,0x0000, 0x3816,0x0000, 0x3817,0x0000, /* 13178 */
+0x3818,0x0000, 0x3819,0x0000, 0x381A,0x0000, 0x381B,0x0000, /* 1317C */
+0x381C,0x0000, 0x381D,0x0000, 0x381E,0x0000, 0x381F,0x0000, /* 13180 */
+0x3820,0x0000, 0x3821,0x0000, 0x3822,0x0000, 0x3823,0x0000, /* 13184 */
+0x3824,0x0000, 0x3825,0x0000, 0x3826,0x0000, 0x3827,0x0000, /* 13188 */
+0x3828,0x0000, 0x3829,0x0000, 0x382A,0x0000, 0x382B,0x0000, /* 1318C */
+0x382C,0x0000, 0x382D,0x0000, 0x382E,0x0000, 0x382F,0x0000, /* 13190 */
+0x3830,0x0000, 0x3831,0x0000, 0x3832,0x0000, 0x3833,0x0000, /* 13194 */
+0x3834,0x0000, 0x3835,0x0000, 0x3836,0x0000, 0x3837,0x0000, /* 13198 */
+0x3838,0x0000, 0x3839,0x0000, 0x383A,0x0000, 0x383B,0x0000, /* 1319C */
+0x383C,0x0000, 0x383D,0x0000, 0x383E,0x0000, 0x383F,0x0000, /* 131A0 */
+0x3840,0x0000, 0x3841,0x0000, 0x3842,0x0000, 0x3843,0x0000, /* 131A4 */
+0x3844,0x0000, 0x3845,0x0000, 0x3846,0x0000, 0x3847,0x0000, /* 131A8 */
+0x3848,0x0000, 0x3849,0x0000, 0x384A,0x0000, 0x384B,0x0000, /* 131AC */
+0x384C,0x0000, 0x384D,0x0000, 0x384E,0x0000, 0x384F,0x0000, /* 131B0 */
+0x3850,0x0000, 0x3851,0x0000, 0x3852,0x0000, 0x3853,0x0000, /* 131B4 */
+0x3854,0x0000, 0x3855,0x0000, 0x3856,0x0000, 0x3857,0x0000, /* 131B8 */
+0x3858,0x0000, 0x3859,0x0000, 0x385A,0x0000, 0x385B,0x0000, /* 131BC */
+0x385C,0x0000, 0x385D,0x0000, 0x385E,0x0000, 0x385F,0x0000, /* 131C0 */
+0x3860,0x0000, 0x3861,0x0000, 0x3862,0x0000, 0x3863,0x0000, /* 131C4 */
+0x3864,0x0000, 0x3865,0x0000, 0x3866,0x0000, 0x3867,0x0000, /* 131C8 */
+0x3868,0x0000, 0x3869,0x0000, 0x386A,0x0000, 0x386B,0x0000, /* 131CC */
+0x386C,0x0000, 0x386D,0x0000, 0x386E,0x0000, 0x386F,0x0000, /* 131D0 */
+0x3870,0x0000, 0x3871,0x0000, 0x3872,0x0000, 0x3873,0x0000, /* 131D4 */
+0x3874,0x0000, 0x3875,0x0000, 0x3876,0x0000, 0x3877,0x0000, /* 131D8 */
+0x3878,0x0000, 0x3879,0x0000, 0x387A,0x0000, 0x387B,0x0000, /* 131DC */
+0x387C,0x0000, 0x387D,0x0000, 0x387E,0x0000, 0x387F,0x0000, /* 131E0 */
+0x3880,0x0000, 0x3881,0x0000, 0x3882,0x0000, 0x3883,0x0000, /* 131E4 */
+0x3884,0x0000, 0x3885,0x0000, 0x3886,0x0000, 0x3887,0x0000, /* 131E8 */
+0x3888,0x0000, 0x3889,0x0000, 0x388A,0x0000, 0x388B,0x0000, /* 131EC */
+0x388C,0x0000, 0x388D,0x0000, 0x388E,0x0000, 0x388F,0x0000, /* 131F0 */
+0x3890,0x0000, 0x3891,0x0000, 0x3892,0x0000, 0x3893,0x0000, /* 131F4 */
+0x3894,0x0000, 0x3895,0x0000, 0x3896,0x0000, 0x3897,0x0000, /* 131F8 */
+0x3898,0x0000, 0x3899,0x0000, 0x389A,0x0000, 0x389B,0x0000 /* 131FC */
+};
+
+static const uint16 uca520_p132[]= { /* 13200 (2 weights per char) */
+0x389C,0x0000, 0x389D,0x0000, 0x389E,0x0000, 0x389F,0x0000, /* 13200 */
+0x38A0,0x0000, 0x38A1,0x0000, 0x38A2,0x0000, 0x38A3,0x0000, /* 13204 */
+0x38A4,0x0000, 0x38A5,0x0000, 0x38A6,0x0000, 0x38A7,0x0000, /* 13208 */
+0x38A8,0x0000, 0x38A9,0x0000, 0x38AA,0x0000, 0x38AB,0x0000, /* 1320C */
+0x38AC,0x0000, 0x38AD,0x0000, 0x38AE,0x0000, 0x38AF,0x0000, /* 13210 */
+0x38B0,0x0000, 0x38B1,0x0000, 0x38B2,0x0000, 0x38B3,0x0000, /* 13214 */
+0x38B4,0x0000, 0x38B5,0x0000, 0x38B6,0x0000, 0x38B7,0x0000, /* 13218 */
+0x38B8,0x0000, 0x38B9,0x0000, 0x38BA,0x0000, 0x38BB,0x0000, /* 1321C */
+0x38BC,0x0000, 0x38BD,0x0000, 0x38BE,0x0000, 0x38BF,0x0000, /* 13220 */
+0x38C0,0x0000, 0x38C1,0x0000, 0x38C2,0x0000, 0x38C3,0x0000, /* 13224 */
+0x38C4,0x0000, 0x38C5,0x0000, 0x38C6,0x0000, 0x38C7,0x0000, /* 13228 */
+0x38C8,0x0000, 0x38C9,0x0000, 0x38CA,0x0000, 0x38CB,0x0000, /* 1322C */
+0x38CC,0x0000, 0x38CD,0x0000, 0x38CE,0x0000, 0x38CF,0x0000, /* 13230 */
+0x38D0,0x0000, 0x38D1,0x0000, 0x38D2,0x0000, 0x38D3,0x0000, /* 13234 */
+0x38D4,0x0000, 0x38D5,0x0000, 0x38D6,0x0000, 0x38D7,0x0000, /* 13238 */
+0x38D8,0x0000, 0x38D9,0x0000, 0x38DA,0x0000, 0x38DB,0x0000, /* 1323C */
+0x38DC,0x0000, 0x38DD,0x0000, 0x38DE,0x0000, 0x38DF,0x0000, /* 13240 */
+0x38E0,0x0000, 0x38E1,0x0000, 0x38E2,0x0000, 0x38E3,0x0000, /* 13244 */
+0x38E4,0x0000, 0x38E5,0x0000, 0x38E6,0x0000, 0x38E7,0x0000, /* 13248 */
+0x38E8,0x0000, 0x38E9,0x0000, 0x38EA,0x0000, 0x38EB,0x0000, /* 1324C */
+0x38EC,0x0000, 0x38ED,0x0000, 0x38EE,0x0000, 0x38EF,0x0000, /* 13250 */
+0x38F0,0x0000, 0x38F1,0x0000, 0x38F2,0x0000, 0x38F3,0x0000, /* 13254 */
+0x38F4,0x0000, 0x38F5,0x0000, 0x38F6,0x0000, 0x38F7,0x0000, /* 13258 */
+0x38F8,0x0000, 0x38F9,0x0000, 0x38FA,0x0000, 0x38FB,0x0000, /* 1325C */
+0x38FC,0x0000, 0x38FD,0x0000, 0x38FE,0x0000, 0x38FF,0x0000, /* 13260 */
+0x3900,0x0000, 0x3901,0x0000, 0x3902,0x0000, 0x3903,0x0000, /* 13264 */
+0x3904,0x0000, 0x3905,0x0000, 0x3906,0x0000, 0x3907,0x0000, /* 13268 */
+0x3908,0x0000, 0x3909,0x0000, 0x390A,0x0000, 0x390B,0x0000, /* 1326C */
+0x390C,0x0000, 0x390D,0x0000, 0x390E,0x0000, 0x390F,0x0000, /* 13270 */
+0x3910,0x0000, 0x3911,0x0000, 0x3912,0x0000, 0x3913,0x0000, /* 13274 */
+0x3914,0x0000, 0x3915,0x0000, 0x3916,0x0000, 0x3917,0x0000, /* 13278 */
+0x3918,0x0000, 0x3919,0x0000, 0x391A,0x0000, 0x391B,0x0000, /* 1327C */
+0x391C,0x0000, 0x391D,0x0000, 0x391E,0x0000, 0x391F,0x0000, /* 13280 */
+0x3920,0x0000, 0x3921,0x0000, 0x3922,0x0000, 0x3923,0x0000, /* 13284 */
+0x3924,0x0000, 0x3925,0x0000, 0x3926,0x0000, 0x3927,0x0000, /* 13288 */
+0x3928,0x0000, 0x3929,0x0000, 0x392A,0x0000, 0x392B,0x0000, /* 1328C */
+0x392C,0x0000, 0x392D,0x0000, 0x392E,0x0000, 0x392F,0x0000, /* 13290 */
+0x3930,0x0000, 0x3931,0x0000, 0x3932,0x0000, 0x3933,0x0000, /* 13294 */
+0x3934,0x0000, 0x3935,0x0000, 0x3936,0x0000, 0x3937,0x0000, /* 13298 */
+0x3938,0x0000, 0x3939,0x0000, 0x393A,0x0000, 0x393B,0x0000, /* 1329C */
+0x393C,0x0000, 0x393D,0x0000, 0x393E,0x0000, 0x393F,0x0000, /* 132A0 */
+0x3940,0x0000, 0x3941,0x0000, 0x3942,0x0000, 0x3943,0x0000, /* 132A4 */
+0x3944,0x0000, 0x3945,0x0000, 0x3946,0x0000, 0x3947,0x0000, /* 132A8 */
+0x3948,0x0000, 0x3949,0x0000, 0x394A,0x0000, 0x394B,0x0000, /* 132AC */
+0x394C,0x0000, 0x394D,0x0000, 0x394E,0x0000, 0x394F,0x0000, /* 132B0 */
+0x3950,0x0000, 0x3951,0x0000, 0x3952,0x0000, 0x3953,0x0000, /* 132B4 */
+0x3954,0x0000, 0x3955,0x0000, 0x3956,0x0000, 0x3957,0x0000, /* 132B8 */
+0x3958,0x0000, 0x3959,0x0000, 0x395A,0x0000, 0x395B,0x0000, /* 132BC */
+0x395C,0x0000, 0x395D,0x0000, 0x395E,0x0000, 0x395F,0x0000, /* 132C0 */
+0x3960,0x0000, 0x3961,0x0000, 0x3962,0x0000, 0x3963,0x0000, /* 132C4 */
+0x3964,0x0000, 0x3965,0x0000, 0x3966,0x0000, 0x3967,0x0000, /* 132C8 */
+0x3968,0x0000, 0x3969,0x0000, 0x396A,0x0000, 0x396B,0x0000, /* 132CC */
+0x396C,0x0000, 0x396D,0x0000, 0x396E,0x0000, 0x396F,0x0000, /* 132D0 */
+0x3970,0x0000, 0x3971,0x0000, 0x3972,0x0000, 0x3973,0x0000, /* 132D4 */
+0x3974,0x0000, 0x3975,0x0000, 0x3976,0x0000, 0x3977,0x0000, /* 132D8 */
+0x3978,0x0000, 0x3979,0x0000, 0x397A,0x0000, 0x397B,0x0000, /* 132DC */
+0x397C,0x0000, 0x397D,0x0000, 0x397E,0x0000, 0x397F,0x0000, /* 132E0 */
+0x3980,0x0000, 0x3981,0x0000, 0x3982,0x0000, 0x3983,0x0000, /* 132E4 */
+0x3984,0x0000, 0x3985,0x0000, 0x3986,0x0000, 0x3987,0x0000, /* 132E8 */
+0x3988,0x0000, 0x3989,0x0000, 0x398A,0x0000, 0x398B,0x0000, /* 132EC */
+0x398C,0x0000, 0x398D,0x0000, 0x398E,0x0000, 0x398F,0x0000, /* 132F0 */
+0x3990,0x0000, 0x3991,0x0000, 0x3992,0x0000, 0x3993,0x0000, /* 132F4 */
+0x3994,0x0000, 0x3995,0x0000, 0x3996,0x0000, 0x3997,0x0000, /* 132F8 */
+0x3998,0x0000, 0x3999,0x0000, 0x399A,0x0000, 0x399B,0x0000 /* 132FC */
+};
+
+static const uint16 uca520_p133[]= { /* 13300 (2 weights per char) */
+0x399C,0x0000, 0x399D,0x0000, 0x399E,0x0000, 0x399F,0x0000, /* 13300 */
+0x39A0,0x0000, 0x39A1,0x0000, 0x39A2,0x0000, 0x39A3,0x0000, /* 13304 */
+0x39A4,0x0000, 0x39A5,0x0000, 0x39A6,0x0000, 0x39A7,0x0000, /* 13308 */
+0x39A8,0x0000, 0x39A9,0x0000, 0x39AA,0x0000, 0x39AB,0x0000, /* 1330C */
+0x39AC,0x0000, 0x39AD,0x0000, 0x39AE,0x0000, 0x39AF,0x0000, /* 13310 */
+0x39B0,0x0000, 0x39B1,0x0000, 0x39B2,0x0000, 0x39B3,0x0000, /* 13314 */
+0x39B4,0x0000, 0x39B5,0x0000, 0x39B6,0x0000, 0x39B7,0x0000, /* 13318 */
+0x39B8,0x0000, 0x39B9,0x0000, 0x39BA,0x0000, 0x39BB,0x0000, /* 1331C */
+0x39BC,0x0000, 0x39BD,0x0000, 0x39BE,0x0000, 0x39BF,0x0000, /* 13320 */
+0x39C0,0x0000, 0x39C1,0x0000, 0x39C2,0x0000, 0x39C3,0x0000, /* 13324 */
+0x39C4,0x0000, 0x39C5,0x0000, 0x39C6,0x0000, 0x39C7,0x0000, /* 13328 */
+0x39C8,0x0000, 0x39C9,0x0000, 0x39CA,0x0000, 0x39CB,0x0000, /* 1332C */
+0x39CC,0x0000, 0x39CD,0x0000, 0x39CE,0x0000, 0x39CF,0x0000, /* 13330 */
+0x39D0,0x0000, 0x39D1,0x0000, 0x39D2,0x0000, 0x39D3,0x0000, /* 13334 */
+0x39D4,0x0000, 0x39D5,0x0000, 0x39D6,0x0000, 0x39D7,0x0000, /* 13338 */
+0x39D8,0x0000, 0x39D9,0x0000, 0x39DA,0x0000, 0x39DB,0x0000, /* 1333C */
+0x39DC,0x0000, 0x39DD,0x0000, 0x39DE,0x0000, 0x39DF,0x0000, /* 13340 */
+0x39E0,0x0000, 0x39E1,0x0000, 0x39E2,0x0000, 0x39E3,0x0000, /* 13344 */
+0x39E4,0x0000, 0x39E5,0x0000, 0x39E6,0x0000, 0x39E7,0x0000, /* 13348 */
+0x39E8,0x0000, 0x39E9,0x0000, 0x39EA,0x0000, 0x39EB,0x0000, /* 1334C */
+0x39EC,0x0000, 0x39ED,0x0000, 0x39EE,0x0000, 0x39EF,0x0000, /* 13350 */
+0x39F0,0x0000, 0x39F1,0x0000, 0x39F2,0x0000, 0x39F3,0x0000, /* 13354 */
+0x39F4,0x0000, 0x39F5,0x0000, 0x39F6,0x0000, 0x39F7,0x0000, /* 13358 */
+0x39F8,0x0000, 0x39F9,0x0000, 0x39FA,0x0000, 0x39FB,0x0000, /* 1335C */
+0x39FC,0x0000, 0x39FD,0x0000, 0x39FE,0x0000, 0x39FF,0x0000, /* 13360 */
+0x3A00,0x0000, 0x3A01,0x0000, 0x3A02,0x0000, 0x3A03,0x0000, /* 13364 */
+0x3A04,0x0000, 0x3A05,0x0000, 0x3A06,0x0000, 0x3A07,0x0000, /* 13368 */
+0x3A08,0x0000, 0x3A09,0x0000, 0x3A0A,0x0000, 0x3A0B,0x0000, /* 1336C */
+0x3A0C,0x0000, 0x3A0D,0x0000, 0x3A0E,0x0000, 0x3A0F,0x0000, /* 13370 */
+0x3A10,0x0000, 0x3A11,0x0000, 0x3A12,0x0000, 0x3A13,0x0000, /* 13374 */
+0x3A14,0x0000, 0x3A15,0x0000, 0x3A16,0x0000, 0x3A17,0x0000, /* 13378 */
+0x3A18,0x0000, 0x3A19,0x0000, 0x3A1A,0x0000, 0x3A1B,0x0000, /* 1337C */
+0x3A1C,0x0000, 0x3A1D,0x0000, 0x3A1E,0x0000, 0x3A1F,0x0000, /* 13380 */
+0x3A20,0x0000, 0x3A21,0x0000, 0x3A22,0x0000, 0x3A23,0x0000, /* 13384 */
+0x3A24,0x0000, 0x3A25,0x0000, 0x3A26,0x0000, 0x3A27,0x0000, /* 13388 */
+0x3A28,0x0000, 0x3A29,0x0000, 0x3A2A,0x0000, 0x3A2B,0x0000, /* 1338C */
+0x3A2C,0x0000, 0x3A2D,0x0000, 0x3A2E,0x0000, 0x3A2F,0x0000, /* 13390 */
+0x3A30,0x0000, 0x3A31,0x0000, 0x3A32,0x0000, 0x3A33,0x0000, /* 13394 */
+0x3A34,0x0000, 0x3A35,0x0000, 0x3A36,0x0000, 0x3A37,0x0000, /* 13398 */
+0x3A38,0x0000, 0x3A39,0x0000, 0x3A3A,0x0000, 0x3A3B,0x0000, /* 1339C */
+0x3A3C,0x0000, 0x3A3D,0x0000, 0x3A3E,0x0000, 0x3A3F,0x0000, /* 133A0 */
+0x3A40,0x0000, 0x3A41,0x0000, 0x3A42,0x0000, 0x3A43,0x0000, /* 133A4 */
+0x3A44,0x0000, 0x3A45,0x0000, 0x3A46,0x0000, 0x3A47,0x0000, /* 133A8 */
+0x3A48,0x0000, 0x3A49,0x0000, 0x3A4A,0x0000, 0x3A4B,0x0000, /* 133AC */
+0x3A4C,0x0000, 0x3A4D,0x0000, 0x3A4E,0x0000, 0x3A4F,0x0000, /* 133B0 */
+0x3A50,0x0000, 0x3A51,0x0000, 0x3A52,0x0000, 0x3A53,0x0000, /* 133B4 */
+0x3A54,0x0000, 0x3A55,0x0000, 0x3A56,0x0000, 0x3A57,0x0000, /* 133B8 */
+0x3A58,0x0000, 0x3A59,0x0000, 0x3A5A,0x0000, 0x3A5B,0x0000, /* 133BC */
+0x3A5C,0x0000, 0x3A5D,0x0000, 0x3A5E,0x0000, 0x3A5F,0x0000, /* 133C0 */
+0x3A60,0x0000, 0x3A61,0x0000, 0x3A62,0x0000, 0x3A63,0x0000, /* 133C4 */
+0x3A64,0x0000, 0x3A65,0x0000, 0x3A66,0x0000, 0x3A67,0x0000, /* 133C8 */
+0x3A68,0x0000, 0x3A69,0x0000, 0x3A6A,0x0000, 0x3A6B,0x0000, /* 133CC */
+0x3A6C,0x0000, 0x3A6D,0x0000, 0x3A6E,0x0000, 0x3A6F,0x0000, /* 133D0 */
+0x3A70,0x0000, 0x3A71,0x0000, 0x3A72,0x0000, 0x3A73,0x0000, /* 133D4 */
+0x3A74,0x0000, 0x3A75,0x0000, 0x3A76,0x0000, 0x3A77,0x0000, /* 133D8 */
+0x3A78,0x0000, 0x3A79,0x0000, 0x3A7A,0x0000, 0x3A7B,0x0000, /* 133DC */
+0x3A7C,0x0000, 0x3A7D,0x0000, 0x3A7E,0x0000, 0x3A7F,0x0000, /* 133E0 */
+0x3A80,0x0000, 0x3A81,0x0000, 0x3A82,0x0000, 0x3A83,0x0000, /* 133E4 */
+0x3A84,0x0000, 0x3A85,0x0000, 0x3A86,0x0000, 0x3A87,0x0000, /* 133E8 */
+0x3A88,0x0000, 0x3A89,0x0000, 0x3A8A,0x0000, 0x3A8B,0x0000, /* 133EC */
+0x3A8C,0x0000, 0x3A8D,0x0000, 0x3A8E,0x0000, 0x3A8F,0x0000, /* 133F0 */
+0x3A90,0x0000, 0x3A91,0x0000, 0x3A92,0x0000, 0x3A93,0x0000, /* 133F4 */
+0x3A94,0x0000, 0x3A95,0x0000, 0x3A96,0x0000, 0x3A97,0x0000, /* 133F8 */
+0x3A98,0x0000, 0x3A99,0x0000, 0x3A9A,0x0000, 0x3A9B,0x0000 /* 133FC */
+};
+
+static const uint16 uca520_p134[]= { /* 13400 (3 weights per char) */
+0x3A9C,0x0000,0x0000, 0x3A9D,0x0000,0x0000, 0x3A9E,0x0000,0x0000, /* 13400 */
+0x3A9F,0x0000,0x0000, 0x3AA0,0x0000,0x0000, 0x3AA1,0x0000,0x0000, /* 13403 */
+0x3AA2,0x0000,0x0000, 0x3AA3,0x0000,0x0000, 0x3AA4,0x0000,0x0000, /* 13406 */
+0x3AA5,0x0000,0x0000, 0x3AA6,0x0000,0x0000, 0x3AA7,0x0000,0x0000, /* 13409 */
+0x3AA8,0x0000,0x0000, 0x3AA9,0x0000,0x0000, 0x3AAA,0x0000,0x0000, /* 1340C */
+0x3AAB,0x0000,0x0000, 0x3AAC,0x0000,0x0000, 0x3AAD,0x0000,0x0000, /* 1340F */
+0x3AAE,0x0000,0x0000, 0x3AAF,0x0000,0x0000, 0x3AB0,0x0000,0x0000, /* 13412 */
+0x3AB1,0x0000,0x0000, 0x3AB2,0x0000,0x0000, 0x3AB3,0x0000,0x0000, /* 13415 */
+0x3AB4,0x0000,0x0000, 0x3AB5,0x0000,0x0000, 0x3AB6,0x0000,0x0000, /* 13418 */
+0x3AB7,0x0000,0x0000, 0x3AB8,0x0000,0x0000, 0x3AB9,0x0000,0x0000, /* 1341B */
+0x3ABA,0x0000,0x0000, 0x3ABB,0x0000,0x0000, 0x3ABC,0x0000,0x0000, /* 1341E */
+0x3ABD,0x0000,0x0000, 0x3ABE,0x0000,0x0000, 0x3ABF,0x0000,0x0000, /* 13421 */
+0x3AC0,0x0000,0x0000, 0x3AC1,0x0000,0x0000, 0x3AC2,0x0000,0x0000, /* 13424 */
+0x3AC3,0x0000,0x0000, 0x3AC4,0x0000,0x0000, 0x3AC5,0x0000,0x0000, /* 13427 */
+0x3AC6,0x0000,0x0000, 0x3AC7,0x0000,0x0000, 0x3AC8,0x0000,0x0000, /* 1342A */
+0x3AC9,0x0000,0x0000, 0x3ACA,0x0000,0x0000, 0xFBC2,0xB42F,0x0000, /* 1342D */
+0xFBC2,0xB430,0x0000, 0xFBC2,0xB431,0x0000, 0xFBC2,0xB432,0x0000, /* 13430 */
+0xFBC2,0xB433,0x0000, 0xFBC2,0xB434,0x0000, 0xFBC2,0xB435,0x0000, /* 13433 */
+0xFBC2,0xB436,0x0000, 0xFBC2,0xB437,0x0000, 0xFBC2,0xB438,0x0000, /* 13436 */
+0xFBC2,0xB439,0x0000, 0xFBC2,0xB43A,0x0000, 0xFBC2,0xB43B,0x0000, /* 13439 */
+0xFBC2,0xB43C,0x0000, 0xFBC2,0xB43D,0x0000, 0xFBC2,0xB43E,0x0000, /* 1343C */
+0xFBC2,0xB43F,0x0000, 0xFBC2,0xB440,0x0000, 0xFBC2,0xB441,0x0000, /* 1343F */
+0xFBC2,0xB442,0x0000, 0xFBC2,0xB443,0x0000, 0xFBC2,0xB444,0x0000, /* 13442 */
+0xFBC2,0xB445,0x0000, 0xFBC2,0xB446,0x0000, 0xFBC2,0xB447,0x0000, /* 13445 */
+0xFBC2,0xB448,0x0000, 0xFBC2,0xB449,0x0000, 0xFBC2,0xB44A,0x0000, /* 13448 */
+0xFBC2,0xB44B,0x0000, 0xFBC2,0xB44C,0x0000, 0xFBC2,0xB44D,0x0000, /* 1344B */
+0xFBC2,0xB44E,0x0000, 0xFBC2,0xB44F,0x0000, 0xFBC2,0xB450,0x0000, /* 1344E */
+0xFBC2,0xB451,0x0000, 0xFBC2,0xB452,0x0000, 0xFBC2,0xB453,0x0000, /* 13451 */
+0xFBC2,0xB454,0x0000, 0xFBC2,0xB455,0x0000, 0xFBC2,0xB456,0x0000, /* 13454 */
+0xFBC2,0xB457,0x0000, 0xFBC2,0xB458,0x0000, 0xFBC2,0xB459,0x0000, /* 13457 */
+0xFBC2,0xB45A,0x0000, 0xFBC2,0xB45B,0x0000, 0xFBC2,0xB45C,0x0000, /* 1345A */
+0xFBC2,0xB45D,0x0000, 0xFBC2,0xB45E,0x0000, 0xFBC2,0xB45F,0x0000, /* 1345D */
+0xFBC2,0xB460,0x0000, 0xFBC2,0xB461,0x0000, 0xFBC2,0xB462,0x0000, /* 13460 */
+0xFBC2,0xB463,0x0000, 0xFBC2,0xB464,0x0000, 0xFBC2,0xB465,0x0000, /* 13463 */
+0xFBC2,0xB466,0x0000, 0xFBC2,0xB467,0x0000, 0xFBC2,0xB468,0x0000, /* 13466 */
+0xFBC2,0xB469,0x0000, 0xFBC2,0xB46A,0x0000, 0xFBC2,0xB46B,0x0000, /* 13469 */
+0xFBC2,0xB46C,0x0000, 0xFBC2,0xB46D,0x0000, 0xFBC2,0xB46E,0x0000, /* 1346C */
+0xFBC2,0xB46F,0x0000, 0xFBC2,0xB470,0x0000, 0xFBC2,0xB471,0x0000, /* 1346F */
+0xFBC2,0xB472,0x0000, 0xFBC2,0xB473,0x0000, 0xFBC2,0xB474,0x0000, /* 13472 */
+0xFBC2,0xB475,0x0000, 0xFBC2,0xB476,0x0000, 0xFBC2,0xB477,0x0000, /* 13475 */
+0xFBC2,0xB478,0x0000, 0xFBC2,0xB479,0x0000, 0xFBC2,0xB47A,0x0000, /* 13478 */
+0xFBC2,0xB47B,0x0000, 0xFBC2,0xB47C,0x0000, 0xFBC2,0xB47D,0x0000, /* 1347B */
+0xFBC2,0xB47E,0x0000, 0xFBC2,0xB47F,0x0000, 0xFBC2,0xB480,0x0000, /* 1347E */
+0xFBC2,0xB481,0x0000, 0xFBC2,0xB482,0x0000, 0xFBC2,0xB483,0x0000, /* 13481 */
+0xFBC2,0xB484,0x0000, 0xFBC2,0xB485,0x0000, 0xFBC2,0xB486,0x0000, /* 13484 */
+0xFBC2,0xB487,0x0000, 0xFBC2,0xB488,0x0000, 0xFBC2,0xB489,0x0000, /* 13487 */
+0xFBC2,0xB48A,0x0000, 0xFBC2,0xB48B,0x0000, 0xFBC2,0xB48C,0x0000, /* 1348A */
+0xFBC2,0xB48D,0x0000, 0xFBC2,0xB48E,0x0000, 0xFBC2,0xB48F,0x0000, /* 1348D */
+0xFBC2,0xB490,0x0000, 0xFBC2,0xB491,0x0000, 0xFBC2,0xB492,0x0000, /* 13490 */
+0xFBC2,0xB493,0x0000, 0xFBC2,0xB494,0x0000, 0xFBC2,0xB495,0x0000, /* 13493 */
+0xFBC2,0xB496,0x0000, 0xFBC2,0xB497,0x0000, 0xFBC2,0xB498,0x0000, /* 13496 */
+0xFBC2,0xB499,0x0000, 0xFBC2,0xB49A,0x0000, 0xFBC2,0xB49B,0x0000, /* 13499 */
+0xFBC2,0xB49C,0x0000, 0xFBC2,0xB49D,0x0000, 0xFBC2,0xB49E,0x0000, /* 1349C */
+0xFBC2,0xB49F,0x0000, 0xFBC2,0xB4A0,0x0000, 0xFBC2,0xB4A1,0x0000, /* 1349F */
+0xFBC2,0xB4A2,0x0000, 0xFBC2,0xB4A3,0x0000, 0xFBC2,0xB4A4,0x0000, /* 134A2 */
+0xFBC2,0xB4A5,0x0000, 0xFBC2,0xB4A6,0x0000, 0xFBC2,0xB4A7,0x0000, /* 134A5 */
+0xFBC2,0xB4A8,0x0000, 0xFBC2,0xB4A9,0x0000, 0xFBC2,0xB4AA,0x0000, /* 134A8 */
+0xFBC2,0xB4AB,0x0000, 0xFBC2,0xB4AC,0x0000, 0xFBC2,0xB4AD,0x0000, /* 134AB */
+0xFBC2,0xB4AE,0x0000, 0xFBC2,0xB4AF,0x0000, 0xFBC2,0xB4B0,0x0000, /* 134AE */
+0xFBC2,0xB4B1,0x0000, 0xFBC2,0xB4B2,0x0000, 0xFBC2,0xB4B3,0x0000, /* 134B1 */
+0xFBC2,0xB4B4,0x0000, 0xFBC2,0xB4B5,0x0000, 0xFBC2,0xB4B6,0x0000, /* 134B4 */
+0xFBC2,0xB4B7,0x0000, 0xFBC2,0xB4B8,0x0000, 0xFBC2,0xB4B9,0x0000, /* 134B7 */
+0xFBC2,0xB4BA,0x0000, 0xFBC2,0xB4BB,0x0000, 0xFBC2,0xB4BC,0x0000, /* 134BA */
+0xFBC2,0xB4BD,0x0000, 0xFBC2,0xB4BE,0x0000, 0xFBC2,0xB4BF,0x0000, /* 134BD */
+0xFBC2,0xB4C0,0x0000, 0xFBC2,0xB4C1,0x0000, 0xFBC2,0xB4C2,0x0000, /* 134C0 */
+0xFBC2,0xB4C3,0x0000, 0xFBC2,0xB4C4,0x0000, 0xFBC2,0xB4C5,0x0000, /* 134C3 */
+0xFBC2,0xB4C6,0x0000, 0xFBC2,0xB4C7,0x0000, 0xFBC2,0xB4C8,0x0000, /* 134C6 */
+0xFBC2,0xB4C9,0x0000, 0xFBC2,0xB4CA,0x0000, 0xFBC2,0xB4CB,0x0000, /* 134C9 */
+0xFBC2,0xB4CC,0x0000, 0xFBC2,0xB4CD,0x0000, 0xFBC2,0xB4CE,0x0000, /* 134CC */
+0xFBC2,0xB4CF,0x0000, 0xFBC2,0xB4D0,0x0000, 0xFBC2,0xB4D1,0x0000, /* 134CF */
+0xFBC2,0xB4D2,0x0000, 0xFBC2,0xB4D3,0x0000, 0xFBC2,0xB4D4,0x0000, /* 134D2 */
+0xFBC2,0xB4D5,0x0000, 0xFBC2,0xB4D6,0x0000, 0xFBC2,0xB4D7,0x0000, /* 134D5 */
+0xFBC2,0xB4D8,0x0000, 0xFBC2,0xB4D9,0x0000, 0xFBC2,0xB4DA,0x0000, /* 134D8 */
+0xFBC2,0xB4DB,0x0000, 0xFBC2,0xB4DC,0x0000, 0xFBC2,0xB4DD,0x0000, /* 134DB */
+0xFBC2,0xB4DE,0x0000, 0xFBC2,0xB4DF,0x0000, 0xFBC2,0xB4E0,0x0000, /* 134DE */
+0xFBC2,0xB4E1,0x0000, 0xFBC2,0xB4E2,0x0000, 0xFBC2,0xB4E3,0x0000, /* 134E1 */
+0xFBC2,0xB4E4,0x0000, 0xFBC2,0xB4E5,0x0000, 0xFBC2,0xB4E6,0x0000, /* 134E4 */
+0xFBC2,0xB4E7,0x0000, 0xFBC2,0xB4E8,0x0000, 0xFBC2,0xB4E9,0x0000, /* 134E7 */
+0xFBC2,0xB4EA,0x0000, 0xFBC2,0xB4EB,0x0000, 0xFBC2,0xB4EC,0x0000, /* 134EA */
+0xFBC2,0xB4ED,0x0000, 0xFBC2,0xB4EE,0x0000, 0xFBC2,0xB4EF,0x0000, /* 134ED */
+0xFBC2,0xB4F0,0x0000, 0xFBC2,0xB4F1,0x0000, 0xFBC2,0xB4F2,0x0000, /* 134F0 */
+0xFBC2,0xB4F3,0x0000, 0xFBC2,0xB4F4,0x0000, 0xFBC2,0xB4F5,0x0000, /* 134F3 */
+0xFBC2,0xB4F6,0x0000, 0xFBC2,0xB4F7,0x0000, 0xFBC2,0xB4F8,0x0000, /* 134F6 */
+0xFBC2,0xB4F9,0x0000, 0xFBC2,0xB4FA,0x0000, 0xFBC2,0xB4FB,0x0000, /* 134F9 */
+0xFBC2,0xB4FC,0x0000, 0xFBC2,0xB4FD,0x0000, 0xFBC2,0xB4FE,0x0000, /* 134FC */
+0xFBC2,0xB4FF,0x0000 };
+
+static const uint16 uca520_p1D0[]= { /* 1D000 (3 weights per char) */
+0x0E5F,0x0000,0x0000, 0x0E60,0x0000,0x0000, 0x0E61,0x0000,0x0000, /* 1D000 */
+0x0E62,0x0000,0x0000, 0x0E63,0x0000,0x0000, 0x0E64,0x0000,0x0000, /* 1D003 */
+0x0E65,0x0000,0x0000, 0x0E66,0x0000,0x0000, 0x0E67,0x0000,0x0000, /* 1D006 */
+0x0E68,0x0000,0x0000, 0x0E69,0x0000,0x0000, 0x0E6A,0x0000,0x0000, /* 1D009 */
+0x0E6B,0x0000,0x0000, 0x0E6C,0x0000,0x0000, 0x0E6D,0x0000,0x0000, /* 1D00C */
+0x0E6E,0x0000,0x0000, 0x0E6F,0x0000,0x0000, 0x0E70,0x0000,0x0000, /* 1D00F */
+0x0E71,0x0000,0x0000, 0x0E72,0x0000,0x0000, 0x0E73,0x0000,0x0000, /* 1D012 */
+0x0E74,0x0000,0x0000, 0x0E75,0x0000,0x0000, 0x0E76,0x0000,0x0000, /* 1D015 */
+0x0E77,0x0000,0x0000, 0x0E78,0x0000,0x0000, 0x0E79,0x0000,0x0000, /* 1D018 */
+0x0E7A,0x0000,0x0000, 0x0E7B,0x0000,0x0000, 0x0E7C,0x0000,0x0000, /* 1D01B */
+0x0E7D,0x0000,0x0000, 0x0E7E,0x0000,0x0000, 0x0E7F,0x0000,0x0000, /* 1D01E */
+0x0E80,0x0000,0x0000, 0x0E81,0x0000,0x0000, 0x0E82,0x0000,0x0000, /* 1D021 */
+0x0E83,0x0000,0x0000, 0x0E84,0x0000,0x0000, 0x0E85,0x0000,0x0000, /* 1D024 */
+0x0E86,0x0000,0x0000, 0x0E87,0x0000,0x0000, 0x0E88,0x0000,0x0000, /* 1D027 */
+0x0E89,0x0000,0x0000, 0x0E8A,0x0000,0x0000, 0x0E8B,0x0000,0x0000, /* 1D02A */
+0x0E8C,0x0000,0x0000, 0x0E8D,0x0000,0x0000, 0x0E8E,0x0000,0x0000, /* 1D02D */
+0x0E8F,0x0000,0x0000, 0x0E90,0x0000,0x0000, 0x0E91,0x0000,0x0000, /* 1D030 */
+0x0E92,0x0000,0x0000, 0x0E93,0x0000,0x0000, 0x0E94,0x0000,0x0000, /* 1D033 */
+0x0E95,0x0000,0x0000, 0x0E96,0x0000,0x0000, 0x0E97,0x0000,0x0000, /* 1D036 */
+0x0E98,0x0000,0x0000, 0x0E99,0x0000,0x0000, 0x0E9A,0x0000,0x0000, /* 1D039 */
+0x0E9B,0x0000,0x0000, 0x0E9C,0x0000,0x0000, 0x0E9D,0x0000,0x0000, /* 1D03C */
+0x0E9E,0x0000,0x0000, 0x0E9F,0x0000,0x0000, 0x0EA0,0x0000,0x0000, /* 1D03F */
+0x0EA1,0x0000,0x0000, 0x0EA2,0x0000,0x0000, 0x0EA3,0x0000,0x0000, /* 1D042 */
+0x0EA4,0x0000,0x0000, 0x0EA5,0x0000,0x0000, 0x0EA6,0x0000,0x0000, /* 1D045 */
+0x0EA7,0x0000,0x0000, 0x0EA8,0x0000,0x0000, 0x0EA9,0x0000,0x0000, /* 1D048 */
+0x0EAA,0x0000,0x0000, 0x0EAB,0x0000,0x0000, 0x0EAC,0x0000,0x0000, /* 1D04B */
+0x0EAD,0x0000,0x0000, 0x0EAE,0x0000,0x0000, 0x0EAF,0x0000,0x0000, /* 1D04E */
+0x0EB0,0x0000,0x0000, 0x0EB1,0x0000,0x0000, 0x0EB2,0x0000,0x0000, /* 1D051 */
+0x0EB3,0x0000,0x0000, 0x0EB4,0x0000,0x0000, 0x0EB5,0x0000,0x0000, /* 1D054 */
+0x0EB6,0x0000,0x0000, 0x0EB7,0x0000,0x0000, 0x0EB8,0x0000,0x0000, /* 1D057 */
+0x0EB9,0x0000,0x0000, 0x0EBA,0x0000,0x0000, 0x0EBB,0x0000,0x0000, /* 1D05A */
+0x0EBC,0x0000,0x0000, 0x0EBD,0x0000,0x0000, 0x0EBE,0x0000,0x0000, /* 1D05D */
+0x0EBF,0x0000,0x0000, 0x0EC0,0x0000,0x0000, 0x0EC1,0x0000,0x0000, /* 1D060 */
+0x0EC2,0x0000,0x0000, 0x0EC3,0x0000,0x0000, 0x0EC4,0x0000,0x0000, /* 1D063 */
+0x0EC5,0x0000,0x0000, 0x0EC6,0x0000,0x0000, 0x0EC7,0x0000,0x0000, /* 1D066 */
+0x0EC8,0x0000,0x0000, 0x0EC9,0x0000,0x0000, 0x0ECA,0x0000,0x0000, /* 1D069 */
+0x0ECB,0x0000,0x0000, 0x0ECC,0x0000,0x0000, 0x0ECD,0x0000,0x0000, /* 1D06C */
+0x0ECE,0x0000,0x0000, 0x0ECF,0x0000,0x0000, 0x0ED0,0x0000,0x0000, /* 1D06F */
+0x0ED1,0x0000,0x0000, 0x0ED2,0x0000,0x0000, 0x0ED3,0x0000,0x0000, /* 1D072 */
+0x0ED4,0x0000,0x0000, 0x0ED5,0x0000,0x0000, 0x0ED6,0x0000,0x0000, /* 1D075 */
+0x0ED7,0x0000,0x0000, 0x0ED8,0x0000,0x0000, 0x0ED9,0x0000,0x0000, /* 1D078 */
+0x0EDA,0x0000,0x0000, 0x0EDB,0x0000,0x0000, 0x0EDC,0x0000,0x0000, /* 1D07B */
+0x0EDD,0x0000,0x0000, 0x0EDE,0x0000,0x0000, 0x0EDF,0x0000,0x0000, /* 1D07E */
+0x0EE0,0x0000,0x0000, 0x0EE1,0x0000,0x0000, 0x0EE2,0x0000,0x0000, /* 1D081 */
+0x0EE3,0x0000,0x0000, 0x0EE4,0x0000,0x0000, 0x0EE5,0x0000,0x0000, /* 1D084 */
+0x0EE6,0x0000,0x0000, 0x0EE7,0x0000,0x0000, 0x0EE8,0x0000,0x0000, /* 1D087 */
+0x0EE9,0x0000,0x0000, 0x0EEA,0x0000,0x0000, 0x0EEB,0x0000,0x0000, /* 1D08A */
+0x0EEC,0x0000,0x0000, 0x0EED,0x0000,0x0000, 0x0EEE,0x0000,0x0000, /* 1D08D */
+0x0EEF,0x0000,0x0000, 0x0EF0,0x0000,0x0000, 0x0EF1,0x0000,0x0000, /* 1D090 */
+0x0EF2,0x0000,0x0000, 0x0EF3,0x0000,0x0000, 0x0EF4,0x0000,0x0000, /* 1D093 */
+0x0EF5,0x0000,0x0000, 0x0EF6,0x0000,0x0000, 0x0EF7,0x0000,0x0000, /* 1D096 */
+0x0EF8,0x0000,0x0000, 0x0EF9,0x0000,0x0000, 0x0EFA,0x0000,0x0000, /* 1D099 */
+0x0EFB,0x0000,0x0000, 0x0EFC,0x0000,0x0000, 0x0EFD,0x0000,0x0000, /* 1D09C */
+0x0EFE,0x0000,0x0000, 0x0EFF,0x0000,0x0000, 0x0F00,0x0000,0x0000, /* 1D09F */
+0x0F01,0x0000,0x0000, 0x0F02,0x0000,0x0000, 0x0F03,0x0000,0x0000, /* 1D0A2 */
+0x0F04,0x0000,0x0000, 0x0F05,0x0000,0x0000, 0x0F06,0x0000,0x0000, /* 1D0A5 */
+0x0F07,0x0000,0x0000, 0x0F08,0x0000,0x0000, 0x0F09,0x0000,0x0000, /* 1D0A8 */
+0x0F0A,0x0000,0x0000, 0x0F0B,0x0000,0x0000, 0x0F0C,0x0000,0x0000, /* 1D0AB */
+0x0F0D,0x0000,0x0000, 0x0F0E,0x0000,0x0000, 0x0F0F,0x0000,0x0000, /* 1D0AE */
+0x0F10,0x0000,0x0000, 0x0F11,0x0000,0x0000, 0x0F12,0x0000,0x0000, /* 1D0B1 */
+0x0F13,0x0000,0x0000, 0x0F14,0x0000,0x0000, 0x0F15,0x0000,0x0000, /* 1D0B4 */
+0x0F16,0x0000,0x0000, 0x0F17,0x0000,0x0000, 0x0F18,0x0000,0x0000, /* 1D0B7 */
+0x0F19,0x0000,0x0000, 0x0F1A,0x0000,0x0000, 0x0F1B,0x0000,0x0000, /* 1D0BA */
+0x0F1C,0x0000,0x0000, 0x0F1D,0x0000,0x0000, 0x0F1E,0x0000,0x0000, /* 1D0BD */
+0x0F1F,0x0000,0x0000, 0x0F20,0x0000,0x0000, 0x0F21,0x0000,0x0000, /* 1D0C0 */
+0x0F22,0x0000,0x0000, 0x0F23,0x0000,0x0000, 0x0F24,0x0000,0x0000, /* 1D0C3 */
+0x0F25,0x0000,0x0000, 0x0F26,0x0000,0x0000, 0x0F27,0x0000,0x0000, /* 1D0C6 */
+0x0F28,0x0000,0x0000, 0x0F29,0x0000,0x0000, 0x0F2A,0x0000,0x0000, /* 1D0C9 */
+0x0F2B,0x0000,0x0000, 0x0F2C,0x0000,0x0000, 0x0F2D,0x0000,0x0000, /* 1D0CC */
+0x0F2E,0x0000,0x0000, 0x0F2F,0x0000,0x0000, 0x0F30,0x0000,0x0000, /* 1D0CF */
+0x0F31,0x0000,0x0000, 0x0F32,0x0000,0x0000, 0x0F33,0x0000,0x0000, /* 1D0D2 */
+0x0F34,0x0000,0x0000, 0x0F35,0x0000,0x0000, 0x0F36,0x0000,0x0000, /* 1D0D5 */
+0x0F37,0x0000,0x0000, 0x0F38,0x0000,0x0000, 0x0F39,0x0000,0x0000, /* 1D0D8 */
+0x0F3A,0x0000,0x0000, 0x0F3B,0x0000,0x0000, 0x0F3C,0x0000,0x0000, /* 1D0DB */
+0x0F3D,0x0000,0x0000, 0x0F3E,0x0000,0x0000, 0x0F3F,0x0000,0x0000, /* 1D0DE */
+0x0F40,0x0000,0x0000, 0x0F41,0x0000,0x0000, 0x0F42,0x0000,0x0000, /* 1D0E1 */
+0x0F43,0x0000,0x0000, 0x0F44,0x0000,0x0000, 0x0F45,0x0000,0x0000, /* 1D0E4 */
+0x0F46,0x0000,0x0000, 0x0F47,0x0000,0x0000, 0x0F48,0x0000,0x0000, /* 1D0E7 */
+0x0F49,0x0000,0x0000, 0x0F4A,0x0000,0x0000, 0x0F4B,0x0000,0x0000, /* 1D0EA */
+0x0F4C,0x0000,0x0000, 0x0F4D,0x0000,0x0000, 0x0F4E,0x0000,0x0000, /* 1D0ED */
+0x0F4F,0x0000,0x0000, 0x0F50,0x0000,0x0000, 0x0F51,0x0000,0x0000, /* 1D0F0 */
+0x0F52,0x0000,0x0000, 0x0F53,0x0000,0x0000, 0x0F54,0x0000,0x0000, /* 1D0F3 */
+0xFBC3,0xD0F6,0x0000, 0xFBC3,0xD0F7,0x0000, 0xFBC3,0xD0F8,0x0000, /* 1D0F6 */
+0xFBC3,0xD0F9,0x0000, 0xFBC3,0xD0FA,0x0000, 0xFBC3,0xD0FB,0x0000, /* 1D0F9 */
+0xFBC3,0xD0FC,0x0000, 0xFBC3,0xD0FD,0x0000, 0xFBC3,0xD0FE,0x0000, /* 1D0FC */
+0xFBC3,0xD0FF,0x0000 };
+
+static const uint16 uca520_p1D1[]= { /* 1D100 (3 weights per char) */
+0x0F55,0x0000,0x0000, 0x0F56,0x0000,0x0000, 0x0F57,0x0000,0x0000, /* 1D100 */
+0x0F58,0x0000,0x0000, 0x0F59,0x0000,0x0000, 0x0F5A,0x0000,0x0000, /* 1D103 */
+0x0F5B,0x0000,0x0000, 0x0F5C,0x0000,0x0000, 0x0F5D,0x0000,0x0000, /* 1D106 */
+0x0F5E,0x0000,0x0000, 0x0F5F,0x0000,0x0000, 0x0F60,0x0000,0x0000, /* 1D109 */
+0x0F61,0x0000,0x0000, 0x0F62,0x0000,0x0000, 0x0F63,0x0000,0x0000, /* 1D10C */
+0x0F64,0x0000,0x0000, 0x0F65,0x0000,0x0000, 0x0F66,0x0000,0x0000, /* 1D10F */
+0x0F67,0x0000,0x0000, 0x0F68,0x0000,0x0000, 0x0F69,0x0000,0x0000, /* 1D112 */
+0x0F6A,0x0000,0x0000, 0x0F6B,0x0000,0x0000, 0x0F6C,0x0000,0x0000, /* 1D115 */
+0x0F6D,0x0000,0x0000, 0x0F6E,0x0000,0x0000, 0x0F6F,0x0000,0x0000, /* 1D118 */
+0x0F70,0x0000,0x0000, 0x0F71,0x0000,0x0000, 0x0F72,0x0000,0x0000, /* 1D11B */
+0x0F73,0x0000,0x0000, 0x0F74,0x0000,0x0000, 0x0F75,0x0000,0x0000, /* 1D11E */
+0x0F76,0x0000,0x0000, 0x0F77,0x0000,0x0000, 0x0F78,0x0000,0x0000, /* 1D121 */
+0x0F79,0x0000,0x0000, 0x0F7A,0x0000,0x0000, 0x0F7B,0x0000,0x0000, /* 1D124 */
+0xFBC3,0xD127,0x0000, 0xFBC3,0xD128,0x0000, 0x0F8F,0x0000,0x0000, /* 1D127 */
+0x0F7F,0x0000,0x0000, 0x0F80,0x0000,0x0000, 0x0F81,0x0000,0x0000, /* 1D12A */
+0x0F82,0x0000,0x0000, 0x0F83,0x0000,0x0000, 0x0F84,0x0000,0x0000, /* 1D12D */
+0x0F85,0x0000,0x0000, 0x0F86,0x0000,0x0000, 0x0F87,0x0000,0x0000, /* 1D130 */
+0x0F88,0x0000,0x0000, 0x0F89,0x0000,0x0000, 0x0F8A,0x0000,0x0000, /* 1D133 */
+0x0F8B,0x0000,0x0000, 0x0F8C,0x0000,0x0000, 0x0F8D,0x0000,0x0000, /* 1D136 */
+0x0F8E,0x0000,0x0000, 0x0F90,0x0000,0x0000, 0x0F91,0x0000,0x0000, /* 1D139 */
+0x0F92,0x0000,0x0000, 0x0F93,0x0000,0x0000, 0x0F94,0x0000,0x0000, /* 1D13C */
+0x0F95,0x0000,0x0000, 0x0F96,0x0000,0x0000, 0x0F97,0x0000,0x0000, /* 1D13F */
+0x0F98,0x0000,0x0000, 0x0F99,0x0000,0x0000, 0x0F9A,0x0000,0x0000, /* 1D142 */
+0x0F9B,0x0000,0x0000, 0x0F9C,0x0000,0x0000, 0x0F9D,0x0000,0x0000, /* 1D145 */
+0x0F9E,0x0000,0x0000, 0x0F9F,0x0000,0x0000, 0x0FA0,0x0000,0x0000, /* 1D148 */
+0x0FA1,0x0000,0x0000, 0x0FA2,0x0000,0x0000, 0x0FA3,0x0000,0x0000, /* 1D14B */
+0x0FA4,0x0000,0x0000, 0x0FA5,0x0000,0x0000, 0x0FA6,0x0000,0x0000, /* 1D14E */
+0x0FA7,0x0000,0x0000, 0x0FA8,0x0000,0x0000, 0x0FA9,0x0000,0x0000, /* 1D151 */
+0x0FAA,0x0000,0x0000, 0x0FAB,0x0000,0x0000, 0x0FAC,0x0000,0x0000, /* 1D154 */
+0x0FAD,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0FAF,0x0000,0x0000, /* 1D157 */
+0x0FB0,0x0000,0x0000, 0x0FB1,0x0000,0x0000, 0x0FB2,0x0000,0x0000, /* 1D15A */
+0x0FB3,0x0000,0x0000, 0x0FAD,0x0000,0x0000, 0x0FAE,0x0000,0x0000, /* 1D15D */
+0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, /* 1D160 */
+0x0FAE,0x0000,0x0000, 0x0FAE,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D163 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D166 */
+0x0000,0x0000,0x0000, 0x0FB4,0x0000,0x0000, 0x0FB5,0x0000,0x0000, /* 1D169 */
+0x0FB6,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D16C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D16F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D172 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D175 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D178 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D17B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D17E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0FB7,0x0000,0x0000, /* 1D181 */
+0x0FB8,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D184 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D187 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0FB9,0x0000,0x0000, /* 1D18A */
+0x0FBA,0x0000,0x0000, 0x0FBB,0x0000,0x0000, 0x0FBC,0x0000,0x0000, /* 1D18D */
+0x0FBD,0x0000,0x0000, 0x0FBE,0x0000,0x0000, 0x0FBF,0x0000,0x0000, /* 1D190 */
+0x0FC0,0x0000,0x0000, 0x0FC1,0x0000,0x0000, 0x0FC2,0x0000,0x0000, /* 1D193 */
+0x0FC3,0x0000,0x0000, 0x0FC4,0x0000,0x0000, 0x0FC5,0x0000,0x0000, /* 1D196 */
+0x0FC6,0x0000,0x0000, 0x0FC7,0x0000,0x0000, 0x0FC8,0x0000,0x0000, /* 1D199 */
+0x0FC9,0x0000,0x0000, 0x0FCA,0x0000,0x0000, 0x0FCB,0x0000,0x0000, /* 1D19C */
+0x0FCC,0x0000,0x0000, 0x0FCD,0x0000,0x0000, 0x0FCE,0x0000,0x0000, /* 1D19F */
+0x0FCF,0x0000,0x0000, 0x0FD0,0x0000,0x0000, 0x0FD1,0x0000,0x0000, /* 1D1A2 */
+0x0FD2,0x0000,0x0000, 0x0FD3,0x0000,0x0000, 0x0FD4,0x0000,0x0000, /* 1D1A5 */
+0x0FD5,0x0000,0x0000, 0x0FD6,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D1A8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D1AB */
+0x0FD7,0x0000,0x0000, 0x0FD8,0x0000,0x0000, 0x0FD9,0x0000,0x0000, /* 1D1AE */
+0x0FDA,0x0000,0x0000, 0x0FDB,0x0000,0x0000, 0x0FDC,0x0000,0x0000, /* 1D1B1 */
+0x0FDD,0x0000,0x0000, 0x0FDE,0x0000,0x0000, 0x0FDF,0x0000,0x0000, /* 1D1B4 */
+0x0FE0,0x0000,0x0000, 0x0FE1,0x0000,0x0000, 0x0FE2,0x0000,0x0000, /* 1D1B7 */
+0x0FE3,0x0000,0x0000, 0x0FE2,0x0000,0x0000, 0x0FE3,0x0000,0x0000, /* 1D1BA */
+0x0FE2,0x0000,0x0000, 0x0FE3,0x0000,0x0000, 0x0FE2,0x0000,0x0000, /* 1D1BD */
+0x0FE3,0x0000,0x0000, 0x0FE4,0x0000,0x0000, 0x0FE5,0x0000,0x0000, /* 1D1C0 */
+0x0FE6,0x0000,0x0000, 0x0FE7,0x0000,0x0000, 0x0FE8,0x0000,0x0000, /* 1D1C3 */
+0x0FE9,0x0000,0x0000, 0x0FEA,0x0000,0x0000, 0x0FEB,0x0000,0x0000, /* 1D1C6 */
+0x0FEC,0x0000,0x0000, 0x0FED,0x0000,0x0000, 0x0FEE,0x0000,0x0000, /* 1D1C9 */
+0x0FEF,0x0000,0x0000, 0x0FF0,0x0000,0x0000, 0x0FF1,0x0000,0x0000, /* 1D1CC */
+0x0FF2,0x0000,0x0000, 0x0FF3,0x0000,0x0000, 0x0FF4,0x0000,0x0000, /* 1D1CF */
+0x0FF5,0x0000,0x0000, 0x0FF6,0x0000,0x0000, 0x0FF7,0x0000,0x0000, /* 1D1D2 */
+0x0FF8,0x0000,0x0000, 0x0FF9,0x0000,0x0000, 0x0FFA,0x0000,0x0000, /* 1D1D5 */
+0x0FFB,0x0000,0x0000, 0x0FFC,0x0000,0x0000, 0x0FFD,0x0000,0x0000, /* 1D1D8 */
+0x0FFE,0x0000,0x0000, 0x0FFF,0x0000,0x0000, 0x1000,0x0000,0x0000, /* 1D1DB */
+0xFBC3,0xD1DE,0x0000, 0xFBC3,0xD1DF,0x0000, 0xFBC3,0xD1E0,0x0000, /* 1D1DE */
+0xFBC3,0xD1E1,0x0000, 0xFBC3,0xD1E2,0x0000, 0xFBC3,0xD1E3,0x0000, /* 1D1E1 */
+0xFBC3,0xD1E4,0x0000, 0xFBC3,0xD1E5,0x0000, 0xFBC3,0xD1E6,0x0000, /* 1D1E4 */
+0xFBC3,0xD1E7,0x0000, 0xFBC3,0xD1E8,0x0000, 0xFBC3,0xD1E9,0x0000, /* 1D1E7 */
+0xFBC3,0xD1EA,0x0000, 0xFBC3,0xD1EB,0x0000, 0xFBC3,0xD1EC,0x0000, /* 1D1EA */
+0xFBC3,0xD1ED,0x0000, 0xFBC3,0xD1EE,0x0000, 0xFBC3,0xD1EF,0x0000, /* 1D1ED */
+0xFBC3,0xD1F0,0x0000, 0xFBC3,0xD1F1,0x0000, 0xFBC3,0xD1F2,0x0000, /* 1D1F0 */
+0xFBC3,0xD1F3,0x0000, 0xFBC3,0xD1F4,0x0000, 0xFBC3,0xD1F5,0x0000, /* 1D1F3 */
+0xFBC3,0xD1F6,0x0000, 0xFBC3,0xD1F7,0x0000, 0xFBC3,0xD1F8,0x0000, /* 1D1F6 */
+0xFBC3,0xD1F9,0x0000, 0xFBC3,0xD1FA,0x0000, 0xFBC3,0xD1FB,0x0000, /* 1D1F9 */
+0xFBC3,0xD1FC,0x0000, 0xFBC3,0xD1FD,0x0000, 0xFBC3,0xD1FE,0x0000, /* 1D1FC */
+0xFBC3,0xD1FF,0x0000 };
+
+static const uint16 uca520_p1D2[]= { /* 1D200 (3 weights per char) */
+0x1001,0x0000,0x0000, 0x1002,0x0000,0x0000, 0x1003,0x0000,0x0000, /* 1D200 */
+0x1004,0x0000,0x0000, 0x1005,0x0000,0x0000, 0x1006,0x0000,0x0000, /* 1D203 */
+0x1007,0x0000,0x0000, 0x1008,0x0000,0x0000, 0x1009,0x0000,0x0000, /* 1D206 */
+0x100A,0x0000,0x0000, 0x100B,0x0000,0x0000, 0x100C,0x0000,0x0000, /* 1D209 */
+0x100D,0x0000,0x0000, 0x100E,0x0000,0x0000, 0x100F,0x0000,0x0000, /* 1D20C */
+0x1010,0x0000,0x0000, 0x1011,0x0000,0x0000, 0x1012,0x0000,0x0000, /* 1D20F */
+0x1013,0x0000,0x0000, 0x1014,0x0000,0x0000, 0x1015,0x0000,0x0000, /* 1D212 */
+0x1016,0x0000,0x0000, 0x1017,0x0000,0x0000, 0x1018,0x0000,0x0000, /* 1D215 */
+0x1019,0x0000,0x0000, 0x101A,0x0000,0x0000, 0x101B,0x0000,0x0000, /* 1D218 */
+0x101C,0x0000,0x0000, 0x101D,0x0000,0x0000, 0x101E,0x0000,0x0000, /* 1D21B */
+0x101F,0x0000,0x0000, 0x1020,0x0000,0x0000, 0x1021,0x0000,0x0000, /* 1D21E */
+0x1022,0x0000,0x0000, 0x1023,0x0000,0x0000, 0x1024,0x0000,0x0000, /* 1D221 */
+0x1025,0x0000,0x0000, 0x1026,0x0000,0x0000, 0x1027,0x0000,0x0000, /* 1D224 */
+0x1028,0x0000,0x0000, 0x1029,0x0000,0x0000, 0x102A,0x0000,0x0000, /* 1D227 */
+0x102B,0x0000,0x0000, 0x102C,0x0000,0x0000, 0x102D,0x0000,0x0000, /* 1D22A */
+0x102E,0x0000,0x0000, 0x102F,0x0000,0x0000, 0x1030,0x0000,0x0000, /* 1D22D */
+0x1031,0x0000,0x0000, 0x1032,0x0000,0x0000, 0x1033,0x0000,0x0000, /* 1D230 */
+0x1034,0x0000,0x0000, 0x1035,0x0000,0x0000, 0x1036,0x0000,0x0000, /* 1D233 */
+0x1037,0x0000,0x0000, 0x1038,0x0000,0x0000, 0x1039,0x0000,0x0000, /* 1D236 */
+0x103A,0x0000,0x0000, 0x103B,0x0000,0x0000, 0x103C,0x0000,0x0000, /* 1D239 */
+0x103D,0x0000,0x0000, 0x103E,0x0000,0x0000, 0x103F,0x0000,0x0000, /* 1D23C */
+0x1040,0x0000,0x0000, 0x1041,0x0000,0x0000, 0x1042,0x0000,0x0000, /* 1D23F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1D242 */
+0x1043,0x0000,0x0000, 0xFBC3,0xD246,0x0000, 0xFBC3,0xD247,0x0000, /* 1D245 */
+0xFBC3,0xD248,0x0000, 0xFBC3,0xD249,0x0000, 0xFBC3,0xD24A,0x0000, /* 1D248 */
+0xFBC3,0xD24B,0x0000, 0xFBC3,0xD24C,0x0000, 0xFBC3,0xD24D,0x0000, /* 1D24B */
+0xFBC3,0xD24E,0x0000, 0xFBC3,0xD24F,0x0000, 0xFBC3,0xD250,0x0000, /* 1D24E */
+0xFBC3,0xD251,0x0000, 0xFBC3,0xD252,0x0000, 0xFBC3,0xD253,0x0000, /* 1D251 */
+0xFBC3,0xD254,0x0000, 0xFBC3,0xD255,0x0000, 0xFBC3,0xD256,0x0000, /* 1D254 */
+0xFBC3,0xD257,0x0000, 0xFBC3,0xD258,0x0000, 0xFBC3,0xD259,0x0000, /* 1D257 */
+0xFBC3,0xD25A,0x0000, 0xFBC3,0xD25B,0x0000, 0xFBC3,0xD25C,0x0000, /* 1D25A */
+0xFBC3,0xD25D,0x0000, 0xFBC3,0xD25E,0x0000, 0xFBC3,0xD25F,0x0000, /* 1D25D */
+0xFBC3,0xD260,0x0000, 0xFBC3,0xD261,0x0000, 0xFBC3,0xD262,0x0000, /* 1D260 */
+0xFBC3,0xD263,0x0000, 0xFBC3,0xD264,0x0000, 0xFBC3,0xD265,0x0000, /* 1D263 */
+0xFBC3,0xD266,0x0000, 0xFBC3,0xD267,0x0000, 0xFBC3,0xD268,0x0000, /* 1D266 */
+0xFBC3,0xD269,0x0000, 0xFBC3,0xD26A,0x0000, 0xFBC3,0xD26B,0x0000, /* 1D269 */
+0xFBC3,0xD26C,0x0000, 0xFBC3,0xD26D,0x0000, 0xFBC3,0xD26E,0x0000, /* 1D26C */
+0xFBC3,0xD26F,0x0000, 0xFBC3,0xD270,0x0000, 0xFBC3,0xD271,0x0000, /* 1D26F */
+0xFBC3,0xD272,0x0000, 0xFBC3,0xD273,0x0000, 0xFBC3,0xD274,0x0000, /* 1D272 */
+0xFBC3,0xD275,0x0000, 0xFBC3,0xD276,0x0000, 0xFBC3,0xD277,0x0000, /* 1D275 */
+0xFBC3,0xD278,0x0000, 0xFBC3,0xD279,0x0000, 0xFBC3,0xD27A,0x0000, /* 1D278 */
+0xFBC3,0xD27B,0x0000, 0xFBC3,0xD27C,0x0000, 0xFBC3,0xD27D,0x0000, /* 1D27B */
+0xFBC3,0xD27E,0x0000, 0xFBC3,0xD27F,0x0000, 0xFBC3,0xD280,0x0000, /* 1D27E */
+0xFBC3,0xD281,0x0000, 0xFBC3,0xD282,0x0000, 0xFBC3,0xD283,0x0000, /* 1D281 */
+0xFBC3,0xD284,0x0000, 0xFBC3,0xD285,0x0000, 0xFBC3,0xD286,0x0000, /* 1D284 */
+0xFBC3,0xD287,0x0000, 0xFBC3,0xD288,0x0000, 0xFBC3,0xD289,0x0000, /* 1D287 */
+0xFBC3,0xD28A,0x0000, 0xFBC3,0xD28B,0x0000, 0xFBC3,0xD28C,0x0000, /* 1D28A */
+0xFBC3,0xD28D,0x0000, 0xFBC3,0xD28E,0x0000, 0xFBC3,0xD28F,0x0000, /* 1D28D */
+0xFBC3,0xD290,0x0000, 0xFBC3,0xD291,0x0000, 0xFBC3,0xD292,0x0000, /* 1D290 */
+0xFBC3,0xD293,0x0000, 0xFBC3,0xD294,0x0000, 0xFBC3,0xD295,0x0000, /* 1D293 */
+0xFBC3,0xD296,0x0000, 0xFBC3,0xD297,0x0000, 0xFBC3,0xD298,0x0000, /* 1D296 */
+0xFBC3,0xD299,0x0000, 0xFBC3,0xD29A,0x0000, 0xFBC3,0xD29B,0x0000, /* 1D299 */
+0xFBC3,0xD29C,0x0000, 0xFBC3,0xD29D,0x0000, 0xFBC3,0xD29E,0x0000, /* 1D29C */
+0xFBC3,0xD29F,0x0000, 0xFBC3,0xD2A0,0x0000, 0xFBC3,0xD2A1,0x0000, /* 1D29F */
+0xFBC3,0xD2A2,0x0000, 0xFBC3,0xD2A3,0x0000, 0xFBC3,0xD2A4,0x0000, /* 1D2A2 */
+0xFBC3,0xD2A5,0x0000, 0xFBC3,0xD2A6,0x0000, 0xFBC3,0xD2A7,0x0000, /* 1D2A5 */
+0xFBC3,0xD2A8,0x0000, 0xFBC3,0xD2A9,0x0000, 0xFBC3,0xD2AA,0x0000, /* 1D2A8 */
+0xFBC3,0xD2AB,0x0000, 0xFBC3,0xD2AC,0x0000, 0xFBC3,0xD2AD,0x0000, /* 1D2AB */
+0xFBC3,0xD2AE,0x0000, 0xFBC3,0xD2AF,0x0000, 0xFBC3,0xD2B0,0x0000, /* 1D2AE */
+0xFBC3,0xD2B1,0x0000, 0xFBC3,0xD2B2,0x0000, 0xFBC3,0xD2B3,0x0000, /* 1D2B1 */
+0xFBC3,0xD2B4,0x0000, 0xFBC3,0xD2B5,0x0000, 0xFBC3,0xD2B6,0x0000, /* 1D2B4 */
+0xFBC3,0xD2B7,0x0000, 0xFBC3,0xD2B8,0x0000, 0xFBC3,0xD2B9,0x0000, /* 1D2B7 */
+0xFBC3,0xD2BA,0x0000, 0xFBC3,0xD2BB,0x0000, 0xFBC3,0xD2BC,0x0000, /* 1D2BA */
+0xFBC3,0xD2BD,0x0000, 0xFBC3,0xD2BE,0x0000, 0xFBC3,0xD2BF,0x0000, /* 1D2BD */
+0xFBC3,0xD2C0,0x0000, 0xFBC3,0xD2C1,0x0000, 0xFBC3,0xD2C2,0x0000, /* 1D2C0 */
+0xFBC3,0xD2C3,0x0000, 0xFBC3,0xD2C4,0x0000, 0xFBC3,0xD2C5,0x0000, /* 1D2C3 */
+0xFBC3,0xD2C6,0x0000, 0xFBC3,0xD2C7,0x0000, 0xFBC3,0xD2C8,0x0000, /* 1D2C6 */
+0xFBC3,0xD2C9,0x0000, 0xFBC3,0xD2CA,0x0000, 0xFBC3,0xD2CB,0x0000, /* 1D2C9 */
+0xFBC3,0xD2CC,0x0000, 0xFBC3,0xD2CD,0x0000, 0xFBC3,0xD2CE,0x0000, /* 1D2CC */
+0xFBC3,0xD2CF,0x0000, 0xFBC3,0xD2D0,0x0000, 0xFBC3,0xD2D1,0x0000, /* 1D2CF */
+0xFBC3,0xD2D2,0x0000, 0xFBC3,0xD2D3,0x0000, 0xFBC3,0xD2D4,0x0000, /* 1D2D2 */
+0xFBC3,0xD2D5,0x0000, 0xFBC3,0xD2D6,0x0000, 0xFBC3,0xD2D7,0x0000, /* 1D2D5 */
+0xFBC3,0xD2D8,0x0000, 0xFBC3,0xD2D9,0x0000, 0xFBC3,0xD2DA,0x0000, /* 1D2D8 */
+0xFBC3,0xD2DB,0x0000, 0xFBC3,0xD2DC,0x0000, 0xFBC3,0xD2DD,0x0000, /* 1D2DB */
+0xFBC3,0xD2DE,0x0000, 0xFBC3,0xD2DF,0x0000, 0xFBC3,0xD2E0,0x0000, /* 1D2DE */
+0xFBC3,0xD2E1,0x0000, 0xFBC3,0xD2E2,0x0000, 0xFBC3,0xD2E3,0x0000, /* 1D2E1 */
+0xFBC3,0xD2E4,0x0000, 0xFBC3,0xD2E5,0x0000, 0xFBC3,0xD2E6,0x0000, /* 1D2E4 */
+0xFBC3,0xD2E7,0x0000, 0xFBC3,0xD2E8,0x0000, 0xFBC3,0xD2E9,0x0000, /* 1D2E7 */
+0xFBC3,0xD2EA,0x0000, 0xFBC3,0xD2EB,0x0000, 0xFBC3,0xD2EC,0x0000, /* 1D2EA */
+0xFBC3,0xD2ED,0x0000, 0xFBC3,0xD2EE,0x0000, 0xFBC3,0xD2EF,0x0000, /* 1D2ED */
+0xFBC3,0xD2F0,0x0000, 0xFBC3,0xD2F1,0x0000, 0xFBC3,0xD2F2,0x0000, /* 1D2F0 */
+0xFBC3,0xD2F3,0x0000, 0xFBC3,0xD2F4,0x0000, 0xFBC3,0xD2F5,0x0000, /* 1D2F3 */
+0xFBC3,0xD2F6,0x0000, 0xFBC3,0xD2F7,0x0000, 0xFBC3,0xD2F8,0x0000, /* 1D2F6 */
+0xFBC3,0xD2F9,0x0000, 0xFBC3,0xD2FA,0x0000, 0xFBC3,0xD2FB,0x0000, /* 1D2F9 */
+0xFBC3,0xD2FC,0x0000, 0xFBC3,0xD2FD,0x0000, 0xFBC3,0xD2FE,0x0000, /* 1D2FC */
+0xFBC3,0xD2FF,0x0000 };
+
+static const uint16 uca520_p1D3[]= { /* 1D300 (3 weights per char) */
+0x0D7E,0x0000,0x0000, 0x0D7F,0x0000,0x0000, 0x0D80,0x0000,0x0000, /* 1D300 */
+0x0D81,0x0000,0x0000, 0x0D82,0x0000,0x0000, 0x0D83,0x0000,0x0000, /* 1D303 */
+0x0D84,0x0000,0x0000, 0x0D85,0x0000,0x0000, 0x0D86,0x0000,0x0000, /* 1D306 */
+0x0D87,0x0000,0x0000, 0x0D88,0x0000,0x0000, 0x0D89,0x0000,0x0000, /* 1D309 */
+0x0D8A,0x0000,0x0000, 0x0D8B,0x0000,0x0000, 0x0D8C,0x0000,0x0000, /* 1D30C */
+0x0D8D,0x0000,0x0000, 0x0D8E,0x0000,0x0000, 0x0D8F,0x0000,0x0000, /* 1D30F */
+0x0D90,0x0000,0x0000, 0x0D91,0x0000,0x0000, 0x0D92,0x0000,0x0000, /* 1D312 */
+0x0D93,0x0000,0x0000, 0x0D94,0x0000,0x0000, 0x0D95,0x0000,0x0000, /* 1D315 */
+0x0D96,0x0000,0x0000, 0x0D97,0x0000,0x0000, 0x0D98,0x0000,0x0000, /* 1D318 */
+0x0D99,0x0000,0x0000, 0x0D9A,0x0000,0x0000, 0x0D9B,0x0000,0x0000, /* 1D31B */
+0x0D9C,0x0000,0x0000, 0x0D9D,0x0000,0x0000, 0x0D9E,0x0000,0x0000, /* 1D31E */
+0x0D9F,0x0000,0x0000, 0x0DA0,0x0000,0x0000, 0x0DA1,0x0000,0x0000, /* 1D321 */
+0x0DA2,0x0000,0x0000, 0x0DA3,0x0000,0x0000, 0x0DA4,0x0000,0x0000, /* 1D324 */
+0x0DA5,0x0000,0x0000, 0x0DA6,0x0000,0x0000, 0x0DA7,0x0000,0x0000, /* 1D327 */
+0x0DA8,0x0000,0x0000, 0x0DA9,0x0000,0x0000, 0x0DAA,0x0000,0x0000, /* 1D32A */
+0x0DAB,0x0000,0x0000, 0x0DAC,0x0000,0x0000, 0x0DAD,0x0000,0x0000, /* 1D32D */
+0x0DAE,0x0000,0x0000, 0x0DAF,0x0000,0x0000, 0x0DB0,0x0000,0x0000, /* 1D330 */
+0x0DB1,0x0000,0x0000, 0x0DB2,0x0000,0x0000, 0x0DB3,0x0000,0x0000, /* 1D333 */
+0x0DB4,0x0000,0x0000, 0x0DB5,0x0000,0x0000, 0x0DB6,0x0000,0x0000, /* 1D336 */
+0x0DB7,0x0000,0x0000, 0x0DB8,0x0000,0x0000, 0x0DB9,0x0000,0x0000, /* 1D339 */
+0x0DBA,0x0000,0x0000, 0x0DBB,0x0000,0x0000, 0x0DBC,0x0000,0x0000, /* 1D33C */
+0x0DBD,0x0000,0x0000, 0x0DBE,0x0000,0x0000, 0x0DBF,0x0000,0x0000, /* 1D33F */
+0x0DC0,0x0000,0x0000, 0x0DC1,0x0000,0x0000, 0x0DC2,0x0000,0x0000, /* 1D342 */
+0x0DC3,0x0000,0x0000, 0x0DC4,0x0000,0x0000, 0x0DC5,0x0000,0x0000, /* 1D345 */
+0x0DC6,0x0000,0x0000, 0x0DC7,0x0000,0x0000, 0x0DC8,0x0000,0x0000, /* 1D348 */
+0x0DC9,0x0000,0x0000, 0x0DCA,0x0000,0x0000, 0x0DCB,0x0000,0x0000, /* 1D34B */
+0x0DCC,0x0000,0x0000, 0x0DCD,0x0000,0x0000, 0x0DCE,0x0000,0x0000, /* 1D34E */
+0x0DCF,0x0000,0x0000, 0x0DD0,0x0000,0x0000, 0x0DD1,0x0000,0x0000, /* 1D351 */
+0x0DD2,0x0000,0x0000, 0x0DD3,0x0000,0x0000, 0x0DD4,0x0000,0x0000, /* 1D354 */
+0xFBC3,0xD357,0x0000, 0xFBC3,0xD358,0x0000, 0xFBC3,0xD359,0x0000, /* 1D357 */
+0xFBC3,0xD35A,0x0000, 0xFBC3,0xD35B,0x0000, 0xFBC3,0xD35C,0x0000, /* 1D35A */
+0xFBC3,0xD35D,0x0000, 0xFBC3,0xD35E,0x0000, 0xFBC3,0xD35F,0x0000, /* 1D35D */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D360 */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D363 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D366 */
+0x11C5,0x0000,0x0000, 0x11C6,0x0000,0x0000, 0x11C7,0x0000,0x0000, /* 1D369 */
+0x11C8,0x0000,0x0000, 0x11C9,0x0000,0x0000, 0x11CA,0x0000,0x0000, /* 1D36C */
+0x11CB,0x0000,0x0000, 0x11CC,0x0000,0x0000, 0x11CD,0x0000,0x0000, /* 1D36F */
+0xFBC3,0xD372,0x0000, 0xFBC3,0xD373,0x0000, 0xFBC3,0xD374,0x0000, /* 1D372 */
+0xFBC3,0xD375,0x0000, 0xFBC3,0xD376,0x0000, 0xFBC3,0xD377,0x0000, /* 1D375 */
+0xFBC3,0xD378,0x0000, 0xFBC3,0xD379,0x0000, 0xFBC3,0xD37A,0x0000, /* 1D378 */
+0xFBC3,0xD37B,0x0000, 0xFBC3,0xD37C,0x0000, 0xFBC3,0xD37D,0x0000, /* 1D37B */
+0xFBC3,0xD37E,0x0000, 0xFBC3,0xD37F,0x0000, 0xFBC3,0xD380,0x0000, /* 1D37E */
+0xFBC3,0xD381,0x0000, 0xFBC3,0xD382,0x0000, 0xFBC3,0xD383,0x0000, /* 1D381 */
+0xFBC3,0xD384,0x0000, 0xFBC3,0xD385,0x0000, 0xFBC3,0xD386,0x0000, /* 1D384 */
+0xFBC3,0xD387,0x0000, 0xFBC3,0xD388,0x0000, 0xFBC3,0xD389,0x0000, /* 1D387 */
+0xFBC3,0xD38A,0x0000, 0xFBC3,0xD38B,0x0000, 0xFBC3,0xD38C,0x0000, /* 1D38A */
+0xFBC3,0xD38D,0x0000, 0xFBC3,0xD38E,0x0000, 0xFBC3,0xD38F,0x0000, /* 1D38D */
+0xFBC3,0xD390,0x0000, 0xFBC3,0xD391,0x0000, 0xFBC3,0xD392,0x0000, /* 1D390 */
+0xFBC3,0xD393,0x0000, 0xFBC3,0xD394,0x0000, 0xFBC3,0xD395,0x0000, /* 1D393 */
+0xFBC3,0xD396,0x0000, 0xFBC3,0xD397,0x0000, 0xFBC3,0xD398,0x0000, /* 1D396 */
+0xFBC3,0xD399,0x0000, 0xFBC3,0xD39A,0x0000, 0xFBC3,0xD39B,0x0000, /* 1D399 */
+0xFBC3,0xD39C,0x0000, 0xFBC3,0xD39D,0x0000, 0xFBC3,0xD39E,0x0000, /* 1D39C */
+0xFBC3,0xD39F,0x0000, 0xFBC3,0xD3A0,0x0000, 0xFBC3,0xD3A1,0x0000, /* 1D39F */
+0xFBC3,0xD3A2,0x0000, 0xFBC3,0xD3A3,0x0000, 0xFBC3,0xD3A4,0x0000, /* 1D3A2 */
+0xFBC3,0xD3A5,0x0000, 0xFBC3,0xD3A6,0x0000, 0xFBC3,0xD3A7,0x0000, /* 1D3A5 */
+0xFBC3,0xD3A8,0x0000, 0xFBC3,0xD3A9,0x0000, 0xFBC3,0xD3AA,0x0000, /* 1D3A8 */
+0xFBC3,0xD3AB,0x0000, 0xFBC3,0xD3AC,0x0000, 0xFBC3,0xD3AD,0x0000, /* 1D3AB */
+0xFBC3,0xD3AE,0x0000, 0xFBC3,0xD3AF,0x0000, 0xFBC3,0xD3B0,0x0000, /* 1D3AE */
+0xFBC3,0xD3B1,0x0000, 0xFBC3,0xD3B2,0x0000, 0xFBC3,0xD3B3,0x0000, /* 1D3B1 */
+0xFBC3,0xD3B4,0x0000, 0xFBC3,0xD3B5,0x0000, 0xFBC3,0xD3B6,0x0000, /* 1D3B4 */
+0xFBC3,0xD3B7,0x0000, 0xFBC3,0xD3B8,0x0000, 0xFBC3,0xD3B9,0x0000, /* 1D3B7 */
+0xFBC3,0xD3BA,0x0000, 0xFBC3,0xD3BB,0x0000, 0xFBC3,0xD3BC,0x0000, /* 1D3BA */
+0xFBC3,0xD3BD,0x0000, 0xFBC3,0xD3BE,0x0000, 0xFBC3,0xD3BF,0x0000, /* 1D3BD */
+0xFBC3,0xD3C0,0x0000, 0xFBC3,0xD3C1,0x0000, 0xFBC3,0xD3C2,0x0000, /* 1D3C0 */
+0xFBC3,0xD3C3,0x0000, 0xFBC3,0xD3C4,0x0000, 0xFBC3,0xD3C5,0x0000, /* 1D3C3 */
+0xFBC3,0xD3C6,0x0000, 0xFBC3,0xD3C7,0x0000, 0xFBC3,0xD3C8,0x0000, /* 1D3C6 */
+0xFBC3,0xD3C9,0x0000, 0xFBC3,0xD3CA,0x0000, 0xFBC3,0xD3CB,0x0000, /* 1D3C9 */
+0xFBC3,0xD3CC,0x0000, 0xFBC3,0xD3CD,0x0000, 0xFBC3,0xD3CE,0x0000, /* 1D3CC */
+0xFBC3,0xD3CF,0x0000, 0xFBC3,0xD3D0,0x0000, 0xFBC3,0xD3D1,0x0000, /* 1D3CF */
+0xFBC3,0xD3D2,0x0000, 0xFBC3,0xD3D3,0x0000, 0xFBC3,0xD3D4,0x0000, /* 1D3D2 */
+0xFBC3,0xD3D5,0x0000, 0xFBC3,0xD3D6,0x0000, 0xFBC3,0xD3D7,0x0000, /* 1D3D5 */
+0xFBC3,0xD3D8,0x0000, 0xFBC3,0xD3D9,0x0000, 0xFBC3,0xD3DA,0x0000, /* 1D3D8 */
+0xFBC3,0xD3DB,0x0000, 0xFBC3,0xD3DC,0x0000, 0xFBC3,0xD3DD,0x0000, /* 1D3DB */
+0xFBC3,0xD3DE,0x0000, 0xFBC3,0xD3DF,0x0000, 0xFBC3,0xD3E0,0x0000, /* 1D3DE */
+0xFBC3,0xD3E1,0x0000, 0xFBC3,0xD3E2,0x0000, 0xFBC3,0xD3E3,0x0000, /* 1D3E1 */
+0xFBC3,0xD3E4,0x0000, 0xFBC3,0xD3E5,0x0000, 0xFBC3,0xD3E6,0x0000, /* 1D3E4 */
+0xFBC3,0xD3E7,0x0000, 0xFBC3,0xD3E8,0x0000, 0xFBC3,0xD3E9,0x0000, /* 1D3E7 */
+0xFBC3,0xD3EA,0x0000, 0xFBC3,0xD3EB,0x0000, 0xFBC3,0xD3EC,0x0000, /* 1D3EA */
+0xFBC3,0xD3ED,0x0000, 0xFBC3,0xD3EE,0x0000, 0xFBC3,0xD3EF,0x0000, /* 1D3ED */
+0xFBC3,0xD3F0,0x0000, 0xFBC3,0xD3F1,0x0000, 0xFBC3,0xD3F2,0x0000, /* 1D3F0 */
+0xFBC3,0xD3F3,0x0000, 0xFBC3,0xD3F4,0x0000, 0xFBC3,0xD3F5,0x0000, /* 1D3F3 */
+0xFBC3,0xD3F6,0x0000, 0xFBC3,0xD3F7,0x0000, 0xFBC3,0xD3F8,0x0000, /* 1D3F6 */
+0xFBC3,0xD3F9,0x0000, 0xFBC3,0xD3FA,0x0000, 0xFBC3,0xD3FB,0x0000, /* 1D3F9 */
+0xFBC3,0xD3FC,0x0000, 0xFBC3,0xD3FD,0x0000, 0xFBC3,0xD3FE,0x0000, /* 1D3FC */
+0xFBC3,0xD3FF,0x0000 };
+
+static const uint16 uca520_p1D4[]= { /* 1D400 (3 weights per char) */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D400 */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D403 */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D406 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D409 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D40C */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D40F */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D412 */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D415 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D418 */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D41B */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D41E */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D421 */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D424 */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D427 */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D42A */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D42D */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D430 */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D433 */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D436 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D439 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D43C */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D43F */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D442 */
+0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D445 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D448 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D44B */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D44E */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D451 */
+0x12B0,0x0000,0x0000, 0xFBC3,0xD455,0x0000, 0x12EC,0x0000,0x0000, /* 1D454 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D457 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D45A */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D45D */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D460 */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D463 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D466 */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D469 */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D46C */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D46F */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D472 */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D475 */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D478 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D47B */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D47E */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D481 */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D484 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D487 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D48A */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D48D */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D490 */
+0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D493 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D496 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D499 */
+0x120F,0x0000,0x0000, 0xFBC3,0xD49D,0x0000, 0x123D,0x0000,0x0000, /* 1D49C */
+0x1250,0x0000,0x0000, 0xFBC3,0xD4A0,0x0000, 0xFBC3,0xD4A1,0x0000, /* 1D49F */
+0x12B0,0x0000,0x0000, 0xFBC3,0xD4A3,0x0000, 0xFBC3,0xD4A4,0x0000, /* 1D4A2 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0xFBC3,0xD4A7,0x0000, /* 1D4A5 */
+0xFBC3,0xD4A8,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D4A8 */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0xFBC3,0xD4AD,0x0000, /* 1D4AB */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D4AE */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D4B1 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D4B4 */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D4B7 */
+0xFBC3,0xD4BA,0x0000, 0x12A3,0x0000,0x0000, 0xFBC3,0xD4BC,0x0000, /* 1D4BA */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D4BD */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D4C0 */
+0x136D,0x0000,0x0000, 0xFBC3,0xD4C4,0x0000, 0x13B3,0x0000,0x0000, /* 1D4C3 */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D4C6 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D4C9 */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D4CC */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D4CF */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D4D2 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D4D5 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D4D8 */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D4DB */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D4DE */
+0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D4E1 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D4E4 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D4E7 */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D4EA */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D4ED */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D4F0 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D4F3 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D4F6 */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D4F9 */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D4FC */
+0x147B,0x0000,0x0000 };
+
+static const uint16 uca520_p1D5[]= { /* 1D500 (3 weights per char) */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D500 */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D503 */
+0xFBC3,0xD506,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D506 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0xFBC3,0xD50B,0x0000, /* 1D509 */
+0xFBC3,0xD50C,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D50C */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D50F */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D512 */
+0xFBC3,0xD515,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D515 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D518 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0xFBC3,0xD51D,0x0000, /* 1D51B */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D51E */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D521 */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D524 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D527 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D52A */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D52D */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D530 */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D533 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D536 */
+0x1225,0x0000,0x0000, 0xFBC3,0xD53A,0x0000, 0x1250,0x0000,0x0000, /* 1D539 */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D53C */
+0xFBC3,0xD53F,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D53F */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D542 */
+0xFBC3,0xD545,0x0000, 0x138E,0x0000,0x0000, 0xFBC3,0xD547,0x0000, /* 1D545 */
+0xFBC3,0xD548,0x0000, 0xFBC3,0xD549,0x0000, 0x1410,0x0000,0x0000, /* 1D548 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D54B */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D54E */
+0xFBC3,0xD551,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D551 */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D554 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D557 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D55A */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D55D */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D560 */
+0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D563 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D566 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D569 */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D56C */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D56F */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D572 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D575 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D578 */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D57B */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D57E */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D581 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D584 */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D587 */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D58A */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D58D */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D590 */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D593 */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D596 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D599 */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D59C */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D59F */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D5A2 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D5A5 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D5A8 */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D5AB */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D5AE */
+0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D5B1 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D5B4 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D5B7 */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D5BA */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D5BD */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D5C0 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D5C3 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D5C6 */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D5C9 */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D5CC */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D5CF */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D5D2 */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D5D5 */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D5D8 */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D5DB */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D5DE */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D5E1 */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D5E4 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D5E7 */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D5EA */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D5ED */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D5F0 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D5F3 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D5F6 */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D5F9 */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D5FC */
+0x13DA,0x0000,0x0000 };
+
+static const uint16 uca520_p1D6[]= { /* 1D600 (3 weights per char) */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D600 */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D603 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D606 */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D609 */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D60C */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D60F */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D612 */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D615 */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D618 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D61B */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D61E */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D621 */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D624 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D627 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D62A */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D62D */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D630 */
+0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D633 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D636 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D639 */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D63C */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D63F */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D642 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D645 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D648 */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D64B */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D64E */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D651 */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, /* 1D654 */
+0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, /* 1D657 */
+0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, /* 1D65A */
+0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, /* 1D65D */
+0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, /* 1D660 */
+0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, /* 1D663 */
+0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, /* 1D666 */
+0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, /* 1D669 */
+0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, /* 1D66C */
+0x14AD,0x0000,0x0000, 0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, /* 1D66F */
+0x123D,0x0000,0x0000, 0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, /* 1D672 */
+0x12A3,0x0000,0x0000, 0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, /* 1D675 */
+0x12EC,0x0000,0x0000, 0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, /* 1D678 */
+0x1330,0x0000,0x0000, 0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, /* 1D67B */
+0x138E,0x0000,0x0000, 0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, /* 1D67E */
+0x13DA,0x0000,0x0000, 0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, /* 1D681 */
+0x1453,0x0000,0x0000, 0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, /* 1D684 */
+0x1497,0x0000,0x0000, 0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, /* 1D687 */
+0x120F,0x0000,0x0000, 0x1225,0x0000,0x0000, 0x123D,0x0000,0x0000, /* 1D68A */
+0x1250,0x0000,0x0000, 0x126B,0x0000,0x0000, 0x12A3,0x0000,0x0000, /* 1D68D */
+0x12B0,0x0000,0x0000, 0x12D3,0x0000,0x0000, 0x12EC,0x0000,0x0000, /* 1D690 */
+0x1305,0x0000,0x0000, 0x131E,0x0000,0x0000, 0x1330,0x0000,0x0000, /* 1D693 */
+0x135F,0x0000,0x0000, 0x136D,0x0000,0x0000, 0x138E,0x0000,0x0000, /* 1D696 */
+0x13B3,0x0000,0x0000, 0x13C8,0x0000,0x0000, 0x13DA,0x0000,0x0000, /* 1D699 */
+0x1410,0x0000,0x0000, 0x1433,0x0000,0x0000, 0x1453,0x0000,0x0000, /* 1D69C */
+0x147B,0x0000,0x0000, 0x148D,0x0000,0x0000, 0x1497,0x0000,0x0000, /* 1D69F */
+0x149C,0x0000,0x0000, 0x14AD,0x0000,0x0000, 0x12F0,0x0000,0x0000, /* 1D6A2 */
+0x1309,0x0000,0x0000, 0xFBC3,0xD6A6,0x0000, 0xFBC3,0xD6A7,0x0000, /* 1D6A5 */
+0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D6A8 */
+0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D6AB */
+0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D6AE */
+0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D6B1 */
+0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D6B4 */
+0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6B7 */
+0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D6BA */
+0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D6BD */
+0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D6C0 */
+0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D6C3 */
+0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D6C6 */
+0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D6C9 */
+0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D6CC */
+0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D6CF */
+0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D6D2 */
+0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D6D5 */
+0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D6D8 */
+0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6DB */
+0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D6DE */
+0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D6E1 */
+0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D6E4 */
+0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D6E7 */
+0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D6EA */
+0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D6ED */
+0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D6F0 */
+0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D6F3 */
+0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D6F6 */
+0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, /* 1D6F9 */
+0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D6FC */
+0x1549,0x0000,0x0000 };
+
+static const uint16 uca520_p1D7[]= { /* 1D700 (3 weights per char) */
+0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D700 */
+0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D703 */
+0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D706 */
+0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D709 */
+0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D70C */
+0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D70F */
+0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D712 */
+0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D715 */
+0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D718 */
+0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D71B */
+0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D71E */
+0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D721 */
+0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D724 */
+0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D727 */
+0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D72A */
+0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D72D */
+0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D730 */
+0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, /* 1D733 */
+0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D736 */
+0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D739 */
+0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D73C */
+0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D73F */
+0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D742 */
+0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D745 */
+0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D748 */
+0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D74B */
+0x156D,0x0000,0x0000, 0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D74E */
+0x1551,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D751 */
+0x1560,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D754 */
+0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D757 */
+0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D75A */
+0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D75D */
+0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D760 */
+0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D763 */
+0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D766 */
+0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D769 */
+0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D76C */
+0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, /* 1D76F */
+0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, /* 1D772 */
+0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D775 */
+0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, /* 1D778 */
+0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, /* 1D77B */
+0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D77E */
+0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, /* 1D781 */
+0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, /* 1D784 */
+0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, 0x0542,0x0000,0x0000, /* 1D787 */
+0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D78A */
+0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D78D */
+0x1545,0x0000,0x0000, 0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, /* 1D790 */
+0x1549,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, /* 1D793 */
+0x1550,0x0000,0x0000, 0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, /* 1D796 */
+0x1554,0x0000,0x0000, 0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, /* 1D799 */
+0x1558,0x0000,0x0000, 0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, /* 1D79C */
+0x155B,0x0000,0x0000, 0x1560,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D79F */
+0x1563,0x0000,0x0000, 0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, /* 1D7A2 */
+0x1569,0x0000,0x0000, 0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, /* 1D7A5 */
+0x156D,0x0000,0x0000, 0x0546,0x0000,0x0000, 0x1545,0x0000,0x0000, /* 1D7A8 */
+0x1546,0x0000,0x0000, 0x1547,0x0000,0x0000, 0x1549,0x0000,0x0000, /* 1D7AB */
+0x154A,0x0000,0x0000, 0x154E,0x0000,0x0000, 0x1550,0x0000,0x0000, /* 1D7AE */
+0x1551,0x0000,0x0000, 0x1552,0x0000,0x0000, 0x1554,0x0000,0x0000, /* 1D7B1 */
+0x1555,0x0000,0x0000, 0x1557,0x0000,0x0000, 0x1558,0x0000,0x0000, /* 1D7B4 */
+0x1559,0x0000,0x0000, 0x155A,0x0000,0x0000, 0x155B,0x0000,0x0000, /* 1D7B7 */
+0x1560,0x0000,0x0000, 0x1563,0x0000,0x0000, 0x1563,0x0000,0x0000, /* 1D7BA */
+0x1567,0x0000,0x0000, 0x1568,0x0000,0x0000, 0x1569,0x0000,0x0000, /* 1D7BD */
+0x156A,0x0000,0x0000, 0x156B,0x0000,0x0000, 0x156D,0x0000,0x0000, /* 1D7C0 */
+0x0542,0x0000,0x0000, 0x154A,0x0000,0x0000, 0x1551,0x0000,0x0000, /* 1D7C3 */
+0x1554,0x0000,0x0000, 0x1569,0x0000,0x0000, 0x1560,0x0000,0x0000, /* 1D7C6 */
+0x155B,0x0000,0x0000, 0x154B,0x0000,0x0000, 0x154B,0x0000,0x0000, /* 1D7C9 */
+0xFBC3,0xD7CC,0x0000, 0xFBC3,0xD7CD,0x0000, 0x1205,0x0000,0x0000, /* 1D7CC */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D7CF */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D7D2 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D7D5 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1D7D8 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1D7DB */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1D7DE */
+0x120E,0x0000,0x0000, 0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, /* 1D7E1 */
+0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, /* 1D7E4 */
+0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, /* 1D7E7 */
+0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, 0x1205,0x0000,0x0000, /* 1D7EA */
+0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, 0x1208,0x0000,0x0000, /* 1D7ED */
+0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, 0x120B,0x0000,0x0000, /* 1D7F0 */
+0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, 0x120E,0x0000,0x0000, /* 1D7F3 */
+0x1205,0x0000,0x0000, 0x1206,0x0000,0x0000, 0x1207,0x0000,0x0000, /* 1D7F6 */
+0x1208,0x0000,0x0000, 0x1209,0x0000,0x0000, 0x120A,0x0000,0x0000, /* 1D7F9 */
+0x120B,0x0000,0x0000, 0x120C,0x0000,0x0000, 0x120D,0x0000,0x0000, /* 1D7FC */
+0x120E,0x0000,0x0000 };
+
+static const uint16 uca520_p1F0[]= { /* 1F000 (3 weights per char) */
+0x1044,0x0000,0x0000, 0x1045,0x0000,0x0000, 0x1046,0x0000,0x0000, /* 1F000 */
+0x1047,0x0000,0x0000, 0x1048,0x0000,0x0000, 0x1049,0x0000,0x0000, /* 1F003 */
+0x104A,0x0000,0x0000, 0x104B,0x0000,0x0000, 0x104C,0x0000,0x0000, /* 1F006 */
+0x104D,0x0000,0x0000, 0x104E,0x0000,0x0000, 0x104F,0x0000,0x0000, /* 1F009 */
+0x1050,0x0000,0x0000, 0x1051,0x0000,0x0000, 0x1052,0x0000,0x0000, /* 1F00C */
+0x1053,0x0000,0x0000, 0x1054,0x0000,0x0000, 0x1055,0x0000,0x0000, /* 1F00F */
+0x1056,0x0000,0x0000, 0x1057,0x0000,0x0000, 0x1058,0x0000,0x0000, /* 1F012 */
+0x1059,0x0000,0x0000, 0x105A,0x0000,0x0000, 0x105B,0x0000,0x0000, /* 1F015 */
+0x105C,0x0000,0x0000, 0x105D,0x0000,0x0000, 0x105E,0x0000,0x0000, /* 1F018 */
+0x105F,0x0000,0x0000, 0x1060,0x0000,0x0000, 0x1061,0x0000,0x0000, /* 1F01B */
+0x1062,0x0000,0x0000, 0x1063,0x0000,0x0000, 0x1064,0x0000,0x0000, /* 1F01E */
+0x1065,0x0000,0x0000, 0x1066,0x0000,0x0000, 0x1067,0x0000,0x0000, /* 1F021 */
+0x1068,0x0000,0x0000, 0x1069,0x0000,0x0000, 0x106A,0x0000,0x0000, /* 1F024 */
+0x106B,0x0000,0x0000, 0x106C,0x0000,0x0000, 0x106D,0x0000,0x0000, /* 1F027 */
+0x106E,0x0000,0x0000, 0x106F,0x0000,0x0000, 0xFBC3,0xF02C,0x0000, /* 1F02A */
+0xFBC3,0xF02D,0x0000, 0xFBC3,0xF02E,0x0000, 0xFBC3,0xF02F,0x0000, /* 1F02D */
+0x1070,0x0000,0x0000, 0x1071,0x0000,0x0000, 0x1072,0x0000,0x0000, /* 1F030 */
+0x1073,0x0000,0x0000, 0x1074,0x0000,0x0000, 0x1075,0x0000,0x0000, /* 1F033 */
+0x1076,0x0000,0x0000, 0x1077,0x0000,0x0000, 0x1078,0x0000,0x0000, /* 1F036 */
+0x1079,0x0000,0x0000, 0x107A,0x0000,0x0000, 0x107B,0x0000,0x0000, /* 1F039 */
+0x107C,0x0000,0x0000, 0x107D,0x0000,0x0000, 0x107E,0x0000,0x0000, /* 1F03C */
+0x107F,0x0000,0x0000, 0x1080,0x0000,0x0000, 0x1081,0x0000,0x0000, /* 1F03F */
+0x1082,0x0000,0x0000, 0x1083,0x0000,0x0000, 0x1084,0x0000,0x0000, /* 1F042 */
+0x1085,0x0000,0x0000, 0x1086,0x0000,0x0000, 0x1087,0x0000,0x0000, /* 1F045 */
+0x1088,0x0000,0x0000, 0x1089,0x0000,0x0000, 0x108A,0x0000,0x0000, /* 1F048 */
+0x108B,0x0000,0x0000, 0x108C,0x0000,0x0000, 0x108D,0x0000,0x0000, /* 1F04B */
+0x108E,0x0000,0x0000, 0x108F,0x0000,0x0000, 0x1090,0x0000,0x0000, /* 1F04E */
+0x1091,0x0000,0x0000, 0x1092,0x0000,0x0000, 0x1093,0x0000,0x0000, /* 1F051 */
+0x1094,0x0000,0x0000, 0x1095,0x0000,0x0000, 0x1096,0x0000,0x0000, /* 1F054 */
+0x1097,0x0000,0x0000, 0x1098,0x0000,0x0000, 0x1099,0x0000,0x0000, /* 1F057 */
+0x109A,0x0000,0x0000, 0x109B,0x0000,0x0000, 0x109C,0x0000,0x0000, /* 1F05A */
+0x109D,0x0000,0x0000, 0x109E,0x0000,0x0000, 0x109F,0x0000,0x0000, /* 1F05D */
+0x10A0,0x0000,0x0000, 0x10A1,0x0000,0x0000, 0x10A2,0x0000,0x0000, /* 1F060 */
+0x10A3,0x0000,0x0000, 0x10A4,0x0000,0x0000, 0x10A5,0x0000,0x0000, /* 1F063 */
+0x10A6,0x0000,0x0000, 0x10A7,0x0000,0x0000, 0x10A8,0x0000,0x0000, /* 1F066 */
+0x10A9,0x0000,0x0000, 0x10AA,0x0000,0x0000, 0x10AB,0x0000,0x0000, /* 1F069 */
+0x10AC,0x0000,0x0000, 0x10AD,0x0000,0x0000, 0x10AE,0x0000,0x0000, /* 1F06C */
+0x10AF,0x0000,0x0000, 0x10B0,0x0000,0x0000, 0x10B1,0x0000,0x0000, /* 1F06F */
+0x10B2,0x0000,0x0000, 0x10B3,0x0000,0x0000, 0x10B4,0x0000,0x0000, /* 1F072 */
+0x10B5,0x0000,0x0000, 0x10B6,0x0000,0x0000, 0x10B7,0x0000,0x0000, /* 1F075 */
+0x10B8,0x0000,0x0000, 0x10B9,0x0000,0x0000, 0x10BA,0x0000,0x0000, /* 1F078 */
+0x10BB,0x0000,0x0000, 0x10BC,0x0000,0x0000, 0x10BD,0x0000,0x0000, /* 1F07B */
+0x10BE,0x0000,0x0000, 0x10BF,0x0000,0x0000, 0x10C0,0x0000,0x0000, /* 1F07E */
+0x10C1,0x0000,0x0000, 0x10C2,0x0000,0x0000, 0x10C3,0x0000,0x0000, /* 1F081 */
+0x10C4,0x0000,0x0000, 0x10C5,0x0000,0x0000, 0x10C6,0x0000,0x0000, /* 1F084 */
+0x10C7,0x0000,0x0000, 0x10C8,0x0000,0x0000, 0x10C9,0x0000,0x0000, /* 1F087 */
+0x10CA,0x0000,0x0000, 0x10CB,0x0000,0x0000, 0x10CC,0x0000,0x0000, /* 1F08A */
+0x10CD,0x0000,0x0000, 0x10CE,0x0000,0x0000, 0x10CF,0x0000,0x0000, /* 1F08D */
+0x10D0,0x0000,0x0000, 0x10D1,0x0000,0x0000, 0x10D2,0x0000,0x0000, /* 1F090 */
+0x10D3,0x0000,0x0000, 0xFBC3,0xF094,0x0000, 0xFBC3,0xF095,0x0000, /* 1F093 */
+0xFBC3,0xF096,0x0000, 0xFBC3,0xF097,0x0000, 0xFBC3,0xF098,0x0000, /* 1F096 */
+0xFBC3,0xF099,0x0000, 0xFBC3,0xF09A,0x0000, 0xFBC3,0xF09B,0x0000, /* 1F099 */
+0xFBC3,0xF09C,0x0000, 0xFBC3,0xF09D,0x0000, 0xFBC3,0xF09E,0x0000, /* 1F09C */
+0xFBC3,0xF09F,0x0000, 0xFBC3,0xF0A0,0x0000, 0xFBC3,0xF0A1,0x0000, /* 1F09F */
+0xFBC3,0xF0A2,0x0000, 0xFBC3,0xF0A3,0x0000, 0xFBC3,0xF0A4,0x0000, /* 1F0A2 */
+0xFBC3,0xF0A5,0x0000, 0xFBC3,0xF0A6,0x0000, 0xFBC3,0xF0A7,0x0000, /* 1F0A5 */
+0xFBC3,0xF0A8,0x0000, 0xFBC3,0xF0A9,0x0000, 0xFBC3,0xF0AA,0x0000, /* 1F0A8 */
+0xFBC3,0xF0AB,0x0000, 0xFBC3,0xF0AC,0x0000, 0xFBC3,0xF0AD,0x0000, /* 1F0AB */
+0xFBC3,0xF0AE,0x0000, 0xFBC3,0xF0AF,0x0000, 0xFBC3,0xF0B0,0x0000, /* 1F0AE */
+0xFBC3,0xF0B1,0x0000, 0xFBC3,0xF0B2,0x0000, 0xFBC3,0xF0B3,0x0000, /* 1F0B1 */
+0xFBC3,0xF0B4,0x0000, 0xFBC3,0xF0B5,0x0000, 0xFBC3,0xF0B6,0x0000, /* 1F0B4 */
+0xFBC3,0xF0B7,0x0000, 0xFBC3,0xF0B8,0x0000, 0xFBC3,0xF0B9,0x0000, /* 1F0B7 */
+0xFBC3,0xF0BA,0x0000, 0xFBC3,0xF0BB,0x0000, 0xFBC3,0xF0BC,0x0000, /* 1F0BA */
+0xFBC3,0xF0BD,0x0000, 0xFBC3,0xF0BE,0x0000, 0xFBC3,0xF0BF,0x0000, /* 1F0BD */
+0xFBC3,0xF0C0,0x0000, 0xFBC3,0xF0C1,0x0000, 0xFBC3,0xF0C2,0x0000, /* 1F0C0 */
+0xFBC3,0xF0C3,0x0000, 0xFBC3,0xF0C4,0x0000, 0xFBC3,0xF0C5,0x0000, /* 1F0C3 */
+0xFBC3,0xF0C6,0x0000, 0xFBC3,0xF0C7,0x0000, 0xFBC3,0xF0C8,0x0000, /* 1F0C6 */
+0xFBC3,0xF0C9,0x0000, 0xFBC3,0xF0CA,0x0000, 0xFBC3,0xF0CB,0x0000, /* 1F0C9 */
+0xFBC3,0xF0CC,0x0000, 0xFBC3,0xF0CD,0x0000, 0xFBC3,0xF0CE,0x0000, /* 1F0CC */
+0xFBC3,0xF0CF,0x0000, 0xFBC3,0xF0D0,0x0000, 0xFBC3,0xF0D1,0x0000, /* 1F0CF */
+0xFBC3,0xF0D2,0x0000, 0xFBC3,0xF0D3,0x0000, 0xFBC3,0xF0D4,0x0000, /* 1F0D2 */
+0xFBC3,0xF0D5,0x0000, 0xFBC3,0xF0D6,0x0000, 0xFBC3,0xF0D7,0x0000, /* 1F0D5 */
+0xFBC3,0xF0D8,0x0000, 0xFBC3,0xF0D9,0x0000, 0xFBC3,0xF0DA,0x0000, /* 1F0D8 */
+0xFBC3,0xF0DB,0x0000, 0xFBC3,0xF0DC,0x0000, 0xFBC3,0xF0DD,0x0000, /* 1F0DB */
+0xFBC3,0xF0DE,0x0000, 0xFBC3,0xF0DF,0x0000, 0xFBC3,0xF0E0,0x0000, /* 1F0DE */
+0xFBC3,0xF0E1,0x0000, 0xFBC3,0xF0E2,0x0000, 0xFBC3,0xF0E3,0x0000, /* 1F0E1 */
+0xFBC3,0xF0E4,0x0000, 0xFBC3,0xF0E5,0x0000, 0xFBC3,0xF0E6,0x0000, /* 1F0E4 */
+0xFBC3,0xF0E7,0x0000, 0xFBC3,0xF0E8,0x0000, 0xFBC3,0xF0E9,0x0000, /* 1F0E7 */
+0xFBC3,0xF0EA,0x0000, 0xFBC3,0xF0EB,0x0000, 0xFBC3,0xF0EC,0x0000, /* 1F0EA */
+0xFBC3,0xF0ED,0x0000, 0xFBC3,0xF0EE,0x0000, 0xFBC3,0xF0EF,0x0000, /* 1F0ED */
+0xFBC3,0xF0F0,0x0000, 0xFBC3,0xF0F1,0x0000, 0xFBC3,0xF0F2,0x0000, /* 1F0F0 */
+0xFBC3,0xF0F3,0x0000, 0xFBC3,0xF0F4,0x0000, 0xFBC3,0xF0F5,0x0000, /* 1F0F3 */
+0xFBC3,0xF0F6,0x0000, 0xFBC3,0xF0F7,0x0000, 0xFBC3,0xF0F8,0x0000, /* 1F0F6 */
+0xFBC3,0xF0F9,0x0000, 0xFBC3,0xF0FA,0x0000, 0xFBC3,0xF0FB,0x0000, /* 1F0F9 */
+0xFBC3,0xF0FC,0x0000, 0xFBC3,0xF0FD,0x0000, 0xFBC3,0xF0FE,0x0000, /* 1F0FC */
+0xFBC3,0xF0FF,0x0000 };
+
+static const uint16 uca520_p1F1[]= { /* 1F100 (4 weights per char) */
+0x1205,0x0281,0x0000,0x0000, 0x1205,0x0234,0x0000,0x0000, /* 1F100 */
+0x1206,0x0234,0x0000,0x0000, 0x1207,0x0234,0x0000,0x0000, /* 1F102 */
+0x1208,0x0234,0x0000,0x0000, 0x1209,0x0234,0x0000,0x0000, /* 1F104 */
+0x120A,0x0234,0x0000,0x0000, 0x120B,0x0234,0x0000,0x0000, /* 1F106 */
+0x120C,0x0234,0x0000,0x0000, 0x120D,0x0234,0x0000,0x0000, /* 1F108 */
+0x120E,0x0234,0x0000,0x0000, 0xFBC3,0xF10B,0x0000,0x0000, /* 1F10A */
+0xFBC3,0xF10C,0x0000,0x0000, 0xFBC3,0xF10D,0x0000,0x0000, /* 1F10C */
+0xFBC3,0xF10E,0x0000,0x0000, 0xFBC3,0xF10F,0x0000,0x0000, /* 1F10E */
+0x02FF,0x120F,0x0300,0x0000, 0x02FF,0x1225,0x0300,0x0000, /* 1F110 */
+0x02FF,0x123D,0x0300,0x0000, 0x02FF,0x1250,0x0300,0x0000, /* 1F112 */
+0x02FF,0x126B,0x0300,0x0000, 0x02FF,0x12A3,0x0300,0x0000, /* 1F114 */
+0x02FF,0x12B0,0x0300,0x0000, 0x02FF,0x12D3,0x0300,0x0000, /* 1F116 */
+0x02FF,0x12EC,0x0300,0x0000, 0x02FF,0x1305,0x0300,0x0000, /* 1F118 */
+0x02FF,0x131E,0x0300,0x0000, 0x02FF,0x1330,0x0300,0x0000, /* 1F11A */
+0x02FF,0x135F,0x0300,0x0000, 0x02FF,0x136D,0x0300,0x0000, /* 1F11C */
+0x02FF,0x138E,0x0300,0x0000, 0x02FF,0x13B3,0x0300,0x0000, /* 1F11E */
+0x02FF,0x13C8,0x0300,0x0000, 0x02FF,0x13DA,0x0300,0x0000, /* 1F120 */
+0x02FF,0x1410,0x0300,0x0000, 0x02FF,0x1433,0x0300,0x0000, /* 1F122 */
+0x02FF,0x1453,0x0300,0x0000, 0x02FF,0x147B,0x0300,0x0000, /* 1F124 */
+0x02FF,0x148D,0x0300,0x0000, 0x02FF,0x1497,0x0300,0x0000, /* 1F126 */
+0x02FF,0x149C,0x0300,0x0000, 0x02FF,0x14AD,0x0300,0x0000, /* 1F128 */
+0x0347,0x1410,0x0348,0x0000, 0x123D,0x0000,0x0000,0x0000, /* 1F12A */
+0x13DA,0x0000,0x0000,0x0000, 0x123D,0x1250,0x0000,0x0000, /* 1F12C */
+0x148D,0x14AD,0x0000,0x0000, 0xFBC3,0xF12F,0x0000,0x0000, /* 1F12E */
+0xFBC3,0xF130,0x0000,0x0000, 0x1225,0x0000,0x0000,0x0000, /* 1F130 */
+0xFBC3,0xF132,0x0000,0x0000, 0xFBC3,0xF133,0x0000,0x0000, /* 1F132 */
+0xFBC3,0xF134,0x0000,0x0000, 0xFBC3,0xF135,0x0000,0x0000, /* 1F134 */
+0xFBC3,0xF136,0x0000,0x0000, 0xFBC3,0xF137,0x0000,0x0000, /* 1F136 */
+0xFBC3,0xF138,0x0000,0x0000, 0xFBC3,0xF139,0x0000,0x0000, /* 1F138 */
+0xFBC3,0xF13A,0x0000,0x0000, 0xFBC3,0xF13B,0x0000,0x0000, /* 1F13A */
+0xFBC3,0xF13C,0x0000,0x0000, 0x136D,0x0000,0x0000,0x0000, /* 1F13C */
+0xFBC3,0xF13E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F13E */
+0xFBC3,0xF140,0x0000,0x0000, 0xFBC3,0xF141,0x0000,0x0000, /* 1F140 */
+0x1410,0x0000,0x0000,0x0000, 0xFBC3,0xF143,0x0000,0x0000, /* 1F142 */
+0xFBC3,0xF144,0x0000,0x0000, 0xFBC3,0xF145,0x0000,0x0000, /* 1F144 */
+0x148D,0x0000,0x0000,0x0000, 0xFBC3,0xF147,0x0000,0x0000, /* 1F146 */
+0xFBC3,0xF148,0x0000,0x0000, 0xFBC3,0xF149,0x0000,0x0000, /* 1F148 */
+0x12D3,0x147B,0x0000,0x0000, 0x135F,0x147B,0x0000,0x0000, /* 1F14A */
+0x1410,0x1250,0x0000,0x0000, 0x1410,0x1410,0x0000,0x0000, /* 1F14C */
+0x13B3,0x13B3,0x147B,0x0000, 0xFBC3,0xF14F,0x0000,0x0000, /* 1F14E */
+0xFBC3,0xF150,0x0000,0x0000, 0xFBC3,0xF151,0x0000,0x0000, /* 1F150 */
+0xFBC3,0xF152,0x0000,0x0000, 0xFBC3,0xF153,0x0000,0x0000, /* 1F152 */
+0xFBC3,0xF154,0x0000,0x0000, 0xFBC3,0xF155,0x0000,0x0000, /* 1F154 */
+0xFBC3,0xF156,0x0000,0x0000, 0x12D3,0x0000,0x0000,0x0000, /* 1F156 */
+0xFBC3,0xF158,0x0000,0x0000, 0xFBC3,0xF159,0x0000,0x0000, /* 1F158 */
+0xFBC3,0xF15A,0x0000,0x0000, 0xFBC3,0xF15B,0x0000,0x0000, /* 1F15A */
+0xFBC3,0xF15C,0x0000,0x0000, 0xFBC3,0xF15D,0x0000,0x0000, /* 1F15C */
+0xFBC3,0xF15E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F15E */
+0xFBC3,0xF160,0x0000,0x0000, 0xFBC3,0xF161,0x0000,0x0000, /* 1F160 */
+0xFBC3,0xF162,0x0000,0x0000, 0xFBC3,0xF163,0x0000,0x0000, /* 1F162 */
+0xFBC3,0xF164,0x0000,0x0000, 0xFBC3,0xF165,0x0000,0x0000, /* 1F164 */
+0xFBC3,0xF166,0x0000,0x0000, 0xFBC3,0xF167,0x0000,0x0000, /* 1F166 */
+0xFBC3,0xF168,0x0000,0x0000, 0xFBC3,0xF169,0x0000,0x0000, /* 1F168 */
+0xFBC3,0xF16A,0x0000,0x0000, 0xFBC3,0xF16B,0x0000,0x0000, /* 1F16A */
+0xFBC3,0xF16C,0x0000,0x0000, 0xFBC3,0xF16D,0x0000,0x0000, /* 1F16C */
+0xFBC3,0xF16E,0x0000,0x0000, 0xFBC3,0xF16F,0x0000,0x0000, /* 1F16E */
+0xFBC3,0xF170,0x0000,0x0000, 0xFBC3,0xF171,0x0000,0x0000, /* 1F170 */
+0xFBC3,0xF172,0x0000,0x0000, 0xFBC3,0xF173,0x0000,0x0000, /* 1F172 */
+0xFBC3,0xF174,0x0000,0x0000, 0xFBC3,0xF175,0x0000,0x0000, /* 1F174 */
+0xFBC3,0xF176,0x0000,0x0000, 0xFBC3,0xF177,0x0000,0x0000, /* 1F176 */
+0xFBC3,0xF178,0x0000,0x0000, 0x1305,0x0000,0x0000,0x0000, /* 1F178 */
+0xFBC3,0xF17A,0x0000,0x0000, 0x1330,0x0000,0x0000,0x0000, /* 1F17A */
+0x135F,0x0000,0x0000,0x0000, 0xFBC3,0xF17D,0x0000,0x0000, /* 1F17C */
+0xFBC3,0xF17E,0x0000,0x0000, 0x13B3,0x0000,0x0000,0x0000, /* 1F17E */
+0xFBC3,0xF180,0x0000,0x0000, 0xFBC3,0xF181,0x0000,0x0000, /* 1F180 */
+0xFBC3,0xF182,0x0000,0x0000, 0xFBC3,0xF183,0x0000,0x0000, /* 1F182 */
+0xFBC3,0xF184,0x0000,0x0000, 0xFBC3,0xF185,0x0000,0x0000, /* 1F184 */
+0xFBC3,0xF186,0x0000,0x0000, 0xFBC3,0xF187,0x0000,0x0000, /* 1F186 */
+0xFBC3,0xF188,0x0000,0x0000, 0xFBC3,0xF189,0x0000,0x0000, /* 1F188 */
+0x13B3,0x0000,0x0000,0x0000, 0x12EC,0x123D,0x0000,0x0000, /* 1F18A */
+0x13B3,0x120F,0x0000,0x0000, 0x1410,0x120F,0x0000,0x0000, /* 1F18C */
+0xFBC3,0xF18E,0x0000,0x0000, 0xFBC3,0xF18F,0x0000,0x0000, /* 1F18E */
+0x1250,0x1305,0x0000,0x0000, 0xFBC3,0xF191,0x0000,0x0000, /* 1F190 */
+0xFBC3,0xF192,0x0000,0x0000, 0xFBC3,0xF193,0x0000,0x0000, /* 1F192 */
+0xFBC3,0xF194,0x0000,0x0000, 0xFBC3,0xF195,0x0000,0x0000, /* 1F194 */
+0xFBC3,0xF196,0x0000,0x0000, 0xFBC3,0xF197,0x0000,0x0000, /* 1F196 */
+0xFBC3,0xF198,0x0000,0x0000, 0xFBC3,0xF199,0x0000,0x0000, /* 1F198 */
+0xFBC3,0xF19A,0x0000,0x0000, 0xFBC3,0xF19B,0x0000,0x0000, /* 1F19A */
+0xFBC3,0xF19C,0x0000,0x0000, 0xFBC3,0xF19D,0x0000,0x0000, /* 1F19C */
+0xFBC3,0xF19E,0x0000,0x0000, 0xFBC3,0xF19F,0x0000,0x0000, /* 1F19E */
+0xFBC3,0xF1A0,0x0000,0x0000, 0xFBC3,0xF1A1,0x0000,0x0000, /* 1F1A0 */
+0xFBC3,0xF1A2,0x0000,0x0000, 0xFBC3,0xF1A3,0x0000,0x0000, /* 1F1A2 */
+0xFBC3,0xF1A4,0x0000,0x0000, 0xFBC3,0xF1A5,0x0000,0x0000, /* 1F1A4 */
+0xFBC3,0xF1A6,0x0000,0x0000, 0xFBC3,0xF1A7,0x0000,0x0000, /* 1F1A6 */
+0xFBC3,0xF1A8,0x0000,0x0000, 0xFBC3,0xF1A9,0x0000,0x0000, /* 1F1A8 */
+0xFBC3,0xF1AA,0x0000,0x0000, 0xFBC3,0xF1AB,0x0000,0x0000, /* 1F1AA */
+0xFBC3,0xF1AC,0x0000,0x0000, 0xFBC3,0xF1AD,0x0000,0x0000, /* 1F1AC */
+0xFBC3,0xF1AE,0x0000,0x0000, 0xFBC3,0xF1AF,0x0000,0x0000, /* 1F1AE */
+0xFBC3,0xF1B0,0x0000,0x0000, 0xFBC3,0xF1B1,0x0000,0x0000, /* 1F1B0 */
+0xFBC3,0xF1B2,0x0000,0x0000, 0xFBC3,0xF1B3,0x0000,0x0000, /* 1F1B2 */
+0xFBC3,0xF1B4,0x0000,0x0000, 0xFBC3,0xF1B5,0x0000,0x0000, /* 1F1B4 */
+0xFBC3,0xF1B6,0x0000,0x0000, 0xFBC3,0xF1B7,0x0000,0x0000, /* 1F1B6 */
+0xFBC3,0xF1B8,0x0000,0x0000, 0xFBC3,0xF1B9,0x0000,0x0000, /* 1F1B8 */
+0xFBC3,0xF1BA,0x0000,0x0000, 0xFBC3,0xF1BB,0x0000,0x0000, /* 1F1BA */
+0xFBC3,0xF1BC,0x0000,0x0000, 0xFBC3,0xF1BD,0x0000,0x0000, /* 1F1BC */
+0xFBC3,0xF1BE,0x0000,0x0000, 0xFBC3,0xF1BF,0x0000,0x0000, /* 1F1BE */
+0xFBC3,0xF1C0,0x0000,0x0000, 0xFBC3,0xF1C1,0x0000,0x0000, /* 1F1C0 */
+0xFBC3,0xF1C2,0x0000,0x0000, 0xFBC3,0xF1C3,0x0000,0x0000, /* 1F1C2 */
+0xFBC3,0xF1C4,0x0000,0x0000, 0xFBC3,0xF1C5,0x0000,0x0000, /* 1F1C4 */
+0xFBC3,0xF1C6,0x0000,0x0000, 0xFBC3,0xF1C7,0x0000,0x0000, /* 1F1C6 */
+0xFBC3,0xF1C8,0x0000,0x0000, 0xFBC3,0xF1C9,0x0000,0x0000, /* 1F1C8 */
+0xFBC3,0xF1CA,0x0000,0x0000, 0xFBC3,0xF1CB,0x0000,0x0000, /* 1F1CA */
+0xFBC3,0xF1CC,0x0000,0x0000, 0xFBC3,0xF1CD,0x0000,0x0000, /* 1F1CC */
+0xFBC3,0xF1CE,0x0000,0x0000, 0xFBC3,0xF1CF,0x0000,0x0000, /* 1F1CE */
+0xFBC3,0xF1D0,0x0000,0x0000, 0xFBC3,0xF1D1,0x0000,0x0000, /* 1F1D0 */
+0xFBC3,0xF1D2,0x0000,0x0000, 0xFBC3,0xF1D3,0x0000,0x0000, /* 1F1D2 */
+0xFBC3,0xF1D4,0x0000,0x0000, 0xFBC3,0xF1D5,0x0000,0x0000, /* 1F1D4 */
+0xFBC3,0xF1D6,0x0000,0x0000, 0xFBC3,0xF1D7,0x0000,0x0000, /* 1F1D6 */
+0xFBC3,0xF1D8,0x0000,0x0000, 0xFBC3,0xF1D9,0x0000,0x0000, /* 1F1D8 */
+0xFBC3,0xF1DA,0x0000,0x0000, 0xFBC3,0xF1DB,0x0000,0x0000, /* 1F1DA */
+0xFBC3,0xF1DC,0x0000,0x0000, 0xFBC3,0xF1DD,0x0000,0x0000, /* 1F1DC */
+0xFBC3,0xF1DE,0x0000,0x0000, 0xFBC3,0xF1DF,0x0000,0x0000, /* 1F1DE */
+0xFBC3,0xF1E0,0x0000,0x0000, 0xFBC3,0xF1E1,0x0000,0x0000, /* 1F1E0 */
+0xFBC3,0xF1E2,0x0000,0x0000, 0xFBC3,0xF1E3,0x0000,0x0000, /* 1F1E2 */
+0xFBC3,0xF1E4,0x0000,0x0000, 0xFBC3,0xF1E5,0x0000,0x0000, /* 1F1E4 */
+0xFBC3,0xF1E6,0x0000,0x0000, 0xFBC3,0xF1E7,0x0000,0x0000, /* 1F1E6 */
+0xFBC3,0xF1E8,0x0000,0x0000, 0xFBC3,0xF1E9,0x0000,0x0000, /* 1F1E8 */
+0xFBC3,0xF1EA,0x0000,0x0000, 0xFBC3,0xF1EB,0x0000,0x0000, /* 1F1EA */
+0xFBC3,0xF1EC,0x0000,0x0000, 0xFBC3,0xF1ED,0x0000,0x0000, /* 1F1EC */
+0xFBC3,0xF1EE,0x0000,0x0000, 0xFBC3,0xF1EF,0x0000,0x0000, /* 1F1EE */
+0xFBC3,0xF1F0,0x0000,0x0000, 0xFBC3,0xF1F1,0x0000,0x0000, /* 1F1F0 */
+0xFBC3,0xF1F2,0x0000,0x0000, 0xFBC3,0xF1F3,0x0000,0x0000, /* 1F1F2 */
+0xFBC3,0xF1F4,0x0000,0x0000, 0xFBC3,0xF1F5,0x0000,0x0000, /* 1F1F4 */
+0xFBC3,0xF1F6,0x0000,0x0000, 0xFBC3,0xF1F7,0x0000,0x0000, /* 1F1F6 */
+0xFBC3,0xF1F8,0x0000,0x0000, 0xFBC3,0xF1F9,0x0000,0x0000, /* 1F1F8 */
+0xFBC3,0xF1FA,0x0000,0x0000, 0xFBC3,0xF1FB,0x0000,0x0000, /* 1F1FA */
+0xFBC3,0xF1FC,0x0000,0x0000, 0xFBC3,0xF1FD,0x0000,0x0000, /* 1F1FC */
+0xFBC3,0xF1FE,0x0000,0x0000, 0xFBC3,0xF1FF,0x0000,0x0000 /* 1F1FE */
+};
+
+static const uint16 uca520_p1F2[]= { /* 1F200 (5 weights per char) */
+0x2B32,0x2B1A,0x0000,0x0000,0x0000, /* 1F200 */
+0xFBC3,0xF201,0x0000,0x0000,0x0000, /* 1F201 */
+0xFBC3,0xF202,0x0000,0x0000,0x0000, /* 1F202 */
+0xFBC3,0xF203,0x0000,0x0000,0x0000, /* 1F203 */
+0xFBC3,0xF204,0x0000,0x0000,0x0000, /* 1F204 */
+0xFBC3,0xF205,0x0000,0x0000,0x0000, /* 1F205 */
+0xFBC3,0xF206,0x0000,0x0000,0x0000, /* 1F206 */
+0xFBC3,0xF207,0x0000,0x0000,0x0000, /* 1F207 */
+0xFBC3,0xF208,0x0000,0x0000,0x0000, /* 1F208 */
+0xFBC3,0xF209,0x0000,0x0000,0x0000, /* 1F209 */
+0xFBC3,0xF20A,0x0000,0x0000,0x0000, /* 1F20A */
+0xFBC3,0xF20B,0x0000,0x0000,0x0000, /* 1F20B */
+0xFBC3,0xF20C,0x0000,0x0000,0x0000, /* 1F20C */
+0xFBC3,0xF20D,0x0000,0x0000,0x0000, /* 1F20D */
+0xFBC3,0xF20E,0x0000,0x0000,0x0000, /* 1F20E */
+0xFBC3,0xF20F,0x0000,0x0000,0x0000, /* 1F20F */
+0xFB40,0xE24B,0x0000,0x0000,0x0000, /* 1F210 */
+0xFB40,0xDB57,0x0000,0x0000,0x0000, /* 1F211 */
+0xFB40,0xD3CC,0x0000,0x0000,0x0000, /* 1F212 */
+0x2B27,0x0000,0x0000,0x0000,0x0000, /* 1F213 */
+0xFB40,0xCE8C,0x0000,0x0000,0x0000, /* 1F214 */
+0xFB40,0xD91A,0x0000,0x0000,0x0000, /* 1F215 */
+0xFB41,0x89E3,0x0000,0x0000,0x0000, /* 1F216 */
+0xFB40,0xD929,0x0000,0x0000,0x0000, /* 1F217 */
+0xFB40,0xCEA4,0x0000,0x0000,0x0000, /* 1F218 */
+0xFB40,0xE620,0x0000,0x0000,0x0000, /* 1F219 */
+0xFB40,0xF121,0x0000,0x0000,0x0000, /* 1F21A */
+0xFB40,0xE599,0x0000,0x0000,0x0000, /* 1F21B */
+0xFB40,0xD24D,0x0000,0x0000,0x0000, /* 1F21C */
+0xFB40,0xDF8C,0x0000,0x0000,0x0000, /* 1F21D */
+0xFB40,0xD18D,0x0000,0x0000,0x0000, /* 1F21E */
+0xFB40,0xE5B0,0x0000,0x0000,0x0000, /* 1F21F */
+0xFB40,0xD21D,0x0000,0x0000,0x0000, /* 1F220 */
+0xFB40,0xFD42,0x0000,0x0000,0x0000, /* 1F221 */
+0xFB40,0xF51F,0x0000,0x0000,0x0000, /* 1F222 */
+0xFB41,0x8CA9,0x0000,0x0000,0x0000, /* 1F223 */
+0xFB40,0xD8F0,0x0000,0x0000,0x0000, /* 1F224 */
+0xFB40,0xD439,0x0000,0x0000,0x0000, /* 1F225 */
+0xFB40,0xEF14,0x0000,0x0000,0x0000, /* 1F226 */
+0xFB40,0xE295,0x0000,0x0000,0x0000, /* 1F227 */
+0xFB40,0xE355,0x0000,0x0000,0x0000, /* 1F228 */
+0xFB40,0xCE00,0x0000,0x0000,0x0000, /* 1F229 */
+0xFB40,0xCE09,0x0000,0x0000,0x0000, /* 1F22A */
+0xFB41,0x904A,0x0000,0x0000,0x0000, /* 1F22B */
+0xFB40,0xDDE6,0x0000,0x0000,0x0000, /* 1F22C */
+0xFB40,0xCE2D,0x0000,0x0000,0x0000, /* 1F22D */
+0xFB40,0xD3F3,0x0000,0x0000,0x0000, /* 1F22E */
+0xFB40,0xE307,0x0000,0x0000,0x0000, /* 1F22F */
+0xFB41,0x8D70,0x0000,0x0000,0x0000, /* 1F230 */
+0xFB40,0xE253,0x0000,0x0000,0x0000, /* 1F231 */
+0xFBC3,0xF232,0x0000,0x0000,0x0000, /* 1F232 */
+0xFBC3,0xF233,0x0000,0x0000,0x0000, /* 1F233 */
+0xFBC3,0xF234,0x0000,0x0000,0x0000, /* 1F234 */
+0xFBC3,0xF235,0x0000,0x0000,0x0000, /* 1F235 */
+0xFBC3,0xF236,0x0000,0x0000,0x0000, /* 1F236 */
+0xFBC3,0xF237,0x0000,0x0000,0x0000, /* 1F237 */
+0xFBC3,0xF238,0x0000,0x0000,0x0000, /* 1F238 */
+0xFBC3,0xF239,0x0000,0x0000,0x0000, /* 1F239 */
+0xFBC3,0xF23A,0x0000,0x0000,0x0000, /* 1F23A */
+0xFBC3,0xF23B,0x0000,0x0000,0x0000, /* 1F23B */
+0xFBC3,0xF23C,0x0000,0x0000,0x0000, /* 1F23C */
+0xFBC3,0xF23D,0x0000,0x0000,0x0000, /* 1F23D */
+0xFBC3,0xF23E,0x0000,0x0000,0x0000, /* 1F23E */
+0xFBC3,0xF23F,0x0000,0x0000,0x0000, /* 1F23F */
+0x0347,0xFB40,0xE72C,0x0348,0x0000, /* 1F240 */
+0x0347,0xFB40,0xCE09,0x0348,0x0000, /* 1F241 */
+0x0347,0xFB40,0xCE8C,0x0348,0x0000, /* 1F242 */
+0x0347,0xFB40,0xDB89,0x0348,0x0000, /* 1F243 */
+0x0347,0xFB40,0xF0B9,0x0348,0x0000, /* 1F244 */
+0x0347,0xFB40,0xE253,0x0348,0x0000, /* 1F245 */
+0x0347,0xFB40,0xF6D7,0x0348,0x0000, /* 1F246 */
+0x0347,0xFB40,0xD2DD,0x0348,0x0000, /* 1F247 */
+0x0347,0xFB40,0xE557,0x0348,0x0000, /* 1F248 */
+0xFBC3,0xF249,0x0000,0x0000,0x0000, /* 1F249 */
+0xFBC3,0xF24A,0x0000,0x0000,0x0000, /* 1F24A */
+0xFBC3,0xF24B,0x0000,0x0000,0x0000, /* 1F24B */
+0xFBC3,0xF24C,0x0000,0x0000,0x0000, /* 1F24C */
+0xFBC3,0xF24D,0x0000,0x0000,0x0000, /* 1F24D */
+0xFBC3,0xF24E,0x0000,0x0000,0x0000, /* 1F24E */
+0xFBC3,0xF24F,0x0000,0x0000,0x0000, /* 1F24F */
+0xFBC3,0xF250,0x0000,0x0000,0x0000, /* 1F250 */
+0xFBC3,0xF251,0x0000,0x0000,0x0000, /* 1F251 */
+0xFBC3,0xF252,0x0000,0x0000,0x0000, /* 1F252 */
+0xFBC3,0xF253,0x0000,0x0000,0x0000, /* 1F253 */
+0xFBC3,0xF254,0x0000,0x0000,0x0000, /* 1F254 */
+0xFBC3,0xF255,0x0000,0x0000,0x0000, /* 1F255 */
+0xFBC3,0xF256,0x0000,0x0000,0x0000, /* 1F256 */
+0xFBC3,0xF257,0x0000,0x0000,0x0000, /* 1F257 */
+0xFBC3,0xF258,0x0000,0x0000,0x0000, /* 1F258 */
+0xFBC3,0xF259,0x0000,0x0000,0x0000, /* 1F259 */
+0xFBC3,0xF25A,0x0000,0x0000,0x0000, /* 1F25A */
+0xFBC3,0xF25B,0x0000,0x0000,0x0000, /* 1F25B */
+0xFBC3,0xF25C,0x0000,0x0000,0x0000, /* 1F25C */
+0xFBC3,0xF25D,0x0000,0x0000,0x0000, /* 1F25D */
+0xFBC3,0xF25E,0x0000,0x0000,0x0000, /* 1F25E */
+0xFBC3,0xF25F,0x0000,0x0000,0x0000, /* 1F25F */
+0xFBC3,0xF260,0x0000,0x0000,0x0000, /* 1F260 */
+0xFBC3,0xF261,0x0000,0x0000,0x0000, /* 1F261 */
+0xFBC3,0xF262,0x0000,0x0000,0x0000, /* 1F262 */
+0xFBC3,0xF263,0x0000,0x0000,0x0000, /* 1F263 */
+0xFBC3,0xF264,0x0000,0x0000,0x0000, /* 1F264 */
+0xFBC3,0xF265,0x0000,0x0000,0x0000, /* 1F265 */
+0xFBC3,0xF266,0x0000,0x0000,0x0000, /* 1F266 */
+0xFBC3,0xF267,0x0000,0x0000,0x0000, /* 1F267 */
+0xFBC3,0xF268,0x0000,0x0000,0x0000, /* 1F268 */
+0xFBC3,0xF269,0x0000,0x0000,0x0000, /* 1F269 */
+0xFBC3,0xF26A,0x0000,0x0000,0x0000, /* 1F26A */
+0xFBC3,0xF26B,0x0000,0x0000,0x0000, /* 1F26B */
+0xFBC3,0xF26C,0x0000,0x0000,0x0000, /* 1F26C */
+0xFBC3,0xF26D,0x0000,0x0000,0x0000, /* 1F26D */
+0xFBC3,0xF26E,0x0000,0x0000,0x0000, /* 1F26E */
+0xFBC3,0xF26F,0x0000,0x0000,0x0000, /* 1F26F */
+0xFBC3,0xF270,0x0000,0x0000,0x0000, /* 1F270 */
+0xFBC3,0xF271,0x0000,0x0000,0x0000, /* 1F271 */
+0xFBC3,0xF272,0x0000,0x0000,0x0000, /* 1F272 */
+0xFBC3,0xF273,0x0000,0x0000,0x0000, /* 1F273 */
+0xFBC3,0xF274,0x0000,0x0000,0x0000, /* 1F274 */
+0xFBC3,0xF275,0x0000,0x0000,0x0000, /* 1F275 */
+0xFBC3,0xF276,0x0000,0x0000,0x0000, /* 1F276 */
+0xFBC3,0xF277,0x0000,0x0000,0x0000, /* 1F277 */
+0xFBC3,0xF278,0x0000,0x0000,0x0000, /* 1F278 */
+0xFBC3,0xF279,0x0000,0x0000,0x0000, /* 1F279 */
+0xFBC3,0xF27A,0x0000,0x0000,0x0000, /* 1F27A */
+0xFBC3,0xF27B,0x0000,0x0000,0x0000, /* 1F27B */
+0xFBC3,0xF27C,0x0000,0x0000,0x0000, /* 1F27C */
+0xFBC3,0xF27D,0x0000,0x0000,0x0000, /* 1F27D */
+0xFBC3,0xF27E,0x0000,0x0000,0x0000, /* 1F27E */
+0xFBC3,0xF27F,0x0000,0x0000,0x0000, /* 1F27F */
+0xFBC3,0xF280,0x0000,0x0000,0x0000, /* 1F280 */
+0xFBC3,0xF281,0x0000,0x0000,0x0000, /* 1F281 */
+0xFBC3,0xF282,0x0000,0x0000,0x0000, /* 1F282 */
+0xFBC3,0xF283,0x0000,0x0000,0x0000, /* 1F283 */
+0xFBC3,0xF284,0x0000,0x0000,0x0000, /* 1F284 */
+0xFBC3,0xF285,0x0000,0x0000,0x0000, /* 1F285 */
+0xFBC3,0xF286,0x0000,0x0000,0x0000, /* 1F286 */
+0xFBC3,0xF287,0x0000,0x0000,0x0000, /* 1F287 */
+0xFBC3,0xF288,0x0000,0x0000,0x0000, /* 1F288 */
+0xFBC3,0xF289,0x0000,0x0000,0x0000, /* 1F289 */
+0xFBC3,0xF28A,0x0000,0x0000,0x0000, /* 1F28A */
+0xFBC3,0xF28B,0x0000,0x0000,0x0000, /* 1F28B */
+0xFBC3,0xF28C,0x0000,0x0000,0x0000, /* 1F28C */
+0xFBC3,0xF28D,0x0000,0x0000,0x0000, /* 1F28D */
+0xFBC3,0xF28E,0x0000,0x0000,0x0000, /* 1F28E */
+0xFBC3,0xF28F,0x0000,0x0000,0x0000, /* 1F28F */
+0xFBC3,0xF290,0x0000,0x0000,0x0000, /* 1F290 */
+0xFBC3,0xF291,0x0000,0x0000,0x0000, /* 1F291 */
+0xFBC3,0xF292,0x0000,0x0000,0x0000, /* 1F292 */
+0xFBC3,0xF293,0x0000,0x0000,0x0000, /* 1F293 */
+0xFBC3,0xF294,0x0000,0x0000,0x0000, /* 1F294 */
+0xFBC3,0xF295,0x0000,0x0000,0x0000, /* 1F295 */
+0xFBC3,0xF296,0x0000,0x0000,0x0000, /* 1F296 */
+0xFBC3,0xF297,0x0000,0x0000,0x0000, /* 1F297 */
+0xFBC3,0xF298,0x0000,0x0000,0x0000, /* 1F298 */
+0xFBC3,0xF299,0x0000,0x0000,0x0000, /* 1F299 */
+0xFBC3,0xF29A,0x0000,0x0000,0x0000, /* 1F29A */
+0xFBC3,0xF29B,0x0000,0x0000,0x0000, /* 1F29B */
+0xFBC3,0xF29C,0x0000,0x0000,0x0000, /* 1F29C */
+0xFBC3,0xF29D,0x0000,0x0000,0x0000, /* 1F29D */
+0xFBC3,0xF29E,0x0000,0x0000,0x0000, /* 1F29E */
+0xFBC3,0xF29F,0x0000,0x0000,0x0000, /* 1F29F */
+0xFBC3,0xF2A0,0x0000,0x0000,0x0000, /* 1F2A0 */
+0xFBC3,0xF2A1,0x0000,0x0000,0x0000, /* 1F2A1 */
+0xFBC3,0xF2A2,0x0000,0x0000,0x0000, /* 1F2A2 */
+0xFBC3,0xF2A3,0x0000,0x0000,0x0000, /* 1F2A3 */
+0xFBC3,0xF2A4,0x0000,0x0000,0x0000, /* 1F2A4 */
+0xFBC3,0xF2A5,0x0000,0x0000,0x0000, /* 1F2A5 */
+0xFBC3,0xF2A6,0x0000,0x0000,0x0000, /* 1F2A6 */
+0xFBC3,0xF2A7,0x0000,0x0000,0x0000, /* 1F2A7 */
+0xFBC3,0xF2A8,0x0000,0x0000,0x0000, /* 1F2A8 */
+0xFBC3,0xF2A9,0x0000,0x0000,0x0000, /* 1F2A9 */
+0xFBC3,0xF2AA,0x0000,0x0000,0x0000, /* 1F2AA */
+0xFBC3,0xF2AB,0x0000,0x0000,0x0000, /* 1F2AB */
+0xFBC3,0xF2AC,0x0000,0x0000,0x0000, /* 1F2AC */
+0xFBC3,0xF2AD,0x0000,0x0000,0x0000, /* 1F2AD */
+0xFBC3,0xF2AE,0x0000,0x0000,0x0000, /* 1F2AE */
+0xFBC3,0xF2AF,0x0000,0x0000,0x0000, /* 1F2AF */
+0xFBC3,0xF2B0,0x0000,0x0000,0x0000, /* 1F2B0 */
+0xFBC3,0xF2B1,0x0000,0x0000,0x0000, /* 1F2B1 */
+0xFBC3,0xF2B2,0x0000,0x0000,0x0000, /* 1F2B2 */
+0xFBC3,0xF2B3,0x0000,0x0000,0x0000, /* 1F2B3 */
+0xFBC3,0xF2B4,0x0000,0x0000,0x0000, /* 1F2B4 */
+0xFBC3,0xF2B5,0x0000,0x0000,0x0000, /* 1F2B5 */
+0xFBC3,0xF2B6,0x0000,0x0000,0x0000, /* 1F2B6 */
+0xFBC3,0xF2B7,0x0000,0x0000,0x0000, /* 1F2B7 */
+0xFBC3,0xF2B8,0x0000,0x0000,0x0000, /* 1F2B8 */
+0xFBC3,0xF2B9,0x0000,0x0000,0x0000, /* 1F2B9 */
+0xFBC3,0xF2BA,0x0000,0x0000,0x0000, /* 1F2BA */
+0xFBC3,0xF2BB,0x0000,0x0000,0x0000, /* 1F2BB */
+0xFBC3,0xF2BC,0x0000,0x0000,0x0000, /* 1F2BC */
+0xFBC3,0xF2BD,0x0000,0x0000,0x0000, /* 1F2BD */
+0xFBC3,0xF2BE,0x0000,0x0000,0x0000, /* 1F2BE */
+0xFBC3,0xF2BF,0x0000,0x0000,0x0000, /* 1F2BF */
+0xFBC3,0xF2C0,0x0000,0x0000,0x0000, /* 1F2C0 */
+0xFBC3,0xF2C1,0x0000,0x0000,0x0000, /* 1F2C1 */
+0xFBC3,0xF2C2,0x0000,0x0000,0x0000, /* 1F2C2 */
+0xFBC3,0xF2C3,0x0000,0x0000,0x0000, /* 1F2C3 */
+0xFBC3,0xF2C4,0x0000,0x0000,0x0000, /* 1F2C4 */
+0xFBC3,0xF2C5,0x0000,0x0000,0x0000, /* 1F2C5 */
+0xFBC3,0xF2C6,0x0000,0x0000,0x0000, /* 1F2C6 */
+0xFBC3,0xF2C7,0x0000,0x0000,0x0000, /* 1F2C7 */
+0xFBC3,0xF2C8,0x0000,0x0000,0x0000, /* 1F2C8 */
+0xFBC3,0xF2C9,0x0000,0x0000,0x0000, /* 1F2C9 */
+0xFBC3,0xF2CA,0x0000,0x0000,0x0000, /* 1F2CA */
+0xFBC3,0xF2CB,0x0000,0x0000,0x0000, /* 1F2CB */
+0xFBC3,0xF2CC,0x0000,0x0000,0x0000, /* 1F2CC */
+0xFBC3,0xF2CD,0x0000,0x0000,0x0000, /* 1F2CD */
+0xFBC3,0xF2CE,0x0000,0x0000,0x0000, /* 1F2CE */
+0xFBC3,0xF2CF,0x0000,0x0000,0x0000, /* 1F2CF */
+0xFBC3,0xF2D0,0x0000,0x0000,0x0000, /* 1F2D0 */
+0xFBC3,0xF2D1,0x0000,0x0000,0x0000, /* 1F2D1 */
+0xFBC3,0xF2D2,0x0000,0x0000,0x0000, /* 1F2D2 */
+0xFBC3,0xF2D3,0x0000,0x0000,0x0000, /* 1F2D3 */
+0xFBC3,0xF2D4,0x0000,0x0000,0x0000, /* 1F2D4 */
+0xFBC3,0xF2D5,0x0000,0x0000,0x0000, /* 1F2D5 */
+0xFBC3,0xF2D6,0x0000,0x0000,0x0000, /* 1F2D6 */
+0xFBC3,0xF2D7,0x0000,0x0000,0x0000, /* 1F2D7 */
+0xFBC3,0xF2D8,0x0000,0x0000,0x0000, /* 1F2D8 */
+0xFBC3,0xF2D9,0x0000,0x0000,0x0000, /* 1F2D9 */
+0xFBC3,0xF2DA,0x0000,0x0000,0x0000, /* 1F2DA */
+0xFBC3,0xF2DB,0x0000,0x0000,0x0000, /* 1F2DB */
+0xFBC3,0xF2DC,0x0000,0x0000,0x0000, /* 1F2DC */
+0xFBC3,0xF2DD,0x0000,0x0000,0x0000, /* 1F2DD */
+0xFBC3,0xF2DE,0x0000,0x0000,0x0000, /* 1F2DE */
+0xFBC3,0xF2DF,0x0000,0x0000,0x0000, /* 1F2DF */
+0xFBC3,0xF2E0,0x0000,0x0000,0x0000, /* 1F2E0 */
+0xFBC3,0xF2E1,0x0000,0x0000,0x0000, /* 1F2E1 */
+0xFBC3,0xF2E2,0x0000,0x0000,0x0000, /* 1F2E2 */
+0xFBC3,0xF2E3,0x0000,0x0000,0x0000, /* 1F2E3 */
+0xFBC3,0xF2E4,0x0000,0x0000,0x0000, /* 1F2E4 */
+0xFBC3,0xF2E5,0x0000,0x0000,0x0000, /* 1F2E5 */
+0xFBC3,0xF2E6,0x0000,0x0000,0x0000, /* 1F2E6 */
+0xFBC3,0xF2E7,0x0000,0x0000,0x0000, /* 1F2E7 */
+0xFBC3,0xF2E8,0x0000,0x0000,0x0000, /* 1F2E8 */
+0xFBC3,0xF2E9,0x0000,0x0000,0x0000, /* 1F2E9 */
+0xFBC3,0xF2EA,0x0000,0x0000,0x0000, /* 1F2EA */
+0xFBC3,0xF2EB,0x0000,0x0000,0x0000, /* 1F2EB */
+0xFBC3,0xF2EC,0x0000,0x0000,0x0000, /* 1F2EC */
+0xFBC3,0xF2ED,0x0000,0x0000,0x0000, /* 1F2ED */
+0xFBC3,0xF2EE,0x0000,0x0000,0x0000, /* 1F2EE */
+0xFBC3,0xF2EF,0x0000,0x0000,0x0000, /* 1F2EF */
+0xFBC3,0xF2F0,0x0000,0x0000,0x0000, /* 1F2F0 */
+0xFBC3,0xF2F1,0x0000,0x0000,0x0000, /* 1F2F1 */
+0xFBC3,0xF2F2,0x0000,0x0000,0x0000, /* 1F2F2 */
+0xFBC3,0xF2F3,0x0000,0x0000,0x0000, /* 1F2F3 */
+0xFBC3,0xF2F4,0x0000,0x0000,0x0000, /* 1F2F4 */
+0xFBC3,0xF2F5,0x0000,0x0000,0x0000, /* 1F2F5 */
+0xFBC3,0xF2F6,0x0000,0x0000,0x0000, /* 1F2F6 */
+0xFBC3,0xF2F7,0x0000,0x0000,0x0000, /* 1F2F7 */
+0xFBC3,0xF2F8,0x0000,0x0000,0x0000, /* 1F2F8 */
+0xFBC3,0xF2F9,0x0000,0x0000,0x0000, /* 1F2F9 */
+0xFBC3,0xF2FA,0x0000,0x0000,0x0000, /* 1F2FA */
+0xFBC3,0xF2FB,0x0000,0x0000,0x0000, /* 1F2FB */
+0xFBC3,0xF2FC,0x0000,0x0000,0x0000, /* 1F2FC */
+0xFBC3,0xF2FD,0x0000,0x0000,0x0000, /* 1F2FD */
+0xFBC3,0xF2FE,0x0000,0x0000,0x0000, /* 1F2FE */
+0xFBC3,0xF2FF,0x0000,0x0000,0x0000 /* 1F2FF */
+};
+
+static const uint16 uca520_p2F8[]= { /* 2F800 (3 weights per char) */
+0xFB40,0xCE3D,0x0000, 0xFB40,0xCE38,0x0000, 0xFB40,0xCE41,0x0000, /* 2F800 */
+0xFB84,0x8122,0x0000, 0xFB40,0xCF60,0x0000, 0xFB40,0xCFAE,0x0000, /* 2F803 */
+0xFB40,0xCFBB,0x0000, 0xFB40,0xD002,0x0000, 0xFB40,0xD07A,0x0000, /* 2F806 */
+0xFB40,0xD099,0x0000, 0xFB40,0xD0E7,0x0000, 0xFB40,0xD0CF,0x0000, /* 2F809 */
+0xFB80,0xB49E,0x0000, 0xFB84,0x863A,0x0000, 0xFB40,0xD14D,0x0000, /* 2F80C */
+0xFB40,0xD154,0x0000, 0xFB40,0xD164,0x0000, 0xFB40,0xD177,0x0000, /* 2F80F */
+0xFB84,0x851C,0x0000, 0xFB80,0xB4B9,0x0000, 0xFB40,0xD167,0x0000, /* 2F812 */
+0xFB40,0xD18D,0x0000, 0xFB84,0x854B,0x0000, 0xFB40,0xD197,0x0000, /* 2F815 */
+0xFB40,0xD1A4,0x0000, 0xFB40,0xCECC,0x0000, 0xFB40,0xD1AC,0x0000, /* 2F818 */
+0xFB40,0xD1B5,0x0000, 0xFB85,0x91DF,0x0000, 0xFB40,0xD1F5,0x0000, /* 2F81B */
+0xFB40,0xD203,0x0000, 0xFB80,0xB4DF,0x0000, 0xFB40,0xD23B,0x0000, /* 2F81E */
+0xFB40,0xD246,0x0000, 0xFB40,0xD272,0x0000, 0xFB40,0xD277,0x0000, /* 2F821 */
+0xFB80,0xB515,0x0000, 0xFB40,0xD2C7,0x0000, 0xFB40,0xD2C9,0x0000, /* 2F824 */
+0xFB40,0xD2E4,0x0000, 0xFB40,0xD2FA,0x0000, 0xFB40,0xD305,0x0000, /* 2F827 */
+0xFB40,0xD306,0x0000, 0xFB40,0xD317,0x0000, 0xFB40,0xD349,0x0000, /* 2F82A */
+0xFB40,0xD351,0x0000, 0xFB40,0xD35A,0x0000, 0xFB40,0xD373,0x0000, /* 2F82D */
+0xFB40,0xD37D,0x0000, 0xFB40,0xD37F,0x0000, 0xFB40,0xD37F,0x0000, /* 2F830 */
+0xFB40,0xD37F,0x0000, 0xFB84,0x8A2C,0x0000, 0xFB40,0xF070,0x0000, /* 2F833 */
+0xFB40,0xD3CA,0x0000, 0xFB40,0xD3DF,0x0000, 0xFB84,0x8B63,0x0000, /* 2F836 */
+0xFB40,0xD3EB,0x0000, 0xFB40,0xD3F1,0x0000, 0xFB40,0xD406,0x0000, /* 2F839 */
+0xFB40,0xD49E,0x0000, 0xFB40,0xD438,0x0000, 0xFB40,0xD448,0x0000, /* 2F83C */
+0xFB40,0xD468,0x0000, 0xFB40,0xD4A2,0x0000, 0xFB40,0xD4F6,0x0000, /* 2F83F */
+0xFB40,0xD510,0x0000, 0xFB40,0xD553,0x0000, 0xFB40,0xD563,0x0000, /* 2F842 */
+0xFB40,0xD584,0x0000, 0xFB40,0xD584,0x0000, 0xFB40,0xD599,0x0000, /* 2F845 */
+0xFB40,0xD5AB,0x0000, 0xFB40,0xD5B3,0x0000, 0xFB40,0xD5C2,0x0000, /* 2F848 */
+0xFB40,0xD716,0x0000, 0xFB40,0xD606,0x0000, 0xFB40,0xD717,0x0000, /* 2F84B */
+0xFB40,0xD651,0x0000, 0xFB40,0xD674,0x0000, 0xFB40,0xD207,0x0000, /* 2F84E */
+0xFB40,0xD8EE,0x0000, 0xFB40,0xD7CE,0x0000, 0xFB40,0xD7F4,0x0000, /* 2F851 */
+0xFB40,0xD80D,0x0000, 0xFB40,0xD78B,0x0000, 0xFB40,0xD832,0x0000, /* 2F854 */
+0xFB40,0xD831,0x0000, 0xFB40,0xD8AC,0x0000, 0xFB84,0x94E4,0x0000, /* 2F857 */
+0xFB40,0xD8F2,0x0000, 0xFB40,0xD8F7,0x0000, 0xFB40,0xD906,0x0000, /* 2F85A */
+0xFB40,0xD91A,0x0000, 0xFB40,0xD922,0x0000, 0xFB40,0xD962,0x0000, /* 2F85D */
+0xFB84,0x96A8,0x0000, 0xFB84,0x96EA,0x0000, 0xFB40,0xD9EC,0x0000, /* 2F860 */
+0xFB40,0xDA1B,0x0000, 0xFB40,0xDA27,0x0000, 0xFB40,0xD9D8,0x0000, /* 2F863 */
+0xFB40,0xDA66,0x0000, 0xFB80,0xB6EE,0x0000, 0xFB80,0xB6FC,0x0000, /* 2F866 */
+0xFB40,0xDB08,0x0000, 0xFB40,0xDB3E,0x0000, 0xFB40,0xDB3E,0x0000, /* 2F869 */
+0xFB84,0x99C8,0x0000, 0xFB40,0xDBC3,0x0000, 0xFB40,0xDBD8,0x0000, /* 2F86C */
+0xFB40,0xDBE7,0x0000, 0xFB40,0xDBF3,0x0000, 0xFB84,0x9B18,0x0000, /* 2F86F */
+0xFB40,0xDBFF,0x0000, 0xFB40,0xDC06,0x0000, 0xFB40,0xDF53,0x0000, /* 2F872 */
+0xFB40,0xDC22,0x0000, 0xFB80,0xB781,0x0000, 0xFB40,0xDC60,0x0000, /* 2F875 */
+0xFB40,0xDC6E,0x0000, 0xFB40,0xDCC0,0x0000, 0xFB40,0xDC8D,0x0000, /* 2F878 */
+0xFB84,0x9DE4,0x0000, 0xFB40,0xDD43,0x0000, 0xFB84,0x9DE6,0x0000, /* 2F87B */
+0xFB40,0xDD6E,0x0000, 0xFB40,0xDD6B,0x0000, 0xFB40,0xDD7C,0x0000, /* 2F87E */
+0xFB40,0xDDE1,0x0000, 0xFB40,0xDDE2,0x0000, 0xFB80,0xB82F,0x0000, /* 2F881 */
+0xFB40,0xDDFD,0x0000, 0xFB40,0xDE28,0x0000, 0xFB40,0xDE3D,0x0000, /* 2F884 */
+0xFB40,0xDE69,0x0000, 0xFB80,0xB862,0x0000, 0xFB84,0xA183,0x0000, /* 2F887 */
+0xFB80,0xB87C,0x0000, 0xFB40,0xDEB0,0x0000, 0xFB40,0xDEB3,0x0000, /* 2F88A */
+0xFB40,0xDEB6,0x0000, 0xFB40,0xDECA,0x0000, 0xFB85,0xA392,0x0000, /* 2F88D */
+0xFB40,0xDEFE,0x0000, 0xFB84,0xA331,0x0000, 0xFB84,0xA331,0x0000, /* 2F890 */
+0xFB41,0x8201,0x0000, 0xFB40,0xDF22,0x0000, 0xFB40,0xDF22,0x0000, /* 2F893 */
+0xFB80,0xB8C7,0x0000, 0xFB84,0xB2B8,0x0000, 0xFB84,0xE1DA,0x0000, /* 2F896 */
+0xFB40,0xDF62,0x0000, 0xFB40,0xDF6B,0x0000, 0xFB80,0xB8E3,0x0000, /* 2F899 */
+0xFB40,0xDF9A,0x0000, 0xFB40,0xDFCD,0x0000, 0xFB40,0xDFD7,0x0000, /* 2F89C */
+0xFB40,0xDFF9,0x0000, 0xFB40,0xE081,0x0000, 0xFB80,0xB93A,0x0000, /* 2F89F */
+0xFB80,0xB91C,0x0000, 0xFB40,0xE094,0x0000, 0xFB84,0xA6D4,0x0000, /* 2F8A2 */
+0xFB40,0xE0C7,0x0000, 0xFB40,0xE148,0x0000, 0xFB40,0xE14C,0x0000, /* 2F8A5 */
+0xFB40,0xE14E,0x0000, 0xFB40,0xE14C,0x0000, 0xFB40,0xE17A,0x0000, /* 2F8A8 */
+0xFB40,0xE18E,0x0000, 0xFB40,0xE1B2,0x0000, 0xFB40,0xE1A4,0x0000, /* 2F8AB */
+0xFB40,0xE1AF,0x0000, 0xFB40,0xE1DE,0x0000, 0xFB40,0xE1F2,0x0000, /* 2F8AE */
+0xFB40,0xE1F6,0x0000, 0xFB40,0xE210,0x0000, 0xFB40,0xE21B,0x0000, /* 2F8B1 */
+0xFB40,0xE25D,0x0000, 0xFB40,0xE2B1,0x0000, 0xFB40,0xE2D4,0x0000, /* 2F8B4 */
+0xFB40,0xE350,0x0000, 0xFB84,0xAB0C,0x0000, 0xFB40,0xE33D,0x0000, /* 2F8B7 */
+0xFB40,0xE2FC,0x0000, 0xFB40,0xE368,0x0000, 0xFB40,0xE383,0x0000, /* 2F8BA */
+0xFB40,0xE3E4,0x0000, 0xFB84,0xABF1,0x0000, 0xFB40,0xE422,0x0000, /* 2F8BD */
+0xFB40,0xE3C5,0x0000, 0xFB40,0xE3A9,0x0000, 0xFB80,0xBA2E,0x0000, /* 2F8C0 */
+0xFB40,0xE469,0x0000, 0xFB40,0xE47E,0x0000, 0xFB40,0xE49D,0x0000, /* 2F8C3 */
+0xFB40,0xE477,0x0000, 0xFB80,0xBA6C,0x0000, 0xFB40,0xE54F,0x0000, /* 2F8C6 */
+0xFB40,0xE56C,0x0000, 0xFB84,0xB00A,0x0000, 0xFB40,0xE5E3,0x0000, /* 2F8C9 */
+0xFB40,0xE6F8,0x0000, 0xFB40,0xE649,0x0000, 0xFB80,0xBB19,0x0000, /* 2F8CC */
+0xFB40,0xE691,0x0000, 0xFB80,0xBB08,0x0000, 0xFB80,0xBAE4,0x0000, /* 2F8CF */
+0xFB40,0xD192,0x0000, 0xFB40,0xD195,0x0000, 0xFB40,0xE700,0x0000, /* 2F8D2 */
+0xFB40,0xE69C,0x0000, 0xFB41,0x80AD,0x0000, 0xFB80,0xC3D9,0x0000, /* 2F8D5 */
+0xFB40,0xE717,0x0000, 0xFB40,0xE71B,0x0000, 0xFB40,0xE721,0x0000, /* 2F8D8 */
+0xFB40,0xE75E,0x0000, 0xFB40,0xE753,0x0000, 0xFB84,0xB3C3,0x0000, /* 2F8DB */
+0xFB80,0xBB49,0x0000, 0xFB40,0xE7FA,0x0000, 0xFB40,0xE785,0x0000, /* 2F8DE */
+0xFB40,0xE852,0x0000, 0xFB40,0xE885,0x0000, 0xFB84,0xB46D,0x0000, /* 2F8E1 */
+0xFB40,0xE88E,0x0000, 0xFB40,0xE81F,0x0000, 0xFB40,0xE914,0x0000, /* 2F8E4 */
+0xFB80,0xBB9D,0x0000, 0xFB40,0xE942,0x0000, 0xFB40,0xE9A3,0x0000, /* 2F8E7 */
+0xFB40,0xE9EA,0x0000, 0xFB40,0xEAA8,0x0000, 0xFB84,0xB6A3,0x0000, /* 2F8EA */
+0xFB40,0xEADB,0x0000, 0xFB80,0xBC18,0x0000, 0xFB40,0xEB21,0x0000, /* 2F8ED */
+0xFB84,0xB8A7,0x0000, 0xFB40,0xEB54,0x0000, 0xFB80,0xBC4E,0x0000, /* 2F8F0 */
+0xFB40,0xEB72,0x0000, 0xFB40,0xEB9F,0x0000, 0xFB40,0xEBBA,0x0000, /* 2F8F3 */
+0xFB40,0xEBBB,0x0000, 0xFB84,0xBA8D,0x0000, 0xFB84,0x9D0B,0x0000, /* 2F8F6 */
+0xFB84,0xBAFA,0x0000, 0xFB40,0xEC4E,0x0000, 0xFB84,0xBCBC,0x0000, /* 2F8F9 */
+0xFB40,0xECBF,0x0000, 0xFB40,0xECCD,0x0000, 0xFB40,0xEC67,0x0000, /* 2F8FC */
+0xFB40,0xED16,0x0000 };
+
+static const uint16 uca520_p2F9[]= { /* 2F900 (3 weights per char) */
+0xFB40,0xED3E,0x0000, 0xFB40,0xED77,0x0000, 0xFB40,0xED41,0x0000, /* 2F900 */
+0xFB40,0xED69,0x0000, 0xFB40,0xED78,0x0000, 0xFB40,0xED85,0x0000, /* 2F903 */
+0xFB84,0xBD1E,0x0000, 0xFB40,0xED34,0x0000, 0xFB40,0xEE2F,0x0000, /* 2F906 */
+0xFB40,0xEE6E,0x0000, 0xFB80,0xBD33,0x0000, 0xFB40,0xEECB,0x0000, /* 2F909 */
+0xFB40,0xEEC7,0x0000, 0xFB84,0xBED1,0x0000, 0xFB40,0xEDF9,0x0000, /* 2F90C */
+0xFB40,0xEF6E,0x0000, 0xFB84,0xBF5E,0x0000, 0xFB84,0xBF8E,0x0000, /* 2F90F */
+0xFB40,0xEFC6,0x0000, 0xFB40,0xF039,0x0000, 0xFB40,0xF01E,0x0000, /* 2F912 */
+0xFB40,0xF01B,0x0000, 0xFB80,0xBD96,0x0000, 0xFB40,0xF04A,0x0000, /* 2F915 */
+0xFB40,0xF07D,0x0000, 0xFB40,0xF077,0x0000, 0xFB40,0xF0AD,0x0000, /* 2F918 */
+0xFB84,0x8525,0x0000, 0xFB40,0xF145,0x0000, 0xFB84,0xC263,0x0000, /* 2F91B */
+0xFB40,0xF19C,0x0000, 0xFB84,0xC3AB,0x0000, 0xFB40,0xF228,0x0000, /* 2F91E */
+0xFB40,0xF235,0x0000, 0xFB40,0xF250,0x0000, 0xFB84,0xC608,0x0000, /* 2F921 */
+0xFB40,0xF280,0x0000, 0xFB40,0xF295,0x0000, 0xFB84,0xC735,0x0000, /* 2F924 */
+0xFB84,0xC814,0x0000, 0xFB40,0xF37A,0x0000, 0xFB40,0xF38B,0x0000, /* 2F927 */
+0xFB80,0xBEAC,0x0000, 0xFB40,0xF3A5,0x0000, 0xFB80,0xBEB8,0x0000, /* 2F92A */
+0xFB80,0xBEB8,0x0000, 0xFB40,0xF447,0x0000, 0xFB40,0xF45C,0x0000, /* 2F92D */
+0xFB40,0xF471,0x0000, 0xFB40,0xF485,0x0000, 0xFB40,0xF4CA,0x0000, /* 2F930 */
+0xFB80,0xBF1B,0x0000, 0xFB40,0xF524,0x0000, 0xFB84,0xCC36,0x0000, /* 2F933 */
+0xFB40,0xF53E,0x0000, 0xFB84,0xCC92,0x0000, 0xFB40,0xF570,0x0000, /* 2F936 */
+0xFB84,0xA19F,0x0000, 0xFB40,0xF610,0x0000, 0xFB84,0xCFA1,0x0000, /* 2F939 */
+0xFB84,0xCFB8,0x0000, 0xFB84,0xD044,0x0000, 0xFB80,0xBFFC,0x0000, /* 2F93C */
+0xFB80,0xC008,0x0000, 0xFB40,0xF6F4,0x0000, 0xFB84,0xD0F3,0x0000, /* 2F93F */
+0xFB84,0xD0F2,0x0000, 0xFB84,0xD119,0x0000, 0xFB84,0xD133,0x0000, /* 2F942 */
+0xFB40,0xF71E,0x0000, 0xFB40,0xF71F,0x0000, 0xFB40,0xF71F,0x0000, /* 2F945 */
+0xFB40,0xF74A,0x0000, 0xFB80,0xC039,0x0000, 0xFB40,0xF78B,0x0000, /* 2F948 */
+0xFB80,0xC046,0x0000, 0xFB80,0xC096,0x0000, 0xFB84,0xD41D,0x0000, /* 2F94B */
+0xFB40,0xF84E,0x0000, 0xFB40,0xF88C,0x0000, 0xFB40,0xF8CC,0x0000, /* 2F94E */
+0xFB80,0xC0E3,0x0000, 0xFB84,0xD626,0x0000, 0xFB40,0xF956,0x0000, /* 2F951 */
+0xFB84,0xD69A,0x0000, 0xFB84,0xD6C5,0x0000, 0xFB40,0xF98F,0x0000, /* 2F954 */
+0xFB40,0xF9EB,0x0000, 0xFB80,0xC12F,0x0000, 0xFB40,0xFA40,0x0000, /* 2F957 */
+0xFB40,0xFA4A,0x0000, 0xFB40,0xFA4F,0x0000, 0xFB84,0xD97C,0x0000, /* 2F95A */
+0xFB84,0xDAA7,0x0000, 0xFB84,0xDAA7,0x0000, 0xFB40,0xFAEE,0x0000, /* 2F95D */
+0xFB80,0xC202,0x0000, 0xFB84,0xDBAB,0x0000, 0xFB40,0xFBC6,0x0000, /* 2F960 */
+0xFB40,0xFBC9,0x0000, 0xFB80,0xC227,0x0000, 0xFB84,0xDC80,0x0000, /* 2F963 */
+0xFB40,0xFCD2,0x0000, 0xFB80,0xC2A0,0x0000, 0xFB40,0xFCE8,0x0000, /* 2F966 */
+0xFB40,0xFCE3,0x0000, 0xFB40,0xFD00,0x0000, 0xFB84,0xDF86,0x0000, /* 2F969 */
+0xFB40,0xFD63,0x0000, 0xFB80,0xC301,0x0000, 0xFB40,0xFDC7,0x0000, /* 2F96C */
+0xFB40,0xFE02,0x0000, 0xFB40,0xFE45,0x0000, 0xFB80,0xC334,0x0000, /* 2F96F */
+0xFB84,0xE228,0x0000, 0xFB84,0xE247,0x0000, 0xFB80,0xC359,0x0000, /* 2F972 */
+0xFB84,0xE2D9,0x0000, 0xFB40,0xFF7A,0x0000, 0xFB84,0xE33E,0x0000, /* 2F975 */
+0xFB40,0xFF95,0x0000, 0xFB40,0xFFFA,0x0000, 0xFB41,0x8005,0x0000, /* 2F978 */
+0xFB84,0xE4DA,0x0000, 0xFB84,0xE523,0x0000, 0xFB41,0x8060,0x0000, /* 2F97B */
+0xFB84,0xE5A8,0x0000, 0xFB41,0x8070,0x0000, 0xFB84,0xB35F,0x0000, /* 2F97E */
+0xFB80,0xC3D5,0x0000, 0xFB41,0x80B2,0x0000, 0xFB41,0x8103,0x0000, /* 2F981 */
+0xFB80,0xC40B,0x0000, 0xFB41,0x813E,0x0000, 0xFB40,0xDAB5,0x0000, /* 2F984 */
+0xFB84,0xE7A7,0x0000, 0xFB84,0xE7B5,0x0000, 0xFB84,0xB393,0x0000, /* 2F987 */
+0xFB84,0xB39C,0x0000, 0xFB41,0x8201,0x0000, 0xFB41,0x8204,0x0000, /* 2F98A */
+0xFB41,0x8F9E,0x0000, 0xFB80,0xC46B,0x0000, 0xFB41,0x8291,0x0000, /* 2F98D */
+0xFB41,0x828B,0x0000, 0xFB41,0x829D,0x0000, 0xFB40,0xD2B3,0x0000, /* 2F990 */
+0xFB41,0x82B1,0x0000, 0xFB41,0x82B3,0x0000, 0xFB41,0x82BD,0x0000, /* 2F993 */
+0xFB41,0x82E6,0x0000, 0xFB84,0xEB3C,0x0000, 0xFB41,0x82E5,0x0000, /* 2F996 */
+0xFB41,0x831D,0x0000, 0xFB41,0x8363,0x0000, 0xFB41,0x83AD,0x0000, /* 2F999 */
+0xFB41,0x8323,0x0000, 0xFB41,0x83BD,0x0000, 0xFB41,0x83E7,0x0000, /* 2F99C */
+0xFB41,0x8457,0x0000, 0xFB41,0x8353,0x0000, 0xFB41,0x83CA,0x0000, /* 2F99F */
+0xFB41,0x83CC,0x0000, 0xFB41,0x83DC,0x0000, 0xFB84,0xEC36,0x0000, /* 2F9A2 */
+0xFB84,0xED6B,0x0000, 0xFB84,0xECD5,0x0000, 0xFB80,0xC52B,0x0000, /* 2F9A5 */
+0xFB41,0x84F1,0x0000, 0xFB41,0x84F3,0x0000, 0xFB41,0x8516,0x0000, /* 2F9A8 */
+0xFB84,0xF3CA,0x0000, 0xFB41,0x8564,0x0000, 0xFB84,0xEF2C,0x0000, /* 2F9AB */
+0xFB80,0xC55D,0x0000, 0xFB80,0xC561,0x0000, 0xFB84,0xEFB1,0x0000, /* 2F9AE */
+0xFB84,0xF0D2,0x0000, 0xFB80,0xC56B,0x0000, 0xFB41,0x8650,0x0000, /* 2F9B1 */
+0xFB41,0x865C,0x0000, 0xFB41,0x8667,0x0000, 0xFB41,0x8669,0x0000, /* 2F9B4 */
+0xFB41,0x86A9,0x0000, 0xFB41,0x8688,0x0000, 0xFB41,0x870E,0x0000, /* 2F9B7 */
+0xFB41,0x86E2,0x0000, 0xFB41,0x8779,0x0000, 0xFB41,0x8728,0x0000, /* 2F9BA */
+0xFB41,0x876B,0x0000, 0xFB41,0x8786,0x0000, 0xFB80,0xC5D7,0x0000, /* 2F9BD */
+0xFB41,0x87E1,0x0000, 0xFB41,0x8801,0x0000, 0xFB80,0xC5F9,0x0000, /* 2F9C0 */
+0xFB41,0x8860,0x0000, 0xFB41,0x8863,0x0000, 0xFB84,0xF667,0x0000, /* 2F9C3 */
+0xFB41,0x88D7,0x0000, 0xFB41,0x88DE,0x0000, 0xFB80,0xC635,0x0000, /* 2F9C6 */
+0xFB41,0x88FA,0x0000, 0xFB80,0xB4BB,0x0000, 0xFB84,0xF8AE,0x0000, /* 2F9C9 */
+0xFB84,0xF966,0x0000, 0xFB80,0xC6BE,0x0000, 0xFB80,0xC6C7,0x0000, /* 2F9CC */
+0xFB41,0x8AA0,0x0000, 0xFB41,0x8AED,0x0000, 0xFB41,0x8B8A,0x0000, /* 2F9CF */
+0xFB41,0x8C55,0x0000, 0xFB84,0xFCA8,0x0000, 0xFB41,0x8CAB,0x0000, /* 2F9D2 */
+0xFB41,0x8CC1,0x0000, 0xFB41,0x8D1B,0x0000, 0xFB41,0x8D77,0x0000, /* 2F9D5 */
+0xFB84,0xFF2F,0x0000, 0xFB84,0x8804,0x0000, 0xFB41,0x8DCB,0x0000, /* 2F9D8 */
+0xFB41,0x8DBC,0x0000, 0xFB41,0x8DF0,0x0000, 0xFB84,0x88DE,0x0000, /* 2F9DB */
+0xFB41,0x8ED4,0x0000, 0xFB41,0x8F38,0x0000, 0xFB85,0x85D2,0x0000, /* 2F9DE */
+0xFB85,0x85ED,0x0000, 0xFB41,0x9094,0x0000, 0xFB41,0x90F1,0x0000, /* 2F9E1 */
+0xFB41,0x9111,0x0000, 0xFB85,0x872E,0x0000, 0xFB41,0x911B,0x0000, /* 2F9E4 */
+0xFB41,0x9238,0x0000, 0xFB41,0x92D7,0x0000, 0xFB41,0x92D8,0x0000, /* 2F9E7 */
+0xFB41,0x927C,0x0000, 0xFB41,0x93F9,0x0000, 0xFB41,0x9415,0x0000, /* 2F9EA */
+0xFB85,0x8BFA,0x0000, 0xFB41,0x958B,0x0000, 0xFB80,0xC995,0x0000, /* 2F9ED */
+0xFB41,0x95B7,0x0000, 0xFB85,0x8D77,0x0000, 0xFB80,0xC9E6,0x0000, /* 2F9F0 */
+0xFB41,0x96C3,0x0000, 0xFB40,0xDDB2,0x0000, 0xFB41,0x9723,0x0000, /* 2F9F3 */
+0xFB85,0x9145,0x0000, 0xFB85,0x921A,0x0000, 0xFB80,0xCA6E,0x0000, /* 2F9F6 */
+0xFB80,0xCA76,0x0000, 0xFB41,0x97E0,0x0000, 0xFB85,0x940A,0x0000, /* 2F9F9 */
+0xFB80,0xCAB2,0x0000, 0xFB85,0x9496,0x0000, 0xFB41,0x980B,0x0000, /* 2F9FC */
+0xFB41,0x980B,0x0000 };
+
+static const uint16 uca520_p2FA[]= { /* 2FA00 (3 weights per char) */
+0xFB41,0x9829,0x0000, 0xFB85,0x95B6,0x0000, 0xFB41,0x98E2,0x0000, /* 2FA00 */
+0xFB80,0xCB33,0x0000, 0xFB41,0x9929,0x0000, 0xFB41,0x99A7,0x0000, /* 2FA03 */
+0xFB41,0x99C2,0x0000, 0xFB41,0x99FE,0x0000, 0xFB80,0xCBCE,0x0000, /* 2FA06 */
+0xFB85,0x9B30,0x0000, 0xFB41,0x9B12,0x0000, 0xFB41,0x9C40,0x0000, /* 2FA09 */
+0xFB41,0x9CFD,0x0000, 0xFB80,0xCCCE,0x0000, 0xFB80,0xCCED,0x0000, /* 2FA0C */
+0xFB41,0x9D67,0x0000, 0xFB85,0xA0CE,0x0000, 0xFB80,0xCCF8,0x0000, /* 2FA0F */
+0xFB85,0xA105,0x0000, 0xFB85,0xA20E,0x0000, 0xFB85,0xA291,0x0000, /* 2FA12 */
+0xFB41,0x9EBB,0x0000, 0xFB80,0xCD56,0x0000, 0xFB41,0x9EF9,0x0000, /* 2FA15 */
+0xFB41,0x9EFE,0x0000, 0xFB41,0x9F05,0x0000, 0xFB41,0x9F0F,0x0000, /* 2FA18 */
+0xFB41,0x9F16,0x0000, 0xFB41,0x9F3B,0x0000, 0xFB85,0xA600,0x0000, /* 2FA1B */
+0xFBC5,0xFA1E,0x0000, 0xFBC5,0xFA1F,0x0000, 0xFBC5,0xFA20,0x0000, /* 2FA1E */
+0xFBC5,0xFA21,0x0000, 0xFBC5,0xFA22,0x0000, 0xFBC5,0xFA23,0x0000, /* 2FA21 */
+0xFBC5,0xFA24,0x0000, 0xFBC5,0xFA25,0x0000, 0xFBC5,0xFA26,0x0000, /* 2FA24 */
+0xFBC5,0xFA27,0x0000, 0xFBC5,0xFA28,0x0000, 0xFBC5,0xFA29,0x0000, /* 2FA27 */
+0xFBC5,0xFA2A,0x0000, 0xFBC5,0xFA2B,0x0000, 0xFBC5,0xFA2C,0x0000, /* 2FA2A */
+0xFBC5,0xFA2D,0x0000, 0xFBC5,0xFA2E,0x0000, 0xFBC5,0xFA2F,0x0000, /* 2FA2D */
+0xFBC5,0xFA30,0x0000, 0xFBC5,0xFA31,0x0000, 0xFBC5,0xFA32,0x0000, /* 2FA30 */
+0xFBC5,0xFA33,0x0000, 0xFBC5,0xFA34,0x0000, 0xFBC5,0xFA35,0x0000, /* 2FA33 */
+0xFBC5,0xFA36,0x0000, 0xFBC5,0xFA37,0x0000, 0xFBC5,0xFA38,0x0000, /* 2FA36 */
+0xFBC5,0xFA39,0x0000, 0xFBC5,0xFA3A,0x0000, 0xFBC5,0xFA3B,0x0000, /* 2FA39 */
+0xFBC5,0xFA3C,0x0000, 0xFBC5,0xFA3D,0x0000, 0xFBC5,0xFA3E,0x0000, /* 2FA3C */
+0xFBC5,0xFA3F,0x0000, 0xFBC5,0xFA40,0x0000, 0xFBC5,0xFA41,0x0000, /* 2FA3F */
+0xFBC5,0xFA42,0x0000, 0xFBC5,0xFA43,0x0000, 0xFBC5,0xFA44,0x0000, /* 2FA42 */
+0xFBC5,0xFA45,0x0000, 0xFBC5,0xFA46,0x0000, 0xFBC5,0xFA47,0x0000, /* 2FA45 */
+0xFBC5,0xFA48,0x0000, 0xFBC5,0xFA49,0x0000, 0xFBC5,0xFA4A,0x0000, /* 2FA48 */
+0xFBC5,0xFA4B,0x0000, 0xFBC5,0xFA4C,0x0000, 0xFBC5,0xFA4D,0x0000, /* 2FA4B */
+0xFBC5,0xFA4E,0x0000, 0xFBC5,0xFA4F,0x0000, 0xFBC5,0xFA50,0x0000, /* 2FA4E */
+0xFBC5,0xFA51,0x0000, 0xFBC5,0xFA52,0x0000, 0xFBC5,0xFA53,0x0000, /* 2FA51 */
+0xFBC5,0xFA54,0x0000, 0xFBC5,0xFA55,0x0000, 0xFBC5,0xFA56,0x0000, /* 2FA54 */
+0xFBC5,0xFA57,0x0000, 0xFBC5,0xFA58,0x0000, 0xFBC5,0xFA59,0x0000, /* 2FA57 */
+0xFBC5,0xFA5A,0x0000, 0xFBC5,0xFA5B,0x0000, 0xFBC5,0xFA5C,0x0000, /* 2FA5A */
+0xFBC5,0xFA5D,0x0000, 0xFBC5,0xFA5E,0x0000, 0xFBC5,0xFA5F,0x0000, /* 2FA5D */
+0xFBC5,0xFA60,0x0000, 0xFBC5,0xFA61,0x0000, 0xFBC5,0xFA62,0x0000, /* 2FA60 */
+0xFBC5,0xFA63,0x0000, 0xFBC5,0xFA64,0x0000, 0xFBC5,0xFA65,0x0000, /* 2FA63 */
+0xFBC5,0xFA66,0x0000, 0xFBC5,0xFA67,0x0000, 0xFBC5,0xFA68,0x0000, /* 2FA66 */
+0xFBC5,0xFA69,0x0000, 0xFBC5,0xFA6A,0x0000, 0xFBC5,0xFA6B,0x0000, /* 2FA69 */
+0xFBC5,0xFA6C,0x0000, 0xFBC5,0xFA6D,0x0000, 0xFBC5,0xFA6E,0x0000, /* 2FA6C */
+0xFBC5,0xFA6F,0x0000, 0xFBC5,0xFA70,0x0000, 0xFBC5,0xFA71,0x0000, /* 2FA6F */
+0xFBC5,0xFA72,0x0000, 0xFBC5,0xFA73,0x0000, 0xFBC5,0xFA74,0x0000, /* 2FA72 */
+0xFBC5,0xFA75,0x0000, 0xFBC5,0xFA76,0x0000, 0xFBC5,0xFA77,0x0000, /* 2FA75 */
+0xFBC5,0xFA78,0x0000, 0xFBC5,0xFA79,0x0000, 0xFBC5,0xFA7A,0x0000, /* 2FA78 */
+0xFBC5,0xFA7B,0x0000, 0xFBC5,0xFA7C,0x0000, 0xFBC5,0xFA7D,0x0000, /* 2FA7B */
+0xFBC5,0xFA7E,0x0000, 0xFBC5,0xFA7F,0x0000, 0xFBC5,0xFA80,0x0000, /* 2FA7E */
+0xFBC5,0xFA81,0x0000, 0xFBC5,0xFA82,0x0000, 0xFBC5,0xFA83,0x0000, /* 2FA81 */
+0xFBC5,0xFA84,0x0000, 0xFBC5,0xFA85,0x0000, 0xFBC5,0xFA86,0x0000, /* 2FA84 */
+0xFBC5,0xFA87,0x0000, 0xFBC5,0xFA88,0x0000, 0xFBC5,0xFA89,0x0000, /* 2FA87 */
+0xFBC5,0xFA8A,0x0000, 0xFBC5,0xFA8B,0x0000, 0xFBC5,0xFA8C,0x0000, /* 2FA8A */
+0xFBC5,0xFA8D,0x0000, 0xFBC5,0xFA8E,0x0000, 0xFBC5,0xFA8F,0x0000, /* 2FA8D */
+0xFBC5,0xFA90,0x0000, 0xFBC5,0xFA91,0x0000, 0xFBC5,0xFA92,0x0000, /* 2FA90 */
+0xFBC5,0xFA93,0x0000, 0xFBC5,0xFA94,0x0000, 0xFBC5,0xFA95,0x0000, /* 2FA93 */
+0xFBC5,0xFA96,0x0000, 0xFBC5,0xFA97,0x0000, 0xFBC5,0xFA98,0x0000, /* 2FA96 */
+0xFBC5,0xFA99,0x0000, 0xFBC5,0xFA9A,0x0000, 0xFBC5,0xFA9B,0x0000, /* 2FA99 */
+0xFBC5,0xFA9C,0x0000, 0xFBC5,0xFA9D,0x0000, 0xFBC5,0xFA9E,0x0000, /* 2FA9C */
+0xFBC5,0xFA9F,0x0000, 0xFBC5,0xFAA0,0x0000, 0xFBC5,0xFAA1,0x0000, /* 2FA9F */
+0xFBC5,0xFAA2,0x0000, 0xFBC5,0xFAA3,0x0000, 0xFBC5,0xFAA4,0x0000, /* 2FAA2 */
+0xFBC5,0xFAA5,0x0000, 0xFBC5,0xFAA6,0x0000, 0xFBC5,0xFAA7,0x0000, /* 2FAA5 */
+0xFBC5,0xFAA8,0x0000, 0xFBC5,0xFAA9,0x0000, 0xFBC5,0xFAAA,0x0000, /* 2FAA8 */
+0xFBC5,0xFAAB,0x0000, 0xFBC5,0xFAAC,0x0000, 0xFBC5,0xFAAD,0x0000, /* 2FAAB */
+0xFBC5,0xFAAE,0x0000, 0xFBC5,0xFAAF,0x0000, 0xFBC5,0xFAB0,0x0000, /* 2FAAE */
+0xFBC5,0xFAB1,0x0000, 0xFBC5,0xFAB2,0x0000, 0xFBC5,0xFAB3,0x0000, /* 2FAB1 */
+0xFBC5,0xFAB4,0x0000, 0xFBC5,0xFAB5,0x0000, 0xFBC5,0xFAB6,0x0000, /* 2FAB4 */
+0xFBC5,0xFAB7,0x0000, 0xFBC5,0xFAB8,0x0000, 0xFBC5,0xFAB9,0x0000, /* 2FAB7 */
+0xFBC5,0xFABA,0x0000, 0xFBC5,0xFABB,0x0000, 0xFBC5,0xFABC,0x0000, /* 2FABA */
+0xFBC5,0xFABD,0x0000, 0xFBC5,0xFABE,0x0000, 0xFBC5,0xFABF,0x0000, /* 2FABD */
+0xFBC5,0xFAC0,0x0000, 0xFBC5,0xFAC1,0x0000, 0xFBC5,0xFAC2,0x0000, /* 2FAC0 */
+0xFBC5,0xFAC3,0x0000, 0xFBC5,0xFAC4,0x0000, 0xFBC5,0xFAC5,0x0000, /* 2FAC3 */
+0xFBC5,0xFAC6,0x0000, 0xFBC5,0xFAC7,0x0000, 0xFBC5,0xFAC8,0x0000, /* 2FAC6 */
+0xFBC5,0xFAC9,0x0000, 0xFBC5,0xFACA,0x0000, 0xFBC5,0xFACB,0x0000, /* 2FAC9 */
+0xFBC5,0xFACC,0x0000, 0xFBC5,0xFACD,0x0000, 0xFBC5,0xFACE,0x0000, /* 2FACC */
+0xFBC5,0xFACF,0x0000, 0xFBC5,0xFAD0,0x0000, 0xFBC5,0xFAD1,0x0000, /* 2FACF */
+0xFBC5,0xFAD2,0x0000, 0xFBC5,0xFAD3,0x0000, 0xFBC5,0xFAD4,0x0000, /* 2FAD2 */
+0xFBC5,0xFAD5,0x0000, 0xFBC5,0xFAD6,0x0000, 0xFBC5,0xFAD7,0x0000, /* 2FAD5 */
+0xFBC5,0xFAD8,0x0000, 0xFBC5,0xFAD9,0x0000, 0xFBC5,0xFADA,0x0000, /* 2FAD8 */
+0xFBC5,0xFADB,0x0000, 0xFBC5,0xFADC,0x0000, 0xFBC5,0xFADD,0x0000, /* 2FADB */
+0xFBC5,0xFADE,0x0000, 0xFBC5,0xFADF,0x0000, 0xFBC5,0xFAE0,0x0000, /* 2FADE */
+0xFBC5,0xFAE1,0x0000, 0xFBC5,0xFAE2,0x0000, 0xFBC5,0xFAE3,0x0000, /* 2FAE1 */
+0xFBC5,0xFAE4,0x0000, 0xFBC5,0xFAE5,0x0000, 0xFBC5,0xFAE6,0x0000, /* 2FAE4 */
+0xFBC5,0xFAE7,0x0000, 0xFBC5,0xFAE8,0x0000, 0xFBC5,0xFAE9,0x0000, /* 2FAE7 */
+0xFBC5,0xFAEA,0x0000, 0xFBC5,0xFAEB,0x0000, 0xFBC5,0xFAEC,0x0000, /* 2FAEA */
+0xFBC5,0xFAED,0x0000, 0xFBC5,0xFAEE,0x0000, 0xFBC5,0xFAEF,0x0000, /* 2FAED */
+0xFBC5,0xFAF0,0x0000, 0xFBC5,0xFAF1,0x0000, 0xFBC5,0xFAF2,0x0000, /* 2FAF0 */
+0xFBC5,0xFAF3,0x0000, 0xFBC5,0xFAF4,0x0000, 0xFBC5,0xFAF5,0x0000, /* 2FAF3 */
+0xFBC5,0xFAF6,0x0000, 0xFBC5,0xFAF7,0x0000, 0xFBC5,0xFAF8,0x0000, /* 2FAF6 */
+0xFBC5,0xFAF9,0x0000, 0xFBC5,0xFAFA,0x0000, 0xFBC5,0xFAFB,0x0000, /* 2FAF9 */
+0xFBC5,0xFAFC,0x0000, 0xFBC5,0xFAFD,0x0000, 0xFBC5,0xFAFE,0x0000, /* 2FAFC */
+0xFBC5,0xFAFF,0x0000 };
+
+static const uint16 uca520_pE00[]= { /* E0000 (3 weights per char) */
+0xFBDC,0x8000,0x0000, 0x0000,0x0000,0x0000, 0xFBDC,0x8002,0x0000, /* E0000 */
+0xFBDC,0x8003,0x0000, 0xFBDC,0x8004,0x0000, 0xFBDC,0x8005,0x0000, /* E0003 */
+0xFBDC,0x8006,0x0000, 0xFBDC,0x8007,0x0000, 0xFBDC,0x8008,0x0000, /* E0006 */
+0xFBDC,0x8009,0x0000, 0xFBDC,0x800A,0x0000, 0xFBDC,0x800B,0x0000, /* E0009 */
+0xFBDC,0x800C,0x0000, 0xFBDC,0x800D,0x0000, 0xFBDC,0x800E,0x0000, /* E000C */
+0xFBDC,0x800F,0x0000, 0xFBDC,0x8010,0x0000, 0xFBDC,0x8011,0x0000, /* E000F */
+0xFBDC,0x8012,0x0000, 0xFBDC,0x8013,0x0000, 0xFBDC,0x8014,0x0000, /* E0012 */
+0xFBDC,0x8015,0x0000, 0xFBDC,0x8016,0x0000, 0xFBDC,0x8017,0x0000, /* E0015 */
+0xFBDC,0x8018,0x0000, 0xFBDC,0x8019,0x0000, 0xFBDC,0x801A,0x0000, /* E0018 */
+0xFBDC,0x801B,0x0000, 0xFBDC,0x801C,0x0000, 0xFBDC,0x801D,0x0000, /* E001B */
+0xFBDC,0x801E,0x0000, 0xFBDC,0x801F,0x0000, 0x0000,0x0000,0x0000, /* E001E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0021 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0024 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0027 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E002A */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E002D */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0030 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0033 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0036 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0039 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E003C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E003F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0042 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0045 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0048 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E004B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E004E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0051 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0054 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0057 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E005A */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E005D */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0060 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0063 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0066 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0069 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E006C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E006F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0072 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0075 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0078 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E007B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0xFBDC,0x8080,0x0000, /* E007E */
+0xFBDC,0x8081,0x0000, 0xFBDC,0x8082,0x0000, 0xFBDC,0x8083,0x0000, /* E0081 */
+0xFBDC,0x8084,0x0000, 0xFBDC,0x8085,0x0000, 0xFBDC,0x8086,0x0000, /* E0084 */
+0xFBDC,0x8087,0x0000, 0xFBDC,0x8088,0x0000, 0xFBDC,0x8089,0x0000, /* E0087 */
+0xFBDC,0x808A,0x0000, 0xFBDC,0x808B,0x0000, 0xFBDC,0x808C,0x0000, /* E008A */
+0xFBDC,0x808D,0x0000, 0xFBDC,0x808E,0x0000, 0xFBDC,0x808F,0x0000, /* E008D */
+0xFBDC,0x8090,0x0000, 0xFBDC,0x8091,0x0000, 0xFBDC,0x8092,0x0000, /* E0090 */
+0xFBDC,0x8093,0x0000, 0xFBDC,0x8094,0x0000, 0xFBDC,0x8095,0x0000, /* E0093 */
+0xFBDC,0x8096,0x0000, 0xFBDC,0x8097,0x0000, 0xFBDC,0x8098,0x0000, /* E0096 */
+0xFBDC,0x8099,0x0000, 0xFBDC,0x809A,0x0000, 0xFBDC,0x809B,0x0000, /* E0099 */
+0xFBDC,0x809C,0x0000, 0xFBDC,0x809D,0x0000, 0xFBDC,0x809E,0x0000, /* E009C */
+0xFBDC,0x809F,0x0000, 0xFBDC,0x80A0,0x0000, 0xFBDC,0x80A1,0x0000, /* E009F */
+0xFBDC,0x80A2,0x0000, 0xFBDC,0x80A3,0x0000, 0xFBDC,0x80A4,0x0000, /* E00A2 */
+0xFBDC,0x80A5,0x0000, 0xFBDC,0x80A6,0x0000, 0xFBDC,0x80A7,0x0000, /* E00A5 */
+0xFBDC,0x80A8,0x0000, 0xFBDC,0x80A9,0x0000, 0xFBDC,0x80AA,0x0000, /* E00A8 */
+0xFBDC,0x80AB,0x0000, 0xFBDC,0x80AC,0x0000, 0xFBDC,0x80AD,0x0000, /* E00AB */
+0xFBDC,0x80AE,0x0000, 0xFBDC,0x80AF,0x0000, 0xFBDC,0x80B0,0x0000, /* E00AE */
+0xFBDC,0x80B1,0x0000, 0xFBDC,0x80B2,0x0000, 0xFBDC,0x80B3,0x0000, /* E00B1 */
+0xFBDC,0x80B4,0x0000, 0xFBDC,0x80B5,0x0000, 0xFBDC,0x80B6,0x0000, /* E00B4 */
+0xFBDC,0x80B7,0x0000, 0xFBDC,0x80B8,0x0000, 0xFBDC,0x80B9,0x0000, /* E00B7 */
+0xFBDC,0x80BA,0x0000, 0xFBDC,0x80BB,0x0000, 0xFBDC,0x80BC,0x0000, /* E00BA */
+0xFBDC,0x80BD,0x0000, 0xFBDC,0x80BE,0x0000, 0xFBDC,0x80BF,0x0000, /* E00BD */
+0xFBDC,0x80C0,0x0000, 0xFBDC,0x80C1,0x0000, 0xFBDC,0x80C2,0x0000, /* E00C0 */
+0xFBDC,0x80C3,0x0000, 0xFBDC,0x80C4,0x0000, 0xFBDC,0x80C5,0x0000, /* E00C3 */
+0xFBDC,0x80C6,0x0000, 0xFBDC,0x80C7,0x0000, 0xFBDC,0x80C8,0x0000, /* E00C6 */
+0xFBDC,0x80C9,0x0000, 0xFBDC,0x80CA,0x0000, 0xFBDC,0x80CB,0x0000, /* E00C9 */
+0xFBDC,0x80CC,0x0000, 0xFBDC,0x80CD,0x0000, 0xFBDC,0x80CE,0x0000, /* E00CC */
+0xFBDC,0x80CF,0x0000, 0xFBDC,0x80D0,0x0000, 0xFBDC,0x80D1,0x0000, /* E00CF */
+0xFBDC,0x80D2,0x0000, 0xFBDC,0x80D3,0x0000, 0xFBDC,0x80D4,0x0000, /* E00D2 */
+0xFBDC,0x80D5,0x0000, 0xFBDC,0x80D6,0x0000, 0xFBDC,0x80D7,0x0000, /* E00D5 */
+0xFBDC,0x80D8,0x0000, 0xFBDC,0x80D9,0x0000, 0xFBDC,0x80DA,0x0000, /* E00D8 */
+0xFBDC,0x80DB,0x0000, 0xFBDC,0x80DC,0x0000, 0xFBDC,0x80DD,0x0000, /* E00DB */
+0xFBDC,0x80DE,0x0000, 0xFBDC,0x80DF,0x0000, 0xFBDC,0x80E0,0x0000, /* E00DE */
+0xFBDC,0x80E1,0x0000, 0xFBDC,0x80E2,0x0000, 0xFBDC,0x80E3,0x0000, /* E00E1 */
+0xFBDC,0x80E4,0x0000, 0xFBDC,0x80E5,0x0000, 0xFBDC,0x80E6,0x0000, /* E00E4 */
+0xFBDC,0x80E7,0x0000, 0xFBDC,0x80E8,0x0000, 0xFBDC,0x80E9,0x0000, /* E00E7 */
+0xFBDC,0x80EA,0x0000, 0xFBDC,0x80EB,0x0000, 0xFBDC,0x80EC,0x0000, /* E00EA */
+0xFBDC,0x80ED,0x0000, 0xFBDC,0x80EE,0x0000, 0xFBDC,0x80EF,0x0000, /* E00ED */
+0xFBDC,0x80F0,0x0000, 0xFBDC,0x80F1,0x0000, 0xFBDC,0x80F2,0x0000, /* E00F0 */
+0xFBDC,0x80F3,0x0000, 0xFBDC,0x80F4,0x0000, 0xFBDC,0x80F5,0x0000, /* E00F3 */
+0xFBDC,0x80F6,0x0000, 0xFBDC,0x80F7,0x0000, 0xFBDC,0x80F8,0x0000, /* E00F6 */
+0xFBDC,0x80F9,0x0000, 0xFBDC,0x80FA,0x0000, 0xFBDC,0x80FB,0x0000, /* E00F9 */
+0xFBDC,0x80FC,0x0000, 0xFBDC,0x80FD,0x0000, 0xFBDC,0x80FE,0x0000, /* E00FC */
+0xFBDC,0x80FF,0x0000 };
+
+static const uint16 uca520_pE01[]= { /* E0100 (3 weights per char) */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0100 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0103 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0106 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0109 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E010C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E010F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0112 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0115 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0118 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E011B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E011E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0121 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0124 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0127 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E012A */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E012D */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0130 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0133 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0136 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0139 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E013C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E013F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0142 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0145 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0148 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E014B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E014E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0151 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0154 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0157 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E015A */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E015D */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0160 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0163 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0166 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0169 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E016C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E016F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0172 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0175 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0178 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E017B */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E017E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0181 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0184 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0187 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E018A */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E018D */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0190 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0193 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0196 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E0199 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E019C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E019F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A2 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01A8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01AB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01AE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B1 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01B7 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01BA */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01BD */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C0 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C3 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C6 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01C9 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01CC */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01CF */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D2 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01D8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01DB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01DE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E1 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01E7 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01EA */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* E01ED */
+0xFBDC,0x81F0,0x0000, 0xFBDC,0x81F1,0x0000, 0xFBDC,0x81F2,0x0000, /* E01F0 */
+0xFBDC,0x81F3,0x0000, 0xFBDC,0x81F4,0x0000, 0xFBDC,0x81F5,0x0000, /* E01F3 */
+0xFBDC,0x81F6,0x0000, 0xFBDC,0x81F7,0x0000, 0xFBDC,0x81F8,0x0000, /* E01F6 */
+0xFBDC,0x81F9,0x0000, 0xFBDC,0x81FA,0x0000, 0xFBDC,0x81FB,0x0000, /* E01F9 */
+0xFBDC,0x81FC,0x0000, 0xFBDC,0x81FD,0x0000, 0xFBDC,0x81FE,0x0000, /* E01FC */
+0xFBDC,0x81FF,0x0000 };
+
+const uchar uca520_length[4352]={
+4,3,3,4,2,3,3,3,3,3,3,3,3,3,3,3,
+4,2,3,3,2,2,3,3,3,4,4,3,3,3,3,3,
+5,5,4,3,5,2,3,3,2,2,5,3,4,3,3,3,
+3,3,8,9,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+2,2,2,2,3,2,3,3,3,3,3,3,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,3,3,4,3,9,4,3,
+3,3,3,3,3,0,0,0,3,3,3,3,3,0,3,0,
+3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+2,2,2,3,3,0,0,0,0,0,0,0,0,0,0,0,
+2,2,2,2,3,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,4,5,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,3,3,3,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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 uint16 *uca520_weight[4352]={
+uca520_p000,uca520_p001,uca520_p002,uca520_p003,
+uca520_p004,uca520_p005,uca520_p006,uca520_p007,
+uca520_p008,uca520_p009,uca520_p00A,uca520_p00B,
+uca520_p00C,uca520_p00D,uca520_p00E,uca520_p00F,
+uca520_p010,uca520_p011,uca520_p012,uca520_p013,
+uca520_p014,uca520_p015,uca520_p016,uca520_p017,
+uca520_p018,uca520_p019,uca520_p01A,uca520_p01B,
+uca520_p01C,uca520_p01D,uca520_p01E,uca520_p01F,
+uca520_p020,uca520_p021,uca520_p022,uca520_p023,
+uca520_p024,uca520_p025,uca520_p026,uca520_p027,
+uca520_p028,uca520_p029,uca520_p02A,uca520_p02B,
+uca520_p02C,uca520_p02D,uca520_p02E,uca520_p02F,
+uca520_p030,uca520_p031,uca520_p032,uca520_p033,
+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 ,uca520_p04D,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 ,
+uca520_p0A0,uca520_p0A1,uca520_p0A2,uca520_p0A3,
+uca520_p0A4,uca520_p0A5,uca520_p0A6,uca520_p0A7,
+uca520_p0A8,uca520_p0A9,uca520_p0AA,uca520_p0AB,
+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 ,uca520_p0D7,
+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 ,uca520_p0F9,uca520_p0FA,uca520_p0FB,
+uca520_p0FC,uca520_p0FD,uca520_p0FE,uca520_p0FF,
+uca520_p100,uca520_p101,uca520_p102,uca520_p103,
+uca520_p104,NULL ,NULL ,NULL ,
+uca520_p108,uca520_p109,uca520_p10A,uca520_p10B,
+uca520_p10C,NULL ,uca520_p10E,NULL ,
+uca520_p110,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+uca520_p120,uca520_p121,uca520_p122,uca520_p123,
+uca520_p124,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+uca520_p130,uca520_p131,uca520_p132,uca520_p133,
+uca520_p134,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 ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+uca520_p1D0,uca520_p1D1,uca520_p1D2,uca520_p1D3,
+uca520_p1D4,uca520_p1D5,uca520_p1D6,uca520_p1D7,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+uca520_p1F0,uca520_p1F1,uca520_p1F2,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 ,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 ,
+uca520_p2F8,uca520_p2F9,uca520_p2FA,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,
+uca520_pE00,uca520_pE01,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 ,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 ,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 ,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 ,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 ,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
+};
+
+
+static const uint16 uca520_p000_w2[]= { /* 0000 (4 weights per char) */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0000 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0002 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0004 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0006 */
+0x0000,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0008 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 000A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 000C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 000E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0010 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0012 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0014 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0016 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0018 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 001E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0020 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0022 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0024 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0026 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0028 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 002A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 002C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 002E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0030 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0032 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0034 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0036 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0038 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 003A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 003C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 003E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0040 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0042 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0044 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0046 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0048 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 004A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 004C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 004E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0050 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0052 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0054 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0056 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0058 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 005A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 005C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 005E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0060 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0062 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0064 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0066 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0068 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 006A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 006C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 006E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0070 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0072 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0074 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0076 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0078 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 007A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 007C */
+0x0020,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 007E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0080 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0082 */
+0x0000,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0084 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0086 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0088 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 008E */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0090 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0092 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0094 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0096 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0098 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 009E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00A8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00AA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00AC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00BA */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 00BC */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00BE */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00C0 */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 00C2 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0043,0x0000,0x0000, /* 00C4 */
+0x0020,0x0159,0x0020,0x0000, 0x0020,0x0056,0x0000,0x0000, /* 00C6 */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00C8 */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 00CA */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00CC */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 00CE */
+0x0020,0x0159,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 00D0 */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00D2 */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 00D4 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00D6 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0035,0x0000,0x0000, /* 00D8 */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x003C,0x0000,0x0000, /* 00DA */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0159,0x0020,0x0000, /* 00DE */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00E0 */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 00E2 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0043,0x0000,0x0000, /* 00E4 */
+0x0020,0x0159,0x0020,0x0000, 0x0020,0x0056,0x0000,0x0000, /* 00E6 */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00E8 */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 00EA */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00EC */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 00EE */
+0x0020,0x0159,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 00F0 */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00F2 */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 00F4 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 00F6 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0035,0x0000,0x0000, /* 00F8 */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x003C,0x0000,0x0000, /* 00FA */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 00FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000 /* 00FE */
+};
+
+static const uint16 uca520_p001_w2[]= { /* 0100 (5 weights per char) */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 0100 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 0101 */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 0102 */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 0103 */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 0104 */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 0105 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0106 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0107 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0108 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0109 */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 010A */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 010B */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 010C */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 010D */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 010E */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 010F */
+0x0020,0x007D,0x0000,0x0000,0x0000, /* 0110 */
+0x0020,0x007D,0x0000,0x0000,0x0000, /* 0111 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 0112 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 0113 */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 0114 */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 0115 */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 0116 */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 0117 */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 0118 */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 0119 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 011A */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 011B */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 011C */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 011D */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 011E */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 011F */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 0120 */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 0121 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0122 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0123 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0124 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0125 */
+0x0020,0x007D,0x0000,0x0000,0x0000, /* 0126 */
+0x0020,0x007D,0x0000,0x0000,0x0000, /* 0127 */
+0x0020,0x004E,0x0000,0x0000,0x0000, /* 0128 */
+0x0020,0x004E,0x0000,0x0000,0x0000, /* 0129 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 012A */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 012B */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 012C */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 012D */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 012E */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 012F */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 0130 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0131 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 0132 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 0133 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0134 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0135 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0136 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0137 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0138 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0139 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 013A */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 013B */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 013C */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 013D */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 013E */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 013F */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 0140 */
+0x0020,0x007D,0x0000,0x0000,0x0000, /* 0141 */
+0x0020,0x007D,0x0000,0x0000,0x0000, /* 0142 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0143 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0144 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0145 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0146 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0147 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0148 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 0149 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 014A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 014B */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 014C */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 014D */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 014E */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 014F */
+0x0020,0x004D,0x0000,0x0000,0x0000, /* 0150 */
+0x0020,0x004D,0x0000,0x0000,0x0000, /* 0151 */
+0x0020,0x0159,0x0020,0x0000,0x0000, /* 0152 */
+0x0020,0x0159,0x0020,0x0000,0x0000, /* 0153 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0154 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0155 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0156 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0157 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0158 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0159 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 015A */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 015B */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 015C */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 015D */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 015E */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 015F */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0160 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0161 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0162 */
+0x0020,0x0056,0x0000,0x0000,0x0000, /* 0163 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0164 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 0165 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0166 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0167 */
+0x0020,0x004E,0x0000,0x0000,0x0000, /* 0168 */
+0x0020,0x004E,0x0000,0x0000,0x0000, /* 0169 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 016A */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 016B */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 016C */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 016D */
+0x0020,0x0043,0x0000,0x0000,0x0000, /* 016E */
+0x0020,0x0043,0x0000,0x0000,0x0000, /* 016F */
+0x0020,0x004D,0x0000,0x0000,0x0000, /* 0170 */
+0x0020,0x004D,0x0000,0x0000,0x0000, /* 0171 */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 0172 */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 0173 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0174 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0175 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0176 */
+0x0020,0x003C,0x0000,0x0000,0x0000, /* 0177 */
+0x0020,0x0047,0x0000,0x0000,0x0000, /* 0178 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 0179 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 017A */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 017B */
+0x0020,0x0052,0x0000,0x0000,0x0000, /* 017C */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 017D */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 017E */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 017F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0180 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0181 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0182 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0183 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0184 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0185 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0186 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0187 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0188 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0189 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 018A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 018B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 018C */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 018D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 018E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 018F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0190 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0191 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0192 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0193 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0194 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0195 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0196 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0197 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0198 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 0199 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 019A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 019B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 019C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 019D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 019E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 019F */
+0x0020,0x0068,0x0000,0x0000,0x0000, /* 01A0 */
+0x0020,0x0068,0x0000,0x0000,0x0000, /* 01A1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01A9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01AA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01AB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01AC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01AD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01AE */
+0x0020,0x0068,0x0000,0x0000,0x0000, /* 01AF */
+0x0020,0x0068,0x0000,0x0000,0x0000, /* 01B0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01B9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01BA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01BB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01BC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01BD */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01BE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01BF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01C0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01C1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01C2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01C3 */
+0x0020,0x0020,0x0041,0x0000,0x0000, /* 01C4 */
+0x0020,0x0020,0x0041,0x0000,0x0000, /* 01C5 */
+0x0020,0x0020,0x0041,0x0000,0x0000, /* 01C6 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01C7 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01C8 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01C9 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01CA */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01CB */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01CC */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01CD */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01CE */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01CF */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01D0 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01D1 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01D2 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01D3 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01D4 */
+0x0020,0x0047,0x005B,0x0000,0x0000, /* 01D5 */
+0x0020,0x0047,0x005B,0x0000,0x0000, /* 01D6 */
+0x0020,0x0047,0x0032,0x0000,0x0000, /* 01D7 */
+0x0020,0x0047,0x0032,0x0000,0x0000, /* 01D8 */
+0x0020,0x0047,0x0041,0x0000,0x0000, /* 01D9 */
+0x0020,0x0047,0x0041,0x0000,0x0000, /* 01DA */
+0x0020,0x0047,0x0035,0x0000,0x0000, /* 01DB */
+0x0020,0x0047,0x0035,0x0000,0x0000, /* 01DC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01DD */
+0x0020,0x0047,0x005B,0x0000,0x0000, /* 01DE */
+0x0020,0x0047,0x005B,0x0000,0x0000, /* 01DF */
+0x0020,0x0052,0x005B,0x0000,0x0000, /* 01E0 */
+0x0020,0x0052,0x005B,0x0000,0x0000, /* 01E1 */
+0x0020,0x0159,0x0020,0x005B,0x0000, /* 01E2 */
+0x0020,0x0159,0x0020,0x005B,0x0000, /* 01E3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01E4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01E5 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01E6 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01E7 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01E8 */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01E9 */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 01EA */
+0x0020,0x0059,0x0000,0x0000,0x0000, /* 01EB */
+0x0020,0x0059,0x005B,0x0000,0x0000, /* 01EC */
+0x0020,0x0059,0x005B,0x0000,0x0000, /* 01ED */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01EE */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01EF */
+0x0020,0x0041,0x0000,0x0000,0x0000, /* 01F0 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01F1 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01F2 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 01F3 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 01F4 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 01F5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01F6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 01F7 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 01F8 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 01F9 */
+0x0020,0x0043,0x0032,0x0000,0x0000, /* 01FA */
+0x0020,0x0043,0x0032,0x0000,0x0000, /* 01FB */
+0x0020,0x0159,0x0020,0x0032,0x0000, /* 01FC */
+0x0020,0x0159,0x0020,0x0032,0x0000, /* 01FD */
+0x0020,0x0054,0x0032,0x0000,0x0000, /* 01FE */
+0x0020,0x0054,0x0032,0x0000,0x0000 /* 01FF */
+};
+
+static const uint16 uca520_p002_w2[]= { /* 0200 (4 weights per char) */
+0x0020,0x0065,0x0000,0x0000, 0x0020,0x0065,0x0000,0x0000, /* 0200 */
+0x0020,0x0067,0x0000,0x0000, 0x0020,0x0067,0x0000,0x0000, /* 0202 */
+0x0020,0x0065,0x0000,0x0000, 0x0020,0x0065,0x0000,0x0000, /* 0204 */
+0x0020,0x0067,0x0000,0x0000, 0x0020,0x0067,0x0000,0x0000, /* 0206 */
+0x0020,0x0065,0x0000,0x0000, 0x0020,0x0065,0x0000,0x0000, /* 0208 */
+0x0020,0x0067,0x0000,0x0000, 0x0020,0x0067,0x0000,0x0000, /* 020A */
+0x0020,0x0065,0x0000,0x0000, 0x0020,0x0065,0x0000,0x0000, /* 020C */
+0x0020,0x0067,0x0000,0x0000, 0x0020,0x0067,0x0000,0x0000, /* 020E */
+0x0020,0x0065,0x0000,0x0000, 0x0020,0x0065,0x0000,0x0000, /* 0210 */
+0x0020,0x0067,0x0000,0x0000, 0x0020,0x0067,0x0000,0x0000, /* 0212 */
+0x0020,0x0065,0x0000,0x0000, 0x0020,0x0065,0x0000,0x0000, /* 0214 */
+0x0020,0x0067,0x0000,0x0000, 0x0020,0x0067,0x0000,0x0000, /* 0216 */
+0x0020,0x0077,0x0000,0x0000, 0x0020,0x0077,0x0000,0x0000, /* 0218 */
+0x0020,0x0077,0x0000,0x0000, 0x0020,0x0077,0x0000,0x0000, /* 021A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 021C */
+0x0020,0x0041,0x0000,0x0000, 0x0020,0x0041,0x0000,0x0000, /* 021E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0220 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0222 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0224 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 0226 */
+0x0020,0x0056,0x0000,0x0000, 0x0020,0x0056,0x0000,0x0000, /* 0228 */
+0x0020,0x0047,0x005B,0x0000, 0x0020,0x0047,0x005B,0x0000, /* 022A */
+0x0020,0x004E,0x005B,0x0000, 0x0020,0x004E,0x005B,0x0000, /* 022C */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 022E */
+0x0020,0x0052,0x005B,0x0000, 0x0020,0x0052,0x005B,0x0000, /* 0230 */
+0x0020,0x005B,0x0000,0x0000, 0x0020,0x005B,0x0000,0x0000, /* 0232 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0234 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0236 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0238 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 023A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 023C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 023E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0240 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0242 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0244 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0246 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0248 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 024A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 024C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 024E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0250 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0252 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0254 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0256 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0258 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 025A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 025C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 025E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0260 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0262 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0264 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0266 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0268 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 026A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 026C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 026E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0270 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0272 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0274 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0276 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0278 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 027A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 027C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 027E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0280 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0282 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0284 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0286 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0288 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 028A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 028C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 028E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0290 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0292 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0294 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0296 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0298 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 029A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 029C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 029E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 02A2 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 02A4 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 02A6 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 02A8 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 02AA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02AC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02C8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02CA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02CC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02CE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02D0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02D2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02D4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02D6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02D8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02DE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02E0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02E8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02EA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 02FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 02FE */
+};
+
+static const uint16 uca520_p003_w2[]= { /* 0300 (4 weights per char) */
+0x0035,0x0000,0x0000,0x0000, 0x0032,0x0000,0x0000,0x0000, /* 0300 */
+0x003C,0x0000,0x0000,0x0000, 0x004E,0x0000,0x0000,0x0000, /* 0302 */
+0x005B,0x0000,0x0000,0x0000, 0x0063,0x0000,0x0000,0x0000, /* 0304 */
+0x0037,0x0000,0x0000,0x0000, 0x0052,0x0000,0x0000,0x0000, /* 0306 */
+0x0047,0x0000,0x0000,0x0000, 0x0064,0x0000,0x0000,0x0000, /* 0308 */
+0x0043,0x0000,0x0000,0x0000, 0x004D,0x0000,0x0000,0x0000, /* 030A */
+0x0041,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 030C */
+0x005F,0x0000,0x0000,0x0000, 0x0065,0x0000,0x0000,0x0000, /* 030E */
+0x0066,0x0000,0x0000,0x0000, 0x0067,0x0000,0x0000,0x0000, /* 0310 */
+0x005F,0x0000,0x0000,0x0000, 0x0022,0x0000,0x0000,0x0000, /* 0312 */
+0x002A,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 0314 */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0316 */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0318 */
+0x005F,0x0000,0x0000,0x0000, 0x0068,0x0000,0x0000,0x0000, /* 031A */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 031C */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 031E */
+0x0060,0x0000,0x0000,0x0000, 0x006E,0x0000,0x0000,0x0000, /* 0320 */
+0x006F,0x0000,0x0000,0x0000, 0x0070,0x0000,0x0000,0x0000, /* 0322 */
+0x0075,0x0000,0x0000,0x0000, 0x0076,0x0000,0x0000,0x0000, /* 0324 */
+0x0077,0x0000,0x0000,0x0000, 0x0056,0x0000,0x0000,0x0000, /* 0326 */
+0x0059,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0328 */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 032A */
+0x0060,0x0000,0x0000,0x0000, 0x0078,0x0000,0x0000,0x0000, /* 032C */
+0x0079,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 032E */
+0x007A,0x0000,0x0000,0x0000, 0x007B,0x0000,0x0000,0x0000, /* 0330 */
+0x0021,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0332 */
+0x007C,0x0000,0x0000,0x0000, 0x007D,0x0000,0x0000,0x0000, /* 0334 */
+0x0061,0x0000,0x0000,0x0000, 0x0061,0x0000,0x0000,0x0000, /* 0336 */
+0x0054,0x0000,0x0000,0x0000, 0x007E,0x0000,0x0000,0x0000, /* 0338 */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 033A */
+0x0060,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 033C */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 033E */
+0x0035,0x0000,0x0000,0x0000, 0x0032,0x0000,0x0000,0x0000, /* 0340 */
+0x0045,0x0000,0x0000,0x0000, 0x0022,0x0000,0x0000,0x0000, /* 0342 */
+0x0047,0x0032,0x0000,0x0000, 0x007F,0x0000,0x0000,0x0000, /* 0344 */
+0x005F,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0346 */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0348 */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 034A */
+0x005F,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 034C */
+0x0060,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 034E */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 0350 */
+0x005F,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0352 */
+0x0060,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0354 */
+0x0060,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 0356 */
+0x0080,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 0358 */
+0x0060,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 035A */
+0x0060,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 035C */
+0x005F,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 035E */
+0x0081,0x0000,0x0000,0x0000, 0x0082,0x0000,0x0000,0x0000, /* 0360 */
+0x0060,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0362 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0364 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0366 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0368 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 036A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 036C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 036E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0370 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0372 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0374 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0376 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0378 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 037A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 037C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 037E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0380 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0382 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 0384 */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0386 */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 0388 */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 038A */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 038C */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 038E */
+0x0020,0x0047,0x0032,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0390 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0392 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0394 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0396 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0398 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 039A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 039C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 039E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03A8 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 03AA */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 03AC */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 03AE */
+0x0020,0x0047,0x0032,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03C8 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 03CA */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 03CC */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 03CE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03D0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 03D2 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03D4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 03D6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03D8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03DE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03E0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03E8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03EA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 03FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 03FE */
+};
+
+static const uint16 uca520_p004_w2[]= { /* 0400 (3 weights per char) */
+0x0020,0x0035,0x0000, 0x0020,0x0047,0x0000, 0x0020,0x0000,0x0000, /* 0400 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0403 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0406 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0409 */
+0x0020,0x0000,0x0000, 0x0020,0x0035,0x0000, 0x0020,0x0000,0x0000, /* 040C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 040F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0412 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0415 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0418 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 041B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 041E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0421 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0424 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0427 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 042A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 042D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0430 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0433 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0436 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0439 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 043C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 043F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0442 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0445 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0448 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 044B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0035,0x0000, /* 044E */
+0x0020,0x0047,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0451 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0454 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0457 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 045A */
+0x0020,0x0035,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 045D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0460 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0463 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0466 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0469 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 046C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 046F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0472 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0475 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0478 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 047B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 047E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0083,0x0000,0x0000, /* 0481 */
+0x005F,0x0000,0x0000, 0x002A,0x0000,0x0000, 0x0022,0x0000,0x0000, /* 0484 */
+0x005F,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0487 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 048A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 048D */
+0x0020,0x015A,0x0000, 0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, /* 0490 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0493 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0496 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0499 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 049C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 049F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04BD */
+0x0020,0x0000,0x0000, 0x0020,0x0037,0x0000, 0x0020,0x0037,0x0000, /* 04C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04DE */
+0x0020,0x0000,0x0000, 0x0020,0x005B,0x0000, 0x0020,0x005B,0x0000, /* 04E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04EA */
+0x0020,0x0000,0x0000, 0x0020,0x005B,0x0000, 0x0020,0x005B,0x0000, /* 04ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 04FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p005_w2[]= { /* 0500 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0500 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0503 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0506 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0509 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 050C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 050F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0512 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0515 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0518 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 051B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 051E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0521 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0524 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0527 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 052A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 052D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0530 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0533 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0536 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0539 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 053C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 053F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0542 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0545 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0548 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 054B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 054E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0551 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0554 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0557 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 055A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 055D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0560 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0563 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0566 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0569 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 056C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 056F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0572 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0575 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0578 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 057B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 057E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0581 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0584 */
+0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0587 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 058A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 058D */
+0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0590 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0593 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0596 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0599 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 059F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A2 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05A8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05AB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0085,0x0000,0x0000, /* 05AE */
+0x0086,0x0000,0x0000, 0x0087,0x0000,0x0000, 0x0088,0x0000,0x0000, /* 05B1 */
+0x0089,0x0000,0x0000, 0x008A,0x0000,0x0000, 0x008B,0x0000,0x0000, /* 05B4 */
+0x008C,0x0000,0x0000, 0x008D,0x0000,0x0000, 0x008E,0x0000,0x0000, /* 05B7 */
+0x008E,0x0000,0x0000, 0x008F,0x0000,0x0000, 0x0092,0x0000,0x0000, /* 05BA */
+0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0095,0x0000,0x0000, /* 05BD */
+0x0020,0x0000,0x0000, 0x0091,0x0000,0x0000, 0x0090,0x0000,0x0000, /* 05C0 */
+0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 05C3 */
+0x0020,0x0000,0x0000, 0x008D,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05ED */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* 05F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 05FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p006_w2[]= { /* 0600 (3 weights per char) */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0600 */
+0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0603 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0606 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0609 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 060C */
+0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 060F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0612 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0615 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0618 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 061B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 061E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0621 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0624 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0627 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 062A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 062D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0630 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0633 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0636 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0639 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 063C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 063F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0642 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0645 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0648 */
+0x00A2,0x0000,0x0000, 0x00A3,0x0000,0x0000, 0x00A5,0x0000,0x0000, /* 064B */
+0x00A7,0x0000,0x0000, 0x00A9,0x0000,0x0000, 0x00AB,0x0000,0x0000, /* 064E */
+0x00AD,0x0000,0x0000, 0x00AF,0x0000,0x0000, 0x00B0,0x0000,0x0000, /* 0651 */
+0x00B1,0x0000,0x0000, 0x00B2,0x0000,0x0000, 0x00B3,0x0000,0x0000, /* 0654 */
+0x00B4,0x0000,0x0000, 0x00B5,0x0000,0x0000, 0x00B6,0x0000,0x0000, /* 0657 */
+0x00B7,0x0000,0x0000, 0x00B8,0x0000,0x0000, 0x00B9,0x0000,0x0000, /* 065A */
+0x00BA,0x0000,0x0000, 0x00BB,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 065D */
+0x0020,0x015F,0x0000, 0x0020,0x015F,0x0000, 0x0020,0x015F,0x0000, /* 0660 */
+0x0020,0x015F,0x0000, 0x0020,0x015F,0x0000, 0x0020,0x015F,0x0000, /* 0663 */
+0x0020,0x015F,0x0000, 0x0020,0x015F,0x0000, 0x0020,0x015F,0x0000, /* 0666 */
+0x0020,0x015F,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0669 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 066C */
+0x0020,0x0000,0x0000, 0x00BC,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 066F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0672 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* 0675 */
+0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0678 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 067B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 067E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0681 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0684 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0687 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 068A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 068D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0690 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0693 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0696 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0699 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 069C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 069F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06BD */
+0x0020,0x00B1,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x00B1,0x0000, /* 06C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06CF */
+0x0020,0x0000,0x0000, 0x0020,0x00B1,0x0000, 0x0020,0x0000,0x0000, /* 06D2 */
+0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06D8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06DE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06E1 */
+0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06E4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06E7 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 06EA */
+0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06ED */
+0x0020,0x0160,0x0000, 0x0020,0x0160,0x0000, 0x0020,0x0160,0x0000, /* 06F0 */
+0x0020,0x0160,0x0000, 0x0020,0x0160,0x0000, 0x0020,0x0160,0x0000, /* 06F3 */
+0x0020,0x0160,0x0000, 0x0020,0x0160,0x0000, 0x0020,0x0160,0x0000, /* 06F6 */
+0x0020,0x0160,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 06F9 */
+0x0020,0x0000,0x0000, 0x0020,0x015A,0x0000, 0x0020,0x015A,0x0000, /* 06FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p007_w2[]= { /* 0700 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0700 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0703 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0706 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0709 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 070C */
+0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x00BD,0x0000,0x0000, /* 070F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x015A,0x0000, /* 0712 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0715 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0718 */
+0x0020,0x0000,0x0000, 0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, /* 071B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 071E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0721 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0724 */
+0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0727 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 072A */
+0x0020,0x015C,0x0000, 0x0020,0x015C,0x0000, 0x0020,0x015C,0x0000, /* 072D */
+0x00BE,0x0000,0x0000, 0x00BF,0x0000,0x0000, 0x00C0,0x0000,0x0000, /* 0730 */
+0x00C1,0x0000,0x0000, 0x00C2,0x0000,0x0000, 0x00C3,0x0000,0x0000, /* 0733 */
+0x00C4,0x0000,0x0000, 0x00C5,0x0000,0x0000, 0x00C6,0x0000,0x0000, /* 0736 */
+0x00C7,0x0000,0x0000, 0x00C8,0x0000,0x0000, 0x00C9,0x0000,0x0000, /* 0739 */
+0x00CA,0x0000,0x0000, 0x00CB,0x0000,0x0000, 0x00CC,0x0000,0x0000, /* 073C */
+0x00CD,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000, /* 073F */
+0x0060,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0742 */
+0x005F,0x0000,0x0000, 0x0060,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0745 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 0748 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 074B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 074E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0751 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0754 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0757 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 075A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 075D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0760 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0763 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0766 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0769 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 076C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 076F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0772 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0775 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0778 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 077B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 077E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0781 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0784 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0787 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 078A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 078D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0790 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0793 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0796 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0799 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 079C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 079F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07BD */
+0x0020,0x0162,0x0000, 0x0020,0x0162,0x0000, 0x0020,0x0162,0x0000, /* 07C0 */
+0x0020,0x0162,0x0000, 0x0020,0x0162,0x0000, 0x0020,0x0162,0x0000, /* 07C3 */
+0x0020,0x0162,0x0000, 0x0020,0x0162,0x0000, 0x0020,0x0162,0x0000, /* 07C6 */
+0x0020,0x0162,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, /* 07E7 */
+0x0020,0x0159,0x0000, 0x00CE,0x0000,0x0000, 0x00CF,0x0000,0x0000, /* 07EA */
+0x00D0,0x0000,0x0000, 0x00D1,0x0000,0x0000, 0x00D2,0x0000,0x0000, /* 07ED */
+0x00D3,0x0000,0x0000, 0x00D4,0x0000,0x0000, 0x00D5,0x0000,0x0000, /* 07F0 */
+0x00D6,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 07FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p008_w2[]= { /* 0800 (2 weights per char) */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0800 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0804 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0808 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 080C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0810 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0814 */
+0x009F,0x0000, 0x00A0,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0818 */
+0x0097,0x0000, 0x0097,0x0000, 0x0098,0x0000, 0x0098,0x0000, /* 081C */
+0x0098,0x0000, 0x0099,0x0000, 0x0099,0x0000, 0x0099,0x0000, /* 0820 */
+0x009A,0x0000, 0x009A,0x0000, 0x009B,0x0000, 0x009B,0x0000, /* 0824 */
+0x009C,0x0000, 0x009C,0x0000, 0x009C,0x0000, 0x009D,0x0000, /* 0828 */
+0x009E,0x0000, 0x00A1,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 082C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0830 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0834 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0838 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 083C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0840 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0844 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0848 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 084C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0850 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0854 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0858 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 085C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0860 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0864 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0868 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 086C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0870 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0874 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0878 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 087C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0880 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0884 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0888 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 088C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0890 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0894 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 0898 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 089C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08A0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08A4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08A8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08AC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08B0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08B4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08B8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08BC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08C0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08C4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08C8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08CC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08D0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08D4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08D8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08DC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08E0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08E4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08E8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08EC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08F0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08F4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 08F8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000 /* 08FC */
+};
+
+static const uint16 uca520_p009_w2[]= { /* 0900 (3 weights per char) */
+0x00DB,0x0000,0x0000, 0x00DB,0x0000,0x0000, 0x00DC,0x0000,0x0000, /* 0900 */
+0x00DD,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0903 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0906 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0909 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 090C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 090F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0912 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0915 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0918 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 091B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 091E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0921 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0924 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x00DA,0x0000, /* 0927 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 092A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 092D */
+0x0020,0x0000,0x0000, 0x0020,0x00DA,0x0000, 0x0020,0x0000,0x0000, /* 0930 */
+0x0020,0x0000,0x0000, 0x0020,0x00DA,0x0000, 0x0020,0x0000,0x0000, /* 0933 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0936 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0939 */
+0x00DA,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 093C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 093F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0942 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0945 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0948 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 094B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 094E */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0035,0x0000,0x0000, /* 0951 */
+0x0032,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0954 */
+0x0020,0x0000,0x0000, 0x0020,0x00DA,0x0000, 0x0020,0x00DA,0x0000, /* 0957 */
+0x0020,0x00DA,0x0000, 0x0020,0x00DA,0x0000, 0x0020,0x00DA,0x0000, /* 095A */
+0x0020,0x00DA,0x0000, 0x0020,0x00DA,0x0000, 0x0020,0x00DA,0x0000, /* 095D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0960 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0963 */
+0x0020,0x0165,0x0000, 0x0020,0x0165,0x0000, 0x0020,0x0165,0x0000, /* 0966 */
+0x0020,0x0165,0x0000, 0x0020,0x0165,0x0000, 0x0020,0x0165,0x0000, /* 0969 */
+0x0020,0x0165,0x0000, 0x0020,0x0165,0x0000, 0x0020,0x0165,0x0000, /* 096C */
+0x0020,0x0165,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 096F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0972 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0975 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0978 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 097B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 097E */
+0x00DF,0x0000,0x0000, 0x00E0,0x0000,0x0000, 0x00E1,0x0000,0x0000, /* 0981 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0984 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0987 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 098A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 098D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0990 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0993 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0996 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0999 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 099C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 099F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x00DE,0x0000,0x0000, /* 09BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000, /* 09CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09D8 */
+0x0020,0x0000,0x0000, 0x0020,0x00DE,0x0000, 0x0020,0x00DE,0x0000, /* 09DB */
+0x0020,0x0000,0x0000, 0x0020,0x00DE,0x0000, 0x0020,0x0000,0x0000, /* 09DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0166,0x0000, /* 09E4 */
+0x0020,0x0166,0x0000, 0x0020,0x0166,0x0000, 0x0020,0x0166,0x0000, /* 09E7 */
+0x0020,0x0166,0x0000, 0x0020,0x0166,0x0000, 0x0020,0x0166,0x0000, /* 09EA */
+0x0020,0x0166,0x0000, 0x0020,0x0166,0x0000, 0x0020,0x0166,0x0000, /* 09ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 09FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p00A_w2[]= { /* 0A00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x00E3,0x0000,0x0000, 0x00E4,0x0000,0x0000, /* 0A00 */
+0x00E5,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A30 */
+0x0020,0x00E2,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A33 */
+0x0020,0x00E2,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A39 */
+0x00E2,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x00E2,0x0000, /* 0A57 */
+0x0020,0x00E2,0x0000, 0x0020,0x00E2,0x0000, 0x0020,0x0000,0x0000, /* 0A5A */
+0x0020,0x0000,0x0000, 0x0020,0x00E2,0x0000, 0x0020,0x0000,0x0000, /* 0A5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A63 */
+0x0020,0x0167,0x0000, 0x0020,0x0167,0x0000, 0x0020,0x0167,0x0000, /* 0A66 */
+0x0020,0x0167,0x0000, 0x0020,0x0167,0x0000, 0x0020,0x0167,0x0000, /* 0A69 */
+0x0020,0x0167,0x0000, 0x0020,0x0167,0x0000, 0x0020,0x0167,0x0000, /* 0A6C */
+0x0020,0x0167,0x0000, 0x00E6,0x0000,0x0000, 0x00E7,0x0000,0x0000, /* 0A6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A7E */
+0x00E9,0x0000,0x0000, 0x00EA,0x0000,0x0000, 0x00EB,0x0000,0x0000, /* 0A81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0A9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x00E8,0x0000,0x0000, /* 0ABA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0ABD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0ACC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0ACF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0ADB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0ADE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0168,0x0000, /* 0AE4 */
+0x0020,0x0168,0x0000, 0x0020,0x0168,0x0000, 0x0020,0x0168,0x0000, /* 0AE7 */
+0x0020,0x0168,0x0000, 0x0020,0x0168,0x0000, 0x0020,0x0168,0x0000, /* 0AEA */
+0x0020,0x0168,0x0000, 0x0020,0x0168,0x0000, 0x0020,0x0168,0x0000, /* 0AED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0AFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p00B_w2[]= { /* 0B00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x00ED,0x0000,0x0000, 0x00EE,0x0000,0x0000, /* 0B00 */
+0x00EF,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B39 */
+0x00EC,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x00EC,0x0000, /* 0B5A */
+0x0020,0x00EC,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B63 */
+0x0020,0x0169,0x0000, 0x0020,0x0169,0x0000, 0x0020,0x0169,0x0000, /* 0B66 */
+0x0020,0x0169,0x0000, 0x0020,0x0169,0x0000, 0x0020,0x0169,0x0000, /* 0B69 */
+0x0020,0x0169,0x0000, 0x0020,0x0169,0x0000, 0x0020,0x0169,0x0000, /* 0B6C */
+0x0020,0x0169,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B7E */
+0x0020,0x0000,0x0000, 0x00F0,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0B9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x016A,0x0000, /* 0BE4 */
+0x0020,0x016A,0x0000, 0x0020,0x016A,0x0000, 0x0020,0x016A,0x0000, /* 0BE7 */
+0x0020,0x016A,0x0000, 0x0020,0x016A,0x0000, 0x0020,0x016A,0x0000, /* 0BEA */
+0x0020,0x016A,0x0000, 0x0020,0x016A,0x0000, 0x0020,0x016A,0x0000, /* 0BED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0BFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p00C_w2[]= { /* 0C00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x00F1,0x0000,0x0000, 0x00F2,0x0000,0x0000, /* 0C00 */
+0x00F3,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C63 */
+0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, /* 0C66 */
+0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, /* 0C69 */
+0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, /* 0C6C */
+0x0020,0x016B,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C75 */
+0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, /* 0C78 */
+0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, 0x0020,0x016B,0x0000, /* 0C7B */
+0x0020,0x016B,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C7E */
+0x0020,0x0000,0x0000, 0x00F5,0x0000,0x0000, 0x00F6,0x0000,0x0000, /* 0C81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0C9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x00F4,0x0000,0x0000, /* 0CBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x016C,0x0000, /* 0CE4 */
+0x0020,0x016C,0x0000, 0x0020,0x016C,0x0000, 0x0020,0x016C,0x0000, /* 0CE7 */
+0x0020,0x016C,0x0000, 0x0020,0x016C,0x0000, 0x0020,0x016C,0x0000, /* 0CEA */
+0x0020,0x016C,0x0000, 0x0020,0x016C,0x0000, 0x0020,0x016C,0x0000, /* 0CED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0CFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p00D_w2[]= { /* 0D00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x00F7,0x0000,0x0000, /* 0D00 */
+0x00F8,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D63 */
+0x0020,0x016D,0x0000, 0x0020,0x016D,0x0000, 0x0020,0x016D,0x0000, /* 0D66 */
+0x0020,0x016D,0x0000, 0x0020,0x016D,0x0000, 0x0020,0x016D,0x0000, /* 0D69 */
+0x0020,0x016D,0x0000, 0x0020,0x016D,0x0000, 0x0020,0x016D,0x0000, /* 0D6C */
+0x0020,0x016D,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000, /* 0D78 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* 0D7B */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000, /* 0D7E */
+0x0020,0x0000,0x0000, 0x00F9,0x0000,0x0000, 0x00FA,0x0000,0x0000, /* 0D81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0D9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0DFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p00E_w2[]= { /* 0E00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0117,0x0000,0x0000, /* 0E45 */
+0x0118,0x0000,0x0000, 0x0119,0x0000,0x0000, 0x011A,0x0000,0x0000, /* 0E48 */
+0x011B,0x0000,0x0000, 0x011C,0x0000,0x0000, 0x011D,0x0000,0x0000, /* 0E4B */
+0x0116,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0175,0x0000, /* 0E4E */
+0x0020,0x0175,0x0000, 0x0020,0x0175,0x0000, 0x0020,0x0175,0x0000, /* 0E51 */
+0x0020,0x0175,0x0000, 0x0020,0x0175,0x0000, 0x0020,0x0175,0x0000, /* 0E54 */
+0x0020,0x0175,0x0000, 0x0020,0x0175,0x0000, 0x0020,0x0175,0x0000, /* 0E57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0E9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x011E,0x0000,0x0000, /* 0EC6 */
+0x011F,0x0000,0x0000, 0x0120,0x0000,0x0000, 0x0121,0x0000,0x0000, /* 0EC9 */
+0x0122,0x0000,0x0000, 0x0123,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0ECC */
+0x0020,0x0000,0x0000, 0x0020,0x0176,0x0000, 0x0020,0x0176,0x0000, /* 0ECF */
+0x0020,0x0176,0x0000, 0x0020,0x0176,0x0000, 0x0020,0x0176,0x0000, /* 0ED2 */
+0x0020,0x0176,0x0000, 0x0020,0x0176,0x0000, 0x0020,0x0176,0x0000, /* 0ED5 */
+0x0020,0x0176,0x0000, 0x0020,0x0176,0x0000, 0x0020,0x0000,0x0000, /* 0ED8 */
+0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* 0EDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 0EFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p00F_w2[]= { /* 0F00 (4 weights per char) */
+0x0020,0x0020,0x0127,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F00 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F02 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F04 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F06 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F08 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F0A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F0C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F0E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F10 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F12 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F14 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F16 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0F18 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F1A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F1C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F1E */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F20 */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F22 */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F24 */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F26 */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F28 */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F2A */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F2C */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F2E */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F30 */
+0x0020,0x0177,0x0000,0x0000, 0x0020,0x0177,0x0000,0x0000, /* 0F32 */
+0x0020,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0F34 */
+0x0020,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0F36 */
+0x0020,0x0000,0x0000,0x0000, 0x0126,0x0000,0x0000,0x0000, /* 0F38 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F3A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F3C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F3E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F40 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0F42 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F44 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F46 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F48 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F4A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0F4C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F4E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F50 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F52 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F54 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0F56 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F58 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F5A */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F5C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F5E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F60 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F62 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F64 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F66 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0F68 */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F6A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F6C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F6E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F70 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F72 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F74 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F76 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F78 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F7A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F7C */
+0x0127,0x0000,0x0000,0x0000, 0x0128,0x0000,0x0000,0x0000, /* 0F7E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F80 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0F82 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F84 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 0F86 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F88 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F8A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F8C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F8E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F90 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0F92 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F94 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F96 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F98 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F9A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0F9C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0F9E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FA0 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FA2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FA4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0FA6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FA8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FAA */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FAC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FAE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FB0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FB2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FB4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FB6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 0FB8 */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* 0FBA */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FBC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FBE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FC0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FC2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FC4 */
+0x0000,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FC6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FC8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FCA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FCC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FCE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FD0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FD2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FD4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FD6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FD8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FDA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FDC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FDE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FE0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FE2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FE4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FE6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FE8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FEA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FEC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FEE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FF0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FF2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FF4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FF6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FF8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FFA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 0FFC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 0FFE */
+};
+
+static const uint16 uca520_p010_w2[]= { /* 1000 (4 weights per char) */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1000 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1002 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1004 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1006 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1008 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 100A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 100C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 100E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1010 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1012 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1014 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1016 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1018 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 101A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 101C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 101E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1020 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1022 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1024 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1026 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1028 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 102A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 102C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 102E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1030 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1032 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1034 */
+0x012D,0x0000,0x0000,0x0000, 0x012E,0x0000,0x0000,0x0000, /* 1036 */
+0x012F,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1038 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 103A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 103C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 103E */
+0x0020,0x017A,0x0000,0x0000, 0x0020,0x017A,0x0000,0x0000, /* 1040 */
+0x0020,0x017A,0x0000,0x0000, 0x0020,0x017A,0x0000,0x0000, /* 1042 */
+0x0020,0x017A,0x0000,0x0000, 0x0020,0x017A,0x0000,0x0000, /* 1044 */
+0x0020,0x017A,0x0000,0x0000, 0x0020,0x017A,0x0000,0x0000, /* 1046 */
+0x0020,0x017A,0x0000,0x0000, 0x0020,0x017A,0x0000,0x0000, /* 1048 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 104A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 104C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 104E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1050 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1052 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1054 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1056 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1058 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 105A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 105C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 105E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1060 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1062 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1064 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1066 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1068 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 106A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 106C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 106E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1070 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1072 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1074 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1076 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1078 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 107A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 107C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 107E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1080 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1082 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1084 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1086 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1088 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 108A */
+0x0020,0x0000,0x0000,0x0000, 0x0130,0x0000,0x0000,0x0000, /* 108C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 108E */
+0x0020,0x017B,0x0000,0x0000, 0x0020,0x017B,0x0000,0x0000, /* 1090 */
+0x0020,0x017B,0x0000,0x0000, 0x0020,0x017B,0x0000,0x0000, /* 1092 */
+0x0020,0x017B,0x0000,0x0000, 0x0020,0x017B,0x0000,0x0000, /* 1094 */
+0x0020,0x017B,0x0000,0x0000, 0x0020,0x017B,0x0000,0x0000, /* 1096 */
+0x0020,0x017B,0x0000,0x0000, 0x0020,0x017B,0x0000,0x0000, /* 1098 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 109A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 109C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 109E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10A8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10AA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10AC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10C8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10CA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10CC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10CE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10D0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10D2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10D4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10D6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10D8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10DE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10E0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10E8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10EA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 10FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 10FE */
+};
+
+static const uint16 uca520_p013_w2[]= { /* 1300 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1300 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1303 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1306 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1309 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 130C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 130F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1312 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1315 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1318 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 131B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 131E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1321 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1324 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1327 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 132A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 132D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1330 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1333 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1336 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1339 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 133C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 133F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1342 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1345 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1348 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 134B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 134E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1351 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1354 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1357 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 135A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x00D7,0x0000,0x0000, /* 135D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1360 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1363 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1366 */
+0x0020,0x0163,0x0000, 0x0020,0x0163,0x0000, 0x0020,0x0163,0x0000, /* 1369 */
+0x0020,0x0163,0x0000, 0x0020,0x0163,0x0000, 0x0020,0x0163,0x0000, /* 136C */
+0x0020,0x0163,0x0000, 0x0020,0x0163,0x0000, 0x0020,0x0163,0x0000, /* 136F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1372 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1375 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1378 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 137B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 137E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1381 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1384 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1387 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 138A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 138D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1390 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1393 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1396 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1399 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 139C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 139F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 13FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p016_w2[]= { /* 1600 (5 weights per char) */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1600 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1601 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1602 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1603 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1604 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1605 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1606 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1607 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1608 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1609 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 160A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 160B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 160C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 160D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 160E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 160F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1610 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1611 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1612 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1613 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1614 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1615 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1616 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1617 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1618 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1619 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 161A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 161B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 161C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 161D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 161E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 161F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1620 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1621 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1622 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1623 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1624 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1625 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1626 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1627 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1628 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1629 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 162A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 162B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 162C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 162D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 162E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 162F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1630 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1631 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1632 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1633 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1634 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1635 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1636 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1637 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1638 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1639 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 163A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 163B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 163C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 163D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 163E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 163F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1640 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1641 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1642 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1643 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1644 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1645 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1646 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1647 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1648 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1649 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 164A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 164B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 164C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 164D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 164E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 164F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1650 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1651 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1652 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1653 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1654 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1655 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1656 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1657 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1658 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1659 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 165A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 165B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 165C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 165D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 165E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 165F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1660 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1661 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1662 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1663 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1664 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1665 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1666 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1667 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1668 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1669 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 166A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 166B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 166C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 166D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 166E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 166F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1670 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1671 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1672 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1673 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1674 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1675 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1676 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1677 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1678 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1679 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 167A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 167B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 167C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 167D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 167E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 167F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1680 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1681 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1682 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1683 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1684 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1685 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1686 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1687 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1688 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1689 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 168A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 168B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 168C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 168D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 168E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 168F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1690 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1691 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1692 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1693 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1694 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1695 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1696 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1697 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1698 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1699 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 169A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 169B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 169C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 169D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 169E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 169F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16A0 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16A1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16A2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16A3 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16A4 */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16A5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16A6 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16A7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16A8 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16A9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16AA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16AB */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16AC */
+0x0020,0x015C,0x0000,0x0000,0x0000, /* 16AD */
+0x0020,0x015D,0x0000,0x0000,0x0000, /* 16AE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16AF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16B0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16B1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16B2 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16B3 */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16B4 */
+0x0020,0x015C,0x0000,0x0000,0x0000, /* 16B5 */
+0x0020,0x015D,0x0000,0x0000,0x0000, /* 16B6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16B7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16B8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16B9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16BA */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16BB */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16BC */
+0x0020,0x015C,0x0000,0x0000,0x0000, /* 16BD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16BE */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16BF */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16C0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16C1 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16C2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16C3 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16C4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16C5 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16C6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16C7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16C8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16C9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16CA */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16CB */
+0x0020,0x015C,0x0000,0x0000,0x0000, /* 16CC */
+0x0020,0x015D,0x0000,0x0000,0x0000, /* 16CD */
+0x0020,0x015E,0x0000,0x0000,0x0000, /* 16CE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16CF */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16D0 */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16D1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16D2 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16D3 */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16D4 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16D5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16D6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16D7 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16D8 */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16D9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16DA */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16DB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16DC */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16DD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16DE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16DF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16E0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16E1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16E2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16E3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16E4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16E5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16E6 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16E7 */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16E8 */
+0x0020,0x0159,0x0000,0x0000,0x0000, /* 16E9 */
+0x0020,0x015A,0x0000,0x0000,0x0000, /* 16EA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16EB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16EC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16ED */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 16EE */
+0x0020,0x0159,0x0020,0x0159,0x0000, /* 16EF */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 16F0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16F9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16FA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16FB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16FC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16FD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 16FE */
+0x0020,0x0000,0x0000,0x0000,0x0000 /* 16FF */
+};
+
+static const uint16 uca520_p017_w2[]= { /* 1700 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1700 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1703 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1706 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1709 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 170C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 170F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1712 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1715 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1718 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 171B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 171E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1721 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1724 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1727 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 172A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 172D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1730 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1733 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1736 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1739 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 173C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 173F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1742 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1745 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1748 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 174B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 174E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1751 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1754 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1757 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 175A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 175D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1760 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1763 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1766 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1769 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 176C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 176F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1772 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1775 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1778 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 177B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 177E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1781 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1784 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1787 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 178A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 178D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1790 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1793 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1796 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1799 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 179C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 179F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17C3 */
+0x0131,0x0000,0x0000, 0x0132,0x0000,0x0000, 0x0133,0x0000,0x0000, /* 17C6 */
+0x0134,0x0000,0x0000, 0x0135,0x0000,0x0000, 0x005F,0x0000,0x0000, /* 17C9 */
+0x005F,0x0000,0x0000, 0x005F,0x0000,0x0000, 0x005F,0x0000,0x0000, /* 17CC */
+0x005F,0x0000,0x0000, 0x005F,0x0000,0x0000, 0x005F,0x0000,0x0000, /* 17CF */
+0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x005F,0x0000,0x0000, /* 17DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x017C,0x0000, /* 17DE */
+0x0020,0x017C,0x0000, 0x0020,0x017C,0x0000, 0x0020,0x017C,0x0000, /* 17E1 */
+0x0020,0x017C,0x0000, 0x0020,0x017C,0x0000, 0x0020,0x017C,0x0000, /* 17E4 */
+0x0020,0x017C,0x0000, 0x0020,0x017C,0x0000, 0x0020,0x017C,0x0000, /* 17E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17ED */
+0x0020,0x017D,0x0000, 0x0020,0x017D,0x0000, 0x0020,0x017D,0x0000, /* 17F0 */
+0x0020,0x017D,0x0000, 0x0020,0x017D,0x0000, 0x0020,0x017D,0x0000, /* 17F3 */
+0x0020,0x017D,0x0000, 0x0020,0x017D,0x0000, 0x0020,0x017D,0x0000, /* 17F6 */
+0x0020,0x017D,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 17FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p018_w2[]= { /* 1800 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1800 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1803 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1806 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1809 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 180C */
+0x0020,0x0000,0x0000, 0x0020,0x0182,0x0000, 0x0020,0x0182,0x0000, /* 180F */
+0x0020,0x0182,0x0000, 0x0020,0x0182,0x0000, 0x0020,0x0182,0x0000, /* 1812 */
+0x0020,0x0182,0x0000, 0x0020,0x0182,0x0000, 0x0020,0x0182,0x0000, /* 1815 */
+0x0020,0x0182,0x0000, 0x0020,0x0182,0x0000, 0x0020,0x0000,0x0000, /* 1818 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 181B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 181E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1821 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1824 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1827 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 182A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 182D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1830 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1833 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1836 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1839 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 183C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 183F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1842 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1845 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1848 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 184B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 184E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1851 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1854 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1857 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 185A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 185D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1860 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1863 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1866 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1869 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 186C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 186F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1872 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1875 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1878 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 187B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 187E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1881 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1884 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1887 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 188A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 188D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1890 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1893 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1896 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1899 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 189C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 189F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 18FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p019_w2[]= { /* 1900 (4 weights per char) */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1900 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1902 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1904 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1906 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1908 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 190A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 190C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 190E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1910 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1912 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1914 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1916 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1918 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 191A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 191C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 191E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1920 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1922 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1924 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1926 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1928 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 192A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 192C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 192E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1930 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1932 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1934 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1936 */
+0x0020,0x0000,0x0000,0x0000, 0x013F,0x0000,0x0000,0x0000, /* 1938 */
+0x0140,0x0000,0x0000,0x0000, 0x0141,0x0000,0x0000,0x0000, /* 193A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 193C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 193E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1940 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1942 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1944 */
+0x0020,0x0170,0x0000,0x0000, 0x0020,0x0170,0x0000,0x0000, /* 1946 */
+0x0020,0x0170,0x0000,0x0000, 0x0020,0x0170,0x0000,0x0000, /* 1948 */
+0x0020,0x0170,0x0000,0x0000, 0x0020,0x0170,0x0000,0x0000, /* 194A */
+0x0020,0x0170,0x0000,0x0000, 0x0020,0x0170,0x0000,0x0000, /* 194C */
+0x0020,0x0170,0x0000,0x0000, 0x0020,0x0170,0x0000,0x0000, /* 194E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1950 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1952 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1954 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1956 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1958 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 195A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 195C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 195E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1960 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1962 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1964 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1966 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1968 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 196A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 196C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 196E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1970 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1972 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1974 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1976 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1978 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 197A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 197C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 197E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1980 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1982 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1984 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1986 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1988 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 198A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 198C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 198E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1990 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1992 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1994 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1996 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1998 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 199A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 199C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 199E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19A8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19AA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19AC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19C8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19CA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19CC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19CE */
+0x0020,0x0171,0x0000,0x0000, 0x0020,0x0171,0x0000,0x0000, /* 19D0 */
+0x0020,0x0171,0x0000,0x0000, 0x0020,0x0171,0x0000,0x0000, /* 19D2 */
+0x0020,0x0171,0x0000,0x0000, 0x0020,0x0171,0x0000,0x0000, /* 19D4 */
+0x0020,0x0171,0x0000,0x0000, 0x0020,0x0171,0x0000,0x0000, /* 19D6 */
+0x0020,0x0171,0x0000,0x0000, 0x0020,0x0171,0x0000,0x0000, /* 19D8 */
+0x0020,0x0172,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19DC */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 19DE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19E0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19E8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19EA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 19FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 19FE */
+};
+
+static const uint16 uca520_p01A_w2[]= { /* 1A00 (4 weights per char) */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A00 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A02 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A04 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A06 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A08 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A0A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A0C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A0E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A10 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A12 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A14 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A16 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A18 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A1A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A1C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A1E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A20 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A22 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A24 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A26 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A28 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A2A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A2C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A2E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A30 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A32 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A34 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A36 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A38 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A3A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A3C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A3E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A40 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A42 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A44 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A46 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A48 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A4A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A4C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A4E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A50 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A52 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A54 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A56 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A58 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A5A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A5C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A5E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A60 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A62 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A64 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A66 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A68 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A6A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A6C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A6E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A70 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A72 */
+0x0136,0x0000,0x0000,0x0000, 0x0137,0x0000,0x0000,0x0000, /* 1A74 */
+0x0138,0x0000,0x0000,0x0000, 0x0139,0x0000,0x0000,0x0000, /* 1A76 */
+0x013A,0x0000,0x0000,0x0000, 0x013B,0x0000,0x0000,0x0000, /* 1A78 */
+0x013C,0x0000,0x0000,0x0000, 0x013D,0x0000,0x0000,0x0000, /* 1A7A */
+0x013E,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A7C */
+0x0020,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* 1A7E */
+0x0020,0x0173,0x0000,0x0000, 0x0020,0x0173,0x0000,0x0000, /* 1A80 */
+0x0020,0x0173,0x0000,0x0000, 0x0020,0x0173,0x0000,0x0000, /* 1A82 */
+0x0020,0x0173,0x0000,0x0000, 0x0020,0x0173,0x0000,0x0000, /* 1A84 */
+0x0020,0x0173,0x0000,0x0000, 0x0020,0x0173,0x0000,0x0000, /* 1A86 */
+0x0020,0x0173,0x0000,0x0000, 0x0020,0x0173,0x0000,0x0000, /* 1A88 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A8A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A8C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A8E */
+0x0020,0x0174,0x0000,0x0000, 0x0020,0x0174,0x0000,0x0000, /* 1A90 */
+0x0020,0x0174,0x0000,0x0000, 0x0020,0x0174,0x0000,0x0000, /* 1A92 */
+0x0020,0x0174,0x0000,0x0000, 0x0020,0x0174,0x0000,0x0000, /* 1A94 */
+0x0020,0x0174,0x0000,0x0000, 0x0020,0x0174,0x0000,0x0000, /* 1A96 */
+0x0020,0x0174,0x0000,0x0000, 0x0020,0x0174,0x0000,0x0000, /* 1A98 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A9A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A9C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1A9E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AA0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AA2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AA4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AA6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AA8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AAA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AAC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AAE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AB0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AB2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AB4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AB6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AB8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ABA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ABC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ABE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AC0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AC2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AC4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AC6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AC8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ACA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ACC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ACE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AD0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AD2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AD4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AD6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AD8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ADA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ADC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1ADE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AE0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AE2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AE4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AE6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AE8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AEA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AEC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AEE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AF0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AF2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AF4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AF6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AF8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AFA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1AFC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 1AFE */
+};
+
+static const uint16 uca520_p01B_w2[]= { /* 1B00 (3 weights per char) */
+0x00FC,0x0000,0x0000, 0x00FD,0x0000,0x0000, 0x00FE,0x0000,0x0000, /* 1B00 */
+0x00FF,0x0000,0x0000, 0x0100,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B30 */
+0x0020,0x0000,0x0000, 0x00FB,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x017F,0x0000, /* 1B4E */
+0x0020,0x017F,0x0000, 0x0020,0x017F,0x0000, 0x0020,0x017F,0x0000, /* 1B51 */
+0x0020,0x017F,0x0000, 0x0020,0x017F,0x0000, 0x0020,0x017F,0x0000, /* 1B54 */
+0x0020,0x017F,0x0000, 0x0020,0x017F,0x0000, 0x0020,0x017F,0x0000, /* 1B57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B69 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6C */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1B6F */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0106,0x0000,0x0000, /* 1B7E */
+0x0107,0x0000,0x0000, 0x0108,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1B9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0181,0x0000, /* 1BAE */
+0x0020,0x0181,0x0000, 0x0020,0x0181,0x0000, 0x0020,0x0181,0x0000, /* 1BB1 */
+0x0020,0x0181,0x0000, 0x0020,0x0181,0x0000, 0x0020,0x0181,0x0000, /* 1BB4 */
+0x0020,0x0181,0x0000, 0x0020,0x0181,0x0000, 0x0020,0x0181,0x0000, /* 1BB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1BFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p01C_w2[]= { /* 1C00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C33 */
+0x0020,0x0000,0x0000, 0x0129,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C3C */
+0x0020,0x0000,0x0000, 0x0020,0x0178,0x0000, 0x0020,0x0178,0x0000, /* 1C3F */
+0x0020,0x0178,0x0000, 0x0020,0x0178,0x0000, 0x0020,0x0178,0x0000, /* 1C42 */
+0x0020,0x0178,0x0000, 0x0020,0x0178,0x0000, 0x0020,0x0178,0x0000, /* 1C45 */
+0x0020,0x0178,0x0000, 0x0020,0x0178,0x0000, 0x0020,0x0000,0x0000, /* 1C48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0183,0x0000, /* 1C4E */
+0x0020,0x0183,0x0000, 0x0020,0x0183,0x0000, 0x0020,0x0183,0x0000, /* 1C51 */
+0x0020,0x0183,0x0000, 0x0020,0x0183,0x0000, 0x0020,0x0183,0x0000, /* 1C54 */
+0x0020,0x0183,0x0000, 0x0020,0x0183,0x0000, 0x0020,0x0183,0x0000, /* 1C57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1C9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CCC */
+0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CCF */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD2 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD5 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CD8 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDB */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CDE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE1 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* 1CE4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CEA */
+0x00DC,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x00DD,0x0000,0x0000, /* 1CF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1CFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p01D_w2[]= { /* 1D00 (4 weights per char) */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D00 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D02 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D04 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D06 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D08 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D0A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D0C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D0E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D10 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D12 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D14 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D16 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D18 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D1A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D1C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D1E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D20 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D22 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D24 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D26 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D28 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D2A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0159,0x0020,0x0000, /* 1D2C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D2E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D30 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D32 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D34 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D36 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D38 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D3A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D3C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D3E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D40 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D42 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D44 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D46 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D48 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D4A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D4C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D4E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D50 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D52 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D54 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D56 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D58 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D5A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D5C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D5E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D60 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D62 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D64 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D66 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D68 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D6A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D6C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D6E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D70 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D72 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D74 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D76 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* 1D78 */
+0x0020,0x0159,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D7A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D7C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D7E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D80 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D82 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D84 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D86 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D88 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D8A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D8C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D8E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D90 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D92 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D94 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D96 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D98 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D9A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D9C */
+0x0020,0x0159,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1D9E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DA0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DA2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DA4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DA6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DA8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DAA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DAC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DAE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DB0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DB2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DB4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DB6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DB8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DBA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DBC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DBE */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DC0 */
+0x0060,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DC2 */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DC4 */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DC6 */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DC8 */
+0x0020,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DCA */
+0x005F,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DCC */
+0x005F,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 1DCE */
+0x0060,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 1DD0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0159,0x0000,0x0000, /* 1DD2 */
+0x0020,0x0159,0x0020,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1DD4 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0056,0x0000,0x0000, /* 1DD6 */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x0159,0x0000,0x0000, /* 1DD8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DDA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DDC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DDE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DE0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DE2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* 1DE4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DE6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DE8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DEA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DEC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DEE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DF0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DF2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DF4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DF6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DF8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1DFA */
+0x0020,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000, /* 1DFC */
+0x005F,0x0000,0x0000,0x0000, 0x0060,0x0000,0x0000,0x0000 /* 1DFE */
+};
+
+static const uint16 uca520_p01E_w2[]= { /* 1E00 (4 weights per char) */
+0x0020,0x0076,0x0000,0x0000, 0x0020,0x0076,0x0000,0x0000, /* 1E00 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E02 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E04 */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E06 */
+0x0020,0x0056,0x0032,0x0000, 0x0020,0x0056,0x0032,0x0000, /* 1E08 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E0A */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E0C */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E0E */
+0x0020,0x0056,0x0000,0x0000, 0x0020,0x0056,0x0000,0x0000, /* 1E10 */
+0x0020,0x0078,0x0000,0x0000, 0x0020,0x0078,0x0000,0x0000, /* 1E12 */
+0x0020,0x005B,0x0035,0x0000, 0x0020,0x005B,0x0035,0x0000, /* 1E14 */
+0x0020,0x005B,0x0032,0x0000, 0x0020,0x005B,0x0032,0x0000, /* 1E16 */
+0x0020,0x0078,0x0000,0x0000, 0x0020,0x0078,0x0000,0x0000, /* 1E18 */
+0x0020,0x007A,0x0000,0x0000, 0x0020,0x007A,0x0000,0x0000, /* 1E1A */
+0x0020,0x0056,0x0037,0x0000, 0x0020,0x0056,0x0037,0x0000, /* 1E1C */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E1E */
+0x0020,0x005B,0x0000,0x0000, 0x0020,0x005B,0x0000,0x0000, /* 1E20 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E22 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E24 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 1E26 */
+0x0020,0x0056,0x0000,0x0000, 0x0020,0x0056,0x0000,0x0000, /* 1E28 */
+0x0020,0x0079,0x0000,0x0000, 0x0020,0x0079,0x0000,0x0000, /* 1E2A */
+0x0020,0x007A,0x0000,0x0000, 0x0020,0x007A,0x0000,0x0000, /* 1E2C */
+0x0020,0x0047,0x0032,0x0000, 0x0020,0x0047,0x0032,0x0000, /* 1E2E */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 1E30 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E32 */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E34 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E36 */
+0x0020,0x0070,0x005B,0x0000, 0x0020,0x0070,0x005B,0x0000, /* 1E38 */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E3A */
+0x0020,0x0078,0x0000,0x0000, 0x0020,0x0078,0x0000,0x0000, /* 1E3C */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 1E3E */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E40 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E42 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E44 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E46 */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E48 */
+0x0020,0x0078,0x0000,0x0000, 0x0020,0x0078,0x0000,0x0000, /* 1E4A */
+0x0020,0x004E,0x0032,0x0000, 0x0020,0x004E,0x0032,0x0000, /* 1E4C */
+0x0020,0x004E,0x0047,0x0000, 0x0020,0x004E,0x0047,0x0000, /* 1E4E */
+0x0020,0x005B,0x0035,0x0000, 0x0020,0x005B,0x0035,0x0000, /* 1E50 */
+0x0020,0x005B,0x0032,0x0000, 0x0020,0x005B,0x0032,0x0000, /* 1E52 */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 1E54 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E56 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E58 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E5A */
+0x0020,0x0070,0x005B,0x0000, 0x0020,0x0070,0x005B,0x0000, /* 1E5C */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E5E */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E60 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E62 */
+0x0020,0x0032,0x0052,0x0000, 0x0020,0x0032,0x0052,0x0000, /* 1E64 */
+0x0020,0x0041,0x0052,0x0000, 0x0020,0x0041,0x0052,0x0000, /* 1E66 */
+0x0020,0x0070,0x0052,0x0000, 0x0020,0x0070,0x0052,0x0000, /* 1E68 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E6A */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E6C */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E6E */
+0x0020,0x0078,0x0000,0x0000, 0x0020,0x0078,0x0000,0x0000, /* 1E70 */
+0x0020,0x0075,0x0000,0x0000, 0x0020,0x0075,0x0000,0x0000, /* 1E72 */
+0x0020,0x007A,0x0000,0x0000, 0x0020,0x007A,0x0000,0x0000, /* 1E74 */
+0x0020,0x0078,0x0000,0x0000, 0x0020,0x0078,0x0000,0x0000, /* 1E76 */
+0x0020,0x004E,0x0032,0x0000, 0x0020,0x004E,0x0032,0x0000, /* 1E78 */
+0x0020,0x005B,0x0047,0x0000, 0x0020,0x005B,0x0047,0x0000, /* 1E7A */
+0x0020,0x004E,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 1E7C */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E7E */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0035,0x0000,0x0000, /* 1E80 */
+0x0020,0x0032,0x0000,0x0000, 0x0020,0x0032,0x0000,0x0000, /* 1E82 */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 1E84 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E86 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E88 */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E8A */
+0x0020,0x0047,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 1E8C */
+0x0020,0x0052,0x0000,0x0000, 0x0020,0x0052,0x0000,0x0000, /* 1E8E */
+0x0020,0x003C,0x0000,0x0000, 0x0020,0x003C,0x0000,0x0000, /* 1E90 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1E92 */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x007B,0x0000,0x0000, /* 1E94 */
+0x0020,0x007B,0x0000,0x0000, 0x0020,0x0047,0x0000,0x0000, /* 1E96 */
+0x0020,0x0043,0x0000,0x0000, 0x0020,0x0043,0x0000,0x0000, /* 1E98 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x015A,0x0052,0x0000, /* 1E9A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1E9C */
+0x0020,0x0159,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1E9E */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1EA0 */
+0x0020,0x0064,0x0000,0x0000, 0x0020,0x0064,0x0000,0x0000, /* 1EA2 */
+0x0020,0x003C,0x0032,0x0000, 0x0020,0x003C,0x0032,0x0000, /* 1EA4 */
+0x0020,0x003C,0x0035,0x0000, 0x0020,0x003C,0x0035,0x0000, /* 1EA6 */
+0x0020,0x003C,0x0064,0x0000, 0x0020,0x003C,0x0064,0x0000, /* 1EA8 */
+0x0020,0x003C,0x004E,0x0000, 0x0020,0x003C,0x004E,0x0000, /* 1EAA */
+0x0020,0x0070,0x003C,0x0000, 0x0020,0x0070,0x003C,0x0000, /* 1EAC */
+0x0020,0x0037,0x0032,0x0000, 0x0020,0x0037,0x0032,0x0000, /* 1EAE */
+0x0020,0x0037,0x0035,0x0000, 0x0020,0x0037,0x0035,0x0000, /* 1EB0 */
+0x0020,0x0037,0x0064,0x0000, 0x0020,0x0037,0x0064,0x0000, /* 1EB2 */
+0x0020,0x0037,0x004E,0x0000, 0x0020,0x0037,0x004E,0x0000, /* 1EB4 */
+0x0020,0x0070,0x0037,0x0000, 0x0020,0x0070,0x0037,0x0000, /* 1EB6 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1EB8 */
+0x0020,0x0064,0x0000,0x0000, 0x0020,0x0064,0x0000,0x0000, /* 1EBA */
+0x0020,0x004E,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 1EBC */
+0x0020,0x003C,0x0032,0x0000, 0x0020,0x003C,0x0032,0x0000, /* 1EBE */
+0x0020,0x003C,0x0035,0x0000, 0x0020,0x003C,0x0035,0x0000, /* 1EC0 */
+0x0020,0x003C,0x0064,0x0000, 0x0020,0x003C,0x0064,0x0000, /* 1EC2 */
+0x0020,0x003C,0x004E,0x0000, 0x0020,0x003C,0x004E,0x0000, /* 1EC4 */
+0x0020,0x0070,0x003C,0x0000, 0x0020,0x0070,0x003C,0x0000, /* 1EC6 */
+0x0020,0x0064,0x0000,0x0000, 0x0020,0x0064,0x0000,0x0000, /* 1EC8 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1ECA */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1ECC */
+0x0020,0x0064,0x0000,0x0000, 0x0020,0x0064,0x0000,0x0000, /* 1ECE */
+0x0020,0x003C,0x0032,0x0000, 0x0020,0x003C,0x0032,0x0000, /* 1ED0 */
+0x0020,0x003C,0x0035,0x0000, 0x0020,0x003C,0x0035,0x0000, /* 1ED2 */
+0x0020,0x003C,0x0064,0x0000, 0x0020,0x003C,0x0064,0x0000, /* 1ED4 */
+0x0020,0x003C,0x004E,0x0000, 0x0020,0x003C,0x004E,0x0000, /* 1ED6 */
+0x0020,0x0070,0x003C,0x0000, 0x0020,0x0070,0x003C,0x0000, /* 1ED8 */
+0x0020,0x0068,0x0032,0x0000, 0x0020,0x0068,0x0032,0x0000, /* 1EDA */
+0x0020,0x0068,0x0035,0x0000, 0x0020,0x0068,0x0035,0x0000, /* 1EDC */
+0x0020,0x0068,0x0064,0x0000, 0x0020,0x0068,0x0064,0x0000, /* 1EDE */
+0x0020,0x0068,0x004E,0x0000, 0x0020,0x0068,0x004E,0x0000, /* 1EE0 */
+0x0020,0x0068,0x0070,0x0000, 0x0020,0x0068,0x0070,0x0000, /* 1EE2 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1EE4 */
+0x0020,0x0064,0x0000,0x0000, 0x0020,0x0064,0x0000,0x0000, /* 1EE6 */
+0x0020,0x0068,0x0032,0x0000, 0x0020,0x0068,0x0032,0x0000, /* 1EE8 */
+0x0020,0x0068,0x0035,0x0000, 0x0020,0x0068,0x0035,0x0000, /* 1EEA */
+0x0020,0x0068,0x0064,0x0000, 0x0020,0x0068,0x0064,0x0000, /* 1EEC */
+0x0020,0x0068,0x004E,0x0000, 0x0020,0x0068,0x004E,0x0000, /* 1EEE */
+0x0020,0x0068,0x0070,0x0000, 0x0020,0x0068,0x0070,0x0000, /* 1EF0 */
+0x0020,0x0035,0x0000,0x0000, 0x0020,0x0035,0x0000,0x0000, /* 1EF2 */
+0x0020,0x0070,0x0000,0x0000, 0x0020,0x0070,0x0000,0x0000, /* 1EF4 */
+0x0020,0x0064,0x0000,0x0000, 0x0020,0x0064,0x0000,0x0000, /* 1EF6 */
+0x0020,0x004E,0x0000,0x0000, 0x0020,0x004E,0x0000,0x0000, /* 1EF8 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1EFA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1EFC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 1EFE */
+};
+
+static const uint16 uca520_p01F_w2[]= { /* 1F00 (5 weights per char) */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F00 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F01 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F02 */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F03 */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F04 */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F05 */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F06 */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F07 */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F08 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F09 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F0A */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F0B */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F0C */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F0D */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F0E */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F0F */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F10 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F11 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F12 */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F13 */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F14 */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F15 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F16 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F17 */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F18 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F19 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F1A */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F1B */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F1C */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F1D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F1E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F1F */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F20 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F21 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F22 */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F23 */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F24 */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F25 */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F26 */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F27 */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F28 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F29 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F2A */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F2B */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F2C */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F2D */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F2E */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F2F */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F30 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F31 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F32 */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F33 */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F34 */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F35 */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F36 */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F37 */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F38 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F39 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F3A */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F3B */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F3C */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F3D */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F3E */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F3F */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F40 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F41 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F42 */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F43 */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F44 */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F45 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F46 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F47 */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F48 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F49 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F4A */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F4B */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F4C */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F4D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F4E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F4F */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F50 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F51 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F52 */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F53 */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F54 */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F55 */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F56 */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F57 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F58 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F59 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F5A */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F5B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F5C */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F5D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F5E */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F5F */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F60 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F61 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F62 */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F63 */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F64 */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F65 */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F66 */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F67 */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1F68 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1F69 */
+0x0020,0x0022,0x0035,0x0000,0x0000, /* 1F6A */
+0x0020,0x002A,0x0035,0x0000,0x0000, /* 1F6B */
+0x0020,0x0022,0x0032,0x0000,0x0000, /* 1F6C */
+0x0020,0x002A,0x0032,0x0000,0x0000, /* 1F6D */
+0x0020,0x0022,0x0045,0x0000,0x0000, /* 1F6E */
+0x0020,0x002A,0x0045,0x0000,0x0000, /* 1F6F */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1F70 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1F71 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1F72 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1F73 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1F74 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1F75 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1F76 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1F77 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1F78 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1F79 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1F7A */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1F7B */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1F7C */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1F7D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F7E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1F7F */
+0x0020,0x0022,0x007F,0x0000,0x0000, /* 1F80 */
+0x0020,0x002A,0x007F,0x0000,0x0000, /* 1F81 */
+0x0020,0x0022,0x0035,0x007F,0x0000, /* 1F82 */
+0x0020,0x002A,0x0035,0x007F,0x0000, /* 1F83 */
+0x0020,0x0022,0x0032,0x007F,0x0000, /* 1F84 */
+0x0020,0x002A,0x0032,0x007F,0x0000, /* 1F85 */
+0x0020,0x0022,0x0045,0x007F,0x0000, /* 1F86 */
+0x0020,0x002A,0x0045,0x007F,0x0000, /* 1F87 */
+0x0020,0x0022,0x007F,0x0000,0x0000, /* 1F88 */
+0x0020,0x002A,0x007F,0x0000,0x0000, /* 1F89 */
+0x0020,0x0022,0x0035,0x007F,0x0000, /* 1F8A */
+0x0020,0x002A,0x0035,0x007F,0x0000, /* 1F8B */
+0x0020,0x0022,0x0032,0x007F,0x0000, /* 1F8C */
+0x0020,0x002A,0x0032,0x007F,0x0000, /* 1F8D */
+0x0020,0x0022,0x0045,0x007F,0x0000, /* 1F8E */
+0x0020,0x002A,0x0045,0x007F,0x0000, /* 1F8F */
+0x0020,0x0022,0x007F,0x0000,0x0000, /* 1F90 */
+0x0020,0x002A,0x007F,0x0000,0x0000, /* 1F91 */
+0x0020,0x0022,0x0035,0x007F,0x0000, /* 1F92 */
+0x0020,0x002A,0x0035,0x007F,0x0000, /* 1F93 */
+0x0020,0x0022,0x0032,0x007F,0x0000, /* 1F94 */
+0x0020,0x002A,0x0032,0x007F,0x0000, /* 1F95 */
+0x0020,0x0022,0x0045,0x007F,0x0000, /* 1F96 */
+0x0020,0x002A,0x0045,0x007F,0x0000, /* 1F97 */
+0x0020,0x0022,0x007F,0x0000,0x0000, /* 1F98 */
+0x0020,0x002A,0x007F,0x0000,0x0000, /* 1F99 */
+0x0020,0x0022,0x0035,0x007F,0x0000, /* 1F9A */
+0x0020,0x002A,0x0035,0x007F,0x0000, /* 1F9B */
+0x0020,0x0022,0x0032,0x007F,0x0000, /* 1F9C */
+0x0020,0x002A,0x0032,0x007F,0x0000, /* 1F9D */
+0x0020,0x0022,0x0045,0x007F,0x0000, /* 1F9E */
+0x0020,0x002A,0x0045,0x007F,0x0000, /* 1F9F */
+0x0020,0x0022,0x007F,0x0000,0x0000, /* 1FA0 */
+0x0020,0x002A,0x007F,0x0000,0x0000, /* 1FA1 */
+0x0020,0x0022,0x0035,0x007F,0x0000, /* 1FA2 */
+0x0020,0x002A,0x0035,0x007F,0x0000, /* 1FA3 */
+0x0020,0x0022,0x0032,0x007F,0x0000, /* 1FA4 */
+0x0020,0x002A,0x0032,0x007F,0x0000, /* 1FA5 */
+0x0020,0x0022,0x0045,0x007F,0x0000, /* 1FA6 */
+0x0020,0x002A,0x0045,0x007F,0x0000, /* 1FA7 */
+0x0020,0x0022,0x007F,0x0000,0x0000, /* 1FA8 */
+0x0020,0x002A,0x007F,0x0000,0x0000, /* 1FA9 */
+0x0020,0x0022,0x0035,0x007F,0x0000, /* 1FAA */
+0x0020,0x002A,0x0035,0x007F,0x0000, /* 1FAB */
+0x0020,0x0022,0x0032,0x007F,0x0000, /* 1FAC */
+0x0020,0x002A,0x0032,0x007F,0x0000, /* 1FAD */
+0x0020,0x0022,0x0045,0x007F,0x0000, /* 1FAE */
+0x0020,0x002A,0x0045,0x007F,0x0000, /* 1FAF */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 1FB0 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 1FB1 */
+0x0020,0x0035,0x007F,0x0000,0x0000, /* 1FB2 */
+0x0020,0x007F,0x0000,0x0000,0x0000, /* 1FB3 */
+0x0020,0x0032,0x007F,0x0000,0x0000, /* 1FB4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FB5 */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FB6 */
+0x0020,0x0045,0x007F,0x0000,0x0000, /* 1FB7 */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 1FB8 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 1FB9 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FBA */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FBB */
+0x0020,0x007F,0x0000,0x0000,0x0000, /* 1FBC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FBD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FBE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FBF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FC0 */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FC1 */
+0x0020,0x0035,0x007F,0x0000,0x0000, /* 1FC2 */
+0x0020,0x007F,0x0000,0x0000,0x0000, /* 1FC3 */
+0x0020,0x0032,0x007F,0x0000,0x0000, /* 1FC4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FC5 */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FC6 */
+0x0020,0x0045,0x007F,0x0000,0x0000, /* 1FC7 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FC8 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FC9 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FCA */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FCB */
+0x0020,0x007F,0x0000,0x0000,0x0000, /* 1FCC */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FCD */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FCE */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FCF */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 1FD0 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 1FD1 */
+0x0020,0x0047,0x0035,0x0000,0x0000, /* 1FD2 */
+0x0020,0x0047,0x0032,0x0000,0x0000, /* 1FD3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FD4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FD5 */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FD6 */
+0x0020,0x0047,0x0045,0x0000,0x0000, /* 1FD7 */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 1FD8 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 1FD9 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FDA */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FDB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FDC */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FDD */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FDE */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FDF */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 1FE0 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 1FE1 */
+0x0020,0x0047,0x0035,0x0000,0x0000, /* 1FE2 */
+0x0020,0x0047,0x0032,0x0000,0x0000, /* 1FE3 */
+0x0020,0x0022,0x0000,0x0000,0x0000, /* 1FE4 */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1FE5 */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FE6 */
+0x0020,0x0047,0x0045,0x0000,0x0000, /* 1FE7 */
+0x0020,0x0037,0x0000,0x0000,0x0000, /* 1FE8 */
+0x0020,0x005B,0x0000,0x0000,0x0000, /* 1FE9 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FEA */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FEB */
+0x0020,0x002A,0x0000,0x0000,0x0000, /* 1FEC */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FED */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FEE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FEF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FF0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FF1 */
+0x0020,0x0035,0x007F,0x0000,0x0000, /* 1FF2 */
+0x0020,0x007F,0x0000,0x0000,0x0000, /* 1FF3 */
+0x0020,0x0032,0x007F,0x0000,0x0000, /* 1FF4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FF5 */
+0x0020,0x0045,0x0000,0x0000,0x0000, /* 1FF6 */
+0x0020,0x0045,0x007F,0x0000,0x0000, /* 1FF7 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FF8 */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FF9 */
+0x0020,0x0035,0x0000,0x0000,0x0000, /* 1FFA */
+0x0020,0x0032,0x0000,0x0000,0x0000, /* 1FFB */
+0x0020,0x007F,0x0000,0x0000,0x0000, /* 1FFC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FFD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 1FFE */
+0x0020,0x0000,0x0000,0x0000,0x0000 /* 1FFF */
+};
+
+static const uint16 uca520_p020_w2[]= { /* 2000 (5 weights per char) */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2000 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2001 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2002 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2003 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2004 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2005 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2006 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2007 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2008 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2009 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 200A */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200B */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200C */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200D */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200E */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 200F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2010 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2011 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2012 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2013 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2014 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2015 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2016 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2017 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2018 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2019 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 201A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 201B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 201C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 201D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 201E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 201F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2020 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2021 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2022 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2023 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2024 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2025 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2026 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2027 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2028 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2029 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202A */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202B */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202C */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202D */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 202E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 202F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2030 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2031 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2032 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2033 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2034 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2035 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2036 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2037 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2038 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2039 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 203A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 203B */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 203C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 203D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 203E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 203F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2040 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2041 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2042 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2043 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2044 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2045 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2046 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2047 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2048 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2049 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 204A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 204B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 204C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 204D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 204E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 204F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2050 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2051 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2052 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2053 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2054 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2055 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2056 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2057 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2058 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2059 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 205A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 205B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 205C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 205D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 205E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 205F */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2060 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2061 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2062 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2063 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 2064 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2065 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2066 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2067 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2068 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2069 */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206A */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206B */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206C */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206D */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206E */
+0x0000,0x0000,0x0000,0x0000,0x0000, /* 206F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2070 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2071 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2072 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2073 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2074 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2075 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2076 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2077 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2078 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2079 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 207A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 207B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 207C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 207D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 207E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 207F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2080 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2081 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2082 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2083 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2084 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2085 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2086 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2087 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2088 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2089 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 208A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 208B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 208C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 208D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 208E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 208F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2090 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2091 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2092 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2093 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2094 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2095 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2096 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2097 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2098 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2099 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 209A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 209B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 209C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 209D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 209E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 209F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A7 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 20A8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20A9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20AA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20AB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20AC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20AD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20AE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20AF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20B9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20BA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20BB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20BC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20BD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20BE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20BF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20C9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20CA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20CB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20CC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20CD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20CE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20CF */
+0x014A,0x0000,0x0000,0x0000,0x0000, /* 20D0 */
+0x014B,0x0000,0x0000,0x0000,0x0000, /* 20D1 */
+0x014C,0x0000,0x0000,0x0000,0x0000, /* 20D2 */
+0x014C,0x0000,0x0000,0x0000,0x0000, /* 20D3 */
+0x014D,0x0000,0x0000,0x0000,0x0000, /* 20D4 */
+0x014E,0x0000,0x0000,0x0000,0x0000, /* 20D5 */
+0x014F,0x0000,0x0000,0x0000,0x0000, /* 20D6 */
+0x0150,0x0000,0x0000,0x0000,0x0000, /* 20D7 */
+0x0061,0x0000,0x0000,0x0000,0x0000, /* 20D8 */
+0x0061,0x0000,0x0000,0x0000,0x0000, /* 20D9 */
+0x0061,0x0000,0x0000,0x0000,0x0000, /* 20DA */
+0x0151,0x0000,0x0000,0x0000,0x0000, /* 20DB */
+0x0152,0x0000,0x0000,0x0000,0x0000, /* 20DC */
+0x0062,0x0000,0x0000,0x0000,0x0000, /* 20DD */
+0x0062,0x0000,0x0000,0x0000,0x0000, /* 20DE */
+0x0062,0x0000,0x0000,0x0000,0x0000, /* 20DF */
+0x0062,0x0000,0x0000,0x0000,0x0000, /* 20E0 */
+0x0153,0x0000,0x0000,0x0000,0x0000, /* 20E1 */
+0x0062,0x0000,0x0000,0x0000,0x0000, /* 20E2 */
+0x0062,0x0000,0x0000,0x0000,0x0000, /* 20E3 */
+0x0062,0x0000,0x0000,0x0000,0x0000, /* 20E4 */
+0x0061,0x0000,0x0000,0x0000,0x0000, /* 20E5 */
+0x0154,0x0000,0x0000,0x0000,0x0000, /* 20E6 */
+0x0155,0x0000,0x0000,0x0000,0x0000, /* 20E7 */
+0x0156,0x0000,0x0000,0x0000,0x0000, /* 20E8 */
+0x0157,0x0000,0x0000,0x0000,0x0000, /* 20E9 */
+0x0061,0x0000,0x0000,0x0000,0x0000, /* 20EA */
+0x0061,0x0000,0x0000,0x0000,0x0000, /* 20EB */
+0x0060,0x0000,0x0000,0x0000,0x0000, /* 20EC */
+0x0060,0x0000,0x0000,0x0000,0x0000, /* 20ED */
+0x0060,0x0000,0x0000,0x0000,0x0000, /* 20EE */
+0x0060,0x0000,0x0000,0x0000,0x0000, /* 20EF */
+0x005F,0x0000,0x0000,0x0000,0x0000, /* 20F0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20F9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20FA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20FB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20FC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20FD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 20FE */
+0x0020,0x0000,0x0000,0x0000,0x0000 /* 20FF */
+};
+
+static const uint16 uca520_p021_w2[]= { /* 2100 (5 weights per char) */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2100 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2101 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2102 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2103 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2104 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2105 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2106 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2107 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2108 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2109 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 210A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 210B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 210C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 210D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 210E */
+0x0020,0x007D,0x0000,0x0000,0x0000, /* 210F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2110 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2111 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2112 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2113 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2114 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2115 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2116 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2117 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2118 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2119 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 211A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 211B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 211C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 211D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 211E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 211F */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2120 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2121 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2122 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2123 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2124 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2125 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2126 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2127 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2128 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2129 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 212A */
+0x0020,0x0043,0x0000,0x0000,0x0000, /* 212B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 212C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 212D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 212E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 212F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2130 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2131 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2132 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2133 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2134 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2135 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2136 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2137 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2138 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2139 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 213A */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 213B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 213C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 213D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 213E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 213F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2140 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2141 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2142 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2143 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2144 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2145 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2146 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2147 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2148 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2149 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 214A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 214B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 214C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 214D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 214E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 214F */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2150 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2151 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2152 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2153 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2154 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2155 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2156 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2157 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2158 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2159 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 215A */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 215B */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 215C */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 215D */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 215E */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 215F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2160 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2161 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2162 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2163 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2164 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2165 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2166 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2167 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2168 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2169 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 216A */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 216B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 216C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 216D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 216E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 216F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2170 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2171 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2172 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2173 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2174 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2175 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2176 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2177 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2178 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2179 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 217A */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 217B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 217C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 217D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 217E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 217F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2180 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2181 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2182 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2183 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2184 */
+0x0020,0x0188,0x0000,0x0000,0x0000, /* 2185 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2186 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2187 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2188 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2189 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 218A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 218B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 218C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 218D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 218E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 218F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2190 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2191 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2192 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2193 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2194 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2195 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2196 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2197 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2198 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2199 */
+0x0020,0x0054,0x0000,0x0000,0x0000, /* 219A */
+0x0020,0x0054,0x0000,0x0000,0x0000, /* 219B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 219C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 219D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 219E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 219F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21A9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21AA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21AB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21AC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21AD */
+0x0020,0x0054,0x0000,0x0000,0x0000, /* 21AE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21AF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21B9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21BA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21BB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21BC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21BD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21BE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21BF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21C9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21CA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21CB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21CC */
+0x0020,0x0054,0x0000,0x0000,0x0000, /* 21CD */
+0x0020,0x0054,0x0000,0x0000,0x0000, /* 21CE */
+0x0020,0x0054,0x0000,0x0000,0x0000, /* 21CF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21D9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21DA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21DB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21DC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21DD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21DE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21DF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21E9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21EA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21EB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21EC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21ED */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21EE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21EF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21F9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21FA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21FB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21FC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21FD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 21FE */
+0x0020,0x0000,0x0000,0x0000,0x0000 /* 21FF */
+};
+
+static const uint16 uca520_p022_w2[]= { /* 2200 (4 weights per char) */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2200 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2202 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2204 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2206 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2208 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 220A */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 220C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 220E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2210 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2212 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2214 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2216 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2218 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 221A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 221C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 221E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2220 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2222 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2224 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2226 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2228 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 222A */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 222C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 222E */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2230 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2232 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2234 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2236 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2238 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 223A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 223C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 223E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2240 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2242 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2244 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2246 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2248 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 224A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 224C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 224E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2250 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2252 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2254 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2256 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2258 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 225A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 225C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 225E */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2260 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2262 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2264 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2266 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2268 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 226A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 226C */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 226E */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2270 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2272 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2274 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2276 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2278 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 227A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 227C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 227E */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2280 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2282 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2284 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2286 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 2288 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 228A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 228C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 228E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2290 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2292 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2294 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2296 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2298 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 229A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 229C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 229E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22A8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22AA */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 22AC */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 22AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22C8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22CA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22CC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22CE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22D0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22D2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22D4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22D6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22D8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22DE */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 22E0 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 22E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22E8 */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 22EA */
+0x0020,0x0054,0x0000,0x0000, 0x0020,0x0054,0x0000,0x0000, /* 22EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 22FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 22FE */
+};
+
+static const uint16 uca520_p024_w2[]= { /* 2400 (5 weights per char) */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2400 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2401 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2402 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2403 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2404 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2405 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2406 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2407 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2408 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2409 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 240A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 240B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 240C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 240D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 240E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 240F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2410 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2411 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2412 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2413 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2414 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2415 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2416 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2417 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2418 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2419 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 241A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 241B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 241C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 241D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 241E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 241F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2420 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2421 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2422 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2423 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2424 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2425 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2426 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2427 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2428 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2429 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 242A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 242B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 242C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 242D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 242E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 242F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2430 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2431 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2432 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2433 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2434 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2435 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2436 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2437 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2438 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2439 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 243A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 243B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 243C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 243D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 243E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 243F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2440 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2441 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2442 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2443 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2444 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2445 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2446 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2447 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2448 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2449 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 244A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 244B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 244C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 244D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 244E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 244F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2450 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2451 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2452 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2453 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2454 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2455 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2456 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2457 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2458 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2459 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 245A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 245B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 245C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 245D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 245E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 245F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2460 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2461 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2462 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2463 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2464 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2465 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2466 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2467 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2468 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2469 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 246A */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 246B */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 246C */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 246D */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 246E */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 246F */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2470 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2471 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2472 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2473 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2474 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2475 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2476 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2477 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2478 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2479 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 247A */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 247B */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 247C */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 247D */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 247E */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 247F */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2480 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2481 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2482 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2483 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2484 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2485 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2486 */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2487 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2488 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2489 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 248A */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 248B */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 248C */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 248D */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 248E */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 248F */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2490 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2491 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2492 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2493 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2494 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2495 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2496 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2497 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2498 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2499 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 249A */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 249B */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 249C */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 249D */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 249E */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 249F */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A0 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A1 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A2 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A3 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A4 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A5 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A6 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A7 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A8 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24A9 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24AA */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24AB */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24AC */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24AD */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24AE */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24AF */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24B0 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24B1 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24B2 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24B3 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24B4 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 24B5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24B6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24B7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24B8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24B9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24BA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24BB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24BC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24BD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24BE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24BF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24C9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24CA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24CB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24CC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24CD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24CE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24CF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24D9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24DA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24DB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24DC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24DD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24DE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24DF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24E9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24EA */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24EB */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24EC */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24ED */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24EE */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24EF */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24F0 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24F1 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24F2 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24F3 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24F4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24F5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24F6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24F7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24F8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24F9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24FA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24FB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24FC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 24FD */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 24FE */
+0x0020,0x0000,0x0000,0x0000,0x0000 /* 24FF */
+};
+
+static const uint16 uca520_p027_w2[]= { /* 2700 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2700 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2703 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2706 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2709 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 270C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 270F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2712 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2715 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2718 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 271B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 271E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2721 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2724 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2727 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 272A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 272D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2730 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2733 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2736 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2739 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 273C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 273F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2742 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2745 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2748 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 274B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 274E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2751 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2754 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2757 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 275A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 275D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2760 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2763 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2766 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2769 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 276C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 276F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2772 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2775 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2778 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 277B */
+0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000, /* 277E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2781 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2784 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000, /* 2787 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 278A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 278D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2790 */
+0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2793 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2796 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2799 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 279C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 279F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 27FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p02A_w2[]= { /* 2A00 (5 weights per char) */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A00 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A01 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A02 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A03 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A04 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A05 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A06 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A07 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A08 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A09 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A0A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A0B */
+0x0020,0x0020,0x0020,0x0020,0x0000, /* 2A0C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A0D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A0E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A0F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A10 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A11 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A12 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A13 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A14 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A15 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A16 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A17 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A18 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A19 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A1A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A1B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A1C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A1D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A1E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A1F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A20 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A21 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A22 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A23 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A24 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A25 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A26 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A27 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A28 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A29 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A2A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A2B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A2C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A2D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A2E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A2F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A30 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A31 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A32 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A33 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A34 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A35 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A36 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A37 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A38 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A39 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A3A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A3B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A3C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A3D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A3E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A3F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A40 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A41 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A42 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A43 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A44 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A45 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A46 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A47 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A48 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A49 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A4A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A4B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A4C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A4D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A4E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A4F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A50 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A51 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A52 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A53 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A54 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A55 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A56 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A57 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A58 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A59 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A5A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A5B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A5C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A5D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A5E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A5F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A60 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A61 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A62 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A63 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A64 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A65 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A66 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A67 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A68 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A69 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A6A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A6B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A6C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A6D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A6E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A6F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A70 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A71 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A72 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A73 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2A74 */
+0x0020,0x0020,0x0000,0x0000,0x0000, /* 2A75 */
+0x0020,0x0020,0x0020,0x0000,0x0000, /* 2A76 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A77 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A78 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A79 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A7A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A7B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A7C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A7D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A7E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A7F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A80 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A81 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A82 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A83 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A84 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A85 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A86 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A87 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A88 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A89 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A8A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A8B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A8C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A8D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A8E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A8F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A90 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A91 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A92 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A93 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A94 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A95 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A96 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A97 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A98 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A99 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A9A */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A9B */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A9C */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A9D */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A9E */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2A9F */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AA9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AAA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AAB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AAC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AAD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AAE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AAF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AB9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ABA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ABB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ABC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ABD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ABE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ABF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AC9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ACA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ACB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ACC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ACD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ACE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ACF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AD9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ADA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ADB */
+0x0020,0x0054,0x0000,0x0000,0x0000, /* 2ADC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ADD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ADE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2ADF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AE9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AEA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AEB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AEC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AED */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AEE */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AEF */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF0 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF1 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF2 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF3 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF4 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF5 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF6 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF7 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF8 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AF9 */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AFA */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AFB */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AFC */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AFD */
+0x0020,0x0000,0x0000,0x0000,0x0000, /* 2AFE */
+0x0020,0x0000,0x0000,0x0000,0x0000 /* 2AFF */
+};
+
+static const uint16 uca520_p02C_w2[]= { /* 2C00 (4 weights per char) */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C00 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C02 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C04 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C06 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C08 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C0A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C0C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C0E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C10 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C12 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C14 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C16 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C18 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C1A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C1C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C1E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C20 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C22 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C24 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C26 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C28 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C2A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C2C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C2E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C30 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C32 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C34 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C36 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C38 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C3A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C3C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C3E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C40 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C42 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C44 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C46 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C48 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C4A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C4C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C4E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C50 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C52 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C54 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C56 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C58 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C5A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C5C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C5E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C60 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C62 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C64 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C66 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C68 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C6A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C6C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C6E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C70 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C72 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C74 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C76 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C78 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C7A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C7C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C7E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C80 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C82 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C84 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C86 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C88 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C8A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C8C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C8E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C90 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C92 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C94 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C96 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C98 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C9A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C9C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2C9E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CA0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CA2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CA4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CA6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CA8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CAA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CAC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CAE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CB0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CB2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CB4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CB6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CB8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CBA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CBC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CBE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CC0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CC2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CC4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CC6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CC8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CCA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CCC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CCE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CD0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CD2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CD4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CD6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CD8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CDA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CDC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CDE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CE0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CE2 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CE4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CE6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CE8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CEA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CEC */
+0x0020,0x0000,0x0000,0x0000, 0x005F,0x0000,0x0000,0x0000, /* 2CEE */
+0x002A,0x0000,0x0000,0x0000, 0x0022,0x0000,0x0000,0x0000, /* 2CF0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CF2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CF4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CF6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CF8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CFA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 2CFC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 2CFE */
+};
+
+static const uint16 uca520_p02D_w2[]= { /* 2D00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2D9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000, /* 2DF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2DFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p02E_w2[]= { /* 2E00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2E7E */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E81 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2E84 */
+0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2E87 */
+0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, /* 2E8A */
+0x0020,0x015A,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2E8D */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2E90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2E93 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2E96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E99 */
+0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, /* 2E9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2E9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EA2 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2EA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, /* 2EA8 */
+0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2EAB */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2EB1 */
+0x0020,0x015A,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, /* 2EB4 */
+0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0159,0x0000, /* 2EBA */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2EBD */
+0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2EC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2EC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x015A,0x0000, /* 2ECC */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2ECF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2ED2 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2ED5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2ED8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EDB */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EDE */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2EE1 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EE4 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 2EEA */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 2EED */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x015A,0x0000, /* 2EF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 2EFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p030_w2[]= { /* 3000 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3000 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3003 */
+0x0020,0x0020,0x0000, 0x0020,0x0185,0x0000, 0x0020,0x0000,0x0000, /* 3006 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3009 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 300C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 300F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3012 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3015 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3018 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 301B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 301E */
+0x0020,0x0185,0x0000, 0x0020,0x0185,0x0000, 0x0020,0x0185,0x0000, /* 3021 */
+0x0020,0x0185,0x0000, 0x0020,0x0185,0x0000, 0x0020,0x0185,0x0000, /* 3024 */
+0x0020,0x0185,0x0000, 0x0020,0x0185,0x0000, 0x0020,0x0185,0x0000, /* 3027 */
+0x0142,0x0000,0x0000, 0x0143,0x0000,0x0000, 0x0144,0x0000,0x0000, /* 302A */
+0x0145,0x0000,0x0000, 0x0146,0x0000,0x0000, 0x0147,0x0000,0x0000, /* 302D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 3030 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 3033 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3036 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3039 */
+0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 303C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 303F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3042 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3045 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3048 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 304B */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 304E */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 3051 */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 3054 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 3057 */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 305A */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 305D */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 3060 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 3063 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 3066 */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3069 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 306C */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 306F */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 3072 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 3075 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 3078 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 307B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 307E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3081 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3084 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3087 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 308A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 308D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3090 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 3093 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3096 */
+0x0148,0x0000,0x0000, 0x0149,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3099 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 309C */
+0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 309F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 30AB */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 30AE */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 30B1 */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 30B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 30B7 */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 30BA */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 30BD */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 30C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 30C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 30C6 */
+0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30CC */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 30CF */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 30D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 30D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 30D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0149,0x0000, /* 30DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 30F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 30F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0148,0x0000, /* 30F6 */
+0x0020,0x0148,0x0000, 0x0020,0x0148,0x0000, 0x0020,0x0000,0x0000, /* 30F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0148,0x0000, /* 30FC */
+0x0020,0x0020,0x0000 };
+
+static const uint16 uca520_p031_w2[]= { /* 3100 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3100 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3103 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3106 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3109 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 310C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 310F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3112 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3115 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3118 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 311B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 311E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3121 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3124 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3127 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 312A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 312D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3130 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3133 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3136 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3139 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 313C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 313F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3142 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3145 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3148 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 314B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 314E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3151 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3154 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3157 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 315A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 315D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3160 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3163 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3166 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3169 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 316C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 316F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3172 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3175 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3178 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 317B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 317E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3181 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3184 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3187 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 318A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 318D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3190 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3193 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3196 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 3199 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 319C */
+0x0020,0x0000,0x0000, 0x0020,0x015A,0x0000, 0x0020,0x015A,0x0000, /* 319F */
+0x0020,0x015A,0x0000, 0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, /* 31A2 */
+0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x015A,0x0000, /* 31A5 */
+0x0020,0x015C,0x0000, 0x0020,0x015A,0x0000, 0x0020,0x015A,0x0000, /* 31A8 */
+0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31AB */
+0x0020,0x015A,0x0000, 0x0020,0x015A,0x0000, 0x0020,0x0000,0x0000, /* 31AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x015A,0x0000, /* 31B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 31FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p032_w2[]= { /* 3200 (8 weights per char) */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3200 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3201 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3202 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3203 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3204 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3205 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3206 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3207 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3208 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3209 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 320D */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 320E */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 320F */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3210 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3211 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3212 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3213 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3214 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3215 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3216 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3217 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3218 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3219 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 321A */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 321B */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 321C */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0000, /* 321D */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0000,0x0000, /* 321E */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 321F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3220 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3221 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3222 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3223 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3224 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3225 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3226 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3227 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3228 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3229 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 322A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 322B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 322C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 322D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 322E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 322F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3230 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3231 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3232 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3233 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3234 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3235 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3236 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3237 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3238 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3239 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 323A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 323B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 323C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 323D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 323E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 323F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3240 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3241 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3242 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3243 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3244 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3245 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3246 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3247 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3248 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3249 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 324F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3250 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3251 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3252 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3253 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3254 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3255 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3256 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3257 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3258 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3259 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 325F */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3260 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3261 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3262 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3263 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3264 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3265 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3266 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3267 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3268 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3269 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326A */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326B */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326C */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 326F */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3270 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3271 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3272 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3273 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3274 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3275 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3276 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3277 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3278 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3279 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327B */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 327C */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 327D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327E */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 327F */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3280 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3281 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3282 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3283 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3284 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3285 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3286 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3287 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3288 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3289 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328A */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328B */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328C */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328D */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328E */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 328F */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3290 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3291 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3292 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3293 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3294 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3295 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3296 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3297 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3298 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3299 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329A */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329B */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329C */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329D */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329E */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 329F */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A0 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A1 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A2 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A3 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A4 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A5 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A6 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A7 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A8 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32A9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AA */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AB */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AD */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32AF */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B0 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B1 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B2 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B3 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B4 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B5 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B6 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B7 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B8 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32B9 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BA */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BB */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BC */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BD */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BE */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32BF */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C0 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C1 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C2 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C3 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C4 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C5 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C6 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C7 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C8 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32C9 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CA */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CB */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CC */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CD */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CE */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32CF */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D0 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D1 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D2 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D3 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D4 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D5 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D6 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D7 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D8 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32D9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DA */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DB */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DD */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32DF */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E0 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E1 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E2 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E3 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E4 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E5 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E6 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E7 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E8 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32E9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EA */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EB */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32ED */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32EF */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F0 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F1 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F2 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F3 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F4 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F5 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F6 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F7 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F8 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32F9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FA */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FB */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FD */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* 32FE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* 32FF */
+};
+
+static const uint16 uca520_p033_w2[]= { /* 3300 (7 weights per char) */
+0x0020,0x0020,0x0149,0x0020,0x0020,0x0000,0x0000, /* 3300 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3301 */
+0x0020,0x0020,0x0020,0x0149,0x0020,0x0000,0x0000, /* 3302 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3303 */
+0x0020,0x0020,0x0020,0x0020,0x0148,0x0000,0x0000, /* 3304 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3305 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3306 */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0148,0x0000, /* 3307 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3308 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3309 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 330A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 330B */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 330C */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 330D */
+0x0020,0x0148,0x0020,0x0020,0x0000,0x0000,0x0000, /* 330E */
+0x0020,0x0148,0x0020,0x0020,0x0000,0x0000,0x0000, /* 330F */
+0x0020,0x0148,0x0020,0x0148,0x0000,0x0000,0x0000, /* 3310 */
+0x0020,0x0148,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3311 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3312 */
+0x0020,0x0148,0x0020,0x0020,0x0148,0x0020,0x0000, /* 3313 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3314 */
+0x0020,0x0020,0x0020,0x0148,0x0020,0x0020,0x0000, /* 3315 */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0000, /* 3316 */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0000,0x0000, /* 3317 */
+0x0020,0x0148,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3318 */
+0x0020,0x0148,0x0020,0x0020,0x0020,0x0020,0x0000, /* 3319 */
+0x0020,0x0020,0x0020,0x0148,0x0020,0x0020,0x0000, /* 331A */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 331B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 331C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 331D */
+0x0020,0x0020,0x0020,0x0149,0x0000,0x0000,0x0000, /* 331E */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 331F */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0000,0x0000, /* 3320 */
+0x0020,0x0020,0x0020,0x0020,0x0148,0x0000,0x0000, /* 3321 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3322 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3323 */
+0x0020,0x0148,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3324 */
+0x0020,0x0148,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3325 */
+0x0020,0x0148,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3326 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3327 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3328 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3329 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 332A */
+0x0020,0x0149,0x0020,0x0020,0x0020,0x0020,0x0000, /* 332B */
+0x0020,0x0149,0x0020,0x0020,0x0000,0x0000,0x0000, /* 332C */
+0x0020,0x0148,0x0020,0x0020,0x0020,0x0000,0x0000, /* 332D */
+0x0020,0x0149,0x0020,0x0020,0x0020,0x0020,0x0000, /* 332E */
+0x0020,0x0149,0x0020,0x0020,0x0000,0x0000,0x0000, /* 332F */
+0x0020,0x0149,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3330 */
+0x0020,0x0148,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3331 */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0148,0x0000, /* 3332 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3333 */
+0x0020,0x0148,0x0020,0x0020,0x0020,0x0020,0x0000, /* 3334 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3335 */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0000,0x0000, /* 3336 */
+0x0020,0x0149,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3337 */
+0x0020,0x0149,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3338 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3339 */
+0x0020,0x0149,0x0020,0x0020,0x0000,0x0000,0x0000, /* 333A */
+0x0020,0x0149,0x0020,0x0020,0x0148,0x0000,0x0000, /* 333B */
+0x0020,0x0148,0x0020,0x0020,0x0000,0x0000,0x0000, /* 333C */
+0x0020,0x0149,0x0020,0x0020,0x0020,0x0000,0x0000, /* 333D */
+0x0020,0x0148,0x0020,0x0020,0x0000,0x0000,0x0000, /* 333E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 333F */
+0x0020,0x0149,0x0020,0x0020,0x0148,0x0000,0x0000, /* 3340 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3341 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3342 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3343 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3344 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3345 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3346 */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0000,0x0000, /* 3347 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3348 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3349 */
+0x0020,0x0020,0x0020,0x0148,0x0020,0x0020,0x0000, /* 334A */
+0x0020,0x0020,0x0148,0x0000,0x0000,0x0000,0x0000, /* 334B */
+0x0020,0x0020,0x0148,0x0020,0x0020,0x0000,0x0000, /* 334C */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 334D */
+0x0020,0x0020,0x0020,0x0148,0x0000,0x0000,0x0000, /* 334E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 334F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3350 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3351 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3352 */
+0x0020,0x0020,0x0149,0x0020,0x0000,0x0000,0x0000, /* 3353 */
+0x0020,0x0020,0x0020,0x0148,0x0020,0x0000,0x0000, /* 3354 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3355 */
+0x0020,0x0020,0x0020,0x0020,0x0148,0x0020,0x0000, /* 3356 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3357 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3358 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3359 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 335F */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3360 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3361 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3362 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3363 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3364 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3365 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3366 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3367 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3368 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3369 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 336A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 336B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 336C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 336D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 336E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 336F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3370 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3371 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3372 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3373 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3374 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3375 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3376 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3377 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3378 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3379 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 337E */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 337F */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3380 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3381 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3382 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3383 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3384 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3385 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3386 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3387 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3388 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 3389 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 338F */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3390 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3391 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3392 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3393 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 3394 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3395 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3396 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3397 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3398 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 3399 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 339E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 339F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33A0 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A1 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33A2 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33A3 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33A4 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A5 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33A6 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33A7 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 33A8 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33A9 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33AA */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33AB */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33AC */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33AD */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0000,0x0000, /* 33AE */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0000, /* 33AF */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B0 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B1 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B2 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B3 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B4 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B5 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B6 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B7 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B8 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33B9 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BA */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BB */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BC */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BD */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BE */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33BF */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C0 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C1 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 33C2 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C3 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C4 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C5 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 33C6 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33C7 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C8 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33C9 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CA */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CB */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CC */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CD */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CE */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33CF */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D0 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D1 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33D2 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D3 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D4 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33D5 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33D6 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33D7 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000, /* 33D8 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33D9 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DA */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DB */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DC */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33DD */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33DE */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33DF */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E0 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E1 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E2 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E3 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E4 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E5 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E6 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E7 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* 33E8 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33E9 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33EA */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33EB */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33EC */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33ED */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33EE */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33EF */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F0 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F1 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F2 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F3 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F4 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F5 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F6 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F7 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F8 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33F9 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33FA */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33FB */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33FC */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33FD */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000, /* 33FE */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000 /* 33FF */
+};
+
+static const uint16 uca520_p0A6_w2[]= { /* A600 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A600 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A603 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A606 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A609 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A60C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A60F */
+0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* A612 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* A615 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* A618 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* A61B */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0184,0x0000, /* A61E */
+0x0020,0x0184,0x0000, 0x0020,0x0184,0x0000, 0x0020,0x0184,0x0000, /* A621 */
+0x0020,0x0184,0x0000, 0x0020,0x0184,0x0000, 0x0020,0x0184,0x0000, /* A624 */
+0x0020,0x0184,0x0000, 0x0020,0x0184,0x0000, 0x0020,0x0184,0x0000, /* A627 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A62A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A62D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A630 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A633 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A636 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A639 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A63C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A63F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A642 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A645 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A648 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A64B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A64E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A651 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A654 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A657 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A65A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A65D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A660 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A663 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A666 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A669 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A66C */
+0x0084,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A66F */
+0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A672 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A675 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A678 */
+0x0020,0x0000,0x0000, 0x005F,0x0000,0x0000, 0x005F,0x0000,0x0000, /* A67B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A67E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A681 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A684 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A687 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A68A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A68D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A690 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A693 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A696 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A699 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A69C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A69F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6ED */
+0x00D8,0x0000,0x0000, 0x00D9,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A6FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p0A7_w2[]= { /* A700 (4 weights per char) */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A700 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A702 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A704 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A706 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A708 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A70A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A70C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A70E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A710 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A712 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A714 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A716 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A718 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A71A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A71C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A71E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A720 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A722 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A724 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A726 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A728 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A72A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A72C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A72E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A730 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A732 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A734 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A736 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A738 */
+0x0020,0x0159,0x0020,0x0000, 0x0020,0x0159,0x0020,0x0000, /* A73A */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A73C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A73E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A740 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A742 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A744 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A746 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A748 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A74A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A74C */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A74E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A750 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A752 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A754 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A756 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A758 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A75A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A75C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A75E */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* A760 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A762 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A764 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A766 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A768 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A76A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A76C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A76E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A770 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A772 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A774 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A776 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* A778 */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* A77A */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* A77C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A77E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A780 */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* A782 */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* A784 */
+0x0020,0x015A,0x0000,0x0000, 0x0020,0x015A,0x0000,0x0000, /* A786 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A788 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A78A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A78C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A78E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A790 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A792 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A794 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A796 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A798 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A79A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A79C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A79E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7A8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7AA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7AC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7C8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7CA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7CC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7CE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7D0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7D2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7D4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7D6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7D8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7DE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7E0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7E8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7EA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* A7FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* A7FE */
+};
+
+static const uint16 uca520_p0A8_w2[]= { /* A800 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A800 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A803 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A806 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x010A,0x0000,0x0000, /* A809 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A80C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A80F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A812 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A815 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A818 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A81B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A81E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A821 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A824 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A827 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A82A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A82D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A830 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A833 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A836 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A839 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A83C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A83F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A842 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A845 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A848 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A84B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A84E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A851 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A854 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A857 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A85A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A85D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A860 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A863 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A866 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A869 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A86C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A86F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A872 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A875 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A878 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A87B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x010B,0x0000,0x0000, /* A87E */
+0x010C,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A881 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A884 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A887 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A88A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A88D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A890 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A893 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A896 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A899 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A89C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A89F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8CC */
+0x0020,0x0000,0x0000, 0x0020,0x016F,0x0000, 0x0020,0x016F,0x0000, /* A8CF */
+0x0020,0x016F,0x0000, 0x0020,0x016F,0x0000, 0x0020,0x016F,0x0000, /* A8D2 */
+0x0020,0x016F,0x0000, 0x0020,0x016F,0x0000, 0x0020,0x016F,0x0000, /* A8D5 */
+0x0020,0x016F,0x0000, 0x0020,0x016F,0x0000, 0x0020,0x0000,0x0000, /* A8D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8DE */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E1 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E4 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8E7 */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8EA */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, /* A8ED */
+0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A8FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p0A9_w2[]= { /* A900 (3 weights per char) */
+0x0020,0x0179,0x0000, 0x0020,0x0179,0x0000, 0x0020,0x0179,0x0000, /* A900 */
+0x0020,0x0179,0x0000, 0x0020,0x0179,0x0000, 0x0020,0x0179,0x0000, /* A903 */
+0x0020,0x0179,0x0000, 0x0020,0x0179,0x0000, 0x0020,0x0179,0x0000, /* A906 */
+0x0020,0x0179,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A909 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A90C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A90F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A912 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A915 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A918 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A91B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A91E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A921 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A924 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A927 */
+0x0020,0x0000,0x0000, 0x012A,0x0000,0x0000, 0x012B,0x0000,0x0000, /* A92A */
+0x012C,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A92D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A930 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A933 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A936 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A939 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A93C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A93F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A942 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A945 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A948 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A94B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A94E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A951 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A954 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A957 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A95A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A95D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A960 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A963 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A966 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A969 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A96C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A96F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A972 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A975 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A978 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A97B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0102,0x0000,0x0000, /* A97E */
+0x0103,0x0000,0x0000, 0x0104,0x0000,0x0000, 0x0105,0x0000,0x0000, /* A981 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A984 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A987 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A98A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A98D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A990 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A993 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A996 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A999 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A99C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A99F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0101,0x0000,0x0000, /* A9B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9CC */
+0x0020,0x0000,0x0000, 0x0020,0x0180,0x0000, 0x0020,0x0180,0x0000, /* A9CF */
+0x0020,0x0180,0x0000, 0x0020,0x0180,0x0000, 0x0020,0x0180,0x0000, /* A9D2 */
+0x0020,0x0180,0x0000, 0x0020,0x0180,0x0000, 0x0020,0x0180,0x0000, /* A9D5 */
+0x0020,0x0180,0x0000, 0x0020,0x0180,0x0000, 0x0020,0x0000,0x0000, /* A9D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* A9FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p0AA_w2[]= { /* AA00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x017E,0x0000, /* AA4E */
+0x0020,0x017E,0x0000, 0x0020,0x017E,0x0000, 0x0020,0x017E,0x0000, /* AA51 */
+0x0020,0x017E,0x0000, 0x0020,0x017E,0x0000, 0x0020,0x017E,0x0000, /* AA54 */
+0x0020,0x017E,0x0000, 0x0020,0x017E,0x0000, 0x0020,0x017E,0x0000, /* AA57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AA9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AABA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0124,0x0000,0x0000, /* AABD */
+0x0020,0x0000,0x0000, 0x0125,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AACC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AACF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AADB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AADE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AAFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p0AB_w2[]= { /* AB00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* AB9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0109,0x0000,0x0000, /* ABEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABED */
+0x0020,0x016E,0x0000, 0x0020,0x016E,0x0000, 0x0020,0x016E,0x0000, /* ABF0 */
+0x0020,0x016E,0x0000, 0x0020,0x016E,0x0000, 0x0020,0x016E,0x0000, /* ABF3 */
+0x0020,0x016E,0x0000, 0x0020,0x016E,0x0000, 0x0020,0x016E,0x0000, /* ABF6 */
+0x0020,0x016E,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* ABFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p0FB_w2[]= { /* FB00 (4 weights per char) */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FB00 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0020,0x0000, /* FB02 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x015A,0x0020,0x0000, /* FB04 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB06 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB08 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB0A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB0C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB0E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB10 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FB12 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FB14 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FB16 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB18 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB1A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0089,0x0000,0x0000, /* FB1C */
+0x0096,0x0000,0x0000,0x0000, 0x0020,0x0020,0x008C,0x0000, /* FB1E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB20 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB22 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB24 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB26 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB28 */
+0x0020,0x0091,0x0000,0x0000, 0x0020,0x0090,0x0000,0x0000, /* FB2A */
+0x0020,0x0092,0x0091,0x0000, 0x0020,0x0092,0x0090,0x0000, /* FB2C */
+0x0020,0x008C,0x0000,0x0000, 0x0020,0x008D,0x0000,0x0000, /* FB2E */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB30 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB32 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB34 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB36 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB38 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB3A */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB3C */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB3E */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB40 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB42 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB44 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB46 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x0092,0x0000,0x0000, /* FB48 */
+0x0020,0x0092,0x0000,0x0000, 0x0020,0x008E,0x0000,0x0000, /* FB4A */
+0x0020,0x0095,0x0000,0x0000, 0x0020,0x0095,0x0000,0x0000, /* FB4C */
+0x0020,0x0095,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FB4E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB50 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB52 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB54 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB56 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB58 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB5A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB5C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB5E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB60 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB62 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB64 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB66 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB68 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB6A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB6C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB6E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB70 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB72 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB74 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB76 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB78 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB7A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB7C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB7E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB80 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB82 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB84 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB86 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB88 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB8A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB8C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB8E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB90 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB92 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB94 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB96 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB98 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB9A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB9C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FB9E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBA0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBA2 */
+0x0020,0x00B1,0x0000,0x0000, 0x0020,0x00B1,0x0000,0x0000, /* FBA4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBA6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBA8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBAA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBAC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBAE */
+0x0020,0x00B1,0x0000,0x0000, 0x0020,0x00B1,0x0000,0x0000, /* FBB0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBB2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBB4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBB6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBB8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBBA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBBC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBBE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBC0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBC2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBC4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBC6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBC8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBCA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBCC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBCE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBD0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBD2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBD4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBD6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBD8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBDA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBDC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBDE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBE0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBE2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBE4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBE6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBE8 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBEA */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBEC */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBEE */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBF0 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBF2 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBF4 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBF6 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBF8 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FBFA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FBFC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* FBFE */
+};
+
+static const uint16 uca520_p0FC_w2[]= { /* FC00 (3 weights per char) */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC00 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC03 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC06 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC09 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC0C */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC0F */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC12 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC15 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC18 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC1B */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC1E */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC21 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC24 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC27 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC2A */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC2D */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC30 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC33 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC36 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC39 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC3C */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC3F */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC42 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC45 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC48 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC4B */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC4E */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC51 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC54 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC57 */
+0x0020,0x0020,0x0000, 0x0020,0x00BC,0x0000, 0x0020,0x00BC,0x0000, /* FC5A */
+0x0020,0x00BC,0x0000, 0x00A3,0x00AD,0x0000, 0x00A5,0x00AD,0x0000, /* FC5D */
+0x00A7,0x00AD,0x0000, 0x00A9,0x00AD,0x0000, 0x00AB,0x00AD,0x0000, /* FC60 */
+0x00AD,0x00BC,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC63 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC66 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC69 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC6C */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC6F */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC72 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC75 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC78 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC7B */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC7E */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC81 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC84 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC87 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC8A */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC8D */
+0x0020,0x00BC,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC90 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC93 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC96 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC99 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC9C */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FC9F */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCA2 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCA5 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCA8 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCAB */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCAE */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCB1 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCB4 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCB7 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCBA */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCBD */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCC0 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCC3 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCC6 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCC9 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCCC */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCCF */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCD2 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCD5 */
+0x0020,0x0020,0x0000, 0x0020,0x00BC,0x0000, 0x0020,0x0020,0x0000, /* FCD8 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCDB */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCDE */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCE1 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCE4 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCE7 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCEA */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCED */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x00A7,0x00AD,0x0000, /* FCF0 */
+0x00A9,0x00AD,0x0000, 0x00AB,0x00AD,0x0000, 0x0020,0x0020,0x0000, /* FCF3 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCF6 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCF9 */
+0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, 0x0020,0x0020,0x0000, /* FCFC */
+0x0020,0x0020,0x0000 };
+
+static const uint16 uca520_p0FD_w2[]= { /* FD00 (9 weights per char) */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD00 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD01 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD02 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD03 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD04 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD05 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD06 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD07 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD08 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD09 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD0F */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD10 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD11 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD12 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD13 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD14 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD15 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD16 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD17 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD18 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD19 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD1F */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD20 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD21 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD22 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD23 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD24 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD25 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD26 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD27 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD28 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD29 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2B */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2C */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2D */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2E */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD2F */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD30 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD31 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD32 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD33 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD34 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD35 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD36 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD37 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD38 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD39 */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3A */
+0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3B */
+0x0020,0x00A2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3C */
+0x0020,0x00A2,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3D */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3E */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD3F */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD40 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD41 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD42 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD43 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD44 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD45 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD46 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD47 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD48 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD49 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4A */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4B */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4C */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4D */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4E */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD4F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD50 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD51 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD52 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD53 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD54 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD55 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD56 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD57 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD58 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD59 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD5F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD60 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD61 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD62 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD63 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD64 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD65 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD66 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD67 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD68 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD69 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD6F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD70 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD71 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD72 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD73 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD74 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD75 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD76 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD77 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD78 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD79 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD7F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD80 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD81 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD82 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD83 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD84 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD85 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD86 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD87 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD88 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD89 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD8F */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD90 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD91 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD92 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD93 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD94 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD95 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD96 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD97 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD98 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD99 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9A */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9B */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9C */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9D */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9E */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FD9F */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA0 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA1 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA2 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA3 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA4 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA5 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA6 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA7 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA8 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDA9 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAA */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAB */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAC */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAD */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAE */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDAF */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB0 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB1 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB2 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB3 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB4 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB5 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB6 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB7 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB8 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDB9 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBA */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBB */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBC */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBD */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBE */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDBF */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC0 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC1 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC2 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC3 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC4 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC5 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC6 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC7 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC8 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDC9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCA */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCB */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCD */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDCF */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD0 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD1 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD2 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD3 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD4 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD5 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD6 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD7 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD8 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDD9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDA */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDB */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDD */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDDF */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE0 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE1 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE2 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE3 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE4 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE5 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE6 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE7 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE8 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDE9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEA */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEB */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDED */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDEF */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF0 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF1 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF2 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF3 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF4 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF5 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF6 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF7 */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF8 */
+0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDF9 */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFA */
+0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0000, /* FDFB */
+0x0020,0x0020,0x0020,0x0020,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFC */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFD */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000, /* FDFE */
+0x0020,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 /* FDFF */
+};
+
+static const uint16 uca520_p0FE_w2[]= { /* FE00 (4 weights per char) */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE00 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE02 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE04 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE06 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE08 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0A */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0C */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE0E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE10 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE12 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE14 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE16 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0020,0x0000, /* FE18 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE1A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE1C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE1E */
+0x0082,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE20 */
+0x0081,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE22 */
+0x0000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE24 */
+0x0000,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE26 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE28 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE2A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE2C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE2E */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE30 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE32 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE34 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE36 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE38 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE3A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE3C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE3E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE40 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE42 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE44 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE46 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE48 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE4A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE4C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE4E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE50 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE52 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE54 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE56 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE58 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE5A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE5C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE5E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE60 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE62 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE64 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE66 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE68 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE6A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE6C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE6E */
+0x00A2,0x0000,0x0000,0x0000, 0x00A2,0x0000,0x0000,0x0000, /* FE70 */
+0x00A3,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000, /* FE72 */
+0x00A5,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE74 */
+0x00A7,0x0000,0x0000,0x0000, 0x00A7,0x0000,0x0000,0x0000, /* FE76 */
+0x00A9,0x0000,0x0000,0x0000, 0x00A9,0x0000,0x0000,0x0000, /* FE78 */
+0x00AB,0x0000,0x0000,0x0000, 0x00AB,0x0000,0x0000,0x0000, /* FE7A */
+0x00AD,0x0000,0x0000,0x0000, 0x00AD,0x0000,0x0000,0x0000, /* FE7C */
+0x00AF,0x0000,0x0000,0x0000, 0x00AF,0x0000,0x0000,0x0000, /* FE7E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE80 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE82 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE84 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE86 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE88 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE8A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE8C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE8E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE90 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE92 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE94 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE96 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE98 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE9A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE9C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FE9E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEA0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEA2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEA4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEA6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEA8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEAA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEAC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEAE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEB0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEB2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEB4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEB6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEB8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEBA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEBC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEBE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEC0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEC2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEC4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEC6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEC8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FECA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FECC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FECE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FED0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FED2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FED4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FED6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FED8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEDA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEDC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEDE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEE0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEE2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEE4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEE6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEE8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEEA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEEC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEEE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEF0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEF2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FEF4 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FEF6 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FEF8 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* FEFA */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* FEFC */
+0x0020,0x0000,0x0000,0x0000, 0x0000,0x0000,0x0000,0x0000 /* FEFE */
+};
+
+static const uint16 uca520_p0FF_w2[]= { /* FF00 (2 weights per char) */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF00 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF04 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF08 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF0C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF10 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF14 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF18 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF1C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF20 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF24 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF28 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF2C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF30 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF34 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF38 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF3C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF40 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF44 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF48 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF4C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF50 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF54 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF58 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF5C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF60 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF64 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF68 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF6C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF70 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF74 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF78 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF7C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF80 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF84 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF88 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF8C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF90 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF94 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FF98 */
+0x0020,0x0000, 0x0020,0x0000, 0x0148,0x0000, 0x0149,0x0000, /* FF9C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFA0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFA4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFA8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFAC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFB0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFB4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFB8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFBC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFC0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFC4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFC8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFCC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFD0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFD4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFD8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFDC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFE0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFE4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFE8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFEC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFF0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* FFF4 */
+0x0020,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* FFF8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000 /* FFFC */
+};
+
+static const uint16 uca520_p101_w2[]= { /* 10100 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10100 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10103 */
+0x0020,0x0000,0x0000, 0x0020,0x0186,0x0000, 0x0020,0x0186,0x0000, /* 10106 */
+0x0020,0x0186,0x0000, 0x0020,0x0186,0x0000, 0x0020,0x0186,0x0000, /* 10109 */
+0x0020,0x0186,0x0000, 0x0020,0x0186,0x0000, 0x0020,0x0186,0x0000, /* 1010C */
+0x0020,0x0186,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1010F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10112 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10115 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10118 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1011B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1011E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10121 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10124 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10127 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1012A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1012D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10130 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10133 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10136 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10139 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1013C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1013F */
+0x0020,0x0187,0x0000, 0x0020,0x0187,0x0000, 0x0020,0x0000,0x0000, /* 10142 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10145 */
+0x0020,0x0187,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10148 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1014B */
+0x0020,0x0000,0x0000, 0x0020,0x0187,0x0000, 0x0020,0x0000,0x0000, /* 1014E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10151 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10154 */
+0x0020,0x0000,0x0000, 0x0020,0x0187,0x0000, 0x0020,0x0187,0x0000, /* 10157 */
+0x0020,0x0187,0x0000, 0x0020,0x0187,0x0000, 0x0020,0x0187,0x0000, /* 1015A */
+0x0020,0x0187,0x0000, 0x0020,0x0187,0x0000, 0x0020,0x0187,0x0000, /* 1015D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10160 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10163 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10166 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10169 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1016C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1016F */
+0x0020,0x0000,0x0000, 0x0020,0x0187,0x0000, 0x0020,0x0000,0x0000, /* 10172 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10175 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10178 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1017B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1017E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10181 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10184 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10187 */
+0x0020,0x0187,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1018A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1018D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10190 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10193 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10196 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10199 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1019C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1019F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101F9 */
+0x0020,0x0000,0x0000, 0x0158,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 101FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p103_w2[]= { /* 10300 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10300 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10303 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10306 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10309 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1030C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1030F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10312 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10315 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10318 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1031B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0189,0x0000, /* 1031E */
+0x0020,0x0189,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10321 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10324 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10327 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1032A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1032D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10330 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10333 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10336 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10339 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1033C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1033F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10342 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10345 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10348 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1034B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1034E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10351 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10354 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10357 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1035A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1035D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10360 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10363 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10366 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10369 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1036C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1036F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10372 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10375 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10378 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1037B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1037E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10381 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10384 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10387 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1038A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1038D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10390 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10393 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10396 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10399 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1039C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1039F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x018A,0x0000, /* 103CF */
+0x0020,0x018A,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 103FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p104_w2[]= { /* 10400 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10400 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10403 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10406 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10409 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1040C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1040F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10412 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10415 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10418 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1041B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1041E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10421 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10424 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10427 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1042A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1042D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10430 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10433 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10436 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10439 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1043C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1043F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10442 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10445 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10448 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1044B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1044E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10451 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10454 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10457 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1045A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1045D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10460 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10463 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10466 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10469 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1046C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1046F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10472 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10475 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10478 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1047B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1047E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10481 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10484 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10487 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1048A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1048D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10490 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10493 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10496 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10499 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1049C */
+0x0020,0x0000,0x0000, 0x0020,0x0164,0x0000, 0x0020,0x0164,0x0000, /* 1049F */
+0x0020,0x0164,0x0000, 0x0020,0x0164,0x0000, 0x0020,0x0164,0x0000, /* 104A2 */
+0x0020,0x0164,0x0000, 0x0020,0x0164,0x0000, 0x0020,0x0164,0x0000, /* 104A5 */
+0x0020,0x0164,0x0000, 0x0020,0x0164,0x0000, 0x0020,0x0000,0x0000, /* 104A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 104FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p108_w2[]= { /* 10800 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10800 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10803 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10806 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10809 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1080C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1080F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10812 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10815 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10818 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1081B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1081E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10821 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10824 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10827 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1082A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1082D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10830 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10833 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10836 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10839 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1083C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1083F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10842 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10845 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10848 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1084B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1084E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10851 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10854 */
+0x0020,0x0000,0x0000, 0x0020,0x018E,0x0000, 0x0020,0x018E,0x0000, /* 10857 */
+0x0020,0x018E,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1085A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1085D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10860 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10863 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10866 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10869 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1086C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1086F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10872 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10875 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10878 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1087B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1087E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10881 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10884 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10887 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1088A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1088D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10890 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10893 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10896 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10899 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1089C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1089F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 108FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p109_w2[]= { /* 10900 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10900 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10903 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10906 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10909 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1090C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1090F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10912 */
+0x0020,0x0000,0x0000, 0x0020,0x018D,0x0000, 0x0020,0x0000,0x0000, /* 10915 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x018D,0x0000, /* 10918 */
+0x0020,0x018D,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1091B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1091E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10921 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10924 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10927 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1092A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1092D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10930 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10933 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10936 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10939 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1093C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1093F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10942 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10945 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10948 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1094B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1094E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10951 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10954 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10957 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1095A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1095D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10960 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10963 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10966 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10969 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1096C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1096F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10972 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10975 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10978 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1097B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1097E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10981 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10984 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10987 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1098A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1098D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10990 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10993 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10996 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10999 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1099C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1099F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 109FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p10A_w2[]= { /* 10A00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A09 */
+0x0020,0x0000,0x0000, 0x0060,0x0000,0x0000, 0x010D,0x0000,0x0000, /* 10A0C */
+0x010E,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x010F,0x0000,0x0000, /* 10A36 */
+0x0110,0x0000,0x0000, 0x0111,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A3C */
+0x0020,0x0000,0x0000, 0x0020,0x0191,0x0000, 0x0020,0x0191,0x0000, /* 10A3F */
+0x0020,0x0191,0x0000, 0x0020,0x0191,0x0000, 0x0020,0x0000,0x0000, /* 10A42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x018C,0x0000, /* 10A7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10A9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ABA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ABD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ACC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ACF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ADB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ADE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10AFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p10B_w2[]= { /* 10B00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B2A */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10B2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B54 */
+0x0020,0x0000,0x0000, 0x0020,0x018F,0x0000, 0x0020,0x018F,0x0000, /* 10B57 */
+0x0020,0x018F,0x0000, 0x0020,0x018F,0x0000, 0x0020,0x0000,0x0000, /* 10B5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B75 */
+0x0020,0x0190,0x0000, 0x0020,0x0190,0x0000, 0x0020,0x0190,0x0000, /* 10B78 */
+0x0020,0x0190,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10B9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10BFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p10C_w2[]= { /* 10C00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C00 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C06 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C09 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C0C */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C0F */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C12 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C15 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C18 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C1B */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C21 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C24 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C27 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C2A */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C30 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C33 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C36 */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C3C */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C3F */
+0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, /* 10C42 */
+0x0020,0x0000,0x0000, 0x0020,0x0159,0x0000, 0x0020,0x0000,0x0000, /* 10C45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C5D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C60 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C63 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10C9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CCC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CCF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CD2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CD5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CD8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10CFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p10E_w2[]= { /* 10E00 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E00 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E03 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E06 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E09 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E0C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E0F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E12 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E15 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E18 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E1B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E1E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E21 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E24 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E27 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E2A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E2D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E30 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E33 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E36 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E39 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E3C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E3F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E42 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E45 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E48 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E4B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E4E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E51 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E54 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E57 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E5A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E5D */
+0x0020,0x0161,0x0000, 0x0020,0x0161,0x0000, 0x0020,0x0161,0x0000, /* 10E60 */
+0x0020,0x0161,0x0000, 0x0020,0x0161,0x0000, 0x0020,0x0161,0x0000, /* 10E63 */
+0x0020,0x0161,0x0000, 0x0020,0x0161,0x0000, 0x0020,0x0161,0x0000, /* 10E66 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E69 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E6C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E6F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E72 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E75 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E78 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E7B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E7E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E81 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E84 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E87 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E8A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E8D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E90 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E93 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E96 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E99 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E9C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10E9F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EA2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EA5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EA8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EAB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EAE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EB1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EB4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EB7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EBA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EBD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EC0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EC3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EC6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EC9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ECC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ECF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ED2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ED5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10ED8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EDB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EDE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EE1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EE4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EE7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EEA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EF0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EF3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EF6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EF9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 10EFC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p110_w2[]= { /* 11000 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11000 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11003 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11006 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11009 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1100C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1100F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11012 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11015 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11018 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1101B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1101E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11021 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11024 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11027 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1102A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1102D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11030 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11033 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11036 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11039 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1103C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1103F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11042 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11045 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11048 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1104B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1104E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11051 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11054 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11057 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1105A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1105D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11060 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11063 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11066 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11069 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1106C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1106F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11072 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11075 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11078 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1107B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0113,0x0000,0x0000, /* 1107E */
+0x0114,0x0000,0x0000, 0x0115,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11081 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11084 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11087 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1108A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1108D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11090 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11093 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 11096 */
+0x0020,0x0000,0x0000, 0x0020,0x0112,0x0000, 0x0020,0x0000,0x0000, /* 11099 */
+0x0020,0x0112,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1109C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1109F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110A8 */
+0x0020,0x0112,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110B7 */
+0x0112,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110BA */
+0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 110FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p124_w2[]= { /* 12400 (3 weights per char) */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12400 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12403 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12406 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12409 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1240C */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1240F */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12412 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12415 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12418 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1241B */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1241E */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12421 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12424 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12427 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1242A */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1242D */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x0000,0x0000, /* 12430 */
+0x0020,0x0000,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12433 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12436 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12439 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1243C */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1243F */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12442 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12445 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12448 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1244B */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 1244E */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12451 */
+0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x0000,0x0000, /* 12454 */
+0x0020,0x0000,0x0000, 0x0020,0x018B,0x0000, 0x0020,0x018B,0x0000, /* 12457 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1245A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1245D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12460 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12463 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12466 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12469 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1246C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1246F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12472 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12475 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12478 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1247B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1247E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12481 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12484 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12487 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1248A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1248D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12490 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12493 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12496 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 12499 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1249C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1249F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 124FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p1D1_w2[]= { /* 1D100 (2 weights per char) */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D100 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D104 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D108 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D10C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D110 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D114 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D118 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D11C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D120 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D124 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D128 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D12C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D130 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D134 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D138 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D13C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D140 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D144 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D148 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D14C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D150 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D154 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D158 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D15C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D160 */
+0x0020,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D164 */
+0x0000,0x0000, 0x0000,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D168 */
+0x0020,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D16C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D170 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D174 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D178 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D17C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0020,0x0000, /* 1D180 */
+0x0020,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D184 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D188 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D18C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D190 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D194 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D198 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D19C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1A0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1A4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D1A8 */
+0x0000,0x0000, 0x0000,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1AC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1B0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1B4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1B8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1BC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1C0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1C4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1C8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1CC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1D0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1D4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1D8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1DC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1E0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1E4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1E8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1EC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1F0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1F4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D1F8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000 /* 1D1FC */
+};
+
+static const uint16 uca520_p1D2_w2[]= { /* 1D200 (2 weights per char) */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D200 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D204 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D208 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D20C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D210 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D214 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D218 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D21C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D220 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D224 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D228 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D22C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D230 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D234 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D238 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D23C */
+0x0020,0x0000, 0x0020,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* 1D240 */
+0x0000,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D244 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D248 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D24C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D250 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D254 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D258 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D25C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D260 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D264 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D268 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D26C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D270 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D274 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D278 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D27C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D280 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D284 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D288 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D28C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D290 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D294 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D298 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D29C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2A0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2A4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2A8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2AC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2B0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2B4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2B8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2BC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2C0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2C4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2C8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2CC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2D0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2D4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2D8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2DC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2E0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2E4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2E8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2EC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2F0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2F4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* 1D2F8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000 /* 1D2FC */
+};
+
+static const uint16 uca520_p1D3_w2[]= { /* 1D300 (3 weights per char) */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D300 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D303 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D306 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D309 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D30C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D30F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D312 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D315 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D318 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D31B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D31E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D321 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D324 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D327 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D32A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D32D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D330 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D333 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D336 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D339 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D33C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D33F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D342 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D345 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D348 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D34B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D34E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D351 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D354 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D357 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D35A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D35D */
+0x0020,0x0192,0x0000, 0x0020,0x0192,0x0000, 0x0020,0x0192,0x0000, /* 1D360 */
+0x0020,0x0192,0x0000, 0x0020,0x0192,0x0000, 0x0020,0x0192,0x0000, /* 1D363 */
+0x0020,0x0192,0x0000, 0x0020,0x0192,0x0000, 0x0020,0x0192,0x0000, /* 1D366 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D369 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D36C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D36F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D372 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D375 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D378 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D37B */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D37E */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D381 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D384 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D387 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D38A */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D38D */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D390 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D393 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D396 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D399 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D39C */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D39F */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3A2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3A5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3A8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3AB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3AE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3B1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3B4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3B7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3BA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3BD */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3C0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3C3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3C6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3C9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3CC */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3CF */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3D2 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3D5 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3D8 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3DB */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3DE */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3E1 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3E4 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3E7 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3EA */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3ED */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3F0 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3F3 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3F6 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3F9 */
+0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000, /* 1D3FC */
+0x0020,0x0000,0x0000 };
+
+static const uint16 uca520_p1F1_w2[]= { /* 1F100 (4 weights per char) */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F100 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F102 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F104 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F106 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F108 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F10A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F10C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F10E */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F110 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F112 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F114 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F116 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F118 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F11A */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F11C */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F11E */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F120 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F122 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F124 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F126 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F128 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F12A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F12C */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F12E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F130 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F132 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F134 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F136 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F138 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F13A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F13C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F13E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F140 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F142 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F144 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F146 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F148 */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F14A */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F14C */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F14E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F150 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F152 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F154 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F156 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F158 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F15A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F15C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F15E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F160 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F162 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F164 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F166 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F168 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F16A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F16C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F16E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F170 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F172 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F174 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F176 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F178 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F17A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F17C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F17E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F180 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F182 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F184 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F186 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F188 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F18A */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0020,0x0000,0x0000, /* 1F18C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F18E */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F190 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F192 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F194 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F196 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F198 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F19A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F19C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F19E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1A8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1AA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1AC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1C8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1CA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1CC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1CE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1D0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1D2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1D4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1D6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1D8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1DE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1E0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1E8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1EA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F1FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 1F1FE */
+};
+
+static const uint16 uca520_p1F2_w2[]= { /* 1F200 (4 weights per char) */
+0x0020,0x0020,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F200 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F202 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F204 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F206 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F208 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F20A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F20C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F20E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F210 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0148,0x0000,0x0000, /* 1F212 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F214 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F216 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F218 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F21A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F21C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F21E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F220 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F222 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F224 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F226 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F228 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F22A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F22C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F22E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F230 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F232 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F234 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F236 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F238 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F23A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F23C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F23E */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F240 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F242 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F244 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0020,0x0020,0x0000, /* 1F246 */
+0x0020,0x0020,0x0020,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F248 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F24A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F24C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F24E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F250 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F252 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F254 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F256 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F258 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F25A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F25C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F25E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F260 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F262 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F264 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F266 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F268 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F26A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F26C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F26E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F270 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F272 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F274 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F276 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F278 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F27A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F27C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F27E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F280 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F282 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F284 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F286 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F288 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F28A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F28C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F28E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F290 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F292 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F294 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F296 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F298 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F29A */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F29C */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F29E */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2A0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2A2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2A4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2A6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2A8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2AA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2AC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2AE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2B0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2B2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2B4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2B6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2B8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2BA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2BC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2BE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2C0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2C2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2C4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2C6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2C8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2CA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2CC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2CE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2D0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2D2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2D4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2D6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2D8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2DA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2DC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2DE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2E0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2E2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2E4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2E6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2E8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2EA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2EC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2EE */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2F0 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2F2 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2F4 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2F6 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2F8 */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2FA */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000, /* 1F2FC */
+0x0020,0x0000,0x0000,0x0000, 0x0020,0x0000,0x0000,0x0000 /* 1F2FE */
+};
+
+static const uint16 uca520_pE00_w2[]= { /* E0000 (2 weights per char) */
+0x0020,0x0000, 0x0000,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0000 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0004 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0008 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E000C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0010 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0014 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0018 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E001C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0020 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0024 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0028 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E002C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0030 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0034 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0038 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E003C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0040 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0044 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0048 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E004C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0050 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0054 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0058 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E005C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0060 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0064 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0068 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E006C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0070 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0074 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0078 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E007C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0080 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0084 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0088 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E008C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0090 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0094 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E0098 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E009C */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00A0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00A4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00A8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00AC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00B0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00B4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00B8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00BC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00C0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00C4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00C8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00CC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00D0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00D4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00D8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00DC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00E0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00E4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00E8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00EC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00F0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00F4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E00F8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000 /* E00FC */
+};
+
+static const uint16 uca520_pE01_w2[]= { /* E0100 (2 weights per char) */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0100 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0104 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0108 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E010C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0110 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0114 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0118 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E011C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0120 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0124 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0128 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E012C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0130 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0134 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0138 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E013C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0140 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0144 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0148 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E014C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0150 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0154 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0158 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E015C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0160 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0164 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0168 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E016C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0170 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0174 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0178 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E017C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0180 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0184 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0188 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E018C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0190 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0194 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E0198 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E019C */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01A0 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01A4 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01A8 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01AC */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01B0 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01B4 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01B8 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01BC */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01C0 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01C4 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01C8 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01CC */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01D0 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01D4 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01D8 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01DC */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01E0 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01E4 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01E8 */
+0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, 0x0000,0x0000, /* E01EC */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E01F0 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E01F4 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, /* E01F8 */
+0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000, 0x0020,0x0000 /* E01FC */
+};
+
+const uchar uca520_length_w2[4352]={
+4,5,4,4,3,3,3,3,2,3,3,3,3,3,3,4,
+4,0,0,3,0,0,5,3,3,4,4,3,3,4,4,5,
+5,5,4,0,5,0,0,3,0,0,5,0,4,3,3,0,
+3,3,8,7,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,3,4,3,3,3,3,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,4,3,9,4,2,
+0,3,0,3,3,0,0,0,3,3,3,3,3,0,3,0,
+3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,2,2,3,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+0,0,0,0,0,0,0,0,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 uint16 *uca520_weight_w2[4352]= {
+uca520_p000_w2,uca520_p001_w2,uca520_p002_w2,uca520_p003_w2,
+uca520_p004_w2,uca520_p005_w2,uca520_p006_w2,uca520_p007_w2,
+uca520_p008_w2,uca520_p009_w2,uca520_p00A_w2,uca520_p00B_w2,
+uca520_p00C_w2,uca520_p00D_w2,uca520_p00E_w2,uca520_p00F_w2,
+uca520_p010_w2,NULL ,NULL ,uca520_p013_w2,
+NULL ,NULL ,uca520_p016_w2,uca520_p017_w2,
+uca520_p018_w2,uca520_p019_w2,uca520_p01A_w2,uca520_p01B_w2,
+uca520_p01C_w2,uca520_p01D_w2,uca520_p01E_w2,uca520_p01F_w2,
+uca520_p020_w2,uca520_p021_w2,uca520_p022_w2,NULL ,
+uca520_p024_w2,NULL ,NULL ,uca520_p027_w2,
+NULL ,NULL ,uca520_p02A_w2,NULL ,
+uca520_p02C_w2,uca520_p02D_w2,uca520_p02E_w2,NULL ,
+uca520_p030_w2,uca520_p031_w2,uca520_p032_w2,uca520_p033_w2,
+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 ,uca520_p0A6_w2,uca520_p0A7_w2,
+uca520_p0A8_w2,uca520_p0A9_w2,uca520_p0AA_w2,uca520_p0AB_w2,
+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 ,uca520_p0FB_w2,
+uca520_p0FC_w2,uca520_p0FD_w2,uca520_p0FE_w2,uca520_p0FF_w2,
+NULL ,uca520_p101_w2,NULL ,uca520_p103_w2,
+uca520_p104_w2,NULL ,NULL ,NULL ,
+uca520_p108_w2,uca520_p109_w2,uca520_p10A_w2,uca520_p10B_w2,
+uca520_p10C_w2,NULL ,uca520_p10E_w2,NULL ,
+uca520_p110_w2,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+NULL ,NULL ,NULL ,NULL ,
+uca520_p124_w2,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 ,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 ,uca520_p1D1_w2,uca520_p1D2_w2,uca520_p1D3_w2,
+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 ,uca520_p1F1_w2,uca520_p1F2_w2,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,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 ,
+uca520_pE00_w2,uca520_pE01_w2,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 ,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 ,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 ,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 ,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 ,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
+};
+
+#define THAI_CONTRACTIONS 231
+#define THAI_CONTRACTIONS_W2 1
+
+MY_CONTRACTION thai_contractions[THAI_CONTRACTIONS]=
+{
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER KO KAI> */
+ { 0x0E40, 0x0E01, 0 },
+ { 0x1F70, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER KO KAI> */
+ { 0x0E41, 0x0E01, 0 },
+ { 0x1F70, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER KO KAI> */
+ { 0x0E42, 0x0E01, 0 },
+ { 0x1F70, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KO KAI> */
+ { 0x0E43, 0x0E01, 0 },
+ { 0x1F70, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KO KAI> */
+ { 0x0E44, 0x0E01, 0 },
+ { 0x1F70, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER KHO KHAI> */
+ { 0x0E40, 0x0E02, 0 },
+ { 0x1F71, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHAI> */
+ { 0x0E41, 0x0E02, 0 },
+ { 0x1F71, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER KHO KHAI> */
+ { 0x0E42, 0x0E02, 0 },
+ { 0x1F71, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHAI> */
+ { 0x0E43, 0x0E02, 0 },
+ { 0x1F71, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHAI> */
+ { 0x0E44, 0x0E02, 0 },
+ { 0x1F71, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER KHO KHUAT> */
+ { 0x0E40, 0x0E03, 0 },
+ { 0x1F72, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHUAT> */
+ { 0x0E41, 0x0E03, 0 },
+ { 0x1F72, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER KHO KHUAT> */
+ { 0x0E42, 0x0E03, 0 },
+ { 0x1F72, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHUAT> */
+ { 0x0E43, 0x0E03, 0 },
+ { 0x1F72, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHUAT> */
+ { 0x0E44, 0x0E03, 0 },
+ { 0x1F72, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER KHO KHWAI> */
+ { 0x0E40, 0x0E04, 0 },
+ { 0x1F73, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHWAI> */
+ { 0x0E41, 0x0E04, 0 },
+ { 0x1F73, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER KHO KHWAI> */
+ { 0x0E42, 0x0E04, 0 },
+ { 0x1F73, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHWAI> */
+ { 0x0E43, 0x0E04, 0 },
+ { 0x1F73, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHWAI> */
+ { 0x0E44, 0x0E04, 0 },
+ { 0x1F73, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER KHO KHON> */
+ { 0x0E40, 0x0E05, 0 },
+ { 0x1F74, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER KHO KHON> */
+ { 0x0E41, 0x0E05, 0 },
+ { 0x1F74, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER KHO KHON> */
+ { 0x0E42, 0x0E05, 0 },
+ { 0x1F74, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO KHON> */
+ { 0x0E43, 0x0E05, 0 },
+ { 0x1F74, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO KHON> */
+ { 0x0E44, 0x0E05, 0 },
+ { 0x1F74, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER KHO RAKHANG> */
+ { 0x0E40, 0x0E06, 0 },
+ { 0x1F75, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER KHO RAKHANG> */
+ { 0x0E41, 0x0E06, 0 },
+ { 0x1F75, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER KHO RAKHANG> */
+ { 0x0E42, 0x0E06, 0 },
+ { 0x1F75, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER KHO RAKHANG> */
+ { 0x0E43, 0x0E06, 0 },
+ { 0x1F75, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER KHO RAKHANG> */
+ { 0x0E44, 0x0E06, 0 },
+ { 0x1F75, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER NGO NGU> */
+ { 0x0E40, 0x0E07, 0 },
+ { 0x1F76, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER NGO NGU> */
+ { 0x0E41, 0x0E07, 0 },
+ { 0x1F76, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER NGO NGU> */
+ { 0x0E42, 0x0E07, 0 },
+ { 0x1F76, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NGO NGU> */
+ { 0x0E43, 0x0E07, 0 },
+ { 0x1F76, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NGO NGU> */
+ { 0x0E44, 0x0E07, 0 },
+ { 0x1F76, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER CHO CHAN> */
+ { 0x0E40, 0x0E08, 0 },
+ { 0x1F77, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHAN> */
+ { 0x0E41, 0x0E08, 0 },
+ { 0x1F77, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER CHO CHAN> */
+ { 0x0E42, 0x0E08, 0 },
+ { 0x1F77, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHAN> */
+ { 0x0E43, 0x0E08, 0 },
+ { 0x1F77, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHAN> */
+ { 0x0E44, 0x0E08, 0 },
+ { 0x1F77, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER CHO CHING> */
+ { 0x0E40, 0x0E09, 0 },
+ { 0x1F78, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHING> */
+ { 0x0E41, 0x0E09, 0 },
+ { 0x1F78, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER CHO CHING> */
+ { 0x0E42, 0x0E09, 0 },
+ { 0x1F78, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHING> */
+ { 0x0E43, 0x0E09, 0 },
+ { 0x1F78, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHING> */
+ { 0x0E44, 0x0E09, 0 },
+ { 0x1F78, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER CHO CHANG> */
+ { 0x0E40, 0x0E0A, 0 },
+ { 0x1F79, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHANG> */
+ { 0x0E41, 0x0E0A, 0 },
+ { 0x1F79, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER CHO CHANG> */
+ { 0x0E42, 0x0E0A, 0 },
+ { 0x1F79, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHANG> */
+ { 0x0E43, 0x0E0A, 0 },
+ { 0x1F79, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHANG> */
+ { 0x0E44, 0x0E0A, 0 },
+ { 0x1F79, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER SO SO> */
+ { 0x0E40, 0x0E0B, 0 },
+ { 0x1F7A, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER SO SO> */
+ { 0x0E41, 0x0E0B, 0 },
+ { 0x1F7A, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER SO SO> */
+ { 0x0E42, 0x0E0B, 0 },
+ { 0x1F7A, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SO> */
+ { 0x0E43, 0x0E0B, 0 },
+ { 0x1F7A, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SO> */
+ { 0x0E44, 0x0E0B, 0 },
+ { 0x1F7A, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER CHO CHOE> */
+ { 0x0E40, 0x0E0C, 0 },
+ { 0x1F7B, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER CHO CHOE> */
+ { 0x0E41, 0x0E0C, 0 },
+ { 0x1F7B, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER CHO CHOE> */
+ { 0x0E42, 0x0E0C, 0 },
+ { 0x1F7B, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER CHO CHOE> */
+ { 0x0E43, 0x0E0C, 0 },
+ { 0x1F7B, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER CHO CHOE> */
+ { 0x0E44, 0x0E0C, 0 },
+ { 0x1F7B, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER YO YING> */
+ { 0x0E40, 0x0E0D, 0 },
+ { 0x1F7C, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER YO YING> */
+ { 0x0E41, 0x0E0D, 0 },
+ { 0x1F7C, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER YO YING> */
+ { 0x0E42, 0x0E0D, 0 },
+ { 0x1F7C, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YING> */
+ { 0x0E43, 0x0E0D, 0 },
+ { 0x1F7C, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YING> */
+ { 0x0E44, 0x0E0D, 0 },
+ { 0x1F7C, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER DO CHADA> */
+ { 0x0E40, 0x0E0E, 0 },
+ { 0x1F7D, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER DO CHADA> */
+ { 0x0E41, 0x0E0E, 0 },
+ { 0x1F7D, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER DO CHADA> */
+ { 0x0E42, 0x0E0E, 0 },
+ { 0x1F7D, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO CHADA> */
+ { 0x0E43, 0x0E0E, 0 },
+ { 0x1F7D, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO CHADA> */
+ { 0x0E44, 0x0E0E, 0 },
+ { 0x1F7D, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER TO PATAK> */
+ { 0x0E40, 0x0E0F, 0 },
+ { 0x1F7E, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER TO PATAK> */
+ { 0x0E41, 0x0E0F, 0 },
+ { 0x1F7E, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER TO PATAK> */
+ { 0x0E42, 0x0E0F, 0 },
+ { 0x1F7E, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO PATAK> */
+ { 0x0E43, 0x0E0F, 0 },
+ { 0x1F7E, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO PATAK> */
+ { 0x0E44, 0x0E0F, 0 },
+ { 0x1F7E, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER THO THAN> */
+ { 0x0E40, 0x0E10, 0 },
+ { 0x1F7F, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER THO THAN> */
+ { 0x0E41, 0x0E10, 0 },
+ { 0x1F7F, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER THO THAN> */
+ { 0x0E42, 0x0E10, 0 },
+ { 0x1F7F, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAN> */
+ { 0x0E43, 0x0E10, 0 },
+ { 0x1F7F, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAN> */
+ { 0x0E44, 0x0E10, 0 },
+ { 0x1F7F, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER THO NANGMONTHO> */
+ { 0x0E40, 0x0E11, 0 },
+ { 0x1F80, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER THO NANGMONTHO> */
+ { 0x0E41, 0x0E11, 0 },
+ { 0x1F80, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER THO NANGMONTHO> */
+ { 0x0E42, 0x0E11, 0 },
+ { 0x1F80, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO NANGMONTHO> */
+ { 0x0E43, 0x0E11, 0 },
+ { 0x1F80, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO NANGMONTHO> */
+ { 0x0E44, 0x0E11, 0 },
+ { 0x1F80, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER THO PHUTHAO> */
+ { 0x0E40, 0x0E12, 0 },
+ { 0x1F81, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER THO PHUTHAO> */
+ { 0x0E41, 0x0E12, 0 },
+ { 0x1F81, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER THO PHUTHAO> */
+ { 0x0E42, 0x0E12, 0 },
+ { 0x1F81, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO PHUTHAO> */
+ { 0x0E43, 0x0E12, 0 },
+ { 0x1F81, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO PHUTHAO> */
+ { 0x0E44, 0x0E12, 0 },
+ { 0x1F81, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER NO NEN> */
+ { 0x0E40, 0x0E13, 0 },
+ { 0x1F82, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER NO NEN> */
+ { 0x0E41, 0x0E13, 0 },
+ { 0x1F82, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER NO NEN> */
+ { 0x0E42, 0x0E13, 0 },
+ { 0x1F82, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NEN> */
+ { 0x0E43, 0x0E13, 0 },
+ { 0x1F82, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NEN> */
+ { 0x0E44, 0x0E13, 0 },
+ { 0x1F82, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER DO DEK> */
+ { 0x0E40, 0x0E14, 0 },
+ { 0x1F83, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER DO DEK> */
+ { 0x0E41, 0x0E14, 0 },
+ { 0x1F83, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER DO DEK> */
+ { 0x0E42, 0x0E14, 0 },
+ { 0x1F83, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER DO DEK> */
+ { 0x0E43, 0x0E14, 0 },
+ { 0x1F83, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER DO DEK> */
+ { 0x0E44, 0x0E14, 0 },
+ { 0x1F83, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER TO TAO> */
+ { 0x0E40, 0x0E15, 0 },
+ { 0x1F84, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER TO TAO> */
+ { 0x0E41, 0x0E15, 0 },
+ { 0x1F84, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER TO TAO> */
+ { 0x0E42, 0x0E15, 0 },
+ { 0x1F84, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER TO TAO> */
+ { 0x0E43, 0x0E15, 0 },
+ { 0x1F84, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER TO TAO> */
+ { 0x0E44, 0x0E15, 0 },
+ { 0x1F84, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER THO THUNG> */
+ { 0x0E40, 0x0E16, 0 },
+ { 0x1F85, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER THO THUNG> */
+ { 0x0E41, 0x0E16, 0 },
+ { 0x1F85, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER THO THUNG> */
+ { 0x0E42, 0x0E16, 0 },
+ { 0x1F85, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THUNG> */
+ { 0x0E43, 0x0E16, 0 },
+ { 0x1F85, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THUNG> */
+ { 0x0E44, 0x0E16, 0 },
+ { 0x1F85, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER THO THAHAN> */
+ { 0x0E40, 0x0E17, 0 },
+ { 0x1F86, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER THO THAHAN> */
+ { 0x0E41, 0x0E17, 0 },
+ { 0x1F86, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER THO THAHAN> */
+ { 0x0E42, 0x0E17, 0 },
+ { 0x1F86, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THAHAN> */
+ { 0x0E43, 0x0E17, 0 },
+ { 0x1F86, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THAHAN> */
+ { 0x0E44, 0x0E17, 0 },
+ { 0x1F86, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER THO THONG> */
+ { 0x0E40, 0x0E18, 0 },
+ { 0x1F87, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER THO THONG> */
+ { 0x0E41, 0x0E18, 0 },
+ { 0x1F87, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER THO THONG> */
+ { 0x0E42, 0x0E18, 0 },
+ { 0x1F87, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER THO THONG> */
+ { 0x0E43, 0x0E18, 0 },
+ { 0x1F87, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER THO THONG> */
+ { 0x0E44, 0x0E18, 0 },
+ { 0x1F87, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER NO NU> */
+ { 0x0E40, 0x0E19, 0 },
+ { 0x1F88, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER NO NU> */
+ { 0x0E41, 0x0E19, 0 },
+ { 0x1F88, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER NO NU> */
+ { 0x0E42, 0x0E19, 0 },
+ { 0x1F88, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER NO NU> */
+ { 0x0E43, 0x0E19, 0 },
+ { 0x1F88, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER NO NU> */
+ { 0x0E44, 0x0E19, 0 },
+ { 0x1F88, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER BO BAIMAI> */
+ { 0x0E40, 0x0E1A, 0 },
+ { 0x1F89, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER BO BAIMAI> */
+ { 0x0E41, 0x0E1A, 0 },
+ { 0x1F89, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER BO BAIMAI> */
+ { 0x0E42, 0x0E1A, 0 },
+ { 0x1F89, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER BO BAIMAI> */
+ { 0x0E43, 0x0E1A, 0 },
+ { 0x1F89, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER BO BAIMAI> */
+ { 0x0E44, 0x0E1A, 0 },
+ { 0x1F89, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER PO PLA> */
+ { 0x0E40, 0x0E1B, 0 },
+ { 0x1F8A, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER PO PLA> */
+ { 0x0E41, 0x0E1B, 0 },
+ { 0x1F8A, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER PO PLA> */
+ { 0x0E42, 0x0E1B, 0 },
+ { 0x1F8A, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PO PLA> */
+ { 0x0E43, 0x0E1B, 0 },
+ { 0x1F8A, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PO PLA> */
+ { 0x0E44, 0x0E1B, 0 },
+ { 0x1F8A, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER PHO PHUNG> */
+ { 0x0E40, 0x0E1C, 0 },
+ { 0x1F8B, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHUNG> */
+ { 0x0E41, 0x0E1C, 0 },
+ { 0x1F8B, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER PHO PHUNG> */
+ { 0x0E42, 0x0E1C, 0 },
+ { 0x1F8B, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHUNG> */
+ { 0x0E43, 0x0E1C, 0 },
+ { 0x1F8B, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHUNG> */
+ { 0x0E44, 0x0E1C, 0 },
+ { 0x1F8B, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER FO FA> */
+ { 0x0E40, 0x0E1D, 0 },
+ { 0x1F8C, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER FO FA> */
+ { 0x0E41, 0x0E1D, 0 },
+ { 0x1F8C, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER FO FA> */
+ { 0x0E42, 0x0E1D, 0 },
+ { 0x1F8C, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FA> */
+ { 0x0E43, 0x0E1D, 0 },
+ { 0x1F8C, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FA> */
+ { 0x0E44, 0x0E1D, 0 },
+ { 0x1F8C, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER PHO PHAN> */
+ { 0x0E40, 0x0E1E, 0 },
+ { 0x1F8D, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER PHO PHAN> */
+ { 0x0E41, 0x0E1E, 0 },
+ { 0x1F8D, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER PHO PHAN> */
+ { 0x0E42, 0x0E1E, 0 },
+ { 0x1F8D, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO PHAN> */
+ { 0x0E43, 0x0E1E, 0 },
+ { 0x1F8D, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO PHAN> */
+ { 0x0E44, 0x0E1E, 0 },
+ { 0x1F8D, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER FO FAN> */
+ { 0x0E40, 0x0E1F, 0 },
+ { 0x1F8E, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER FO FAN> */
+ { 0x0E41, 0x0E1F, 0 },
+ { 0x1F8E, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER FO FAN> */
+ { 0x0E42, 0x0E1F, 0 },
+ { 0x1F8E, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER FO FAN> */
+ { 0x0E43, 0x0E1F, 0 },
+ { 0x1F8E, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER FO FAN> */
+ { 0x0E44, 0x0E1F, 0 },
+ { 0x1F8E, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER PHO SAMPHAO> */
+ { 0x0E40, 0x0E20, 0 },
+ { 0x1F8F, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER PHO SAMPHAO> */
+ { 0x0E41, 0x0E20, 0 },
+ { 0x1F8F, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER PHO SAMPHAO> */
+ { 0x0E42, 0x0E20, 0 },
+ { 0x1F8F, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER PHO SAMPHAO> */
+ { 0x0E43, 0x0E20, 0 },
+ { 0x1F8F, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER PHO SAMPHAO> */
+ { 0x0E44, 0x0E20, 0 },
+ { 0x1F8F, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER MO MA> */
+ { 0x0E40, 0x0E21, 0 },
+ { 0x1F90, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER MO MA> */
+ { 0x0E41, 0x0E21, 0 },
+ { 0x1F90, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER MO MA> */
+ { 0x0E42, 0x0E21, 0 },
+ { 0x1F90, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER MO MA> */
+ { 0x0E43, 0x0E21, 0 },
+ { 0x1F90, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER MO MA> */
+ { 0x0E44, 0x0E21, 0 },
+ { 0x1F90, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER YO YAK> */
+ { 0x0E40, 0x0E22, 0 },
+ { 0x1F91, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER YO YAK> */
+ { 0x0E41, 0x0E22, 0 },
+ { 0x1F91, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER YO YAK> */
+ { 0x0E42, 0x0E22, 0 },
+ { 0x1F91, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER YO YAK> */
+ { 0x0E43, 0x0E22, 0 },
+ { 0x1F91, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER YO YAK> */
+ { 0x0E44, 0x0E22, 0 },
+ { 0x1F91, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER RO RUA> */
+ { 0x0E40, 0x0E23, 0 },
+ { 0x1F92, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER RO RUA> */
+ { 0x0E41, 0x0E23, 0 },
+ { 0x1F92, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER RO RUA> */
+ { 0x0E42, 0x0E23, 0 },
+ { 0x1F92, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RO RUA> */
+ { 0x0E43, 0x0E23, 0 },
+ { 0x1F92, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RO RUA> */
+ { 0x0E44, 0x0E23, 0 },
+ { 0x1F92, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER RU> */
+ { 0x0E40, 0x0E24, 0 },
+ { 0x1F93, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER RU> */
+ { 0x0E41, 0x0E24, 0 },
+ { 0x1F93, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER RU> */
+ { 0x0E42, 0x0E24, 0 },
+ { 0x1F93, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER RU> */
+ { 0x0E43, 0x0E24, 0 },
+ { 0x1F93, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER RU> */
+ { 0x0E44, 0x0E24, 0 },
+ { 0x1F93, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER LO LING> */
+ { 0x0E40, 0x0E25, 0 },
+ { 0x1F94, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER LO LING> */
+ { 0x0E41, 0x0E25, 0 },
+ { 0x1F94, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER LO LING> */
+ { 0x0E42, 0x0E25, 0 },
+ { 0x1F94, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO LING> */
+ { 0x0E43, 0x0E25, 0 },
+ { 0x1F94, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO LING> */
+ { 0x0E44, 0x0E25, 0 },
+ { 0x1F94, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER LU> */
+ { 0x0E40, 0x0E26, 0 },
+ { 0x1F95, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER LU> */
+ { 0x0E41, 0x0E26, 0 },
+ { 0x1F95, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER LU> */
+ { 0x0E42, 0x0E26, 0 },
+ { 0x1F95, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LU> */
+ { 0x0E43, 0x0E26, 0 },
+ { 0x1F95, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LU> */
+ { 0x0E44, 0x0E26, 0 },
+ { 0x1F95, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER WO WAEN> */
+ { 0x0E40, 0x0E27, 0 },
+ { 0x1F96, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER WO WAEN> */
+ { 0x0E41, 0x0E27, 0 },
+ { 0x1F96, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER WO WAEN> */
+ { 0x0E42, 0x0E27, 0 },
+ { 0x1F96, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER WO WAEN> */
+ { 0x0E43, 0x0E27, 0 },
+ { 0x1F96, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER WO WAEN> */
+ { 0x0E44, 0x0E27, 0 },
+ { 0x1F96, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER SO SALA> */
+ { 0x0E40, 0x0E28, 0 },
+ { 0x1F97, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER SO SALA> */
+ { 0x0E41, 0x0E28, 0 },
+ { 0x1F97, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER SO SALA> */
+ { 0x0E42, 0x0E28, 0 },
+ { 0x1F97, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SALA> */
+ { 0x0E43, 0x0E28, 0 },
+ { 0x1F97, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SALA> */
+ { 0x0E44, 0x0E28, 0 },
+ { 0x1F97, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER SO RUSI> */
+ { 0x0E40, 0x0E29, 0 },
+ { 0x1F98, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER SO RUSI> */
+ { 0x0E41, 0x0E29, 0 },
+ { 0x1F98, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER SO RUSI> */
+ { 0x0E42, 0x0E29, 0 },
+ { 0x1F98, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO RUSI> */
+ { 0x0E43, 0x0E29, 0 },
+ { 0x1F98, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO RUSI> */
+ { 0x0E44, 0x0E29, 0 },
+ { 0x1F98, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER SO SUA> */
+ { 0x0E40, 0x0E2A, 0 },
+ { 0x1F99, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER SO SUA> */
+ { 0x0E41, 0x0E2A, 0 },
+ { 0x1F99, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER SO SUA> */
+ { 0x0E42, 0x0E2A, 0 },
+ { 0x1F99, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER SO SUA> */
+ { 0x0E43, 0x0E2A, 0 },
+ { 0x1F99, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER SO SUA> */
+ { 0x0E44, 0x0E2A, 0 },
+ { 0x1F99, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER HO HIP> */
+ { 0x0E40, 0x0E2B, 0 },
+ { 0x1F9A, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER HO HIP> */
+ { 0x0E41, 0x0E2B, 0 },
+ { 0x1F9A, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER HO HIP> */
+ { 0x0E42, 0x0E2B, 0 },
+ { 0x1F9A, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO HIP> */
+ { 0x0E43, 0x0E2B, 0 },
+ { 0x1F9A, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO HIP> */
+ { 0x0E44, 0x0E2B, 0 },
+ { 0x1F9A, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER LO CHULA> */
+ { 0x0E40, 0x0E2C, 0 },
+ { 0x1F9B, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER LO CHULA> */
+ { 0x0E41, 0x0E2C, 0 },
+ { 0x1F9B, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER LO CHULA> */
+ { 0x0E42, 0x0E2C, 0 },
+ { 0x1F9B, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER LO CHULA> */
+ { 0x0E43, 0x0E2C, 0 },
+ { 0x1F9B, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER LO CHULA> */
+ { 0x0E44, 0x0E2C, 0 },
+ { 0x1F9B, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER O ANG> */
+ { 0x0E40, 0x0E2D, 0 },
+ { 0x1F9C, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER O ANG> */
+ { 0x0E41, 0x0E2D, 0 },
+ { 0x1F9C, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER O ANG> */
+ { 0x0E42, 0x0E2D, 0 },
+ { 0x1F9C, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER O ANG> */
+ { 0x0E43, 0x0E2D, 0 },
+ { 0x1F9C, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER O ANG> */
+ { 0x0E44, 0x0E2D, 0 },
+ { 0x1F9C, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA E, THAI CHARACTER HO NOKHUK> */
+ { 0x0E40, 0x0E2E, 0 },
+ { 0x1F9D, 0x1FAA, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AE, THAI CHARACTER HO NOKHUK> */
+ { 0x0E41, 0x0E2E, 0 },
+ { 0x1F9D, 0x1FAB, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA O, THAI CHARACTER HO NOKHUK> */
+ { 0x0E42, 0x0E2E, 0 },
+ { 0x1F9D, 0x1FAC, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMUAN, THAI CHARACTER HO NOKHUK> */
+ { 0x0E43, 0x0E2E, 0 },
+ { 0x1F9D, 0x1FAD, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AI MAIMALAI, THAI CHARACTER HO NOKHUK> */
+ { 0x0E44, 0x0E2E, 0 },
+ { 0x1F9D, 0x1FAE, 0 },
+ FALSE
+ },
+ { /* <THAI CHARACTER SARA AM> */
+ { 0x0E4D, 0x0E32, 0 },
+ { 0x1FA2, 0 },
+ FALSE
+ },
+};
+
+MY_CONTRACTION thai_contractions_w2[THAI_CONTRACTIONS_W2]=
+{
+ { /* <THAI CHARACTER SARA AM> */
+ { 0x0E4D, 0x0E32, 0 },
+ { 0x0020, 0 },
+ FALSE
+ },
+
+};
+
+MY_UCA_INFO my_uca_v520_th=
+{
+ {
+ {
+ 0x10FFFF, /* maxchar */
+ (uchar *)uca520_length,
+ (uint16 **)uca520_weight,
+ { /* Contractions: */
+ THAI_CONTRACTIONS, /* nitems */
+ thai_contractions, /* item */
+ NULL /* flags */
+ },
+ 0 /* levelno */
+ },
+ {
+ 0x10FFFF, /* maxchar */
+ (uchar *)uca520_length_w2,
+ (uint16 **)uca520_weight_w2,
+ { /* Contractions: */
+ THAI_CONTRACTIONS_W2, /* nitems */
+ thai_contractions_w2, /* item */
+ NULL /* flags */
+ },
+ 1 /* levelno */
+ },
+ },
+
+ 0x0009, /* first_non_ignorable p != ignore */
+ 0x1342E, /* last_non_ignorable Not a CJK and not UASSIGNED */
+
+ 0x0332, /* first_primary_ignorable p == ignore */
+ 0x101FD, /* last_primary_ignorable */
+
+ 0x0000, /* first_secondary_ignorable p,s= ignore */
+ 0xFE73, /* last_secondary_ignorable */
+
+ 0x0000, /* first_tertiary_ignorable p,s,t == ignore */
+ 0xFE73, /* last_tertiary_ignorable */
+
+ 0x0000, /* first_trailing */
+ 0x0000, /* last_trailing */
+
+ 0x0009, /* first_variable if alt=non-ignorable: p != ignore */
+ 0x1D371, /* last_variable if alt=shifter: p,s,t == ignore */
+};
+
+MY_UCA_INFO my_uca_v520=
+{
+ {
+ {
+ 0x10FFFF, /* maxchar */
+ (uchar *) uca520_length,
+ (uint16 **) uca520_weight,
+ { /* Contractions: */
+ 0, /* nitems */
+ NULL, /* item */
+ NULL /* flags */
+ },
+ 0 /* levelno */
+ },
+ },
+
+ 0x0009, /* first_non_ignorable p != ignore */
+ 0x1342E, /* last_non_ignorable Not a CJK and not UASSIGNED */
+
+ 0x0332, /* first_primary_ignorable p == ignore */
+ 0x101FD, /* last_primary_ignorable */
+
+ 0x0000, /* first_secondary_ignorable p,s= ignore */
+ 0xFE73, /* last_secondary_ignorable */
+
+ 0x0000, /* first_tertiary_ignorable p,s,t == ignore */
+ 0xFE73, /* last_tertiary_ignorable */
+
+ 0x0000, /* first_trailing */
+ 0x0000, /* last_trailing */
+
+ 0x0009, /* first_variable if alt=non-ignorable: p != ignore */
+ 0x1D371, /* last_variable if alt=shifter: p,s,t == ignore */
+};
+
+
+/******************************************************/
+
+/*
+ German Phonebook
+*/
+static const char german2[]=
+ "&AE << \\u00E6 <<< \\u00C6 << \\u00E4 <<< \\u00C4 "
+ "&OE << \\u0153 <<< \\u0152 << \\u00F6 <<< \\u00D6 "
+ "&UE << \\u00FC <<< \\u00DC ";
+
+
/*
Some sources treat LETTER A WITH DIARESIS (00E4,00C4)
secondary greater than LETTER AE (00E6,00C6).
@@ -6686,7 +30327,13 @@ static const char persian[]=
"& \\u0642 < \\u06A9 < \\u0643"
"& \\u0648 < \\u0647 < \\u0629 < \\u06C0 < \\u06CC < \\u0649 < \\u064A"
"& \\uFE80 < \\uFE81 < \\uFE82 < \\uFE8D < \\uFE8E < \\uFB50 < \\uFB51"
- " < \\uFE80 < \\uFE83 < \\uFE84 < \\uFE87 < \\uFE88 < \\uFE85"
+ " < \\uFE80 "
+ /*
+ FE80 appears both in reset and shift.
+ We need to break the rule here and reset to *new* FE80 again,
+ so weight for FE83 is calculated as P[FE80]+1, not as P[FE80]+8.
+ */
+ " & \\uFE80 < \\uFE83 < \\uFE84 < \\uFE87 < \\uFE88 < \\uFE85"
" < \\uFE86 < \\u0689 < \\u068A"
"& \\uFEAE < \\uFDFC"
"& \\uFED8 < \\uFB8E < \\uFB8F < \\uFB90 < \\uFB91 < \\uFED9 < \\uFEDA"
@@ -6717,6 +30364,17 @@ static const char hungarian[]=
"&O < \\u00F6 <<< \\u00D6 << \\u0151 <<< \\u0150"
"&U < \\u00FC <<< \\u00DC << \\u0171 <<< \\u0170";
+
+static const char croatian_mysql561[]=
+ "&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106"
+ "&D < d\\u017E = \\u01C6 <<< d\\u017D <<< D\\u017E = \\u01C5 <<< D\\u017D = \\u01C4"
+ " < \\u0111 <<< \\u0110"
+ "&L < lj = \\u01C9 <<< lJ <<< Lj = \\u01C8 <<< LJ = \\u01C7"
+ "&N < nj = \\u01CC <<< nJ <<< Nj = \\u01CB <<< NJ = \\u01CA"
+ "&S < \\u0161 <<< \\u0160"
+ "&Z < \\u017E <<< \\u017D";
+
+
/*
SCCII Part 1 : Collation Sequence (SLS1134)
2006/11/24
@@ -6746,8 +30404,22 @@ static const char sinhala[]=
#endif
-static const char croatian[]=
-
+/*
+ Croatian that was added into MariaDB-5.3 uses
+ slightly different rules comparing to the MySQL-5.6 version.
+ The difference is in the following combinations of
+ a small letter followed by a capital letter:
+ - U+0064 U+017D (LATIN SMALL LETTER D + LATIN CAPITAL LETTER Z WITH CARON)
+ - U+006C U+004A (LATIN SMALL LETTER L + LATIN CAPITAL LETTER J)
+ - U+006E U+004A (LATIN SMALL LETTER N + LATIN CAPITAL LETTER J)
+ MySQL consider these pairs as contractions and sorts near their
+ "CAPITAL + SMALL" and "SMALL + SMALL" counterparts.
+ MariaDB consider these pairs as individual characters.
+ Note, the MariaDB version is closer to CLDR:
+ http://unicode.org/cldr/trac/browser/trunk/common/collation/hr.xml?rev=9244
+ (the latest hr.xml revision as of 2013-11-06).
+*/
+static const char croatian_mariadb[]=
"&C < \\u010D <<< \\u010C < \\u0107 <<< \\u0106 "
"&D < d\\u017E <<< \\u01C6 <<< D\\u017E <<< \\u01C5 <<< D\\u017D <<< \\u01C4 "
" < \\u0111 <<< \\u0110 "
@@ -6756,6 +30428,695 @@ static const char croatian[]=
"&S < \\u0161 <<< \\u0160 "
"&Z < \\u017E <<< \\u017D";
+
+static const char vietnamese[]=
+" &A << \\u00E0 <<< \\u00C0" /* A */
+ " << \\u1EA3 <<< \\u1EA2"
+ " << \\u00E3 <<< \\u00C3"
+ " << \\u00E1 <<< \\u00C1"
+ " << \\u1EA1 <<< \\u1EA0"
+ " < \\u0103 <<< \\u0102" /* A WITH BREVE */
+ " << \\u1EB1 <<< \\u1EB0"
+ " << \\u1EB3 <<< \\u1EB2"
+ " << \\u1EB5 <<< \\u1EB4"
+ " << \\u1EAF <<< \\u1EAE"
+ " << \\u1EB7 <<< \\u1EB6"
+ " < \\u00E2 <<< \\u00C2" /* A WITH CIRCUMFLEX */
+ " << \\u1EA7 <<< \\u1EA6"
+ " << \\u1EA9 <<< \\u1EA8"
+ " << \\u1EAB <<< \\u1EAA"
+ " << \\u1EA5 <<< \\u1EA4"
+ " << \\u1EAD <<< \\u1EAC"
+" &D < \\u0111 <<< \\u0110" /* D WITH STROKE */
+" &E << \\u00E8 <<< \\u00C8" /* E */
+ " << \\u1EBB <<< \\u1EBA"
+ " << \\u1EBD <<< \\u1EBC"
+ " << \\u00E9 <<< \\u00C9"
+ " << \\u1EB9 <<< \\u1EB8"
+ " < \\u00EA <<< \\u00CA" /* E WITH CIRCUMFLEX */
+ " << \\u1EC1 <<< \\u1EC0"
+ " << \\u1EC3 <<< \\u1EC2"
+ " << \\u1EC5 <<< \\u1EC4"
+ " << \\u1EBF <<< \\u1EBE"
+ " << \\u1EC7 <<< \\u1EC6"
+" &I << \\u00EC <<< \\u00CC" /* I */
+ " << \\u1EC9 <<< \\u1EC8"
+ " << \\u0129 <<< \\u0128"
+ " << \\u00ED <<< \\u00CD"
+ " << \\u1ECB <<< \\u1ECA"
+" &O << \\u00F2 <<< \\u00D2" /* O */
+ " << \\u1ECF <<< \\u1ECE"
+ " << \\u00F5 <<< \\u00D5"
+ " << \\u00F3 <<< \\u00D3"
+ " << \\u1ECD <<< \\u1ECC"
+ " < \\u00F4 <<< \\u00D4" /* O WITH CIRCUMFLEX */
+ " << \\u1ED3 <<< \\u1ED2"
+ " << \\u1ED5 <<< \\u1ED4"
+ " << \\u1ED7 <<< \\u1ED6"
+ " << \\u1ED1 <<< \\u1ED0"
+ " << \\u1ED9 <<< \\u1ED8"
+ " < \\u01A1 <<< \\u01A0" /* O WITH HORN */
+ " << \\u1EDD <<< \\u1EDC"
+ " << \\u1EDF <<< \\u1EDE"
+ " << \\u1EE1 <<< \\u1EE0"
+ " << \\u1EDB <<< \\u1EDA"
+ " << \\u1EE3 <<< \\u1EE2"
+" &U << \\u00F9 <<< \\u00D9" /* U */
+ " << \\u1EE7 <<< \\u1EE6"
+ " << \\u0169 <<< \\u0168"
+ " << \\u00FA <<< \\u00DA"
+ " << \\u1EE5 <<< \\u1EE4"
+ " < \\u01B0 <<< \\u01AF" /* U WITH HORN */
+ " << \\u1EEB <<< \\u1EEA"
+ " << \\u1EED <<< \\u1EEC"
+ " << \\u1EEF <<< \\u1EEE"
+ " << \\u1EE9 <<< \\u1EE8"
+ " << \\u1EF1 <<< \\u1EF0"
+" &Y << \\u1EF3 <<< \\u1EF2" /* Y */
+ " << \\u1EF7 <<< \\u1EF6"
+ " << \\u1EF9 <<< \\u1EF8"
+ " << \\u00FD <<< \\u00DD"
+ " << \\u1EF5 <<< \\u1EF4";
+
+
+/*
+ Myanmar, according to CLDR Revision 8900.
+ http://unicode.org/cldr/trac/browser/trunk/common/collation/my.xml
+*/
+static const char myanmar[]= "[shift-after-method expand][version 5.2.0]"
+/* Tones */
+"&\\u108C"
+"<\\u1037"
+"<\\u1038"
+"<\\u1037\\u1038"
+/* Vowels */
+"&\\u102C<<\\u102B"
+"&\\u1032"
+"<\\u1031\\u102C<<\\u1031\\u102B"
+"<\\u1031\\u102C\\u103A<<\\u1031\\u102B\\u103A"
+"&\\u1034"
+"<\\u1036"
+"<\\u102D\\u102F"
+/* Vowels with finals */
+"<\\u1000\\u1039<<\\u1000\\u103A"
+"<\\u102C\\u1000\\u1039<<\\u102C\\u1000\\u103A<<\\u102B\\u1000\\u1039<<\\u102B\\u1000\\u103A"
+"<\\u102D\\u1000\\u1039<<\\u102D\\u1000\\u103A"
+"<\\u102F\\u1000\\u1039<<\\u102F\\u1000\\u103A"
+"<\\u1031\\u1000\\u1039<<\\u1031\\u1000\\u103A"
+"<\\u1031\\u102C\\u1000\\u1039<<\\u1031\\u102C\\u1000\\u103A<<\\u1031\\u102B\\u1000\\u1039<<\\u1031\\u102B\\u1000\\u103A"
+"<\\u102D\\u102F\\u1000\\u1039<<\\u102D\\u102F\\u1000\\u103A"
+"<\\u1001\\u1039<<\\u1001\\u103A"
+"<\\u102C\\u1001\\u1039<<\\u102C\\u1001\\u103A<<\\u102B\\u1001\\u1039<<\\u102B\\u1001\\u103A"
+"<\\u102D\\u1001\\u1039<<\\u102D\\u1001\\u103A"
+"<\\u102F\\u1001\\u1039<<\\u102F\\u1001\\u103A"
+"<\\u1031\\u1001\\u1039<<\\u1031\\u1001\\u103A"
+"<\\u1031\\u102C\\u1001\\u1039<<\\u1031\\u102C\\u1001\\u103A<<\\u1031\\u102B\\u1001\\u1039<<\\u1031\\u102B\\u1001\\u103A"
+"<\\u102D\\u102F\\u1001\\u1039<<\\u102D\\u102F\\u1001\\u103A"
+"<\\u1002\\u1039<<\\u1002\\u103A"
+"<\\u102C\\u1002\\u1039<<\\u102C\\u1002\\u103A<<\\u102B\\u1002\\u1039<<\\u102B\\u1002\\u103A"
+"<\\u102D\\u1002\\u1039<<\\u102D\\u1002\\u103A"
+"<\\u102F\\u1002\\u1039<<\\u102F\\u1002\\u103A"
+"<\\u1031\\u1002\\u1039<<\\u1031\\u1002\\u103A"
+"<\\u1031\\u102C\\u1002\\u1039<<\\u1031\\u102C\\u1002\\u103A<<\\u1031\\u102B\\u1002\\u1039<<\\u1031\\u102B\\u1002\\u103A"
+"<\\u102D\\u102F\\u1002\\u1039<<\\u102D\\u102F\\u1002\\u103A"
+"<\\u1003\\u1039<<\\u1003\\u103A"
+"<\\u102C\\u1003\\u1039<<\\u102C\\u1003\\u103A<<\\u102B\\u1003\\u1039<<\\u102B\\u1003\\u103A"
+"<\\u102D\\u1003\\u1039<<\\u102D\\u1003\\u103A"
+"<\\u102F\\u1003\\u1039<<\\u102F\\u1003\\u103A"
+"<\\u1031\\u1003\\u1039<<\\u1031\\u1003\\u103A"
+"<\\u1031\\u102C\\u1003\\u1039<<\\u1031\\u102C\\u1003\\u103A<<\\u1031\\u102B\\u1003\\u1039<<\\u1031\\u102B\\u1003\\u103A"
+"<\\u102D\\u102F\\u1003\\u1039<<\\u102D\\u102F\\u1003\\u103A"
+"<\\u1004\\u103A\\u1039<<\\u1004\\u103A"
+"<\\u102C\\u1004\\u103A\\u1039<<\\u102C\\u1004\\u103A<<\\u102B\\u1004\\u103A\\u1039<<\\u102B\\u1004\\u103A"
+"<\\u102D\\u1004\\u103A\\u1039<<\\u102D\\u1004\\u103A"
+"<\\u102F\\u1004\\u103A\\u1039<<\\u102F\\u1004\\u103A"
+"<\\u1031\\u1004\\u103A\\u1039<<\\u1031\\u1004\\u103A"
+"<\\u1031\\u102C\\u1004\\u103A\\u1039<<\\u1031\\u102C\\u1004\\u103A<<\\u1031\\u102B\\u1004\\u103A\\u1039<<\\u1031\\u102B\\u1004\\u103A"
+"<\\u102D\\u102F\\u1004\\u103A\\u1039<<\\u102D\\u102F\\u1004\\u103A"
+"<\\u1005\\u1039<<\\u1005\\u103A"
+"<\\u102C\\u1005\\u1039<<\\u102C\\u1005\\u103A<<\\u102B\\u1005\\u1039<<\\u102B\\u1005\\u103A"
+"<\\u102D\\u1005\\u1039<<\\u102D\\u1005\\u103A"
+"<\\u102F\\u1005\\u1039<<\\u102F\\u1005\\u103A"
+"<\\u1031\\u1005\\u1039<<\\u1031\\u1005\\u103A"
+"<\\u1031\\u102C\\u1005\\u1039<<\\u1031\\u102C\\u1005\\u103A<<\\u1031\\u102B\\u1005\\u1039<<\\u1031\\u102B\\u1005\\u103A"
+"<\\u102D\\u102F\\u1005\\u1039<<\\u102D\\u102F\\u1005\\u103A"
+"<\\u1006\\u1039<<\\u1006\\u103A"
+"<\\u102C\\u1006\\u1039<<\\u102C\\u1006\\u103A<<\\u102B\\u1006\\u1039<<\\u102B\\u1006\\u103A"
+"<\\u102D\\u1006\\u1039<<\\u102D\\u1006\\u103A"
+"<\\u102F\\u1006\\u1039<<\\u102F\\u1006\\u103A"
+"<\\u1031\\u1006\\u1039<<\\u1031\\u1006\\u103A"
+"<\\u1031\\u102C\\u1006\\u1039<<\\u1031\\u102C\\u1006\\u103A<<\\u1031\\u102B\\u1006\\u1039<<\\u1031\\u102B\\u1006\\u103A"
+"<\\u102D\\u102F\\u1006\\u1039<<\\u102D\\u102F\\u1006\\u103A"
+"<\\u1007\\u1039<<\\u1007\\u103A"
+"<\\u102C\\u1007\\u1039<<\\u102C\\u1007\\u103A<<\\u102B\\u1007\\u1039<<\\u102B\\u1007\\u103A"
+"<\\u102D\\u1007\\u1039<<\\u102D\\u1007\\u103A"
+"<\\u102F\\u1007\\u1039<<\\u102F\\u1007\\u103A"
+"<\\u1031\\u1007\\u1039<<\\u1031\\u1007\\u103A"
+"<\\u1031\\u102C\\u1007\\u1039<<\\u1031\\u102C\\u1007\\u103A<<\\u1031\\u102B\\u1007\\u1039<<\\u1031\\u102B\\u1007\\u103A"
+"<\\u102D\\u102F\\u1007\\u1039<<\\u102D\\u102F\\u1007\\u103A"
+"<\\u1008\\u103A"
+"<\\u102C\\u1008\\u103A<<\\u102B\\u1008\\u103A"
+"<\\u102D\\u1008\\u103A"
+"<\\u102F\\u1008\\u103A"
+"<\\u1031\\u1008\\u103A"
+"<\\u1031\\u102C\\u1008\\u103A<<\\u1031\\u102B\\u1008\\u103A"
+"<\\u102D\\u102F\\u1008\\u103A"
+"<\\u1009\\u1039<<\\u1009\\u103A"
+"<\\u102C\\u1009\\u1039<<\\u102C\\u1009\\u103A<<\\u102B\\u1009\\u1039<<\\u102B\\u1009\\u103A"
+"<\\u102D\\u1009\\u1039<<\\u102D\\u1009\\u103A"
+"<\\u102F\\u1009\\u1039<<\\u102F\\u1009\\u103A"
+"<\\u1031\\u1009\\u1039<<\\u1031\\u1009\\u103A"
+"<\\u1031\\u102C\\u1009\\u1039<<\\u1031\\u102C\\u1009\\u103A<<\\u1031\\u102B\\u1009\\u1039<<\\u1031\\u102B\\u1009\\u103A"
+"<\\u102D\\u102F\\u1009\\u1039<<\\u102D\\u102F\\u1009\\u103A"
+"<\\u100A\\u1039<<\\u100A\\u103A"
+"<\\u102C\\u100A\\u1039<<\\u102C\\u100A\\u103A<<\\u102B\\u100A\\u1039<<\\u102B\\u100A\\u103A"
+"<\\u102D\\u100A\\u1039<<\\u102D\\u100A\\u103A"
+"<\\u102F\\u100A\\u1039<<\\u102F\\u100A\\u103A"
+"<\\u1031\\u100A\\u1039<<\\u1031\\u100A\\u103A"
+"<\\u1031\\u102C\\u100A\\u1039<<\\u1031\\u102C\\u100A\\u103A<<\\u1031\\u102B\\u100A\\u1039<<\\u1031\\u102B\\u100A\\u103A"
+"<\\u102D\\u102F\\u100A\\u1039<<\\u102D\\u102F\\u100A\\u103A"
+"<\\u100B\\u1039<<\\u100B\\u103A"
+"<\\u102C\\u100B\\u1039<<\\u102C\\u100B\\u103A<<\\u102B\\u100B\\u1039<<\\u102B\\u100B\\u103A"
+"<\\u102D\\u100B\\u1039<<\\u102D\\u100B\\u103A"
+"<\\u102F\\u100B\\u1039<<\\u102F\\u100B\\u103A"
+"<\\u1031\\u100B\\u1039<<\\u1031\\u100B\\u103A"
+"<\\u1031\\u102C\\u100B\\u1039<<\\u1031\\u102C\\u100B\\u103A<<\\u1031\\u102B\\u100B\\u1039<<\\u1031\\u102B\\u100B\\u103A"
+"<\\u102D\\u102F\\u100B\\u1039<<\\u102D\\u102F\\u100B\\u103A"
+"<\\u100C\\u1039<<\\u100C\\u103A"
+"<\\u102C\\u100C\\u1039<<\\u102C\\u100C\\u103A<<\\u102B\\u100C\\u1039<<\\u102B\\u100C\\u103A"
+"<\\u102D\\u100C\\u1039<<\\u102D\\u100C\\u103A"
+"<\\u102F\\u100C\\u1039<<\\u102F\\u100C\\u103A"
+"<\\u1031\\u100C\\u1039<<\\u1031\\u100C\\u103A"
+"<\\u1031\\u102C\\u100C\\u1039<<\\u1031\\u102C\\u100C\\u103A<<\\u1031\\u102B\\u100C\\u1039<<\\u1031\\u102B\\u100C\\u103A"
+"<\\u102D\\u102F\\u100C\\u1039<<\\u102D\\u102F\\u100C\\u103A"
+"<\\u100D\\u1039<<\\u100D\\u103A"
+"<\\u102C\\u100D\\u1039<<\\u102C\\u100D\\u103A<<\\u102B\\u100D\\u1039<<\\u102B\\u100D\\u103A"
+"<\\u102D\\u100D\\u1039<<\\u102D\\u100D\\u103A"
+"<\\u102F\\u100D\\u1039<<\\u102F\\u100D\\u103A"
+"<\\u1031\\u100D\\u1039<<\\u1031\\u100D\\u103A"
+"<\\u1031\\u102C\\u100D\\u1039<<\\u1031\\u102C\\u100D\\u103A<<\\u1031\\u102B\\u100D\\u1039<<\\u1031\\u102B\\u100D\\u103A"
+"<\\u102D\\u102F\\u100D\\u1039<<\\u102D\\u102F\\u100D\\u103A"
+"<\\u100E\\u1039<<\\u100E\\u103A"
+"<\\u102C\\u100E\\u1039<<\\u102C\\u100E\\u103A<<\\u102B\\u100E\\u1039<<\\u102B\\u100E\\u103A"
+"<\\u102D\\u100E\\u1039<<\\u102D\\u100E\\u103A"
+"<\\u102F\\u100E\\u1039<<\\u102F\\u100E\\u103A"
+"<\\u1031\\u100E\\u1039<<\\u1031\\u100E\\u103A"
+"<\\u1031\\u102C\\u100E\\u1039<<\\u1031\\u102C\\u100E\\u103A<<\\u1031\\u102B\\u100E\\u1039<<\\u1031\\u102B\\u100E\\u103A"
+"<\\u102D\\u102F\\u100E\\u1039<<\\u102D\\u102F\\u100E\\u103A"
+"<\\u100F\\u1039<<\\u100F\\u103A"
+"<\\u102C\\u100F\\u1039<<\\u102C\\u100F\\u103A<<\\u102B\\u100F\\u1039<<\\u102B\\u100F\\u103A"
+"<\\u102D\\u100F\\u1039<<\\u102D\\u100F\\u103A"
+"<\\u102F\\u100F\\u1039<<\\u102F\\u100F\\u103A"
+"<\\u1031\\u100F\\u1039<<\\u1031\\u100F\\u103A"
+"<\\u1031\\u102C\\u100F\\u1039<<\\u1031\\u102C\\u100F\\u103A<<\\u1031\\u102B\\u100F\\u1039<<\\u1031\\u102B\\u100F\\u103A"
+"<\\u102D\\u102F\\u100F\\u1039<<\\u102D\\u102F\\u100F\\u103A"
+"<\\u1010\\u1039<<\\u1010\\u103A"
+"<\\u102C\\u1010\\u1039<<\\u102C\\u1010\\u103A<<\\u102B\\u1010\\u1039<<\\u102B\\u1010\\u103A"
+"<\\u102D\\u1010\\u1039<<\\u102D\\u1010\\u103A"
+"<\\u102F\\u1010\\u1039<<\\u102F\\u1010\\u103A"
+"<\\u1031\\u1010\\u1039<<\\u1031\\u1010\\u103A"
+"<\\u1031\\u102C\\u1010\\u1039<<\\u1031\\u102C\\u1010\\u103A<<\\u1031\\u102B\\u1010\\u1039<<\\u1031\\u102B\\u1010\\u103A"
+"<\\u102D\\u102F\\u1010\\u1039<<\\u102D\\u102F\\u1010\\u103A"
+"<\\u1011\\u1039<<\\u1011\\u103A"
+"<\\u102C\\u1011\\u1039<<\\u102C\\u1011\\u103A<<\\u102B\\u1011\\u1039<<\\u102B\\u1011\\u103A"
+"<\\u102D\\u1011\\u1039<<\\u102D\\u1011\\u103A"
+"<\\u102F\\u1011\\u1039<<\\u102F\\u1011\\u103A"
+"<\\u1031\\u1011\\u1039<<\\u1031\\u1011\\u103A"
+"<\\u1031\\u102C\\u1011\\u1039<<\\u1031\\u102C\\u1011\\u103A<<\\u1031\\u102B\\u1011\\u1039<<\\u1031\\u102B\\u1011\\u103A"
+"<\\u102D\\u102F\\u1011\\u1039<<\\u102D\\u102F\\u1011\\u103A"
+"<\\u1012\\u1039<<\\u1012\\u103A"
+"<\\u102C\\u1012\\u1039<<\\u102C\\u1012\\u103A<<\\u102B\\u1012\\u1039<<\\u102B\\u1012\\u103A"
+"<\\u102D\\u1012\\u1039<<\\u102D\\u1012\\u103A"
+"<\\u102F\\u1012\\u1039<<\\u102F\\u1012\\u103A"
+"<\\u1031\\u1012\\u1039<<\\u1031\\u1012\\u103A"
+"<\\u1031\\u102C\\u1012\\u1039<<\\u1031\\u102C\\u1012\\u103A<<\\u1031\\u102B\\u1012\\u1039<<\\u1031\\u102B\\u1012\\u103A"
+"<\\u102D\\u102F\\u1012\\u1039<<\\u102D\\u102F\\u1012\\u103A"
+"<\\u1013\\u1039<<\\u1013\\u103A"
+"<\\u102C\\u1013\\u1039<<\\u102C\\u1013\\u103A<<\\u102B\\u1013\\u1039<<\\u102B\\u1013\\u103A"
+"<\\u102D\\u1013\\u1039<<\\u102D\\u1013\\u103A"
+"<\\u102F\\u1013\\u1039<<\\u102F\\u1013\\u103A"
+"<\\u1031\\u1013\\u1039<<\\u1031\\u1013\\u103A"
+"<\\u1031\\u102C\\u1013\\u1039<<\\u1031\\u102C\\u1013\\u103A<<\\u1031\\u102B\\u1013\\u1039<<\\u1031\\u102B\\u1013\\u103A"
+"<\\u102D\\u102F\\u1013\\u1039<<\\u102D\\u102F\\u1013\\u103A"
+"<\\u1014\\u1039<<\\u1014\\u103A"
+"<\\u102C\\u1014\\u1039<<\\u102C\\u1014\\u103A<<\\u102B\\u1014\\u1039<<\\u102B\\u1014\\u103A"
+"<\\u102D\\u1014\\u1039<<\\u102D\\u1014\\u103A"
+"<\\u102F\\u1014\\u1039<<\\u102F\\u1014\\u103A"
+"<\\u1031\\u1014\\u1039<<\\u1031\\u1014\\u103A"
+"<\\u1031\\u102C\\u1014\\u1039<<\\u1031\\u102C\\u1014\\u103A<<\\u1031\\u102B\\u1014\\u1039<<\\u1031\\u102B\\u1014\\u103A"
+"<\\u102D\\u102F\\u1014\\u1039<<\\u102D\\u102F\\u1014\\u103A"
+"<\\u1015\\u1039<<\\u1015\\u103A"
+"<\\u102C\\u1015\\u1039<<\\u102C\\u1015\\u103A<<\\u102B\\u1015\\u1039<<\\u102B\\u1015\\u103A"
+"<\\u102D\\u1015\\u1039<<\\u102D\\u1015\\u103A"
+"<\\u102F\\u1015\\u1039<<\\u102F\\u1015\\u103A"
+"<\\u1031\\u1015\\u1039<<\\u1031\\u1015\\u103A"
+"<\\u1031\\u102C\\u1015\\u1039<<\\u1031\\u102C\\u1015\\u103A<<\\u1031\\u102B\\u1015\\u1039<<\\u1031\\u102B\\u1015\\u103A"
+"<\\u102D\\u102F\\u1015\\u1039<<\\u102D\\u102F\\u1015\\u103A"
+"<\\u1016\\u1039<<\\u1016\\u103A"
+"<\\u102C\\u1016\\u1039<<\\u102C\\u1016\\u103A<<\\u102B\\u1016\\u1039<<\\u102B\\u1016\\u103A"
+"<\\u102D\\u1016\\u1039<<\\u102D\\u1016\\u103A"
+"<\\u102F\\u1016\\u1039<<\\u102F\\u1016\\u103A"
+"<\\u1031\\u1016\\u1039<<\\u1031\\u1016\\u103A"
+"<\\u1031\\u102C\\u1016\\u1039<<\\u1031\\u102C\\u1016\\u103A<<\\u1031\\u102B\\u1016\\u1039<<\\u1031\\u102B\\u1016\\u103A"
+"<\\u102D\\u102F\\u1016\\u1039<<\\u102D\\u102F\\u1016\\u103A"
+"<\\u1017\\u1039<<\\u1017\\u103A"
+"<\\u102C\\u1017\\u1039<<\\u102C\\u1017\\u103A<<\\u102B\\u1017\\u1039<<\\u102B\\u1017\\u103A"
+"<\\u102D\\u1017\\u1039<<\\u102D\\u1017\\u103A"
+"<\\u102F\\u1017\\u1039<<\\u102F\\u1017\\u103A"
+"<\\u1031\\u1017\\u1039<<\\u1031\\u1017\\u103A"
+"<\\u1031\\u102C\\u1017\\u1039<<\\u1031\\u102C\\u1017\\u103A<<\\u1031\\u102B\\u1017\\u1039<<\\u1031\\u102B\\u1017\\u103A"
+"<\\u102D\\u102F\\u1017\\u1039<<\\u102D\\u102F\\u1017\\u103A"
+"<\\u1018\\u1039<<\\u1018\\u103A"
+"<\\u102C\\u1018\\u1039<<\\u102C\\u1018\\u103A<<\\u102B\\u1018\\u1039<<\\u102B\\u1018\\u103A"
+"<\\u102D\\u1018\\u1039<<\\u102D\\u1018\\u103A"
+"<\\u102F\\u1018\\u1039<<\\u102F\\u1018\\u103A"
+"<\\u1031\\u1018\\u1039<<\\u1031\\u1018\\u103A"
+"<\\u1031\\u102C\\u1018\\u1039<<\\u1031\\u102C\\u1018\\u103A<<\\u1031\\u102B\\u1018\\u1039<<\\u1031\\u102B\\u1018\\u103A"
+"<\\u102D\\u102F\\u1018\\u1039<<\\u102D\\u102F\\u1018\\u103A"
+"<\\u1019\\u1039<<\\u1019\\u103A"
+"<\\u102C\\u1019\\u1039<<\\u102C\\u1019\\u103A<<\\u102B\\u1019\\u1039<<\\u102B\\u1019\\u103A"
+"<\\u102D\\u1019\\u1039<<\\u102D\\u1019\\u103A"
+"<\\u102F\\u1019\\u1039<<\\u102F\\u1019\\u103A"
+"<\\u1031\\u1019\\u1039<<\\u1031\\u1019\\u103A"
+"<\\u1031\\u102C\\u1019\\u1039<<\\u1031\\u102C\\u1019\\u103A<<\\u1031\\u102B\\u1019\\u1039<<\\u1031\\u102B\\u1019\\u103A"
+"<\\u102D\\u102F\\u1019\\u1039<<\\u102D\\u102F\\u1019\\u103A"
+"<\\u101A\\u1039<<\\u101A\\u103A"
+"<\\u102C\\u101A\\u1039<<\\u102C\\u101A\\u103A<<\\u102B\\u101A\\u1039<<\\u102B\\u101A\\u103A"
+"<\\u102D\\u101A\\u1039<<\\u102D\\u101A\\u103A"
+"<\\u102F\\u101A\\u1039<<\\u102F\\u101A\\u103A"
+"<\\u1031\\u101A\\u1039<<\\u1031\\u101A\\u103A"
+"<\\u1031\\u102C\\u101A\\u1039<<\\u1031\\u102C\\u101A\\u103A<<\\u1031\\u102B\\u101A\\u1039<<\\u1031\\u102B\\u101A\\u103A"
+"<\\u102D\\u102F\\u101A\\u1039<<\\u102D\\u102F\\u101A\\u103A"
+"<\\u101B\\u1039<<\\u101B\\u103A"
+"<\\u102C\\u101B\\u1039<<\\u102C\\u101B\\u103A<<\\u102B\\u101B\\u1039<<\\u102B\\u101B\\u103A"
+"<\\u102D\\u101B\\u1039<<\\u102D\\u101B\\u103A"
+"<\\u102F\\u101B\\u1039<<\\u102F\\u101B\\u103A"
+"<\\u1031\\u101B\\u1039<<\\u1031\\u101B\\u103A"
+"<\\u1031\\u102C\\u101B\\u1039<<\\u1031\\u102C\\u101B\\u103A<<\\u1031\\u102B\\u101B\\u1039<<\\u1031\\u102B\\u101B\\u103A"
+"<\\u102D\\u102F\\u101B\\u1039<<\\u102D\\u102F\\u101B\\u103A"
+"<\\u101C\\u1039<<\\u101C\\u103A"
+"<\\u102C\\u101C\\u1039<<\\u102C\\u101C\\u103A<<\\u102B\\u101C\\u1039<<\\u102B\\u101C\\u103A"
+"<\\u102D\\u101C\\u1039<<\\u102D\\u101C\\u103A"
+"<\\u102F\\u101C\\u1039<<\\u102F\\u101C\\u103A"
+"<\\u1031\\u101C\\u1039<<\\u1031\\u101C\\u103A"
+"<\\u1031\\u102C\\u101C\\u1039<<\\u1031\\u102C\\u101C\\u103A<<\\u1031\\u102B\\u101C\\u1039<<\\u1031\\u102B\\u101C\\u103A"
+"<\\u102D\\u102F\\u101C\\u1039<<\\u102D\\u102F\\u101C\\u103A"
+"<\\u101D\\u103A"
+"<\\u102C\\u101D\\u103A<<\\u102B\\u101D\\u103A"
+"<\\u102D\\u101D\\u103A"
+"<\\u102F\\u101D\\u103A"
+"<\\u1031\\u101D\\u103A"
+"<\\u1031\\u102C\\u101D\\u103A<<\\u1031\\u102B\\u101D\\u103A"
+"<\\u102D\\u102F\\u101D\\u103A"
+"<\\u101E\\u1039<<\\u101E\\u103A"
+"<\\u102C\\u101E\\u1039<<\\u102C\\u101E\\u103A<<\\u102B\\u101E\\u1039<<\\u102B\\u101E\\u103A"
+"<\\u102D\\u101E\\u1039<<\\u102D\\u101E\\u103A"
+"<\\u102F\\u101E\\u1039<<\\u102F\\u101E\\u103A"
+"<\\u1031\\u101E\\u1039<<\\u1031\\u101E\\u103A"
+"<\\u1031\\u102C\\u101E\\u1039<<\\u1031\\u102C\\u101E\\u103A<<\\u1031\\u102B\\u101E\\u1039<<\\u1031\\u102B\\u101E\\u103A"
+"<\\u102D\\u102F\\u101E\\u1039<<\\u102D\\u102F\\u101E\\u103A"
+"<\\u101F\\u1039<<\\u101F\\u103A"
+"<\\u102C\\u101F\\u1039<<\\u102C\\u101F\\u103A<<\\u102B\\u101F\\u1039<<\\u102B\\u101F\\u103A"
+"<\\u102D\\u101F\\u1039<<\\u102D\\u101F\\u103A"
+"<\\u102F\\u101F\\u1039<<\\u102F\\u101F\\u103A"
+"<\\u1031\\u101F\\u1039<<\\u1031\\u101F\\u103A"
+"<\\u1031\\u102C\\u101F\\u1039<<\\u1031\\u102C\\u101F\\u103A<<\\u1031\\u102B\\u101F\\u1039<<\\u1031\\u102B\\u101F\\u103A"
+"<\\u102D\\u102F\\u101F\\u1039<<\\u102D\\u102F\\u101F\\u103A"
+"<\\u1020\\u103A"
+"<\\u102C\\u1020\\u103A<<\\u102B\\u1020\\u103A"
+"<\\u102D\\u1020\\u103A"
+"<\\u102F\\u1020\\u103A"
+"<\\u1031\\u1020\\u103A"
+"<\\u1031\\u102C\\u1020\\u103A<<\\u1031\\u102B\\u1020\\u103A"
+"<\\u102D\\u102F\\u1020\\u103A"
+"<\\u1021\\u103A"
+"<\\u102C\\u1021\\u103A<<\\u102B\\u1021\\u103A"
+"<\\u102D\\u1021\\u103A"
+"<\\u102F\\u1021\\u103A"
+"<\\u1031\\u1021\\u103A"
+"<\\u1031\\u102C\\u1021\\u103A<<\\u1031\\u102B\\u1021\\u103A"
+"<\\u102D\\u102F\\u1021\\u103A"
+/* Medials */
+"<\\u105E"
+"<\\u105F"
+"<\\u103B"
+"<\\u103C"
+"<\\u1060"
+"<\\u103D"
+"<\\u1082"
+"<\\u103E"
+"<\\u103B\\u103D"
+"<\\u103C\\u103D"
+"<\\u103B\\u103E"
+"<\\u103C\\u103E"
+"<\\u103D\\u103E"
+"<\\u103B\\u103D\\u103E"
+"<\\u103C\\u103D\\u103E"
+/* Independent vowels */
+"&\\u1021\\u102D<<<\\u1023"
+"&\\u1021\\u102E<<<\\u1024"
+"&\\u1021\\u102F<<<\\u1025"
+"&\\u1021\\u1030<<<\\u1026"
+"&\\u1021\\u1031<<<\\u1027<<<\\u1028"
+"&\\u1021\\u1031\\u102C<<<\\u1029"
+"&\\u1021\\u1031\\u102C\\u103A<<<\\u102A"
+"&\\u102D\\u1019\\u103A"
+"<\\u102D\\u1036"
+"<\\u102D\\u1019\\u103A\\u1037"
+"<\\u102D\\u1036\\u1037"
+"<\\u102D\\u1019\\u103A\\u1038"
+"<\\u102D\\u1036\\u1038"
+"&\\u102F\\u1019\\u103A"
+"<\\u102F\\u1036"
+"<\\u102F\\u1019\\u103A\\u1037"
+"<\\u102F\\u1036\\u1037"
+"<\\u102F\\u1019\\u103A\\u1038"
+"<\\u102F\\u1036\\u1038"
+"&\\u1021\\u102F\\u1036<<<\\u1025\\u102F\\u1036"
+/* Independent vowels with finals */
+"&\\u1021\\u102D\\u1000\\u1039<<<\\u1023\\u1000\\u1039"
+"&\\u1021\\u102D\\u1000\\u103A<<<\\u1023\\u1000\\u103A"
+"&\\u1021\\u102F\\u1000\\u1039<<<\\u1025\\u1000\\u1039"
+"&\\u1021\\u102F\\u1000\\u103A<<<\\u1025\\u1000\\u103A"
+"&\\u1021\\u1031\\u1000\\u1039<<<\\u1027\\u1000\\u1039"
+"&\\u1021\\u1031\\u1000\\u103A<<<\\u1027\\u1000\\u103A"
+"&\\u1021\\u1031\\u102C\\u1000\\u1039<<<\\u1029\\u1000\\u1039"
+"&\\u1021\\u1031\\u102C\\u1000\\u103A<<<\\u1029\\u1000\\u103A"
+"&\\u1021\\u1031\\u102C\\u1000\\u1039<<<\\u1029\\u1031\\u102C\\u1000\\u1039"
+"&\\u1021\\u1031\\u102C\\u1000\\u103A<<<\\u1029\\u1031\\u102C\\u1000\\u103A"
+"&\\u1021\\u102D\\u1001\\u1039<<<\\u1023\\u1001\\u1039"
+"&\\u1021\\u102D\\u1001\\u103A<<<\\u1023\\u1001\\u103A"
+"&\\u1021\\u102F\\u1001\\u1039<<<\\u1025\\u1001\\u1039"
+"&\\u1021\\u102F\\u1001\\u103A<<<\\u1025\\u1001\\u103A"
+"&\\u1021\\u1031\\u1001\\u1039<<<\\u1027\\u1001\\u1039"
+"&\\u1021\\u1031\\u1001\\u103A<<<\\u1027\\u1001\\u103A"
+"&\\u1021\\u1031\\u102C\\u1001\\u1039<<<\\u1029\\u1001\\u1039"
+"&\\u1021\\u1031\\u102C\\u1001\\u103A<<<\\u1029\\u1001\\u103A"
+"&\\u1021\\u1031\\u102C\\u1001\\u1039<<<\\u1029\\u1031\\u102C\\u1001\\u1039"
+"&\\u1021\\u1031\\u102C\\u1001\\u103A<<<\\u1029\\u1031\\u102C\\u1001\\u103A"
+"&\\u1021\\u102D\\u1002\\u1039<<<\\u1023\\u1002\\u1039"
+"&\\u1021\\u102D\\u1002\\u103A<<<\\u1023\\u1002\\u103A"
+"&\\u1021\\u102F\\u1002\\u1039<<<\\u1025\\u1002\\u1039"
+"&\\u1021\\u102F\\u1002\\u103A<<<\\u1025\\u1002\\u103A"
+"&\\u1021\\u1031\\u1002\\u1039<<<\\u1027\\u1002\\u1039"
+"&\\u1021\\u1031\\u1002\\u103A<<<\\u1027\\u1002\\u103A"
+"&\\u1021\\u1031\\u102C\\u1002\\u1039<<<\\u1029\\u1002\\u1039"
+"&\\u1021\\u1031\\u102C\\u1002\\u103A<<<\\u1029\\u1002\\u103A"
+"&\\u1021\\u1031\\u102C\\u1002\\u1039<<<\\u1029\\u1031\\u102C\\u1002\\u1039"
+"&\\u1021\\u1031\\u102C\\u1002\\u103A<<<\\u1029\\u1031\\u102C\\u1002\\u103A"
+"&\\u1021\\u102D\\u1003\\u1039<<<\\u1023\\u1003\\u1039"
+"&\\u1021\\u102D\\u1003\\u103A<<<\\u1023\\u1003\\u103A"
+"&\\u1021\\u102F\\u1003\\u1039<<<\\u1025\\u1003\\u1039"
+"&\\u1021\\u102F\\u1003\\u103A<<<\\u1025\\u1003\\u103A"
+"&\\u1021\\u1031\\u1003\\u1039<<<\\u1027\\u1003\\u1039"
+"&\\u1021\\u1031\\u1003\\u103A<<<\\u1027\\u1003\\u103A"
+"&\\u1021\\u1031\\u102C\\u1003\\u1039<<<\\u1029\\u1003\\u1039"
+"&\\u1021\\u1031\\u102C\\u1003\\u103A<<<\\u1029\\u1003\\u103A"
+"&\\u1021\\u1031\\u102C\\u1003\\u1039<<<\\u1029\\u1031\\u102C\\u1003\\u1039"
+"&\\u1021\\u1031\\u102C\\u1003\\u103A<<<\\u1029\\u1031\\u102C\\u1003\\u103A"
+"&\\u1021\\u102D\\u1004\\u1039<<<\\u1023\\u1004\\u1039"
+"&\\u1021\\u102D\\u1004\\u103A<<<\\u1023\\u1004\\u103A"
+"&\\u1021\\u102F\\u1004\\u1039<<<\\u1025\\u1004\\u1039"
+"&\\u1021\\u102F\\u1004\\u103A<<<\\u1025\\u1004\\u103A"
+"&\\u1021\\u1031\\u1004\\u1039<<<\\u1027\\u1004\\u1039"
+"&\\u1021\\u1031\\u1004\\u103A<<<\\u1027\\u1004\\u103A"
+"&\\u1021\\u1031\\u102C\\u1004\\u1039<<<\\u1029\\u1004\\u1039"
+"&\\u1021\\u1031\\u102C\\u1004\\u103A<<<\\u1029\\u1004\\u103A"
+"&\\u1021\\u1031\\u102C\\u1004\\u1039<<<\\u1029\\u1031\\u102C\\u1004\\u1039"
+"&\\u1021\\u1031\\u102C\\u1004\\u103A<<<\\u1029\\u1031\\u102C\\u1004\\u103A"
+"&\\u1021\\u102D\\u1005\\u1039<<<\\u1023\\u1005\\u1039"
+"&\\u1021\\u102D\\u1005\\u103A<<<\\u1023\\u1005\\u103A"
+"&\\u1021\\u102F\\u1005\\u1039<<<\\u1025\\u1005\\u1039"
+"&\\u1021\\u102F\\u1005\\u103A<<<\\u1025\\u1005\\u103A"
+"&\\u1021\\u1031\\u1005\\u1039<<<\\u1027\\u1005\\u1039"
+"&\\u1021\\u1031\\u1005\\u103A<<<\\u1027\\u1005\\u103A"
+"&\\u1021\\u1031\\u102C\\u1005\\u1039<<<\\u1029\\u1005\\u1039"
+"&\\u1021\\u1031\\u102C\\u1005\\u103A<<<\\u1029\\u1005\\u103A"
+"&\\u1021\\u1031\\u102C\\u1005\\u1039<<<\\u1029\\u1031\\u102C\\u1005\\u1039"
+"&\\u1021\\u1031\\u102C\\u1005\\u103A<<<\\u1029\\u1031\\u102C\\u1005\\u103A"
+"&\\u1021\\u102D\\u1006\\u1039<<<\\u1023\\u1006\\u1039"
+"&\\u1021\\u102D\\u1006\\u103A<<<\\u1023\\u1006\\u103A"
+"&\\u1021\\u102F\\u1006\\u1039<<<\\u1025\\u1006\\u1039"
+"&\\u1021\\u102F\\u1006\\u103A<<<\\u1025\\u1006\\u103A"
+"&\\u1021\\u1031\\u1006\\u1039<<<\\u1027\\u1006\\u1039"
+"&\\u1021\\u1031\\u1006\\u103A<<<\\u1027\\u1006\\u103A"
+"&\\u1021\\u1031\\u102C\\u1006\\u1039<<<\\u1029\\u1006\\u1039"
+"&\\u1021\\u1031\\u102C\\u1006\\u103A<<<\\u1029\\u1006\\u103A"
+"&\\u1021\\u1031\\u102C\\u1006\\u1039<<<\\u1029\\u1031\\u102C\\u1006\\u1039"
+"&\\u1021\\u1031\\u102C\\u1006\\u103A<<<\\u1029\\u1031\\u102C\\u1006\\u103A"
+"&\\u1021\\u102D\\u1007\\u1039<<<\\u1023\\u1007\\u1039"
+"&\\u1021\\u102D\\u1007\\u103A<<<\\u1023\\u1007\\u103A"
+"&\\u1021\\u102F\\u1007\\u1039<<<\\u1025\\u1007\\u1039"
+"&\\u1021\\u102F\\u1007\\u103A<<<\\u1025\\u1007\\u103A"
+"&\\u1021\\u1031\\u1007\\u1039<<<\\u1027\\u1007\\u1039"
+"&\\u1021\\u1031\\u1007\\u103A<<<\\u1027\\u1007\\u103A"
+"&\\u1021\\u1031\\u102C\\u1007\\u1039<<<\\u1029\\u1007\\u1039"
+"&\\u1021\\u1031\\u102C\\u1007\\u103A<<<\\u1029\\u1007\\u103A"
+"&\\u1021\\u1031\\u102C\\u1007\\u1039<<<\\u1029\\u1031\\u102C\\u1007\\u1039"
+"&\\u1021\\u1031\\u102C\\u1007\\u103A<<<\\u1029\\u1031\\u102C\\u1007\\u103A"
+"&\\u1021\\u102D\\u1009\\u1039<<<\\u1023\\u1009\\u1039"
+"&\\u1021\\u102D\\u1009\\u103A<<<\\u1023\\u1009\\u103A"
+"&\\u1021\\u102F\\u1009\\u1039<<<\\u1025\\u1009\\u1039"
+"&\\u1021\\u102F\\u1009\\u103A<<<\\u1025\\u1009\\u103A"
+"&\\u1021\\u1031\\u1009\\u1039<<<\\u1027\\u1009\\u1039"
+"&\\u1021\\u1031\\u1009\\u103A<<<\\u1027\\u1009\\u103A"
+"&\\u1021\\u1031\\u102C\\u1009\\u1039<<<\\u1029\\u1009\\u1039"
+"&\\u1021\\u1031\\u102C\\u1009\\u103A<<<\\u1029\\u1009\\u103A"
+"&\\u1021\\u1031\\u102C\\u1009\\u1039<<<\\u1029\\u1031\\u102C\\u1009\\u1039"
+"&\\u1021\\u1031\\u102C\\u1009\\u103A<<<\\u1029\\u1031\\u102C\\u1009\\u103A"
+"&\\u1021\\u102D\\u100A\\u1039<<<\\u1023\\u100A\\u1039"
+"&\\u1021\\u102D\\u100A\\u103A<<<\\u1023\\u100A\\u103A"
+"&\\u1021\\u102F\\u100A\\u1039<<<\\u1025\\u100A\\u1039"
+"&\\u1021\\u102F\\u100A\\u103A<<<\\u1025\\u100A\\u103A"
+"&\\u1021\\u1031\\u100A\\u1039<<<\\u1027\\u100A\\u1039"
+"&\\u1021\\u1031\\u100A\\u103A<<<\\u1027\\u100A\\u103A"
+"&\\u1021\\u1031\\u102C\\u100A\\u1039<<<\\u1029\\u100A\\u1039"
+"&\\u1021\\u1031\\u102C\\u100A\\u103A<<<\\u1029\\u100A\\u103A"
+"&\\u1021\\u1031\\u102C\\u100A\\u1039<<<\\u1029\\u1031\\u102C\\u100A\\u1039"
+"&\\u1021\\u1031\\u102C\\u100A\\u103A<<<\\u1029\\u1031\\u102C\\u100A\\u103A"
+"&\\u1021\\u102D\\u100B\\u1039<<<\\u1023\\u100B\\u1039"
+"&\\u1021\\u102D\\u100B\\u103A<<<\\u1023\\u100B\\u103A"
+"&\\u1021\\u102F\\u100B\\u1039<<<\\u1025\\u100B\\u1039"
+"&\\u1021\\u102F\\u100B\\u103A<<<\\u1025\\u100B\\u103A"
+"&\\u1021\\u1031\\u100B\\u1039<<<\\u1027\\u100B\\u1039"
+"&\\u1021\\u1031\\u100B\\u103A<<<\\u1027\\u100B\\u103A"
+"&\\u1021\\u1031\\u102C\\u100B\\u1039<<<\\u1029\\u100B\\u1039"
+"&\\u1021\\u1031\\u102C\\u100B\\u103A<<<\\u1029\\u100B\\u103A"
+"&\\u1021\\u1031\\u102C\\u100B\\u1039<<<\\u1029\\u1031\\u102C\\u100B\\u1039"
+"&\\u1021\\u1031\\u102C\\u100B\\u103A<<<\\u1029\\u1031\\u102C\\u100B\\u103A"
+"&\\u1021\\u102D\\u100C\\u1039<<<\\u1023\\u100C\\u1039"
+"&\\u1021\\u102D\\u100C\\u103A<<<\\u1023\\u100C\\u103A"
+"&\\u1021\\u102F\\u100C\\u1039<<<\\u1025\\u100C\\u1039"
+"&\\u1021\\u102F\\u100C\\u103A<<<\\u1025\\u100C\\u103A"
+"&\\u1021\\u1031\\u100C\\u1039<<<\\u1027\\u100C\\u1039"
+"&\\u1021\\u1031\\u100C\\u103A<<<\\u1027\\u100C\\u103A"
+"&\\u1021\\u1031\\u102C\\u100C\\u1039<<<\\u1029\\u100C\\u1039"
+"&\\u1021\\u1031\\u102C\\u100C\\u103A<<<\\u1029\\u100C\\u103A"
+"&\\u1021\\u1031\\u102C\\u100C\\u1039<<<\\u1029\\u1031\\u102C\\u100C\\u1039"
+"&\\u1021\\u1031\\u102C\\u100C\\u103A<<<\\u1029\\u1031\\u102C\\u100C\\u103A"
+"&\\u1021\\u102D\\u100D\\u1039<<<\\u1023\\u100D\\u1039"
+"&\\u1021\\u102D\\u100D\\u103A<<<\\u1023\\u100D\\u103A"
+"&\\u1021\\u102F\\u100D\\u1039<<<\\u1025\\u100D\\u1039"
+"&\\u1021\\u102F\\u100D\\u103A<<<\\u1025\\u100D\\u103A"
+"&\\u1021\\u1031\\u100D\\u1039<<<\\u1027\\u100D\\u1039"
+"&\\u1021\\u1031\\u100D\\u103A<<<\\u1027\\u100D\\u103A"
+"&\\u1021\\u1031\\u102C\\u100D\\u1039<<<\\u1029\\u100D\\u1039"
+"&\\u1021\\u1031\\u102C\\u100D\\u103A<<<\\u1029\\u100D\\u103A"
+"&\\u1021\\u1031\\u102C\\u100D\\u1039<<<\\u1029\\u1031\\u102C\\u100D\\u1039"
+"&\\u1021\\u1031\\u102C\\u100D\\u103A<<<\\u1029\\u1031\\u102C\\u100D\\u103A"
+"&\\u1021\\u102D\\u100E\\u1039<<<\\u1023\\u100E\\u1039"
+"&\\u1021\\u102D\\u100E\\u103A<<<\\u1023\\u100E\\u103A"
+"&\\u1021\\u102F\\u100E\\u1039<<<\\u1025\\u100E\\u1039"
+"&\\u1021\\u102F\\u100E\\u103A<<<\\u1025\\u100E\\u103A"
+"&\\u1021\\u1031\\u100E\\u1039<<<\\u1027\\u100E\\u1039"
+"&\\u1021\\u1031\\u100E\\u103A<<<\\u1027\\u100E\\u103A"
+"&\\u1021\\u1031\\u102C\\u100E\\u1039<<<\\u1029\\u100E\\u1039"
+"&\\u1021\\u1031\\u102C\\u100E\\u103A<<<\\u1029\\u100E\\u103A"
+"&\\u1021\\u1031\\u102C\\u100E\\u1039<<<\\u1029\\u1031\\u102C\\u100E\\u1039"
+"&\\u1021\\u1031\\u102C\\u100E\\u103A<<<\\u1029\\u1031\\u102C\\u100E\\u103A"
+"&\\u1021\\u102D\\u100F\\u1039<<<\\u1023\\u100F\\u1039"
+"&\\u1021\\u102D\\u100F\\u103A<<<\\u1023\\u100F\\u103A"
+"&\\u1021\\u102F\\u100F\\u1039<<<\\u1025\\u100F\\u1039"
+"&\\u1021\\u102F\\u100F\\u103A<<<\\u1025\\u100F\\u103A"
+"&\\u1021\\u1031\\u100F\\u1039<<<\\u1027\\u100F\\u1039"
+"&\\u1021\\u1031\\u100F\\u103A<<<\\u1027\\u100F\\u103A"
+"&\\u1021\\u1031\\u102C\\u100F\\u1039<<<\\u1029\\u100F\\u1039"
+"&\\u1021\\u1031\\u102C\\u100F\\u103A<<<\\u1029\\u100F\\u103A"
+"&\\u1021\\u1031\\u102C\\u100F\\u1039<<<\\u1029\\u1031\\u102C\\u100F\\u1039"
+"&\\u1021\\u1031\\u102C\\u100F\\u103A<<<\\u1029\\u1031\\u102C\\u100F\\u103A"
+"&\\u1021\\u102D\\u1010\\u1039<<<\\u1023\\u1010\\u1039"
+"&\\u1021\\u102D\\u1010\\u103A<<<\\u1023\\u1010\\u103A"
+"&\\u1021\\u102F\\u1010\\u1039<<<\\u1025\\u1010\\u1039"
+"&\\u1021\\u102F\\u1010\\u103A<<<\\u1025\\u1010\\u103A"
+"&\\u1021\\u1031\\u1010\\u1039<<<\\u1027\\u1010\\u1039"
+"&\\u1021\\u1031\\u1010\\u103A<<<\\u1027\\u1010\\u103A"
+"&\\u1021\\u1031\\u102C\\u1010\\u1039<<<\\u1029\\u1010\\u1039"
+"&\\u1021\\u1031\\u102C\\u1010\\u103A<<<\\u1029\\u1010\\u103A"
+"&\\u1021\\u1031\\u102C\\u1010\\u1039<<<\\u1029\\u1031\\u102C\\u1010\\u1039"
+"&\\u1021\\u1031\\u102C\\u1010\\u103A<<<\\u1029\\u1031\\u102C\\u1010\\u103A"
+"&\\u1021\\u102D\\u1011\\u1039<<<\\u1023\\u1011\\u1039"
+"&\\u1021\\u102D\\u1011\\u103A<<<\\u1023\\u1011\\u103A"
+"&\\u1021\\u102F\\u1011\\u1039<<<\\u1025\\u1011\\u1039"
+"&\\u1021\\u102F\\u1011\\u103A<<<\\u1025\\u1011\\u103A"
+"&\\u1021\\u1031\\u1011\\u1039<<<\\u1027\\u1011\\u1039"
+"&\\u1021\\u1031\\u1011\\u103A<<<\\u1027\\u1011\\u103A"
+"&\\u1021\\u1031\\u102C\\u1011\\u1039<<<\\u1029\\u1011\\u1039"
+"&\\u1021\\u1031\\u102C\\u1011\\u103A<<<\\u1029\\u1011\\u103A"
+"&\\u1021\\u1031\\u102C\\u1011\\u1039<<<\\u1029\\u1031\\u102C\\u1011\\u1039"
+"&\\u1021\\u1031\\u102C\\u1011\\u103A<<<\\u1029\\u1031\\u102C\\u1011\\u103A"
+"&\\u1021\\u102D\\u1012\\u1039<<<\\u1023\\u1012\\u1039"
+"&\\u1021\\u102D\\u1012\\u103A<<<\\u1023\\u1012\\u103A"
+"&\\u1021\\u102F\\u1012\\u1039<<<\\u1025\\u1012\\u1039"
+"&\\u1021\\u102F\\u1012\\u103A<<<\\u1025\\u1012\\u103A"
+"&\\u1021\\u1031\\u1012\\u1039<<<\\u1027\\u1012\\u1039"
+"&\\u1021\\u1031\\u1012\\u103A<<<\\u1027\\u1012\\u103A"
+"&\\u1021\\u1031\\u102C\\u1012\\u1039<<<\\u1029\\u1012\\u1039"
+"&\\u1021\\u1031\\u102C\\u1012\\u103A<<<\\u1029\\u1012\\u103A"
+"&\\u1021\\u1031\\u102C\\u1012\\u1039<<<\\u1029\\u1031\\u102C\\u1012\\u1039"
+"&\\u1021\\u1031\\u102C\\u1012\\u103A<<<\\u1029\\u1031\\u102C\\u1012\\u103A"
+"&\\u1021\\u102D\\u1013\\u1039<<<\\u1023\\u1013\\u1039"
+"&\\u1021\\u102D\\u1013\\u103A<<<\\u1023\\u1013\\u103A"
+"&\\u1021\\u102F\\u1013\\u1039<<<\\u1025\\u1013\\u1039"
+"&\\u1021\\u102F\\u1013\\u103A<<<\\u1025\\u1013\\u103A"
+"&\\u1021\\u1031\\u1013\\u1039<<<\\u1027\\u1013\\u1039"
+"&\\u1021\\u1031\\u1013\\u103A<<<\\u1027\\u1013\\u103A"
+"&\\u1021\\u1031\\u102C\\u1013\\u1039<<<\\u1029\\u1013\\u1039"
+"&\\u1021\\u1031\\u102C\\u1013\\u103A<<<\\u1029\\u1013\\u103A"
+"&\\u1021\\u1031\\u102C\\u1013\\u1039<<<\\u1029\\u1031\\u102C\\u1013\\u1039"
+"&\\u1021\\u1031\\u102C\\u1013\\u103A<<<\\u1029\\u1031\\u102C\\u1013\\u103A"
+"&\\u1021\\u102D\\u1014\\u1039<<<\\u1023\\u1014\\u1039"
+"&\\u1021\\u102D\\u1014\\u103A<<<\\u1023\\u1014\\u103A"
+"&\\u1021\\u102F\\u1014\\u1039<<<\\u1025\\u1014\\u1039"
+"&\\u1021\\u102F\\u1014\\u103A<<<\\u1025\\u1014\\u103A"
+"&\\u1021\\u1031\\u1014\\u1039<<<\\u1027\\u1014\\u1039"
+"&\\u1021\\u1031\\u1014\\u103A<<<\\u1027\\u1014\\u103A"
+"&\\u1021\\u1031\\u102C\\u1014\\u1039<<<\\u1029\\u1014\\u1039"
+"&\\u1021\\u1031\\u102C\\u1014\\u103A<<<\\u1029\\u1014\\u103A"
+"&\\u1021\\u1031\\u102C\\u1014\\u1039<<<\\u1029\\u1031\\u102C\\u1014\\u1039"
+"&\\u1021\\u1031\\u102C\\u1014\\u103A<<<\\u1029\\u1031\\u102C\\u1014\\u103A"
+"&\\u1021\\u102D\\u1015\\u1039<<<\\u1023\\u1015\\u1039"
+"&\\u1021\\u102D\\u1015\\u103A<<<\\u1023\\u1015\\u103A"
+"&\\u1021\\u102F\\u1015\\u1039<<<\\u1025\\u1015\\u1039"
+"&\\u1021\\u102F\\u1015\\u103A<<<\\u1025\\u1015\\u103A"
+"&\\u1021\\u1031\\u1015\\u1039<<<\\u1027\\u1015\\u1039"
+"&\\u1021\\u1031\\u1015\\u103A<<<\\u1027\\u1015\\u103A"
+"&\\u1021\\u1031\\u102C\\u1015\\u1039<<<\\u1029\\u1015\\u1039"
+"&\\u1021\\u1031\\u102C\\u1015\\u103A<<<\\u1029\\u1015\\u103A"
+"&\\u1021\\u1031\\u102C\\u1015\\u1039<<<\\u1029\\u1031\\u102C\\u1015\\u1039"
+"&\\u1021\\u1031\\u102C\\u1015\\u103A<<<\\u1029\\u1031\\u102C\\u1015\\u103A"
+"&\\u1021\\u102D\\u1016\\u1039<<<\\u1023\\u1016\\u1039"
+"&\\u1021\\u102D\\u1016\\u103A<<<\\u1023\\u1016\\u103A"
+"&\\u1021\\u102F\\u1016\\u1039<<<\\u1025\\u1016\\u1039"
+"&\\u1021\\u102F\\u1016\\u103A<<<\\u1025\\u1016\\u103A"
+"&\\u1021\\u1031\\u1016\\u1039<<<\\u1027\\u1016\\u1039"
+"&\\u1021\\u1031\\u1016\\u103A<<<\\u1027\\u1016\\u103A"
+"&\\u1021\\u1031\\u102C\\u1016\\u1039<<<\\u1029\\u1016\\u1039"
+"&\\u1021\\u1031\\u102C\\u1016\\u103A<<<\\u1029\\u1016\\u103A"
+"&\\u1021\\u1031\\u102C\\u1016\\u1039<<<\\u1029\\u1031\\u102C\\u1016\\u1039"
+"&\\u1021\\u1031\\u102C\\u1016\\u103A<<<\\u1029\\u1031\\u102C\\u1016\\u103A"
+"&\\u1021\\u102D\\u1017\\u1039<<<\\u1023\\u1017\\u1039"
+"&\\u1021\\u102D\\u1017\\u103A<<<\\u1023\\u1017\\u103A"
+"&\\u1021\\u102F\\u1017\\u1039<<<\\u1025\\u1017\\u1039"
+"&\\u1021\\u102F\\u1017\\u103A<<<\\u1025\\u1017\\u103A"
+"&\\u1021\\u1031\\u1017\\u1039<<<\\u1027\\u1017\\u1039"
+"&\\u1021\\u1031\\u1017\\u103A<<<\\u1027\\u1017\\u103A"
+"&\\u1021\\u1031\\u102C\\u1017\\u1039<<<\\u1029\\u1017\\u1039"
+"&\\u1021\\u1031\\u102C\\u1017\\u103A<<<\\u1029\\u1017\\u103A"
+"&\\u1021\\u1031\\u102C\\u1017\\u1039<<<\\u1029\\u1031\\u102C\\u1017\\u1039"
+"&\\u1021\\u1031\\u102C\\u1017\\u103A<<<\\u1029\\u1031\\u102C\\u1017\\u103A"
+"&\\u1021\\u102D\\u1018\\u1039<<<\\u1023\\u1018\\u1039"
+"&\\u1021\\u102D\\u1018\\u103A<<<\\u1023\\u1018\\u103A"
+"&\\u1021\\u102F\\u1018\\u1039<<<\\u1025\\u1018\\u1039"
+"&\\u1021\\u102F\\u1018\\u103A<<<\\u1025\\u1018\\u103A"
+"&\\u1021\\u1031\\u1018\\u1039<<<\\u1027\\u1018\\u1039"
+"&\\u1021\\u1031\\u1018\\u103A<<<\\u1027\\u1018\\u103A"
+"&\\u1021\\u1031\\u102C\\u1018\\u1039<<<\\u1029\\u1018\\u1039"
+"&\\u1021\\u1031\\u102C\\u1018\\u103A<<<\\u1029\\u1018\\u103A"
+"&\\u1021\\u1031\\u102C\\u1018\\u1039<<<\\u1029\\u1031\\u102C\\u1018\\u1039"
+"&\\u1021\\u1031\\u102C\\u1018\\u103A<<<\\u1029\\u1031\\u102C\\u1018\\u103A"
+"&\\u1021\\u102D\\u1019\\u1039<<<\\u1023\\u1019\\u1039"
+"&\\u1021\\u102D\\u1019\\u103A<<<\\u1023\\u1019\\u103A"
+"&\\u1021\\u102F\\u1019\\u1039<<<\\u1025\\u1019\\u1039"
+"&\\u1021\\u102F\\u1019\\u103A<<<\\u1025\\u1019\\u103A"
+"&\\u1021\\u1031\\u1019\\u1039<<<\\u1027\\u1019\\u1039"
+"&\\u1021\\u1031\\u1019\\u103A<<<\\u1027\\u1019\\u103A"
+"&\\u1021\\u1031\\u102C\\u1019\\u1039<<<\\u1029\\u1019\\u1039"
+"&\\u1021\\u1031\\u102C\\u1019\\u103A<<<\\u1029\\u1019\\u103A"
+"&\\u1021\\u1031\\u102C\\u1019\\u1039<<<\\u1029\\u1031\\u102C\\u1019\\u1039"
+"&\\u1021\\u1031\\u102C\\u1019\\u103A<<<\\u1029\\u1031\\u102C\\u1019\\u103A"
+"&\\u1021\\u102D\\u101A\\u1039<<<\\u1023\\u101A\\u1039"
+"&\\u1021\\u102D\\u101A\\u103A<<<\\u1023\\u101A\\u103A"
+"&\\u1021\\u102F\\u101A\\u1039<<<\\u1025\\u101A\\u1039"
+"&\\u1021\\u102F\\u101A\\u103A<<<\\u1025\\u101A\\u103A"
+"&\\u1021\\u1031\\u101A\\u1039<<<\\u1027\\u101A\\u1039"
+"&\\u1021\\u1031\\u101A\\u103A<<<\\u1027\\u101A\\u103A"
+"&\\u1021\\u1031\\u102C\\u101A\\u1039<<<\\u1029\\u101A\\u1039"
+"&\\u1021\\u1031\\u102C\\u101A\\u103A<<<\\u1029\\u101A\\u103A"
+"&\\u1021\\u1031\\u102C\\u101A\\u1039<<<\\u1029\\u1031\\u102C\\u101A\\u1039"
+"&\\u1021\\u1031\\u102C\\u101A\\u103A<<<\\u1029\\u1031\\u102C\\u101A\\u103A"
+"&\\u1021\\u102D\\u101B\\u1039<<<\\u1023\\u101B\\u1039"
+"&\\u1021\\u102D\\u101B\\u103A<<<\\u1023\\u101B\\u103A"
+"&\\u1021\\u102F\\u101B\\u1039<<<\\u1025\\u101B\\u1039"
+"&\\u1021\\u102F\\u101B\\u103A<<<\\u1025\\u101B\\u103A"
+"&\\u1021\\u1031\\u101B\\u1039<<<\\u1027\\u101B\\u1039"
+"&\\u1021\\u1031\\u101B\\u103A<<<\\u1027\\u101B\\u103A"
+"&\\u1021\\u1031\\u102C\\u101B\\u1039<<<\\u1029\\u101B\\u1039"
+"&\\u1021\\u1031\\u102C\\u101B\\u103A<<<\\u1029\\u101B\\u103A"
+"&\\u1021\\u1031\\u102C\\u101B\\u1039<<<\\u1029\\u1031\\u102C\\u101B\\u1039"
+"&\\u1021\\u1031\\u102C\\u101B\\u103A<<<\\u1029\\u1031\\u102C\\u101B\\u103A"
+"&\\u1021\\u102D\\u101C\\u1039<<<\\u1023\\u101C\\u1039"
+"&\\u1021\\u102D\\u101C\\u103A<<<\\u1023\\u101C\\u103A"
+"&\\u1021\\u102F\\u101C\\u1039<<<\\u1025\\u101C\\u1039"
+"&\\u1021\\u102F\\u101C\\u103A<<<\\u1025\\u101C\\u103A"
+"&\\u1021\\u1031\\u101C\\u1039<<<\\u1027\\u101C\\u1039"
+"&\\u1021\\u1031\\u101C\\u103A<<<\\u1027\\u101C\\u103A"
+"&\\u1021\\u1031\\u102C\\u101C\\u1039<<<\\u1029\\u101C\\u1039"
+"&\\u1021\\u1031\\u102C\\u101C\\u103A<<<\\u1029\\u101C\\u103A"
+"&\\u1021\\u1031\\u102C\\u101C\\u1039<<<\\u1029\\u1031\\u102C\\u101C\\u1039"
+"&\\u1021\\u1031\\u102C\\u101C\\u103A<<<\\u1029\\u1031\\u102C\\u101C\\u103A"
+"&\\u1021\\u102D\\u101E\\u1039<<<\\u1023\\u101E\\u1039"
+"&\\u1021\\u102D\\u101E\\u103A<<<\\u1023\\u101E\\u103A"
+"&\\u1021\\u102F\\u101E\\u1039<<<\\u1025\\u101E\\u1039"
+"&\\u1021\\u102F\\u101E\\u103A<<<\\u1025\\u101E\\u103A"
+"&\\u1021\\u1031\\u101E\\u1039<<<\\u1027\\u101E\\u1039"
+"&\\u1021\\u1031\\u101E\\u103A<<<\\u1027\\u101E\\u103A"
+"&\\u1021\\u1031\\u102C\\u101E\\u1039<<<\\u1029\\u101E\\u1039"
+"&\\u1021\\u1031\\u102C\\u101E\\u103A<<<\\u1029\\u101E\\u103A"
+"&\\u1021\\u1031\\u102C\\u101E\\u1039<<<\\u1029\\u1031\\u102C\\u101E\\u1039"
+"&\\u1021\\u1031\\u102C\\u101E\\u103A<<<\\u1029\\u1031\\u102C\\u101E\\u103A"
+"&\\u1021\\u102D\\u101F\\u1039<<<\\u1023\\u101F\\u1039"
+"&\\u1021\\u102D\\u101F\\u103A<<<\\u1023\\u101F\\u103A"
+"&\\u1021\\u102F\\u101F\\u1039<<<\\u1025\\u101F\\u1039"
+"&\\u1021\\u102F\\u101F\\u103A<<<\\u1025\\u101F\\u103A"
+"&\\u1021\\u1031\\u101F\\u1039<<<\\u1027\\u101F\\u1039"
+"&\\u1021\\u1031\\u101F\\u103A<<<\\u1027\\u101F\\u103A"
+"&\\u1021\\u1031\\u102C\\u101F\\u1039<<<\\u1029\\u101F\\u1039"
+"&\\u1021\\u1031\\u102C\\u101F\\u103A<<<\\u1029\\u101F\\u103A"
+"&\\u1021\\u1031\\u102C\\u101F\\u1039<<<\\u1029\\u1031\\u102C\\u101F\\u1039"
+"&\\u1021\\u1031\\u102C\\u101F\\u103A<<<\\u1029\\u1031\\u102C\\u101F\\u103A"
+/* Contractions */
+"&\\u1031\\u102C\\u1000\\u103A\\u1000\\u103B=\\u1031\\u102C\\u1000\\u103A\\u103B" /* (suffix of) man */
+"&\\u1014\\u103A\\u1014\\u102F\\u1015\\u103A=\\u1014\\u103A\\u102F\\u1015\\u103A" /* (suffix of) I */
+/* Great Sa */
+"&\\u1031\\u101E\\u1039\\u101E=\\u1031\\u103F"
+"&\\u102D\\u101E\\u1039\\u101E=\\u102D\\u103F"
+"&\\u102F\\u101E\\u1039\\u101E=\\u102F\\u103F"
+"&\\u1021\\u102D\\u101E\\u1039\\u101E<<<\\u1023\\u103F"
+"&\\u1021\\u102F\\u101E\\u1039\\u101E<<<\\u1025\\u103F"
+"&\\u101E\\u1039\\u101E=\\u103F"
+/* Symbols - collate as long form */
+"&\\u1014\\u103E\\u102D\\u102F\\u1000\\u103A<<\\u104C"
+"&\\u101B\\u103D\\u1031\\u1037<<\\u104D"
+"&\\u101C\\u100A\\u103A\\u1038\\u1000\\u1031\\u102C\\u1004\\u103A\\u1038<<\\u104E\\u1004\\u103A\\u1038"
+"&\\u1021\\u102D<<\\u104F"
+/* Short Forms may need to be added here */
+"&\\u101C\\u1000\\u103A\\u101A\\u102C=\\u101C\\u1000\\u103A\\u103B\\u102C" /* right hand side */
+"&\\u101E\\u1019\\u102E=\\u101E\\u1039\\u1019\\u102E" /* daughter */
+"&\\u1011\\u1019\\u1004\\u103A\\u1038=\\u1011\\u1039\\u1019\\u1004\\u103A\\u1038" /* cooked rice */
+"&\\u101C\\u1000\\u103A\\u1018\\u1000\\u103A=\\u101C\\u1039\\u1018\\u1000\\u103A" /* tea */
+;
+
+
/*
Unicode Collation Algorithm:
Collation element (weight) scanner,
@@ -6767,9 +31128,7 @@ typedef struct my_uca_scanner_st
const uint16 *wbeg; /* Beginning of the current weight string */
const uchar *sbeg; /* Beginning of the input string */
const uchar *send; /* End of the input string */
- const uchar *uca_length;
- const uint16 * const *uca_weight;
- const MY_CONTRACTIONS *contractions;
+ const MY_UCA_WEIGHT_LEVEL *level;
uint16 implicit[2];
int page;
int code;
@@ -6782,51 +31141,81 @@ typedef struct my_uca_scanner_st
*/
typedef struct my_uca_scanner_handler_st
{
- void (*init)(my_uca_scanner *scanner, CHARSET_INFO *cs,
+ void (*init)(my_uca_scanner *scanner, CHARSET_INFO *cs,
+ const MY_UCA_WEIGHT_LEVEL *level,
const uchar *str, size_t length);
int (*next)(my_uca_scanner *scanner);
} my_uca_scanner_handler;
static const uint16 nochar[]= {0,0};
+
+#define MY_UCA_CNT_FLAG_SIZE 4096
+#define MY_UCA_CNT_FLAG_MASK 4095
+
+#define MY_UCA_CNT_HEAD 1
+#define MY_UCA_CNT_TAIL 2
+#define MY_UCA_CNT_MID1 4
+#define MY_UCA_CNT_MID2 8
+#define MY_UCA_CNT_MID3 16
+#define MY_UCA_CNT_MID4 32
+
+#define MY_UCA_PREVIOUS_CONTEXT_HEAD 64
+#define MY_UCA_PREVIOUS_CONTEXT_TAIL 128
+
/********** Helper functions to handle contraction ************/
/**
Mark a character as a contraction part
- @cs Pointer to CHARSET_INFO data
- @wc Unicode code point
- @flag flag: "is contraction head", "is contraction tail"
+ @param uca Pointer to UCA data
+ @param wc Unicode code point
+ @param flag flag: "is contraction head", "is contraction tail"
*/
-static void
-my_uca_add_contraction_flag(CHARSET_INFO *cs, my_wc_t wc, int flag)
+static inline void
+my_uca_add_contraction_flag(MY_CONTRACTIONS *list, my_wc_t wc, int flag)
{
- cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK]|= flag;
+ list->flags[wc & MY_UCA_CNT_FLAG_MASK]|= flag;
}
/**
Add a new contraction into contraction list
- @cs Pointer to CHARSET_INFO data
- @wc Unicode code points of the characters
- @len Number of characters
+ @param uca Pointer to UCA data
+ @param wc Unicode code points of the characters
+ @param len Number of characters
@return New contraction
@retval Pointer to a newly added contraction
*/
static MY_CONTRACTION *
-my_uca_add_contraction(struct charset_info_st *cs,
- my_wc_t *wc, int len __attribute__((unused)))
+my_uca_add_contraction(MY_CONTRACTIONS *list, my_wc_t *wc, size_t len,
+ my_bool with_context)
{
- MY_CONTRACTIONS *list= (MY_CONTRACTIONS*) cs->contractions;
MY_CONTRACTION *next= &list->item[list->nitems];
- DBUG_ASSERT(len == 2); /* We currently support only contraction2 */
- next->ch[0]= wc[0];
- next->ch[1]= wc[1];
+ size_t i;
+ /*
+ Contraction is always at least 2 characters.
+ Contraction is never longer than MY_UCA_MAX_CONTRACTION,
+ which is guaranteed by using my_coll_rule_expand() with proper limit.
+ */
+ DBUG_ASSERT(len > 1 && len <= MY_UCA_MAX_CONTRACTION);
+ for (i= 0; i < len; i++)
+ {
+ /*
+ We don't support contractions with U+0000.
+ my_coll_rule_expand() guarantees there're no U+0000 in a contraction.
+ */
+ DBUG_ASSERT(wc[i] != 0);
+ next->ch[i]= wc[i];
+ }
+ if (i < MY_UCA_MAX_CONTRACTION)
+ next->ch[i]= 0; /* Add end-of-line marker */
+ next->with_context= with_context;
list->nitems++;
return next;
}
@@ -6835,9 +31224,9 @@ my_uca_add_contraction(struct charset_info_st *cs,
/**
Allocate and initialize memory for contraction list and flags
- @cs Pointer to CHARSET_INFO data
- @alloc Memory allocation function (typically points to my_alloc_once)
- @n Number of contractions
+ @param uca Pointer to UCA data
+ @param alloc Memory allocation function (typically points to my_alloc_once)
+ @param n Number of contractions
@return Error code
@retval 0 - memory allocated successfully
@@ -6845,234 +31234,443 @@ my_uca_add_contraction(struct charset_info_st *cs,
*/
static my_bool
-my_uca_alloc_contractions(struct charset_info_st *cs,
- void *(*alloc)(size_t), size_t n)
+my_uca_alloc_contractions(MY_CONTRACTIONS *contractions,
+ MY_CHARSET_LOADER *loader, size_t n)
{
uint size= n * sizeof(MY_CONTRACTION);
- MY_CONTRACTIONS *contractions;
-
- if (!(cs->contractions= contractions= (*alloc)(sizeof(MY_CONTRACTIONS))))
- return 1;
- bzero(contractions, sizeof(MY_CONTRACTIONS));
- if (!(contractions->item= (*alloc)(size)) ||
- !(contractions->flags= (char*) (*alloc)(MY_UCA_CNT_FLAG_SIZE)))
+ if (!(contractions->item= (loader->once_alloc)(size)) ||
+ !(contractions->flags= (char *) (loader->once_alloc)(MY_UCA_CNT_FLAG_SIZE)))
return 1;
- bzero(contractions->item, size);
- bzero(contractions->flags, MY_UCA_CNT_FLAG_SIZE);
+ memset(contractions->item, 0, size);
+ memset(contractions->flags, 0, MY_UCA_CNT_FLAG_SIZE);
return 0;
}
-#ifdef HAVE_CHARSET_ucs2
-/*
- Initialize collation weight scanner
+/**
+ Return UCA contraction data for a CHARSET_INFO structure.
- SYNOPSIS:
- my_uca_scanner_init()
- scanner Pointer to an initialized scanner structure
- cs Character set + collation information
- str Beginning of the string
- length Length of the string.
-
- NOTES:
- Optimized for UCS2
+ @param cs Pointer to CHARSET_INFO structure
+ @retval Pointer to contraction data
+ @retval NULL, if this collation does not have UCA contraction
+*/
- RETURN
- N/A
+const MY_CONTRACTIONS *
+my_charset_get_contractions(CHARSET_INFO *cs, int level)
+{
+ return (cs->uca != NULL) && (cs->uca->level[level].contractions.nitems > 0) ?
+ &cs->uca->level[level].contractions : NULL;
+}
+
+
+/**
+ Check if UCA level data has contractions (static version)
+ Static quick version of my_uca_have_contractions(),
+ optimized for performance purposes, also marked as "inline".
+
+ @param level Pointer to UCA level data
+
+ @return Flags indicating if UCA with contractions
+ @retval 0 - no contractions
+ @retval 1 - there are some contractions
*/
-static void my_uca_scanner_init_ucs2(my_uca_scanner *scanner,
- CHARSET_INFO *cs,
- const uchar *str, size_t length)
+static inline my_bool
+my_uca_have_contractions_quick(const MY_UCA_WEIGHT_LEVEL *level)
{
- scanner->wbeg= nochar;
- if (length)
+ return (level->contractions.nitems > 0);
+}
+
+
+
+/**
+ Check if a character can be contraction head
+
+ @param c Pointer to UCA contraction data
+ @param wc Code point
+
+ @retval 0 - cannot be contraction head
+ @retval 1 - can be contraction head
+*/
+
+my_bool
+my_uca_can_be_contraction_head(const MY_CONTRACTIONS *c, my_wc_t wc)
+{
+ return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD;
+}
+
+
+/**
+ Check if a character can be contraction tail
+
+ @param c Pointer to UCA contraction data
+ @param wc Code point
+
+ @retval 0 - cannot be contraction tail
+ @retval 1 - can be contraction tail
+*/
+
+my_bool
+my_uca_can_be_contraction_tail(const MY_CONTRACTIONS *c, my_wc_t wc)
+{
+ return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_TAIL;
+}
+
+
+/**
+ Check if a character can be contraction part
+
+ @param c Pointer to UCA contraction data
+ @param wc Code point
+
+ @retval 0 - cannot be contraction part
+ @retval 1 - can be contraction part
+*/
+
+static inline my_bool
+my_uca_can_be_contraction_part(const MY_CONTRACTIONS *c, my_wc_t wc, int flag)
+{
+ return c->flags[wc & MY_UCA_CNT_FLAG_MASK] & flag;
+}
+
+
+/**
+ Find a contraction consisting of two characters and return its weight array
+
+ @param list Pointer to UCA contraction data
+ @param wc1 First character
+ @param wc2 Second character
+
+ @return Weight array
+ @retval NULL - no contraction found
+ @retval ptr - contraction weight array
+*/
+
+uint16 *
+my_uca_contraction2_weight(const MY_CONTRACTIONS *list, my_wc_t wc1, my_wc_t wc2)
+{
+ MY_CONTRACTION *c, *last;
+ for (c= list->item, last= c + list->nitems; c < last; c++)
{
- scanner->sbeg= str;
- scanner->send= str + length - 2;
- scanner->uca_length= cs->sort_order;
- scanner->uca_weight= cs->sort_order_big;
- scanner->contractions= cs->contractions;
- scanner->cs= cs;
- return;
+ if (c->ch[0] == wc1 && c->ch[1] == wc2 && c->ch[2] == 0)
+ {
+ return c->weight;
+ }
}
+ return NULL;
+}
- /*
- Sometimes this function is called with
- str=NULL and length=0, which should be
- considered as an empty string.
-
- The above initialization is unsafe for such cases,
- because scanner->send is initialized to (NULL-2), which is 0xFFFFFFFE.
- Then we fall into an endless loop in my_uca_scanner_next_ucs2().
-
- Do special initialization for the case when length=0.
- Initialize scanner->sbeg to an address greater than scanner->send.
- Next call of my_uca_scanner_next_ucs2() will correctly return with -1.
- */
- scanner->sbeg= (uchar*) &nochar[1];
- scanner->send= (uchar*) &nochar[0];
+
+/**
+ Check if a character can be previous context head
+
+ @param list Pointer to UCA contraction data
+ @param wc Code point
+
+ @return
+ @retval FALSE - cannot be previous context head
+ @retval TRUE - can be previous context head
+*/
+
+static inline my_bool
+my_uca_can_be_previous_context_head(const MY_CONTRACTIONS *list, my_wc_t wc)
+{
+ return list->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_HEAD;
}
-/*
- Read next collation element (weight), i.e. converts
- a stream of characters into a stream of their weights.
-
- SYNOPSIS:
- my_uca_scanner_next()
- scanner Address of a previously initialized scanner strucuture
-
- NOTES:
- Optimized for UCS2
-
- Checks if the current character's weight string has been fully scanned,
- if no, then returns the next weight for this character,
- else scans the next character and returns its first weight.
+/**
+ Check if a character can be previois context tail
- Each character can have number weights from 0 to 8.
-
- Some characters do not have weights at all, 0 weights.
- It means they are ignored during comparison.
-
- Examples:
- 1. 0x0001 START OF HEADING, has no weights, ignored, does
- not produce any weights.
- 2. 0x0061 LATIN SMALL LETTER A, has one weight.
- 0x0E33 will be returned
- 3. 0x00DF LATIN SMALL LETTER SHARP S, aka SZ ligature,
- has two weights. It will return 0x0FEA twice for two
- consequent calls.
- 4. 0x247D PATENTHESIZED NUMBER TEN, has four weights,
- this function will return these numbers in four
- consequent calls: 0x0288, 0x0E2A, 0x0E29, 0x0289
- 5. A string consisting of the above characters:
- 0x0001 0x0061 0x00DF 0x247D
- will return the following weights, one weight per call:
- 0x0E33 0x0FEA 0x0FEA 0x0288, 0x0E2A, 0x0E29, 0x0289
-
- RETURN
- Next weight, a number between 0x0000 and 0xFFFF
- Or -1 on error (END-OF-STRING or ILLEGAL MULTIBYTE SEQUENCE)
+ @param uca Pointer to UCA contraction data
+ @param wc Code point
+
+ @return
+ @retval FALSE - cannot be contraction tail
+ @retval TRUE - can be contraction tail
*/
-static int my_uca_scanner_next_ucs2(my_uca_scanner *scanner)
+static inline my_bool
+my_uca_can_be_previous_context_tail(const MY_CONTRACTIONS *list, my_wc_t wc)
{
-
- /*
- Check if the weights for the previous character have been
- already fully scanned. If yes, then get the next character and
- initialize wbeg and wlength to its weight string.
- */
-
- if (scanner->wbeg[0])
- return *scanner->wbeg++;
-
- do
+ return list->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_PREVIOUS_CONTEXT_TAIL;
+}
+
+
+/**
+ Compare two wide character strings, wide analog to strncmp().
+
+ @param a Pointer to the first string
+ @param b Pointer to the second string
+ @param len Length of the strings
+
+ @return
+ @retval 0 - strings are equal
+ @retval non-zero - strings are different
+*/
+
+static int
+my_wmemcmp(my_wc_t *a, my_wc_t *b, size_t len)
+{
+ return memcmp(a, b, len * sizeof(my_wc_t));
+}
+
+
+/**
+ Check if a string is a contraction,
+ and return its weight array on success.
+
+ @param list Pointer to UCA contraction data
+ @param wc Pointer to wide string
+ @param len String length
+
+ @return Weight array
+ @retval NULL - Input string is not a known contraction
+ @retval ptr - contraction weight array
+*/
+
+static inline uint16 *
+my_uca_contraction_weight(const MY_CONTRACTIONS *list, my_wc_t *wc, size_t len)
+{
+ MY_CONTRACTION *c, *last;
+ for (c= list->item, last= c + list->nitems; c < last; c++)
{
- const uint16 *const *ucaw= scanner->uca_weight;
- const uchar *ucal= scanner->uca_length;
-
- if (scanner->sbeg > scanner->send)
- return -1;
-
- scanner->page= (uchar)scanner->sbeg[0];
- scanner->code= (uchar)scanner->sbeg[1];
- scanner->sbeg+= 2;
-
- if (scanner->contractions && (scanner->sbeg <= scanner->send))
+ if ((len == MY_UCA_MAX_CONTRACTION || c->ch[len] == 0) &&
+ !c->with_context &&
+ !my_wmemcmp(c->ch, wc, len))
+ return c->weight;
+ }
+ return NULL;
+}
+
+
+/**
+ Find a contraction in the input stream and return its weight array
+
+ Scan input characters while their flags tell that they can be
+ a contraction part. Then try to find real contraction among the
+ candidates, starting from the longest.
+
+ @param scanner Pointer to UCA scanner
+ @param[OUT] *wc Where to store the scanned string
+
+ @return Weight array
+ @retval NULL - no contraction found
+ @retval ptr - contraction weight array
+*/
+
+static uint16 *
+my_uca_scanner_contraction_find(my_uca_scanner *scanner, my_wc_t *wc)
+{
+ size_t clen= 1;
+ int flag;
+ const uchar *s, *beg[MY_UCA_MAX_CONTRACTION];
+ memset(beg, 0, sizeof(beg));
+
+ /* Scan all contraction candidates */
+ for (s= scanner->sbeg, flag= MY_UCA_CNT_MID1;
+ clen < MY_UCA_MAX_CONTRACTION;
+ flag<<= 1)
+ {
+ int mblen;
+ if ((mblen= scanner->cs->cset->mb_wc(scanner->cs, &wc[clen],
+ s, scanner->send)) <= 0)
+ break;
+ beg[clen]= s= s + mblen;
+ if (!my_uca_can_be_contraction_part(&scanner->level->contractions,
+ wc[clen++], flag))
+ break;
+ }
+
+ /* Find among candidates the longest real contraction */
+ for ( ; clen > 1; clen--)
+ {
+ uint16 *cweight;
+ if (my_uca_can_be_contraction_tail(&scanner->level->contractions,
+ wc[clen - 1]) &&
+ (cweight= my_uca_contraction_weight(&scanner->level->contractions,
+ wc, clen)))
{
- my_wc_t wc1= ((scanner->page << 8) | scanner->code);
-
- if (my_cs_can_be_contraction_head(scanner->cs, wc1))
- {
- const uint16 *cweight;
- my_wc_t wc2= (((my_wc_t) scanner->sbeg[0]) << 8) | scanner->sbeg[1];
- if (my_cs_can_be_contraction_tail(scanner->cs, wc2) &&
- (cweight= my_cs_contraction2_weight(scanner->cs,
- scanner->code,
- scanner->sbeg[1])))
- {
- scanner->implicit[0]= 0;
- scanner->wbeg= scanner->implicit;
- scanner->sbeg+=2;
- return *cweight;
- }
- }
+ scanner->wbeg= cweight + 1;
+ scanner->sbeg= beg[clen - 1];
+ return cweight;
}
-
- if (!ucaw[scanner->page])
- goto implicit;
- scanner->wbeg= ucaw[scanner->page] + scanner->code * ucal[scanner->page];
- } while (!scanner->wbeg[0]);
-
- return *scanner->wbeg++;
+ }
+
+ return NULL; /* No contractions were found */
+}
+
+
+/**
+ Find weight for contraction with previous context
+ and return its weight array.
+
+ @param scanner Pointer to UCA scanner
+ @param wc0 Previous character
+ @param wc1 Current character
+
+ @return Weight array
+ @retval NULL - no contraction with context found
+ @retval ptr - contraction weight array
+*/
+
+static uint16 *
+my_uca_previous_context_find(my_uca_scanner *scanner,
+ my_wc_t wc0, my_wc_t wc1)
+{
+ const MY_CONTRACTIONS *list= &scanner->level->contractions;
+ MY_CONTRACTION *c, *last;
+ for (c= list->item, last= c + list->nitems; c < last; c++)
+ {
+ if (c->with_context && wc0 == c->ch[0] && wc1 == c->ch[1])
+ {
+ scanner->wbeg= c->weight + 1;
+ return c->weight;
+ }
+ }
+ return NULL;
+}
+
+/****************************************************************/
+
+/**
+ Implicit weights for a code CP are constructed as follows:
+ [.AAAA.0020.0002][.BBBB.0000.0000]
+
+ where:
+ AAAA= BASE + (CP >> 15);
+ BBBB= (CP & 0x7FFF) | 0x8000;
+
+ There are two weights in the primary level (AAAA followed by BBBB).
+ There is one weight on other levels:
+ - 0020 on the secondary level
+ - 0002 on the tertiary level
+*/
+
+
+/**
+ Return BASE for an implicit weight on the primary level
+
+ According to UCA, BASE is calculated as follows:
+ - FB40 for Unified_Ideograph=True AND
+ ((Block=CJK_Unified_Ideograph) OR
+ (Block=CJK_Compatibility_Ideographs))
+ - FB80 for Unified_Ideograph=True AND NOT
+ ((Block=CJK_Unified_Ideograph) OR
+ (Block=CJK_Compatibility_Ideographs))
+ - FBC0 for any other code point
+ TODO: it seems we're not handling BASE correctly:
+ - check what are those blocks
+ - there are more Unified Ideograph blocks in the latest Unicode versions
+*/
+static inline uint16
+my_uca_implicit_weight_base(my_wc_t code)
+{
+ if (code >= 0x3400 && code <= 0x4DB5)
+ return 0xFB80;
+ if (code >= 0x4E00 && code <= 0x9FA5)
+ return 0xFB40;
+ return 0xFBC0;
+}
+
+
+static inline void
+my_uca_implicit_weight_put(uint16 *to, my_wc_t code, uint level)
+{
+ switch (level) {
+ case 1: to[0]= 0x0020; to[1]= 0; break; /* Secondary level */
+ case 2: to[0]= 0x0002; to[1]= 0; break; /* Tertiary level */
+ case 3: to[0]= 0x0001; to[1]= 0; break; /* Quaternary level */
+ default:
+ DBUG_ASSERT(0);
+ case 0:
+ break;
+ }
+ /* Primary level */
+ to[0]= (code >> 15) + my_uca_implicit_weight_base(code);
+ to[1]= (code & 0x7FFF) | 0x8000;
+ to[2]= 0;
+}
+
+/****************************************************************/
+
+/**
+ Return an implicit UCA weight for the primary level.
+ Used for characters that do not have assigned UCA weights.
-implicit:
+ @param scanner UCA weight scanner
- scanner->code= (scanner->page << 8) + scanner->code;
- scanner->implicit[0]= (scanner->code & 0x7FFF) | 0x8000;
- scanner->implicit[1]= 0;
+ @return The leading implicit weight.
+
+ The second weight is stored in scanner->implicit[0]
+ and is later returned on the next my_uca_scanner_next_any() call.
+*/
+
+static inline int
+my_uca_scanner_next_implicit_primary(my_uca_scanner *scanner)
+{
+ my_wc_t wc= (scanner->page << 8) + scanner->code;
+ scanner->implicit[0]= (wc & 0x7FFF) | 0x8000; /* The second weight */
+ scanner->implicit[1]= 0; /* 0 terminator */
scanner->wbeg= scanner->implicit;
-
- scanner->page= scanner->page >> 7;
-
- if (scanner->code >= 0x3400 && scanner->code <= 0x4DB5)
- scanner->page+= 0xFB80;
- else if (scanner->code >= 0x4E00 && scanner->code <= 0x9FA5)
- scanner->page+= 0xFB40;
- else
- scanner->page+= 0xFBC0;
-
- return scanner->page;
+ return my_uca_implicit_weight_base(wc) + (wc >> 15);
}
-static my_uca_scanner_handler my_ucs2_uca_scanner_handler=
-{
- my_uca_scanner_init_ucs2,
- my_uca_scanner_next_ucs2
-};
-#endif /* HAVE_CHARSET_ucs2 */
+/**
+ Return an implicit weight for the current level
+ (according to scanner->level->levelno).
+*/
+static inline int
+my_uca_scanner_next_implicit(my_uca_scanner *scanner)
+{
+ switch (scanner->level->levelno) {
+ case 0: return my_uca_scanner_next_implicit_primary(scanner);/* Primary level*/
+ case 1: scanner->wbeg= nochar; return 0x0020; /* Secondary level */
+ case 2: scanner->wbeg= nochar; return 0x0002; /* Tertiary level */
+ default: scanner->wbeg= nochar; break;
+ }
+ DBUG_ASSERT(0);
+ return 0;
+}
/*
The same two functions for any character set
*/
-static void my_uca_scanner_init_any(my_uca_scanner *scanner,
- CHARSET_INFO *cs __attribute__((unused)),
- const uchar *str, size_t length)
+static void
+my_uca_scanner_init_any(my_uca_scanner *scanner,
+ CHARSET_INFO *cs,
+ const MY_UCA_WEIGHT_LEVEL *level,
+ const uchar *str, size_t length)
{
/* Note, no needs to initialize scanner->wbeg */
scanner->sbeg= str;
scanner->send= str + length;
scanner->wbeg= nochar;
- scanner->uca_length= cs->sort_order;
- scanner->uca_weight= cs->sort_order_big;
- scanner->contractions= cs->contractions;
+ scanner->level= level;
scanner->cs= cs;
}
static int my_uca_scanner_next_any(my_uca_scanner *scanner)
{
-
/*
Check if the weights for the previous character have been
already fully scanned. If yes, then get the next character and
initialize wbeg and wlength to its weight string.
*/
-
- if (scanner->wbeg[0])
- return *scanner->wbeg++;
-
- do
+
+ if (scanner->wbeg[0]) /* More weights left from the previous step: */
+ return *scanner->wbeg++; /* return the next weight from expansion */
+
+ do
{
- const uint16 *const *ucaw= scanner->uca_weight;
- const uchar *ucal= scanner->uca_length;
- my_wc_t wc;
- int mb_len;
-
- if (((mb_len= scanner->cs->cset->mb_wc(scanner->cs, &wc,
+ const uint16 *wpage;
+ my_wc_t wc[MY_UCA_MAX_CONTRACTION];
+ int mblen;
+
+ /* Get next character */
+ if (((mblen= scanner->cs->cset->mb_wc(scanner->cs, wc,
scanner->sbeg,
scanner->send)) <= 0))
{
@@ -7094,63 +31692,61 @@ static int my_uca_scanner_next_any(my_uca_scanner *scanner)
*/
return 0xFFFF;
}
-
- scanner->sbeg+= mb_len;
- if (wc > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT)
+
+ scanner->sbeg+= mblen;
+ if (wc[0] > scanner->level->maxchar)
{
/* Return 0xFFFD as weight for all characters outside BMP */
scanner->wbeg= nochar;
return 0xFFFD;
}
- else
- {
- scanner->page= wc >> 8;
- scanner->code= wc & 0xFF;
- }
-
- if (my_cs_have_contractions(scanner->cs) &&
- my_cs_can_be_contraction_head(scanner->cs, wc))
+
+ if (my_uca_have_contractions_quick(scanner->level))
{
- my_wc_t wc2;
- const uint16 *cweight;
-
- if (((mb_len= scanner->cs->cset->mb_wc(scanner->cs, &wc2,
- scanner->sbeg,
- scanner->send)) >=0) &&
- my_cs_can_be_contraction_tail(scanner->cs, wc2) &&
- (cweight= my_cs_contraction2_weight(scanner->cs, wc, wc2)))
+ uint16 *cweight;
+ /*
+ If we have scanned a character which can have previous context,
+ and there were some more characters already before,
+ then reconstruct codepoint of the previous character
+ from "page" and "code" into w[1], and verify that {wc[1], wc[0]}
+ together form a real previous context pair.
+ Note, we support only 2-character long sequences with previous
+ context at the moment. CLDR does not have longer sequences.
+ */
+ if (my_uca_can_be_previous_context_tail(&scanner->level->contractions,
+ wc[0]) &&
+ scanner->wbeg != nochar && /* if not the very first character */
+ my_uca_can_be_previous_context_head(&scanner->level->contractions,
+ (wc[1]= ((scanner->page << 8) +
+ scanner->code))) &&
+ (cweight= my_uca_previous_context_find(scanner, wc[1], wc[0])))
{
- scanner->implicit[0]= 0;
- scanner->wbeg= scanner->implicit;
- scanner->sbeg+= mb_len;
+ scanner->page= scanner->code= 0; /* Clear for the next character */
return *cweight;
}
+ else if (my_uca_can_be_contraction_head(&scanner->level->contractions,
+ wc[0]))
+ {
+ /* Check if w[0] starts a contraction */
+ if ((cweight= my_uca_scanner_contraction_find(scanner, wc)))
+ return *cweight;
+ }
}
-
- if (!ucaw[scanner->page])
- goto implicit;
- scanner->wbeg= ucaw[scanner->page] + scanner->code * ucal[scanner->page];
- } while (!scanner->wbeg[0]);
-
+
+ /* Process single character */
+ scanner->page= wc[0] >> 8;
+ scanner->code= wc[0] & 0xFF;
+
+ /* If weight page for w[0] does not exist, then calculate algoritmically */
+ if (!(wpage= scanner->level->weights[scanner->page]))
+ return my_uca_scanner_next_implicit(scanner);
+
+ /* Calculate pointer to w[0]'s weight, using page and offset */
+ scanner->wbeg= wpage +
+ scanner->code * scanner->level->lengths[scanner->page];
+ } while (!scanner->wbeg[0]); /* Skip ignorable characters */
+
return *scanner->wbeg++;
-
-implicit:
-
- scanner->code= (scanner->page << 8) + scanner->code;
- scanner->implicit[0]= (scanner->code & 0x7FFF) | 0x8000;
- scanner->implicit[1]= 0;
- scanner->wbeg= scanner->implicit;
-
- scanner->page= scanner->page >> 7;
-
- if (scanner->code >= 0x3400 && scanner->code <= 0x4DB5)
- scanner->page+= 0xFB80;
- else if (scanner->code >= 0x4E00 && scanner->code <= 0x9FA5)
- scanner->page+= 0xFB40;
- else
- scanner->page+= 0xFBC0;
-
- return scanner->page;
}
@@ -7160,7 +31756,6 @@ static my_uca_scanner_handler my_any_uca_scanner_handler=
my_uca_scanner_next_any
};
-
/*
Compares two strings according to the collation
@@ -7171,6 +31766,7 @@ static my_uca_scanner_handler my_any_uca_scanner_handler=
slen First string length
t Second string
tlen Seconf string length
+ level DUCETweight level
NOTES:
Initializes two weight scanners and gets weights
@@ -7202,19 +31798,20 @@ static my_uca_scanner_handler my_any_uca_scanner_handler=
positive number - means the first string is bigger
*/
-static int my_strnncoll_uca(CHARSET_INFO *cs,
- my_uca_scanner_handler *scanner_handler,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
+static int my_strnncoll_uca_onelevel(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ const MY_UCA_WEIGHT_LEVEL *level,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool t_is_prefix)
{
my_uca_scanner sscanner;
my_uca_scanner tscanner;
int s_res;
int t_res;
- scanner_handler->init(&sscanner, cs, s, slen);
- scanner_handler->init(&tscanner, cs, t, tlen);
+ scanner_handler->init(&sscanner, cs, level, s, slen);
+ scanner_handler->init(&tscanner, cs, level, t, tlen);
do
{
@@ -7225,6 +31822,66 @@ static int my_strnncoll_uca(CHARSET_INFO *cs,
return (t_is_prefix && t_res < 0) ? 0 : (s_res - t_res);
}
+static int my_strnncoll_uca(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool t_is_prefix)
+{
+ return my_strnncoll_uca_onelevel(cs, scanner_handler, &cs->uca->level[0],
+ s, slen, t, tlen, t_is_prefix);
+}
+
+static int my_strnncoll_uca_multilevel(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool t_is_prefix)
+{
+ uint num_level= cs->levels_for_order;
+ uint i;
+ for (i= 0; i != num_level; i++)
+ {
+ int ret= my_strnncoll_uca_onelevel(cs, scanner_handler, &cs->uca->level[i],
+ s, slen, t, tlen, t_is_prefix);
+ if (ret)
+ return ret;
+ }
+ return 0;
+}
+
+
+static inline int
+my_space_weight(const MY_UCA_WEIGHT_LEVEL *level)
+{
+ return level->weights[0][0x20 * level->lengths[0]];
+}
+
+
+/**
+ Helper function:
+ Find address of weights of the given character.
+
+ @param weights UCA weight array
+ @param lengths UCA length array
+ @param ch character Unicode code point
+
+ @return Weight array
+ @retval pointer to weight array for the given character,
+ or NULL if this page does not have implicit weights.
+*/
+
+static inline uint16 *
+my_char_weight_addr(const MY_UCA_WEIGHT_LEVEL *level, uint wc)
+{
+ uint page, ofst;
+ return wc > level->maxchar ? NULL :
+ (level->weights[page= (wc >> 8)] ?
+ level->weights[page] + (ofst= (wc & 0xFF)) * level->lengths[page] :
+ NULL);
+}
+
+
/*
Compares two strings according to the collation,
ignoring trailing spaces.
@@ -7236,6 +31893,7 @@ static int my_strnncoll_uca(CHARSET_INFO *cs,
slen First string length
t Second string
tlen Seconf string length
+ level DUCETweight level
diff_if_only_endspace_difference
Set to 1 if the strings should be regarded as different
if they only difference in end space
@@ -7273,11 +31931,12 @@ static int my_strnncoll_uca(CHARSET_INFO *cs,
positive number - means the first string is bigger
*/
-static int my_strnncollsp_uca(CHARSET_INFO *cs,
- my_uca_scanner_handler *scanner_handler,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
+static int my_strnncollsp_uca_onelevel(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ const MY_UCA_WEIGHT_LEVEL *level,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool diff_if_only_endspace_difference)
{
my_uca_scanner sscanner, tscanner;
int s_res, t_res;
@@ -7286,8 +31945,8 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs,
diff_if_only_endspace_difference= 0;
#endif
- scanner_handler->init(&sscanner, cs, s, slen);
- scanner_handler->init(&tscanner, cs, t, tlen);
+ scanner_handler->init(&sscanner, cs, level, s, slen);
+ scanner_handler->init(&tscanner, cs, level, t, tlen);
do
{
@@ -7298,7 +31957,7 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs,
if (s_res > 0 && t_res < 0)
{
/* Calculate weight for SPACE character */
- t_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]];
+ t_res= my_space_weight(level);
/* compare the first string to spaces */
do
@@ -7313,7 +31972,7 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs,
if (s_res < 0 && t_res > 0)
{
/* Calculate weight for SPACE character */
- s_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]];
+ s_res= my_space_weight(level);
/* compare the second string to spaces */
do
@@ -7328,6 +31987,37 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs,
return ( s_res - t_res );
}
+static int my_strnncollsp_uca(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool diff_if_only_endspace_difference)
+{
+ return my_strnncollsp_uca_onelevel(cs, scanner_handler, &cs->uca->level[0],
+ s, slen, t, tlen,
+ diff_if_only_endspace_difference);
+}
+
+static int my_strnncollsp_uca_multilevel(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool diff_if_only_endspace_difference)
+{
+ uint num_level= cs->levels_for_order;
+ uint i;
+ for (i= 0; i != num_level; i++)
+ {
+ int ret= my_strnncollsp_uca_onelevel(cs, scanner_handler,
+ &cs->uca->level[i],
+ s, slen, t, tlen,
+ diff_if_only_endspace_difference);
+ if (ret)
+ return ret;
+ }
+ return 0;
+}
+
/*
Calculates hash value for the given string,
according to the collation, and ignoring trailing spaces.
@@ -7346,29 +32036,103 @@ static int my_strnncollsp_uca(CHARSET_INFO *cs,
upper and lower case of the same letter will return the same
weight sequence, and thus will produce the same hash values
in n1 and n2.
-
+
+ This functions is used for one-level and for multi-level collations.
+ We intentionally use only primary level in multi-level collations.
+ This helps to have PARTITION BY KEY put primarily equal records
+ into the same partition. E.g. in utf8_thai_520_ci records that differ
+ only in tone marks go into the same partition.
+
RETURN
N/A
*/
static void my_hash_sort_uca(CHARSET_INFO *cs,
my_uca_scanner_handler *scanner_handler,
- const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
+ const uchar *s, size_t slen,
+ ulong *nr1, ulong *nr2)
{
int s_res;
my_uca_scanner scanner;
-
- slen= cs->cset->lengthsp(cs, (char*) s, slen);
- scanner_handler->init(&scanner, cs, s, slen);
+ int space_weight= my_space_weight(&cs->uca->level[0]);
+ register ulong m1= *nr1, m2= *nr2;
+
+ scanner_handler->init(&scanner, cs, &cs->uca->level[0], s, slen);
while ((s_res= scanner_handler->next(&scanner)) >0)
{
- n1[0]^= (((n1[0] & 63)+n2[0])*(s_res >> 8))+ (n1[0] << 8);
- n2[0]+=3;
- n1[0]^= (((n1[0] & 63)+n2[0])*(s_res & 0xFF))+ (n1[0] << 8);
- n2[0]+=3;
+ if (s_res == space_weight)
+ {
+ /* Combine all spaces to be able to skip end spaces */
+ uint count= 0;
+ do
+ {
+ count++;
+ if ((s_res= scanner_handler->next(&scanner)) <= 0)
+ {
+ /* Skip strings at end of string */
+ goto end;
+ }
+ }
+ while (s_res == space_weight);
+
+ /* Add back that has for the space characters */
+ do
+ {
+ /*
+ We can't use MY_HASH_ADD_16() here as we, because of a misstake
+ in the original code, where we added the 16 byte variable the
+ opposite way. Changing this would cause old partitioned tables
+ to fail.
+ */
+ MY_HASH_ADD(m1, m2, space_weight >> 8);
+ MY_HASH_ADD(m1, m2, space_weight & 0xFF);
+ }
+ while (--count != 0);
+
+ }
+ /* See comment above why we can't use MY_HASH_ADD_16() */
+ MY_HASH_ADD(m1, m2, s_res >> 8);
+ MY_HASH_ADD(m1, m2, s_res & 0xFF);
}
+end:
+ *nr1= m1;
+ *nr2= m2;
+}
+
+
+static uchar *
+my_strnxfrm_uca_onelevel(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ MY_UCA_WEIGHT_LEVEL *level,
+ uchar *dst, uchar *de, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
+{
+ my_uca_scanner scanner;
+ uchar *d0= dst;
+ int s_res;
+
+ scanner_handler->init(&scanner, cs, level, src, srclen);
+ for (; dst < de && nweights &&
+ (s_res= scanner_handler->next(&scanner)) > 0 ; nweights--)
+ {
+ *dst++= s_res >> 8;
+ if (dst < de)
+ *dst++= s_res & 0xFF;
+ }
+
+ if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE))
+ {
+ uint space_count= MY_MIN((uint) (de - dst) / 2, nweights);
+ s_res= my_space_weight(level);
+ for (; space_count ; space_count--)
+ {
+ *dst++= s_res >> 8;
+ *dst++= s_res & 0xFF;
+ }
+ }
+ my_strxfrm_desc_and_reverse(d0, dst, flags, 0);
+ return dst;
}
@@ -7403,64 +32167,66 @@ static void my_hash_sort_uca(CHARSET_INFO *cs,
Number of bytes that have been written into the binary image.
*/
-static size_t my_strnxfrm_uca(CHARSET_INFO *cs,
- my_uca_scanner_handler *scanner_handler,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
+
+static size_t
+my_strnxfrm_uca(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- uchar *de= dst + (dstlen & (size_t) ~1); /* add even length for easier code */
- int s_res;
- my_uca_scanner scanner;
- scanner_handler->init(&scanner, cs, src, srclen);
-
- while (dst < de && (s_res= scanner_handler->next(&scanner)) >0)
- {
- dst[0]= s_res >> 8;
- dst[1]= s_res & 0xFF;
- dst+= 2;
- }
- s_res= cs->sort_order_big[0][0x20 * cs->sort_order[0]];
- while (dst < de)
+ uchar *d0= dst;
+ uchar *de= dst + dstlen;
+
+ dst= my_strnxfrm_uca_onelevel(cs, scanner_handler, &cs->uca->level[0],
+ dst, de, nweights, src, srclen, flags);
+ /*
+ This can probably be changed to memset(dst, 0, de - dst),
+ like my_strnxfrm_uca_multilevel() does.
+ */
+ if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && dst < de)
{
- dst[0]= s_res >> 8;
- dst[1]= s_res & 0xFF;
- dst+= 2;
+ int s_res= my_space_weight(&cs->uca->level[0]);
+ for ( ; dst < de; )
+ {
+ *dst++= s_res >> 8;
+ if (dst < de)
+ *dst++= s_res & 0xFF;
+ }
}
- if (dstlen & 1) /* if odd number then fill the last char */
- *dst= '\0';
-
- return dstlen;
+ return dst - d0;
}
+static size_t
+my_strnxfrm_uca_multilevel(CHARSET_INFO *cs,
+ my_uca_scanner_handler *scanner_handler,
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
+{
+ uint num_level= cs->levels_for_order;
+ uchar *d0= dst;
+ uchar *de= dst + dstlen;
+ uint current_level;
-/**
- Helper function:
- Find address of weights of the given character.
-
- @param weights UCA weight array
- @param lengths UCA length array
- @param ch character Unicode code point
-
- @return Weight array
- @retval pointer to weight array for the given character,
- or NULL if this page does not have implicit weights.
-*/
+ for (current_level= 0; current_level != num_level; current_level++)
+ {
+ if (!(flags & MY_STRXFRM_LEVEL_ALL) ||
+ (flags & (MY_STRXFRM_LEVEL1 << current_level)))
+ dst= my_strnxfrm_uca_onelevel(cs, scanner_handler,
+ &cs->uca->level[current_level],
+ dst, de, nweights,
+ src, srclen, flags);
+ }
-static inline const uint16 *
-my_char_weight_addr(CHARSET_INFO *cs, uint wc)
-{
- uint page, ofst;
- const uchar *ucal= cs->sort_order;
- const uint16 * const *ucaw= cs->sort_order_big;
+ if (dst < de && (flags & MY_STRXFRM_PAD_TO_MAXLEN))
+ {
+ memset(dst, 0, de - dst);
+ dst= de;
+ }
- return wc > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT ? NULL :
- (ucaw[page= (wc >> 8)] ?
- ucaw[page] + (ofst= (wc & 0xFF)) * ucal[page] :
- NULL);
+ return dst - d0;
}
-
/*
This function compares if two characters are the same.
The sign +1 or -1 does not matter. The only
@@ -7469,11 +32235,12 @@ my_char_weight_addr(CHARSET_INFO *cs, uint wc)
little-endian and big-endian machines.
*/
-static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
+static int my_uca_charcmp_onelevel(CHARSET_INFO *cs, my_wc_t wc1,
+ my_wc_t wc2, uint level)
{
size_t length1, length2;
- const uint16 *weight1= my_char_weight_addr(cs, wc1);
- const uint16 *weight2= my_char_weight_addr(cs, wc2);
+ const uint16 *weight1= my_char_weight_addr(&cs->uca->level[level], wc1);
+ const uint16 *weight2= my_char_weight_addr(&cs->uca->level[level], wc2);
if (!weight1 || !weight2)
return wc1 != wc2;
@@ -7483,8 +32250,8 @@ static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
return 1;
/* Thoroughly compare all weights */
- length1= cs->sort_order[wc1 >> MY_UCA_PSHIFT];
- length2= cs->sort_order[wc2 >> MY_UCA_PSHIFT];
+ length1= cs->uca->level[level].lengths[wc1 >> MY_UCA_PSHIFT];
+ length2= cs->uca->level[level].lengths[wc2 >> MY_UCA_PSHIFT];
if (length1 > length2)
return memcmp((const void*)weight1, (const void*)weight2, length2*2) ?
@@ -7497,6 +32264,21 @@ static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
return memcmp((const void*)weight1, (const void*)weight2, length1*2);
}
+static int my_uca_charcmp(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
+{
+ uint num_level= cs->levels_for_order;
+ int ret;
+ uint i;
+ for (i= 0; i != num_level; i++)
+ {
+ ret= my_uca_charcmp_onelevel(cs, wc1, wc2, i);
+ if (ret) {
+ return ret;
+ }
+ }
+ return 0;
+}
+
/*
** Compare string against string with wildcard
** 0 if matched
@@ -7510,11 +32292,11 @@ int my_wildcmp_uca_impl(CHARSET_INFO *cs,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many, int recurse_level)
{
- int result= -1; /* Not found, using wildcards */
+ int result= -1; /* Not found, using wildcards */
my_wc_t s_wc, w_wc;
int scan;
my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
-
+
if (my_string_stack_guard && my_string_stack_guard(recurse_level))
return 1;
while (wildstr != wildend)
@@ -7523,119 +32305,121 @@ int my_wildcmp_uca_impl(CHARSET_INFO *cs,
{
my_bool escaped= 0;
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
+ (const uchar*)wildend)) <= 0)
+ return 1;
- if (w_wc == (my_wc_t)w_many)
+ if (w_wc == (my_wc_t) w_many)
{
- result= 1; /* Found an anchor char */
+ result= 1; /* Found an anchor char */
break;
}
wildstr+= scan;
- if (w_wc == (my_wc_t)escape)
+ if (w_wc == (my_wc_t) escape && wildstr < wildend)
{
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
+ (const uchar*)wildend)) <= 0)
return 1;
wildstr+= scan;
escaped= 1;
}
-
+
if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <= 0)
+ (const uchar*)str_end)) <= 0)
return 1;
str+= scan;
-
- if (!escaped && w_wc == (my_wc_t)w_one)
+
+ if (!escaped && w_wc == (my_wc_t) w_one)
{
- result= 1; /* Found an anchor char */
+ result= 1; /* Found an anchor char */
}
else
{
if (my_uca_charcmp(cs,s_wc,w_wc))
- return 1;
+ return 1; /* No match */
}
if (wildstr == wildend)
- return (str != str_end); /* Match if both are at end */
+ return (str != str_end); /* Match if both are at end */
}
-
-
- if (w_wc == (my_wc_t)w_many)
- { /* Found w_many */
-
+
+ if (w_wc == (my_wc_t) w_many)
+ { /* Found w_many */
/* Remove any '%' and '_' from the wild search string */
for ( ; wildstr != wildend ; )
{
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
+ (const uchar*)wildend)) <= 0)
return 1;
-
- if (w_wc == (my_wc_t)w_many)
- {
- wildstr+= scan;
- continue;
- }
-
- if (w_wc == (my_wc_t)w_one)
- {
- wildstr+= scan;
- if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <= 0)
+
+ if (w_wc == (my_wc_t) w_many)
+ {
+ wildstr+= scan;
+ continue;
+ }
+
+ if (w_wc == (my_wc_t) w_one)
+ {
+ wildstr+= scan;
+ if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
+ (const uchar*)str_end)) <= 0)
return 1;
str+= scan;
- continue;
- }
- break; /* Not a wild character */
+ continue;
+ }
+ break; /* Not a wild character */
}
-
+
if (wildstr == wildend)
- return 0; /* Ok if w_many is last */
-
+ return 0; /* Ok if w_many is last */
+
if (str == str_end)
- return -1;
-
+ return -1;
+
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
+ (const uchar*)wildend)) <= 0)
return 1;
-
- if (w_wc == (my_wc_t)escape)
+ wildstr+= scan;
+
+ if (w_wc == (my_wc_t) escape)
{
- wildstr+= scan;
- if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <= 0)
- return 1;
+ if (wildstr < wildend)
+ {
+ if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
+ (const uchar*)wildend)) <= 0)
+ return 1;
+ wildstr+= scan;
+ }
}
-
+
while (1)
{
/* Skip until the first character from wildstr is found */
while (str != str_end)
{
if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <= 0)
+ (const uchar*)str_end)) <= 0)
return 1;
-
+
if (!my_uca_charcmp(cs,s_wc,w_wc))
break;
str+= scan;
}
if (str == str_end)
return -1;
-
+
+ str+= scan;
result= my_wildcmp_uca_impl(cs, str, str_end, wildstr, wildend,
- escape, w_one, w_many, recurse_level+1);
-
+ escape, w_one, w_many,
+ recurse_level + 1);
if (result <= 0)
return result;
-
- str+= scan;
- }
+ }
}
}
return (str != str_end ? 1 : 0);
}
+
int my_wildcmp_uca(CHARSET_INFO *cs,
const char *str,const char *str_end,
const char *wildstr,const char *wildend,
@@ -7650,7 +32434,7 @@ int my_wildcmp_uca(CHARSET_INFO *cs,
/*
Collation language is implemented according to
subset of ICU Collation Customization (tailorings):
- http://oss.software.ibm.com/icu/userguide/Collate_Customization.html
+ http://icu.sourceforge.net/userguide/Collate_Customization.html
Collation language elements:
Delimiters:
@@ -7692,16 +32476,47 @@ int my_wildcmp_uca(CHARSET_INFO *cs,
typedef enum my_coll_lexem_num_en
{
- MY_COLL_LEXEM_EOF = 0,
- MY_COLL_LEXEM_DIFF = 1,
- MY_COLL_LEXEM_SHIFT = 4,
- MY_COLL_LEXEM_CHAR = 5,
- MY_COLL_LEXEM_ERROR = 6
+ MY_COLL_LEXEM_EOF = 0,
+ MY_COLL_LEXEM_SHIFT = 1,
+ MY_COLL_LEXEM_RESET = 4,
+ MY_COLL_LEXEM_CHAR = 5,
+ MY_COLL_LEXEM_ERROR = 6,
+ MY_COLL_LEXEM_OPTION = 7,
+ MY_COLL_LEXEM_EXTEND = 8,
+ MY_COLL_LEXEM_CONTEXT = 9,
} my_coll_lexem_num;
+/**
+ Convert collation customization lexem to string,
+ for nice error reporting
+
+ @param term lexem code
+
+ @return lexem name
+*/
+
+static const char *
+my_coll_lexem_num_to_str(my_coll_lexem_num term)
+{
+ switch (term)
+ {
+ case MY_COLL_LEXEM_EOF: return "EOF";
+ case MY_COLL_LEXEM_SHIFT: return "Shift";
+ case MY_COLL_LEXEM_RESET: return "&";
+ case MY_COLL_LEXEM_CHAR: return "Character";
+ case MY_COLL_LEXEM_OPTION: return "Bracket option";
+ case MY_COLL_LEXEM_EXTEND: return "/";
+ case MY_COLL_LEXEM_CONTEXT:return "|";
+ case MY_COLL_LEXEM_ERROR: return "ERROR";
+ }
+ return NULL;
+}
+
+
typedef struct my_coll_lexem_st
{
+ my_coll_lexem_num term;
const char *beg;
const char *end;
const char *prev;
@@ -7735,6 +32550,27 @@ static void my_coll_lexem_init(MY_COLL_LEXEM *lexem,
}
+/**
+ Compare lexem to string with length
+
+ @param lexem lexem
+ @param pattern string
+ @param patternlen string length
+
+ @return
+ @retval 0 if lexem is equal to string, non-0 otherwise.
+*/
+
+static int
+lex_cmp(MY_COLL_LEXEM *lexem, const char *pattern, size_t patternlen)
+{
+ size_t lexemlen= lexem->beg - lexem->prev;
+ if (lexemlen < patternlen)
+ return 1; /* Not a prefix */
+ return strncasecmp(lexem->prev, pattern, patternlen);
+}
+
+
/*
Print collation customization expression parse error, with context.
@@ -7756,9 +32592,10 @@ static void my_coll_lexem_print_error(MY_COLL_LEXEM *lexem,
{
char tail[30];
size_t len= lexem->end - lexem->prev;
- strmake (tail, lexem->prev, (size_t) min(len, sizeof(tail)-1));
+ strmake (tail, lexem->prev, (size_t) MY_MIN(len, sizeof(tail)-1));
errstr[errsize-1]= '\0';
- my_snprintf(errstr,errsize-1,"%s at '%s'", txt, tail);
+ my_snprintf(errstr, errsize - 1,
+ "%s at '%s'", txt[0] ? txt : "Syntax error", tail);
}
@@ -7809,44 +32646,75 @@ static my_coll_lexem_num my_coll_lexem_next(MY_COLL_LEXEM *lexem)
{
const char *beg;
my_coll_lexem_num rc;
-
+
for (beg= lexem->beg ; beg < lexem->end ; beg++)
{
- if (*beg == ' ' || *beg == '\t' || *beg == '\r' || *beg == '\n')
- continue;
-
- if (*beg == '&')
+ switch (*beg)
{
+ case ' ':
+ case '\t':
+ case '\r':
+ case '\n':
+ continue;
+
+ case '[': /* Bracket expression, e.g. "[optimize [a-z]]" */
+ {
+ size_t nbrackets; /* Indicates nested recursion level */
+ for (beg++, nbrackets= 1 ; beg < lexem->end; beg++)
+ {
+ if (*beg == '[') /* Enter nested bracket expression */
+ nbrackets++;
+ else if (*beg == ']')
+ {
+ if (--nbrackets == 0)
+ {
+ rc= MY_COLL_LEXEM_OPTION;
+ beg++;
+ goto ex;
+ }
+ }
+ }
+ rc= MY_COLL_LEXEM_ERROR;
+ goto ex;
+ }
+
+ case '&':
beg++;
- rc= MY_COLL_LEXEM_SHIFT;
+ rc= MY_COLL_LEXEM_RESET;
goto ex;
- }
-
- if (beg[0] == '=')
- {
+
+ case '=':
beg++;
- rc= MY_COLL_LEXEM_DIFF;
+ lexem->diff= 0;
+ rc= MY_COLL_LEXEM_SHIFT;
goto ex;
- }
-
- if (beg[0] == '<')
- {
- for (beg++, lexem->diff= 1;
- (beg < lexem->end) &&
- (*beg == '<') && (lexem->diff<3);
- beg++, lexem->diff++);
- rc= MY_COLL_LEXEM_DIFF;
+
+ case '/':
+ beg++;
+ rc= MY_COLL_LEXEM_EXTEND;
goto ex;
- }
-
- if ((*beg >= 'a' && *beg <= 'z') || (*beg >= 'A' && *beg <= 'Z'))
- {
- lexem->code= *beg++;
- rc= MY_COLL_LEXEM_CHAR;
+
+ case '|':
+ beg++;
+ rc= MY_COLL_LEXEM_CONTEXT;
goto ex;
+
+ case '<': /* Shift: '<' or '<<' or '<<<' or '<<<<' */
+ {
+ /* Scan up to 3 additional '<' characters */
+ for (beg++, lexem->diff= 1;
+ (beg < lexem->end) && (*beg == '<') && (lexem->diff <= 3);
+ beg++, lexem->diff++);
+ rc= MY_COLL_LEXEM_SHIFT;
+ goto ex;
+ }
+ default:
+ break;
}
-
- if ((*beg == '\\') && (beg+2 < lexem->end) && (beg[1] == 'u'))
+
+ /* Escaped character, e.g. \u1234 */
+ if ((*beg == '\\') && (beg + 2 < lexem->end) &&
+ (beg[1] == 'u') && my_isxdigit(&my_charset_utf8_general_ci, beg[2]))
{
int ch;
@@ -7860,15 +32728,43 @@ static my_coll_lexem_num my_coll_lexem_next(MY_COLL_LEXEM *lexem)
rc= MY_COLL_LEXEM_CHAR;
goto ex;
}
-
+
+ /*
+ Unescaped single byte character:
+ allow printable ASCII range except SPACE and
+ special characters parsed above []<&/|=
+ */
+ if (*beg >= 0x21 && *beg <= 0x7E)
+ {
+ lexem->code= *beg++;
+ rc= MY_COLL_LEXEM_CHAR;
+ goto ex;
+ }
+
+ if (((uchar) *beg) > 0x7F) /* Unescaped multibyte character */
+ {
+ CHARSET_INFO *cs= &my_charset_utf8_general_ci;
+ my_wc_t wc;
+ int nbytes= cs->cset->mb_wc(cs, &wc,
+ (uchar *) beg, (uchar *) lexem->end);
+ if (nbytes > 0)
+ {
+ rc= MY_COLL_LEXEM_CHAR;
+ beg+= nbytes;
+ lexem->code= (int) wc;
+ goto ex;
+ }
+ }
+
rc= MY_COLL_LEXEM_ERROR;
goto ex;
}
rc= MY_COLL_LEXEM_EOF;
-
+
ex:
lexem->prev= lexem->beg;
lexem->beg= beg;
+ lexem->term= rc;
return rc;
}
@@ -7877,142 +32773,1341 @@ ex:
Collation rule item
*/
+#define MY_UCA_MAX_EXPANSION 10 /* Maximum expansion length */
+
typedef struct my_coll_rule_item_st
{
- my_wc_t base; /* Base character */
- my_wc_t curr[2]; /* Current character */
- int diff[3]; /* Primary, Secondary and Tertiary difference */
+ my_wc_t base[MY_UCA_MAX_EXPANSION]; /* Base character */
+ my_wc_t curr[MY_UCA_MAX_CONTRACTION]; /* Current character */
+ int diff[4]; /* Primary, Secondary, Tertiary, Quaternary difference */
+ size_t before_level; /* "reset before" indicator */
+ my_bool with_context;
} MY_COLL_RULE;
+/**
+ Return length of a 0-terminated wide string, analog to strnlen().
+
+ @param s Pointer to wide string
+ @param maxlen Mamixum string length
+
+ @return string length, or maxlen if no '\0' is met.
+*/
+static size_t
+my_wstrnlen(my_wc_t *s, size_t maxlen)
+{
+ size_t i;
+ for (i= 0; i < maxlen; i++)
+ {
+ if (s[i] == 0)
+ return i;
+ }
+ return maxlen;
+}
+
+
+/**
+ Return length of the "reset" string of a rule.
+
+ @param r Collation customization rule
+
+ @return Length of r->base
+*/
+
+static inline size_t
+my_coll_rule_reset_length(MY_COLL_RULE *r)
+{
+ return my_wstrnlen(r->base, MY_UCA_MAX_EXPANSION);
+}
+
+
+/**
+ Return length of the "shift" string of a rule.
+
+ @param r Collation customization rule
+
+ @return Length of r->base
+*/
+
+static inline size_t
+my_coll_rule_shift_length(MY_COLL_RULE *r)
+{
+ return my_wstrnlen(r->curr, MY_UCA_MAX_CONTRACTION);
+}
+
+
+/**
+ Append new character to the end of a 0-terminated wide string.
+
+ @param wc Wide string
+ @param limit Maximum possible result length
+ @param code Character to add
+
+ @return 1 if character was added, 0 if string was too long
+*/
+
+static int
+my_coll_rule_expand(my_wc_t *wc, size_t limit, my_wc_t code)
+{
+ size_t i;
+ for (i= 0; i < limit; i++)
+ {
+ if (wc[i] == 0)
+ {
+ wc[i]= code;
+ return 1;
+ }
+ }
+ return 0;
+}
+
+
+/**
+ Initialize collation customization rule
+
+ @param wc Rule
+*/
+
+static void
+my_coll_rule_reset(MY_COLL_RULE *r)
+{
+ memset(r, 0, sizeof(*r));
+}
+
+
+/*
+ Shift methods:
+ Simple: "&B < C" : weight('C') = weight('B') + 1
+ Expand: weght('C') = { weight('B'), weight(last_non_ignorable) + 1 }
+*/
+typedef enum
+{
+ my_shift_method_simple= 0,
+ my_shift_method_expand
+} my_coll_shift_method;
+
+
+typedef struct my_coll_rules_st
+{
+ uint version; /* Unicode version, e.g. 400 or 520 */
+ MY_UCA_INFO *uca; /* Unicode weight data */
+ size_t nrules; /* Number of rules in the rule array */
+ size_t mrules; /* Number of allocated rules */
+ MY_COLL_RULE *rule; /* Rule array */
+ MY_CHARSET_LOADER *loader;
+ my_coll_shift_method shift_after_method;
+} MY_COLL_RULES;
+
+
+/**
+ Realloc rule array to a new size.
+ Reallocate memory for 128 additional rules at once,
+ to reduce the number of reallocs, which is important
+ for long tailorings (e.g. for East Asian collations).
+
+ @param rules Rule container
+ @param n new number of rules
+
+ @return 0 on success, -1 on error.
+*/
+
+static int
+my_coll_rules_realloc(MY_COLL_RULES *rules, size_t n)
+{
+ if (rules->nrules < rules->mrules ||
+ (rules->rule= rules->loader->realloc(rules->rule,
+ sizeof(MY_COLL_RULE) *
+ (rules->mrules= n + 128))))
+ return 0;
+ return -1;
+}
+
+
+/**
+ Append one new rule to a rule array
+
+ @param rules Rule container
+ @param rule New rule to add
+
+ @return 0 on success, -1 on error.
+*/
+
+static int
+my_coll_rules_add(MY_COLL_RULES *rules, MY_COLL_RULE *rule)
+{
+ if (my_coll_rules_realloc(rules, rules->nrules + 1))
+ return -1;
+ rules->rule[rules->nrules++]= rule[0];
+ return 0;
+}
+
+
+/**
+ Apply difference at level
+
+ @param r Rule
+ @param level Level (0,1,2,3,4)
+*/
+
+static void
+my_coll_rule_shift_at_level(MY_COLL_RULE *r, int level)
+{
+ switch (level)
+ {
+ case 4: /* Quaternary difference */
+ r->diff[3]++;
+ break;
+ case 3: /* Tertiary difference */
+ r->diff[2]++;
+ r->diff[3]= 0;
+ break;
+ case 2: /* Secondary difference */
+ r->diff[1]++;
+ r->diff[2]= r->diff[3]= 0;
+ break;
+ case 1: /* Primary difference */
+ r->diff[0]++;
+ r->diff[1]= r->diff[2]= r->diff[3]= 0;
+ break;
+ case 0:
+ /* Do nothing for '=': use the previous offsets for all levels */
+ break;
+ default:
+ DBUG_ASSERT(0);
+ }
+}
+
+
+typedef struct my_coll_rule_parser_st
+{
+ MY_COLL_LEXEM tok[2]; /* Current token and next token for look-ahead */
+ MY_COLL_RULE rule; /* Currently parsed rule */
+ MY_COLL_RULES *rules; /* Rule list pointer */
+ char errstr[128]; /* Error message */
+} MY_COLL_RULE_PARSER;
+
+
+/**
+ Current parser token
+
+ @param p Collation customization parser
+
+ @return Pointer to the current token
+*/
+
+static MY_COLL_LEXEM *
+my_coll_parser_curr(MY_COLL_RULE_PARSER *p)
+{
+ return &p->tok[0];
+}
+
+
+/**
+ Next parser token, to look ahead.
+
+ @param p Collation customization parser
+
+ @return Pointer to the next token
+*/
+
+static MY_COLL_LEXEM *
+my_coll_parser_next(MY_COLL_RULE_PARSER *p)
+{
+ return &p->tok[1];
+}
+
+
+/**
+ Scan one token from the input stream
+
+ @param p Collation customization parser
+
+ @return 1, for convenience, to use in logical expressions easier.
+*/
+static int
+my_coll_parser_scan(MY_COLL_RULE_PARSER *p)
+{
+ my_coll_parser_curr(p)[0]= my_coll_parser_next(p)[0];
+ my_coll_lexem_next(my_coll_parser_next(p));
+ return 1;
+}
+
+
+/**
+ Initialize collation customization parser
+
+ @param p Collation customization parser
+ @param rules Where to store rules
+ @param str Beginning of a collation customization sting
+ @param str_end End of the collation customizations string
+*/
+
+static void
+my_coll_parser_init(MY_COLL_RULE_PARSER *p,
+ MY_COLL_RULES *rules,
+ const char *str, const char *str_end)
+{
+ /*
+ Initialize parser to the input buffer and scan two tokens,
+ to make the current token and the next token known.
+ */
+ memset(p, 0, sizeof(*p));
+ p->rules= rules;
+ p->errstr[0]= '\0';
+ my_coll_lexem_init(my_coll_parser_curr(p), str, str_end);
+ my_coll_lexem_next(my_coll_parser_curr(p));
+ my_coll_parser_next(p)[0]= my_coll_parser_curr(p)[0];
+ my_coll_lexem_next(my_coll_parser_next(p));
+}
+
+
+/**
+ Display error when an unexpected token found
+
+ @param p Collation customization parser
+ @param term Which lexem was expected
+
+ @return 0, to use in "return" and boolean expressions.
+*/
+
+static int
+my_coll_parser_expected_error(MY_COLL_RULE_PARSER *p, my_coll_lexem_num term)
+{
+ my_snprintf(p->errstr, sizeof(p->errstr),
+ "%s expected", my_coll_lexem_num_to_str(term));
+ return 0;
+}
+
+
+/**
+ Display error when a too long character sequence is met
+
+ @param p Collation customization parser
+ @param name Which kind of sequence: contraction, expansion, etc.
+
+ @return 0, to use in "return" and boolean expressions.
+*/
+
+static int
+my_coll_parser_too_long_error(MY_COLL_RULE_PARSER *p, const char *name)
+{
+ my_snprintf(p->errstr, sizeof(p->errstr), "%s is too long", name);
+ return 0;
+}
+
+
+/**
+ Scan the given lexem from input stream, or display "expected" error.
+
+ @param p Collation customization parser
+ @param term Which lexem is expected.
+
+ @return
+ @retval 0 if the required term was not found.
+ @retval 1 if the required term was found.
+*/
+static int
+my_coll_parser_scan_term(MY_COLL_RULE_PARSER *p, my_coll_lexem_num term)
+{
+ if (my_coll_parser_curr(p)->term != term)
+ return my_coll_parser_expected_error(p, term);
+ return my_coll_parser_scan(p);
+}
+
+
+/*
+ In the following code we have a few functions to parse
+ various collation customization non-terminal symbols.
+ Unlike our usual coding convension, they return
+ - 0 on "error" (when the rule was not scanned) and
+ - 1 on "success"(when the rule was scanned).
+ This is done intentionally to make body of the functions look easier
+ and repeat the grammar of the rules in straightforward manner.
+ For example:
+
+ // <x> ::= <y> | <z>
+ int parse_x() { return parse_y() || parser_z(); }
+
+ // <x> ::= <y> <z>
+ int parse_x() { return parse_y() && parser_z(); }
+
+ Using 1 on "not found" and 0 on "found" in the parser code would
+ make the code more error prone and harder to read because
+ of having to use inverse boolean logic.
+*/
+
+
+/**
+ Scan a collation setting in brakets, for example UCA version.
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if setting was scanned.
+ @retval 1 if setting was not scanned.
+*/
+
+static int
+my_coll_parser_scan_setting(MY_COLL_RULE_PARSER *p)
+{
+ MY_COLL_RULES *rules= p->rules;
+ MY_COLL_LEXEM *lexem= my_coll_parser_curr(p);
+
+ if (!lex_cmp(lexem, C_STRING_WITH_LEN("[version 4.0.0]")))
+ {
+ rules->version= 400;
+ rules->uca= &my_uca_v400;
+ }
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[version 5.2.0]")))
+ {
+ rules->version= 520;
+ rules->uca= &my_uca_v520;
+ }
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[shift-after-method expand]")))
+ {
+ rules->shift_after_method= my_shift_method_expand;
+ }
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[shift-after-method simple]")))
+ {
+ rules->shift_after_method= my_shift_method_simple;
+ }
+ else
+ {
+ return 0;
+ }
+ return my_coll_parser_scan(p);
+}
+
+
+/**
+ Scan multiple collation settings
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if no settings were scanned.
+ @retval 1 if one or more settings were scanned.
+*/
+
+static int
+my_coll_parser_scan_settings(MY_COLL_RULE_PARSER *p)
+{
+ /* Scan collation setting or special purpose command */
+ while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION)
+ {
+ if (!my_coll_parser_scan_setting(p))
+ return 0;
+ }
+ return 1;
+}
+
+
+/**
+ Scan [before xxx] reset option
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if reset option was not scanned.
+ @retval 1 if reset option was scanned.
+*/
+
+static int
+my_coll_parser_scan_reset_before(MY_COLL_RULE_PARSER *p)
+{
+ MY_COLL_LEXEM *lexem= my_coll_parser_curr(p);
+ if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before primary]")) ||
+ !lex_cmp(lexem, C_STRING_WITH_LEN("[before 1]")))
+ {
+ p->rule.before_level= 1;
+ }
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before secondary]")) ||
+ !lex_cmp(lexem, C_STRING_WITH_LEN("[before 2]")))
+ {
+ p->rule.before_level= 2;
+ }
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before tertiary]")) ||
+ !lex_cmp(lexem, C_STRING_WITH_LEN("[before 3]")))
+ {
+ p->rule.before_level= 3;
+ }
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[before quaternary]")) ||
+ !lex_cmp(lexem, C_STRING_WITH_LEN("[before 4]")))
+ {
+ p->rule.before_level= 4;
+ }
+ else
+ {
+ p->rule.before_level= 0;
+ return 0; /* Don't scan thr next character */
+ }
+ return my_coll_parser_scan(p);
+}
+
+
+/**
+ Scan logical position and add to the wide string.
+
+ @param p Collation customization parser
+ @param pwc Wide string to add code to
+ @param limit The result string cannot be longer than 'limit' characters
+
+ @return
+ @retval 0 if logical position was not scanned.
+ @retval 1 if logical position was scanned.
+*/
+
+static int
+my_coll_parser_scan_logical_position(MY_COLL_RULE_PARSER *p,
+ my_wc_t *pwc, size_t limit)
+{
+ MY_COLL_RULES *rules= p->rules;
+ MY_COLL_LEXEM *lexem= my_coll_parser_curr(p);
+
+ if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first non-ignorable]")))
+ lexem->code= rules->uca->first_non_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last non-ignorable]")))
+ lexem->code= rules->uca->last_non_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first primary ignorable]")))
+ lexem->code= rules->uca->first_primary_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last primary ignorable]")))
+ lexem->code= rules->uca->last_primary_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first secondary ignorable]")))
+ lexem->code= rules->uca->first_secondary_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last secondary ignorable]")))
+ lexem->code= rules->uca->last_secondary_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first tertiary ignorable]")))
+ lexem->code= rules->uca->first_tertiary_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last tertiary ignorable]")))
+ lexem->code= rules->uca->last_tertiary_ignorable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first trailing]")))
+ lexem->code= rules->uca->first_trailing;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last trailing]")))
+ lexem->code= rules->uca->last_trailing;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[first variable]")))
+ lexem->code= rules->uca->first_variable;
+ else if (!lex_cmp(lexem, C_STRING_WITH_LEN("[last variable]")))
+ lexem->code= rules->uca->last_variable;
+ else
+ return 0; /* Don't scan the next token */
+
+ if (!my_coll_rule_expand(pwc, limit, lexem->code))
+ {
+ /*
+ Logical position can not be in a contraction,
+ so the above call should never fail.
+ Let's assert in debug version and print
+ a nice error message in production version.
+ */
+ DBUG_ASSERT(0);
+ return my_coll_parser_too_long_error(p, "Logical position");
+ }
+ return my_coll_parser_scan(p);
+}
+
+
+/**
+ Scan character list
+
+ <character list> ::= CHAR [ CHAR... ]
+
+ @param p Collation customization parser
+ @param pwc Character string to add code to
+ @param limit The result string cannot be longer than 'limit' characters
+ @param name E.g. "contraction", "expansion"
+
+ @return
+ @retval 0 if character sequence was not scanned.
+ @retval 1 if character sequence was scanned.
+*/
+
+static int
+my_coll_parser_scan_character_list(MY_COLL_RULE_PARSER *p,
+ my_wc_t *pwc, size_t limit,
+ const char *name)
+{
+ if (my_coll_parser_curr(p)->term != MY_COLL_LEXEM_CHAR)
+ return my_coll_parser_expected_error(p, MY_COLL_LEXEM_CHAR);
+
+ if (!my_coll_rule_expand(pwc, limit, my_coll_parser_curr(p)->code))
+ return my_coll_parser_too_long_error(p, name);
+
+ if (!my_coll_parser_scan_term(p, MY_COLL_LEXEM_CHAR))
+ return 0;
+
+ while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_CHAR)
+ {
+ if (!my_coll_rule_expand(pwc, limit, my_coll_parser_curr(p)->code))
+ return my_coll_parser_too_long_error(p, name);
+ my_coll_parser_scan(p);
+ }
+ return 1;
+}
+
+
+/**
+ Scan reset sequence
+
+ <reset sequence> ::=
+ [ <reset before option> ] <character list>
+ | [ <reset before option> ] <logical reset position>
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if reset sequence was not scanned.
+ @retval 1 if reset sequence was scanned.
+*/
+
+static int
+my_coll_parser_scan_reset_sequence(MY_COLL_RULE_PARSER *p)
+{
+ my_coll_rule_reset(&p->rule);
+
+ /* Scan "[before x]" option, if exists */
+ if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION)
+ my_coll_parser_scan_reset_before(p);
+
+ /* Try logical reset position */
+ if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_OPTION)
+ {
+ if (!my_coll_parser_scan_logical_position(p, p->rule.base, 1))
+ return 0;
+ }
+ else
+ {
+ /* Scan single reset character or expansion */
+ if (!my_coll_parser_scan_character_list(p, p->rule.base,
+ MY_UCA_MAX_EXPANSION, "Expansion"))
+ return 0;
+ }
+ return 1;
+}
+
+
+/**
+ Scan shift sequence
+
+ <shift sequence> ::=
+ <character list> [ / <character list> ]
+ | <character list> [ | <character list> ]
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if shift sequence was not scanned.
+ @retval 1 if shift sequence was scanned.
+*/
+
+static int
+my_coll_parser_scan_shift_sequence(MY_COLL_RULE_PARSER *p)
+{
+ MY_COLL_RULE before_extend;
+
+ memset(&p->rule.curr, 0, sizeof(p->rule.curr));
+
+ /* Scan single shift character or contraction */
+ if (!my_coll_parser_scan_character_list(p, p->rule.curr,
+ MY_UCA_MAX_CONTRACTION,
+ "Contraction"))
+ return 0;
+
+ before_extend= p->rule; /* Remember the part before "/" */
+
+ /* Append the part after "/" as expansion */
+ if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_EXTEND)
+ {
+ my_coll_parser_scan(p);
+ if (!my_coll_parser_scan_character_list(p, p->rule.base,
+ MY_UCA_MAX_EXPANSION,
+ "Expansion"))
+ return 0;
+ }
+ else if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_CONTEXT)
+ {
+ /*
+ We support 2-character long context sequences only:
+ one character is the previous context, plus the current character.
+ It's OK as Unicode's CLDR does not have longer examples.
+ */
+ my_coll_parser_scan(p);
+ p->rule.with_context= TRUE;
+ if (!my_coll_parser_scan_character_list(p, p->rule.curr + 1, 1, "context"))
+ return 0;
+ }
+
+ /* Add rule to the rule list */
+ if (my_coll_rules_add(p->rules, &p->rule))
+ return 0;
+
+ p->rule= before_extend; /* Restore to the state before "/" */
+
+ return 1;
+}
+
+
+/**
+ Scan shift operator
+
+ <shift> ::= < | << | <<< | <<<< | =
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if shift operator was not scanned.
+ @retval 1 if shift operator was scanned.
+*/
+static int
+my_coll_parser_scan_shift(MY_COLL_RULE_PARSER *p)
+{
+ if (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_SHIFT)
+ {
+ my_coll_rule_shift_at_level(&p->rule, my_coll_parser_curr(p)->diff);
+ return my_coll_parser_scan(p);
+ }
+ return 0;
+}
+
+
+/**
+ Scan one rule: reset followed by a number of shifts
+
+ <rule> ::=
+ & <reset sequence>
+ <shift> <shift sequence>
+ [ { <shift> <shift sequence> }... ]
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if rule was not scanned.
+ @retval 1 if rule was scanned.
+*/
+static int
+my_coll_parser_scan_rule(MY_COLL_RULE_PARSER *p)
+{
+ if (!my_coll_parser_scan_term(p, MY_COLL_LEXEM_RESET) ||
+ !my_coll_parser_scan_reset_sequence(p))
+ return 0;
+
+ /* Scan the first required shift command */
+ if (!my_coll_parser_scan_shift(p))
+ return my_coll_parser_expected_error(p, MY_COLL_LEXEM_SHIFT);
+
+ /* Scan the first shift sequence */
+ if (!my_coll_parser_scan_shift_sequence(p))
+ return 0;
+
+ /* Scan subsequent shift rules */
+ while (my_coll_parser_scan_shift(p))
+ {
+ if (!my_coll_parser_scan_shift_sequence(p))
+ return 0;
+ }
+ return 1;
+}
+
+
+/**
+ Scan collation customization: settings followed by rules
+
+ <collation customization> ::=
+ [ <setting> ... ]
+ [ <rule>... ]
+
+ @param p Collation customization parser
+
+ @return
+ @retval 0 if collation customozation expression was not scanned.
+ @retval 1 if collation customization expression was scanned.
+*/
+
+static int
+my_coll_parser_exec(MY_COLL_RULE_PARSER *p)
+{
+ if (!my_coll_parser_scan_settings(p))
+ return 0;
+
+ while (my_coll_parser_curr(p)->term == MY_COLL_LEXEM_RESET)
+ {
+ if (!my_coll_parser_scan_rule(p))
+ return 0;
+ }
+ /* Make sure no unparsed input data left */
+ return my_coll_parser_scan_term(p, MY_COLL_LEXEM_EOF);
+}
+
+
/*
Collation language syntax parser.
Uses lexical parser.
-
- SYNOPSIS
- my_coll_rule_parse
- rule Collation rule list to load to.
- str A string containin collation language expression.
- str_end End of the string.
- USAGE
-
- RETURN VALUES
- A positive number means the number of rules loaded.
- -1 means ERROR, e.g. too many items, syntax error, etc.
+
+ @param rules Collation rule list to load to.
+ @param str A string with collation customization.
+ @param str_end End of the string.
+
+ @return
+ @retval 0 on success
+ @retval 1 on error
*/
-static int my_coll_rule_parse(MY_COLL_RULE *rule, size_t mitems,
- const char *str, const char *str_end,
- char *errstr, size_t errsize)
+static int
+my_coll_rule_parse(MY_COLL_RULES *rules,
+ const char *str, const char *str_end)
{
- MY_COLL_LEXEM lexem;
- my_coll_lexem_num lexnum;
- my_coll_lexem_num prevlexnum= MY_COLL_LEXEM_ERROR;
- MY_COLL_RULE item;
- int state= 0;
- size_t nitems= 0;
+ MY_COLL_RULE_PARSER p;
+
+ my_coll_parser_init(&p, rules, str, str_end);
+
+ if (!my_coll_parser_exec(&p))
+ {
+ my_coll_lexem_print_error(my_coll_parser_curr(&p),
+ rules->loader->error,
+ sizeof(rules->loader->error) - 1,
+ p.errstr);
+ return 1;
+ }
+ return 0;
+}
+
+
+/**
+ Helper function:
+ Copies UCA weights for a given "uint" string
+ to the given location.
- /* Init all variables */
- errstr[0]= '\0';
- bzero(&item, sizeof(item));
- my_coll_lexem_init(&lexem, str, str_end);
+ @src_uca source UCA weight data
+ @dst_uca destination UCA weight data
+ @to destination address
+ @to_length size of destination
+ @nweights OUT number of weights put to "to"
+ @str qide string
+ @len string length
- while ((lexnum= my_coll_lexem_next(&lexem)))
+ @return FALSE on success, TRUE if the weights did not fit.
+*/
+
+static my_bool
+my_char_weight_put(MY_UCA_WEIGHT_LEVEL *dst,
+ uint16 *to, size_t to_length, size_t *nweights,
+ my_wc_t *str, size_t len)
+{
+ size_t count;
+ int rc= FALSE;
+ if (!to_length)
+ {
+ *nweights= 0;
+ return len > 0;
+ }
+ to_length--; /* Without trailing zero */
+
+ for (count= 0; len; )
{
- if (lexnum == MY_COLL_LEXEM_ERROR)
+ size_t chlen;
+ const uint16 *from= NULL;
+ uint16 implicit_weights[3];
+
+ for (chlen= len; chlen > 1; chlen--)
{
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Unknown character");
- return -1;
- }
-
- switch (state) {
- case 0:
- if (lexnum != MY_COLL_LEXEM_SHIFT)
+ if ((from= my_uca_contraction_weight(&dst->contractions, str, chlen)))
{
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"& expected");
- return -1;
+ str+= chlen;
+ len-= chlen;
+ break;
}
- prevlexnum= lexnum;
- state= 2;
- continue;
-
- case 1:
- if (lexnum != MY_COLL_LEXEM_SHIFT && lexnum != MY_COLL_LEXEM_DIFF)
+ }
+
+ if (!from)
+ {
+ from= my_char_weight_addr(dst, *str);
+ if (!from)
{
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"& or < expected");
- return -1;
+ from= implicit_weights;
+ my_uca_implicit_weight_put(implicit_weights, *str, dst->levelno);
}
- prevlexnum= lexnum;
- state= 2;
- continue;
-
- case 2:
- if (lexnum != MY_COLL_LEXEM_CHAR)
+ str++;
+ len--;
+ }
+
+ for ( ; from && *from && count < to_length; )
+ {
+ *to++= *from++;
+ count++;
+ }
+ if (count == to_length && from && * from)
+ rc= TRUE; /* All weights did not fit */
+ }
+
+ *to= 0;
+ *nweights= count;
+ return rc;
+}
+
+
+/**
+ Alloc new page and copy the default UCA weights
+ @param loader - Character set loader
+ @param src_uca - Default UCA data to copy from
+ @param dst_uca - UCA data to copy weights to
+ @param page - page number
+
+ @return
+ @retval FALSE on success
+ @retval TRUE on error
+*/
+static my_bool
+my_uca_copy_page(MY_CHARSET_LOADER *loader,
+ const MY_UCA_WEIGHT_LEVEL *src,
+ MY_UCA_WEIGHT_LEVEL *dst,
+ size_t page)
+{
+ uint chc, size= 256 * dst->lengths[page] * sizeof(uint16);
+ if (!(dst->weights[page]= (uint16 *) (loader->once_alloc)(size)))
+ return TRUE;
+
+ DBUG_ASSERT(src->lengths[page] <= dst->lengths[page]);
+ memset(dst->weights[page], 0, size);
+ for (chc=0 ; chc < 256; chc++)
+ {
+ memcpy(dst->weights[page] + chc * dst->lengths[page],
+ src->weights[page] + chc * src->lengths[page],
+ src->lengths[page] * sizeof(uint16));
+ }
+ return FALSE;
+}
+
+
+static my_bool
+my_uca_generate_implicit_page(MY_CHARSET_LOADER *loader,
+ MY_UCA_WEIGHT_LEVEL *dst,
+ uint page)
+{
+ uint chc, size= 256 * dst->lengths[page] * sizeof(uint16);
+ if (!(dst->weights[page]= (uint16 *) (loader->once_alloc)(size)))
+ return TRUE;
+
+ memset(dst->weights[page], 0, size);
+ for (chc= 0 ; chc < 256; chc++)
+ {
+ uint16 *w= dst->weights[page] + chc * dst->lengths[page];
+ my_uca_implicit_weight_put(w, (page << 8) + chc, dst->levelno);
+ }
+ return FALSE;
+}
+
+
+static my_bool
+apply_shift(MY_CHARSET_LOADER *loader,
+ MY_COLL_RULES *rules, MY_COLL_RULE *r, int level,
+ uint16 *to, size_t nweights)
+{
+ /* Apply level difference. */
+ if (nweights)
+ {
+ to[nweights - 1]+= r->diff[level];
+ if (r->before_level == 1) /* Apply "&[before primary]" */
+ {
+ if (nweights >= 2)
{
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"character expected");
- return -1;
+ to[nweights - 2]--; /* Reset before */
+ if (rules->shift_after_method == my_shift_method_expand)
+ {
+ /*
+ Special case. Don't let characters shifted after X
+ and before next(X) intermix to each other.
+
+ For example:
+ "[shift-after-method expand] &0 < a &[before primary]1 < A".
+ I.e. we reorder 'a' after '0', and then 'A' before '1'.
+ 'a' must be sorted before 'A'.
+
+ Note, there are no real collations in CLDR which shift
+ after and before two neighbourgh characters. We need this
+ just in case. Reserving 4096 (0x1000) weights for such
+ cases is perfectly enough.
+ */
+ to[nweights - 1]+= 0x1000; /* W3-TODO: const may vary on levels 2,3*/
+ }
}
-
- if (prevlexnum == MY_COLL_LEXEM_SHIFT)
+ else
{
- item.base= lexem.code;
- item.diff[0]= 0;
- item.diff[1]= 0;
- item.diff[2]= 0;
+ my_snprintf(loader->error, sizeof(loader->error),
+ "Can't reset before "
+ "a primary ignorable character U+%04lX", r->base[0]);
+ return TRUE;
}
- else if (prevlexnum == MY_COLL_LEXEM_DIFF)
+ }
+ }
+ else
+ {
+ /* Shift to an ignorable character, e.g.: & \u0000 < \u0001 */
+ DBUG_ASSERT(to[0] == 0);
+ to[0]= r->diff[level];
+ }
+ return FALSE;
+}
+
+
+static void
+wstr_to_str(char *str, size_t length, my_wc_t *wc, size_t wlength)
+{
+ const char *end= str + length;
+ char *s;
+ size_t i, rem;
+ for (s= str, i= 0; (rem= (end - s)) > 0 && i < wlength; i++)
+ {
+ if ((wc[i] >= '0' && wc[i] <= '9') ||
+ (wc[i] >= 'a' && wc[i] <= 'z') ||
+ (wc[i] >= 'A' && wc[i] <= 'Z'))
+ s+= my_snprintf(s, rem, "%c", (int) wc[i]);
+ else
+ s+= my_snprintf(s, rem, "\\u%04X", (int) wc[i]);
+ }
+}
+
+
+static void
+my_charset_loader_error_for_rule(MY_CHARSET_LOADER *loader,
+ const MY_COLL_RULE *r __attribute__((unused)),
+ const char *name,
+ my_wc_t *wc, size_t wlength)
+{
+ char tmp[128];
+ wstr_to_str(tmp, sizeof(tmp), wc, wlength);
+ my_snprintf(loader->error, sizeof(loader->error),
+ "%s too long: '%s'", name, tmp);
+}
+
+
+/**
+ Initialize one contraction:
+ - add flags for the characters in the contraction
+ - add a contraction to the arrray
+ @param contractions -
+ @param str - array of characters in the contraction
+ @param length - number of characters in the contraction
+ @param with_context - "previous context" or a normal contraction
+ @return a pointer where the caller should store contraction weights
+*/
+static uint16 *
+my_uca_init_one_contraction(MY_CONTRACTIONS *contractions,
+ my_wc_t *str, uint length, my_bool with_context)
+{
+ int flag;
+ uint i;
+ my_uca_add_contraction_flag(contractions, str[0],
+ with_context ?
+ MY_UCA_PREVIOUS_CONTEXT_HEAD :
+ MY_UCA_CNT_HEAD);
+ for (i= 1, flag= MY_UCA_CNT_MID1; i < length - 1; i++, flag<<= 1)
+ my_uca_add_contraction_flag(contractions, str[i], flag);
+ my_uca_add_contraction_flag(contractions, str[i],
+ with_context ?
+ MY_UCA_PREVIOUS_CONTEXT_TAIL :
+ MY_UCA_CNT_TAIL);
+ /* Add new contraction to the contraction list */
+ return my_uca_add_contraction(contractions, str, length,
+ with_context)->weight;
+}
+
+
+static my_bool
+apply_one_rule(MY_CHARSET_LOADER *loader,
+ MY_COLL_RULES *rules, MY_COLL_RULE *r,
+ MY_UCA_WEIGHT_LEVEL *dst)
+{
+ size_t nweights;
+ size_t nreset= my_coll_rule_reset_length(r); /* Length of reset sequence */
+ size_t nshift= my_coll_rule_shift_length(r); /* Length of shift sequence */
+ uint16 *to;
+ my_bool rc;
+
+ if ((rules->shift_after_method == my_shift_method_expand && r->diff[0]) ||
+ r->before_level == 1)
+ {
+ /*
+ Suppose we have this rule: &B[before primary] < C
+ i.e. we need to put C before B, but after A, so
+ the result order is: A < C < B.
+
+ Let primary weight of B be [BBBB].
+
+ We cannot just use [BBBB-1] as weight for C:
+ DUCET does not have enough unused weights between any two characters,
+ so using [BBBB-1] will likely make C equal to the previous character,
+ which is A, so we'll get this order instead of the desired: A = C < B.
+
+ To guarantee that that C is sorted after A, we'll use expansion
+ with a kind of "biggest possible character".
+ As "biggest possible character" we'll use "last_non_ignorable":
+
+ We'll compose weight for C as: [BBBB-1][MMMM+1]
+ where [MMMM] is weight for "last_non_ignorable".
+
+ We also do the same trick for "reset after" if the collation
+ option says so. E.g. for the rules "&B < C", weight for
+ C will be calculated as: [BBBB][MMMM+1]
+
+ At this point we only need to store codepoints
+ 'B' and 'last_non_ignorable'. Actual weights for 'C'
+ will be calculated according to the above formula later,
+ in create_tailoring().
+ */
+ if (!my_coll_rule_expand(r->base, MY_UCA_MAX_EXPANSION,
+ rules->uca->last_non_ignorable))
+ {
+ my_charset_loader_error_for_rule(loader, r, "Expansion", r->base, nreset);
+ return TRUE;
+ }
+ nreset= my_coll_rule_reset_length(r);
+ }
+
+ if (nshift >= 2) /* Contraction */
+ {
+ MY_CONTRACTIONS *contractions= &dst->contractions;
+ to= my_uca_init_one_contraction(contractions,
+ r->curr, nshift, r->with_context);
+ /* Store weights of the "reset to" character */
+ dst->contractions.nitems--; /* Temporarily hide - it's incomplete */
+ rc= my_char_weight_put(dst,
+ to, MY_UCA_CONTRACTION_MAX_WEIGHT_SIZE, &nweights,
+ r->base, nreset);
+ dst->contractions.nitems++; /* Activate, now it's complete */
+ }
+ else
+ {
+ my_wc_t pagec= (r->curr[0] >> 8);
+ DBUG_ASSERT(dst->weights[pagec]);
+ to= my_char_weight_addr(dst, r->curr[0]);
+ /* Store weights of the "reset to" character */
+ rc= my_char_weight_put(dst, to, dst->lengths[pagec], &nweights, r->base, nreset);
+ }
+ if (rc)
+ {
+ my_charset_loader_error_for_rule(loader, r, "Expansion", r->base, nreset);
+ return rc;
+ }
+
+ /* Apply level difference. */
+ return apply_shift(loader, rules, r, dst->levelno, to, nweights);
+}
+
+
+/**
+ Check if collation rules are valid,
+ i.e. characters are not outside of the collation suported range.
+*/
+static int
+check_rules(MY_CHARSET_LOADER *loader,
+ const MY_COLL_RULES *rules,
+ const MY_UCA_WEIGHT_LEVEL *dst, const MY_UCA_WEIGHT_LEVEL *src)
+{
+ const MY_COLL_RULE *r, *rlast;
+ for (r= rules->rule, rlast= rules->rule + rules->nrules; r < rlast; r++)
+ {
+ if (r->curr[0] > dst->maxchar)
+ {
+ my_snprintf(loader->error, sizeof(loader->error),
+ "Shift character out of range: u%04X", (uint) r->curr[0]);
+ return TRUE;
+ }
+ else if (r->base[0] > src->maxchar)
+ {
+ my_snprintf(loader->error, sizeof(loader->error),
+ "Reset character out of range: u%04X", (uint) r->base[0]);
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+
+/**
+ Calculates how many weights are needed on the given page.
+
+ In case of implicit weights, the functions returns 3:
+ two implicit weights plus trailing 0.
+
+ Implicit weights can appear if we do something like this:
+ <reset>\u3400</>
+ <i>a</i>
+ I.e. we reset to a character that does not have an explicit weight (U+3400),
+ and then reorder another character relatively to it.
+*/
+static uint my_weight_size_on_page(const MY_UCA_WEIGHT_LEVEL *src, uint page)
+{
+ return src->lengths[page] ? src->lengths[page] : 3;
+}
+
+
+/**
+ Generate default weights for a page:
+ - copy default weights from "src", or
+ - generate implicit weights algorithmically.
+ Note, some of these default weights will change later,
+ during a apply_one_rule() call.
+*/
+static my_bool
+my_uca_generate_page(MY_CHARSET_LOADER *loader,
+ MY_UCA_WEIGHT_LEVEL *dst, const MY_UCA_WEIGHT_LEVEL *src,
+ uint pageno)
+{
+ DBUG_ASSERT(dst->levelno == src->levelno);
+ return src->lengths[pageno] ?
+ /*
+ A page with explicit weights and some special rules.
+ Copy all weights from the page in "src".
+ */
+ my_uca_copy_page(loader, src, dst, pageno) :
+ /*
+ A page with implicit weights and some special rules.
+ Generate default weights for all characters on this page
+ algorithmically now, at initialization time.
+ */
+ my_uca_generate_implicit_page(loader, dst, pageno);
+}
+
+
+/**
+ Find all pages that we have special rules on and
+ populate default (explicit or implicit) weights for these pages.
+*/
+static my_bool
+my_uca_generate_pages(MY_CHARSET_LOADER *loader,
+ MY_UCA_WEIGHT_LEVEL *dst,
+ const MY_UCA_WEIGHT_LEVEL *src,
+ uint npages)
+{
+ uint page;
+ for (page= 0; page < npages; page++)
+ {
+ if (dst->weights[page])
+ {
+ /* A page with explicit weights with no special rules */
+ continue;
+ }
+
+ if (!dst->lengths[page])
+ {
+ /*
+ A page with implicit weights with no special rules.
+ Keep dst->weights[page]==NULL and dst->lengths[page]==0.
+ Weights for this page will be generated at run time algorithmically,
+ using my_uca_scanner_next_implicit().
+ */
+ continue;
+ }
+
+ /* Found a page with some special rules. */
+ if (my_uca_generate_page(loader, dst, src, page))
+ return TRUE;
+ }
+ return FALSE;
+}
+
+
+static my_bool
+init_weight_level(MY_CHARSET_LOADER *loader, MY_COLL_RULES *rules,
+ MY_UCA_WEIGHT_LEVEL *dst, const MY_UCA_WEIGHT_LEVEL *src)
+{
+ MY_COLL_RULE *r, *rlast;
+ int ncontractions= 0;
+ size_t i, npages= (src->maxchar + 1) / 256;
+
+ dst->maxchar= src->maxchar;
+ dst->levelno= src->levelno;
+
+ if (check_rules(loader, rules, dst, src))
+ return TRUE;
+
+ /* Allocate memory for pages and their lengths */
+ if (!(dst->lengths= (uchar *) (loader->once_alloc)(npages)) ||
+ !(dst->weights= (uint16 **) (loader->once_alloc)(npages *
+ sizeof(uint16 *))))
+ return TRUE;
+
+ /* Copy pages lengths and page pointers from the default UCA weights */
+ memcpy(dst->lengths, src->lengths, npages);
+ memcpy(dst->weights, src->weights, npages * sizeof(uint16 *));
+
+ /*
+ Calculate maximum lenghts for the pages which will be overwritten.
+ Mark pages that will be otherwriten as NULL.
+ We'll allocate their own memory.
+ */
+ for (r= rules->rule, rlast= rules->rule + rules->nrules; r < rlast; r++)
+ {
+ if (!r->curr[1]) /* If not a contraction */
+ {
+ uint pagec= (r->curr[0] >> 8);
+ if (r->base[1]) /* Expansion */
{
- MY_COLL_LEXEM savlex;
- savlex= lexem;
- item.curr[0]= lexem.code;
- if ((lexnum= my_coll_lexem_next(&lexem)) == MY_COLL_LEXEM_CHAR)
- {
- item.curr[1]= lexem.code;
- }
- else
- {
- item.curr[1]= 0;
- lexem=savlex; /* Restore previous parser state */
- }
- if (lexem.diff == 3)
- {
- item.diff[2]++;
- }
- else if (lexem.diff == 2)
- {
- item.diff[1]++;
- item.diff[2]= 0;
- }
- else if (lexem.diff == 1)
- {
- item.diff[0]++;
- item.diff[1]= 0;
- item.diff[2]= 0;
- }
- else if (lexem.diff == 0)
- {
- item.diff[0]= item.diff[1]= item.diff[2]= 0;
- }
- if (nitems >= mitems)
- {
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Too many rules");
- return -1;
- }
- rule[nitems++]= item;
+ /* Reserve space for maximum possible length */
+ dst->lengths[pagec]= MY_UCA_MAX_WEIGHT_SIZE;
}
else
{
- my_coll_lexem_print_error(&lexem,errstr,errsize-1,"Should never happen");
- return -1;
+ /*
+ Not an expansion and not a contraction.
+ The page correspoding to r->curr[0] in "dst"
+ will need at least the same amount of weights
+ that r->base[0] has in "src".
+ */
+ uint wsize= my_weight_size_on_page(src, r->base[0] >> 8);
+ if (dst->lengths[pagec] < wsize)
+ dst->lengths[pagec]= wsize;
}
- state= 1;
- continue;
+ dst->weights[pagec]= NULL; /* Mark that we'll overwrite this page */
}
+ else
+ ncontractions++;
+ }
+
+ ncontractions += src->contractions.nitems;
+
+ if ((my_uca_generate_pages(loader, dst, src, npages)))
+ return TRUE;
+
+ if (ncontractions)
+ {
+ if (my_uca_alloc_contractions(&dst->contractions, loader, ncontractions))
+ return TRUE;
+ }
+
+ /*
+ Preparatory step is done at this point.
+ Now we have memory allocated for the pages that we'll overwrite,
+ and for contractions, including previous context contractions.
+ Also, for the pages that we'll overwrite, we have copied default weights.
+ Now iterate through the rules, overwrite weights for the characters
+ that appear in the rules, and put all contractions into contraction list.
+ */
+ for (r= rules->rule; r < rlast; r++)
+ {
+ if (apply_one_rule(loader, rules, r, dst))
+ return TRUE;
+ }
+
+ /*
+ Add built-in contractions (e.g. for Thai)
+ */
+ for (i= 0; i != src->contractions.nitems; i++)
+ {
+ MY_CONTRACTION *item= &src->contractions.item[i];
+ /*
+ TODO: calculate length from item->ch.
+ Generally contractions can consist of more than 2 characters.
+ */
+ uint length= 2;
+ uint16 *weights= my_uca_init_one_contraction(&dst->contractions,
+ item->ch, length,
+ item->with_context);
+ memcpy(weights, item->weight, length * sizeof(uint16));
+ weights[length]= 0;
}
- return (int) nitems;
+ return FALSE;
}
-#define MY_MAX_COLL_RULE 128
/*
This function copies an UCS2 collation from
@@ -8031,147 +34126,128 @@ static int my_coll_rule_parse(MY_COLL_RULE *rule, size_t mitems,
default weights.
*/
-static my_bool create_tailoring(struct charset_info_st *cs,
- void *(*alloc)(size_t))
-{
- MY_COLL_RULE rule[MY_MAX_COLL_RULE];
- MY_COLL_RULE *r, *rfirst, *rlast;
- char errstr[128];
- uchar *newlengths;
- uint16 **newweights;
- const uchar *deflengths= uca_length;
- const uint16 *const *defweights= uca_weight;
- int rc, i;
- int ncontractions= 0;
-
+static my_bool
+create_tailoring(struct charset_info_st *cs,
+ MY_CHARSET_LOADER *loader)
+{
+ MY_COLL_RULES rules;
+ MY_UCA_INFO new_uca, *src_uca= NULL;
+ int rc= 0;
+
+ *loader->error= '\0';
+
if (!cs->tailoring)
- return 1;
-
+ return 0; /* Ok to add a collation without tailoring */
+
+ memset(&rules, 0, sizeof(rules));
+ rules.loader= loader;
+ rules.uca= cs->uca ? cs->uca : &my_uca_v400; /* For logical positions, etc */
+ memset(&new_uca, 0, sizeof(new_uca));
+
/* Parse ICU Collation Customization expression */
- if ((rc= my_coll_rule_parse(rule, MY_MAX_COLL_RULE,
+ if ((rc= my_coll_rule_parse(&rules,
cs->tailoring,
- cs->tailoring + strlen(cs->tailoring),
- errstr, sizeof(errstr))) < 0)
+ cs->tailoring + strlen(cs->tailoring))))
+ goto ex;
+
+ if (rules.version == 520) /* Unicode-5.2.0 requested */
{
- /*
- TODO: add error message reporting.
- printf("Error: %d '%s'\n", rc, errstr);
- */
- return 1;
+ src_uca= &my_uca_v520;
+ cs->caseinfo= &my_unicase_unicode520;
}
-
- rfirst= rule;
- rlast= rule + rc;
-
- if (!cs->caseinfo)
- cs->caseinfo= my_unicase_default;
-
- if (!(newweights= (uint16**) (*alloc)(256*sizeof(uint16*))))
- return 1;
- bzero(newweights, 256*sizeof(uint16*));
-
- if (!(newlengths= (uchar*) (*alloc)(256)))
- return 1;
-
- memcpy(newlengths, deflengths, 256);
-
- /*
- Calculate maximum lenghts for the pages
- which will be overwritten.
- */
- for (i=0; i < rc; i++)
+ else if (rules.version == 400) /* Unicode-4.0.0 requested */
{
- /* check if the shift or the reset characters are out of range */
- if (rule[i].curr[0] > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT ||
- rule[i].base > MAX_UCA_CHAR_WITH_EXPLICIT_WEIGHT)
- return 1;
+ src_uca= &my_uca_v400;
+ cs->caseinfo= &my_unicase_default;
+ }
+ else /* No Unicode version specified */
+ {
+ src_uca= cs->uca ? cs->uca : &my_uca_v400;
+ if (!cs->caseinfo)
+ cs->caseinfo= &my_unicase_default;
+ }
- if (!rule[i].curr[1]) /* If not a contraction */
- {
- uint pageb= (rule[i].base >> 8) & 0xFF;
- uint pagec= (rule[i].curr[0] >> 8) & 0xFF;
-
- if (newlengths[pagec] < deflengths[pageb])
- newlengths[pagec]= deflengths[pageb];
- }
- else
- ncontractions++;
+ if ((rc= init_weight_level(loader, &rules,
+ &new_uca.level[0], &src_uca->level[0])))
+ goto ex;
+
+ if (!(cs->uca= (MY_UCA_INFO *) (loader->once_alloc)(sizeof(MY_UCA_INFO))))
+ {
+ rc= 1;
+ goto ex;
}
-
- for (i=0; i < rc; i++)
+ cs->uca[0]= new_uca;
+
+ex:
+ (loader->free)(rules.rule);
+ if (rc != 0 && loader->error[0])
+ loader->reporter(ERROR_LEVEL, "%s", loader->error);
+ return rc;
+}
+
+static my_bool
+create_tailoring_multilevel(struct charset_info_st *cs,
+ MY_CHARSET_LOADER *loader)
+{
+ uint num_level= cs->levels_for_order;
+ MY_COLL_RULES rules;
+ MY_UCA_INFO new_uca, *src_uca= NULL;
+ int rc= 0;
+ uint i;
+
+ *loader->error= '\0';
+
+ if (!cs->tailoring)
+ return 0; /* Ok to add a collation without tailoring */
+
+ memset(&rules, 0, sizeof(rules));
+ rules.loader= loader;
+ rules.uca= cs->uca ? cs->uca : &my_uca_v400; /* For logical positions, etc */
+ memset(&new_uca, 0, sizeof(new_uca));
+
+ /* Parse ICU Collation Customization expression */
+ if ((rc= my_coll_rule_parse(&rules,
+ cs->tailoring,
+ cs->tailoring + strlen(cs->tailoring))))
+ goto ex;
+
+ if (rules.version == 520) /* Unicode-5.2.0 requested */
{
- uint pageb= (rule[i].base >> 8) & 0xFF;
- uint pagec= (rule[i].curr[0] >> 8) & 0xFF;
- uint chb, chc;
-
- if (rule[i].curr[1]) /* Skip contraction */
- continue;
-
- if (!newweights[pagec])
- {
- /* Alloc new page and copy the default UCA weights */
- uint size= 256*newlengths[pagec]*sizeof(uint16);
-
- if (!(newweights[pagec]= (uint16*) (*alloc)(size)))
- return 1;
- bzero((void*) newweights[pagec], size);
-
- for (chc=0 ; chc < 256; chc++)
- {
- memcpy(newweights[pagec] + chc*newlengths[pagec],
- defweights[pagec] + chc*deflengths[pagec],
- deflengths[pagec]*sizeof(uint16));
- }
- }
-
- /*
- Aply the alternative rule:
- shift to the base character and primary difference.
- */
- chc= rule[i].curr[0] & 0xFF;
- chb= rule[i].base & 0xFF;
- memcpy(newweights[pagec] + chc*newlengths[pagec],
- defweights[pageb] + chb*deflengths[pageb],
- deflengths[pageb]*sizeof(uint16));
- /* Apply primary difference */
- newweights[pagec][chc*newlengths[pagec]]+= rule[i].diff[0];
+ src_uca= &my_uca_v520;
+ cs->caseinfo= &my_unicase_unicode520;
}
-
- /* Copy non-overwritten pages from the default UCA weights */
- for (i= 0; i < 256 ; i++)
+ else if (rules.version == 400) /* Unicode-4.0.0 requested */
{
- if (!newweights[i])
- ((const uint16**) newweights)[i]= defweights[i];
+ src_uca= &my_uca_v400;
+ cs->caseinfo= &my_unicase_default;
}
-
- cs->sort_order= newlengths;
- cs->sort_order_big= (const uint16**) newweights;
- cs->contractions= NULL;
-
- /* Now process contractions */
- if (ncontractions)
+ else /* No Unicode version specified */
{
- if (my_uca_alloc_contractions(cs, alloc, ncontractions))
- return 1;
- for (r= rfirst; r < rlast; r++)
- {
- uint16 *to;
- if (r->curr[1]) /* Contraction */
- {
- /* Mark both letters as "is contraction part" */
- my_uca_add_contraction_flag(cs, r->curr[0], MY_UCA_CNT_HEAD);
- my_uca_add_contraction_flag(cs, r->curr[1], MY_UCA_CNT_TAIL);
- to= my_uca_add_contraction(cs, r->curr, 2)->weight;
- /* Copy weight from the reset character */
- to[0]= my_char_weight_addr(cs, r->base)[0];
- /* Apply primary difference */
- to[0]+= r->diff[0];
- }
- }
+ src_uca= cs->uca ? cs->uca : &my_uca_v400;
+ if (!cs->caseinfo)
+ cs->caseinfo= &my_unicase_default;
+ }
+
+ for (i= 0; i != num_level; i++)
+ {
+ if ((rc= init_weight_level(loader, &rules,
+ &new_uca.level[i], &src_uca->level[i])))
+ goto ex;
}
- return 0;
-}
+ if (!(cs->uca= (MY_UCA_INFO *) (loader->once_alloc)(sizeof(MY_UCA_INFO))))
+ {
+ rc= 1;
+ goto ex;
+ }
+ cs->uca[0]= new_uca;
+
+ex:
+ (loader->free)(rules.rule);
+ if (rc != 0 && loader->error[0])
+ loader->reporter(ERROR_LEVEL, "%s", loader->error);
+ return rc;
+}
/*
Universal CHARSET_INFO compatible wrappers
@@ -8179,12 +34255,25 @@ static my_bool create_tailoring(struct charset_info_st *cs,
Should work for any character set.
*/
-static my_bool my_coll_init_uca(struct charset_info_st *cs,
- void *(*alloc)(size_t))
+static my_bool
+my_coll_init_uca(struct charset_info_st *cs, MY_CHARSET_LOADER *loader)
{
cs->pad_char= ' ';
cs->ctype= my_charset_utf8_unicode_ci.ctype;
- return create_tailoring(cs, alloc);
+ if (!cs->caseinfo)
+ cs->caseinfo= &my_unicase_default;
+ return create_tailoring(cs, loader);
+}
+
+static my_bool
+my_coll_init_uca_multilevel(struct charset_info_st *cs,
+ MY_CHARSET_LOADER *loader)
+{
+ cs->pad_char= ' ';
+ cs->ctype= my_charset_utf8_unicode_ci.ctype;
+ if (!cs->caseinfo)
+ cs->caseinfo= &my_unicase_default;
+ return create_tailoring_multilevel(cs, loader);
}
static int my_strnncoll_any_uca(CHARSET_INFO *cs,
@@ -8196,6 +34285,15 @@ static int my_strnncoll_any_uca(CHARSET_INFO *cs,
s, slen, t, tlen, t_is_prefix);
}
+static int my_strnncoll_any_uca_multilevel(CHARSET_INFO *cs,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool t_is_prefix)
+{
+ return my_strnncoll_uca_multilevel(cs, &my_any_uca_scanner_handler,
+ s, slen, t, tlen, t_is_prefix);
+}
+
static int my_strnncollsp_any_uca(CHARSET_INFO *cs,
const uchar *s, size_t slen,
const uchar *t, size_t tlen,
@@ -8204,23 +34302,70 @@ static int my_strnncollsp_any_uca(CHARSET_INFO *cs,
return my_strnncollsp_uca(cs, &my_any_uca_scanner_handler,
s, slen, t, tlen,
diff_if_only_endspace_difference);
-}
+}
+
+static int my_strnncollsp_any_uca_multilevel(CHARSET_INFO *cs,
+ const uchar *s, size_t slen,
+ const uchar *t, size_t tlen,
+ my_bool diff_if_only_endspace_difference)
+{
+ return my_strnncollsp_uca_multilevel(cs, &my_any_uca_scanner_handler,
+ s, slen, t, tlen,
+ diff_if_only_endspace_difference);
+}
static void my_hash_sort_any_uca(CHARSET_INFO *cs,
const uchar *s, size_t slen,
ulong *n1, ulong *n2)
{
- my_hash_sort_uca(cs, &my_any_uca_scanner_handler, s, slen, n1, n2);
+ my_hash_sort_uca(cs, &my_any_uca_scanner_handler, s, slen, n1, n2);
}
static size_t my_strnxfrm_any_uca(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
return my_strnxfrm_uca(cs, &my_any_uca_scanner_handler,
- dst, dstlen, src, srclen);
+ dst, dstlen, nweights, src, srclen, flags);
+}
+
+static size_t my_strnxfrm_any_uca_multilevel(CHARSET_INFO *cs,
+ uchar *dst, size_t dstlen,
+ uint nweights, const uchar *src,
+ size_t srclen, uint flags)
+{
+ return my_strnxfrm_uca_multilevel(cs, &my_any_uca_scanner_handler,
+ dst, dstlen, nweights, src, srclen,
+ flags);
+}
+
+static size_t my_strnxfrmlen_any_uca(CHARSET_INFO *cs, size_t len)
+{
+ /* UCA uses 2 bytes per weight */
+ return (len + cs->mbmaxlen - 1) / cs->mbmaxlen * cs->strxfrm_multiply * 2;
}
+static size_t my_strnxfrmlen_any_uca_multilevel(CHARSET_INFO *cs, size_t len)
+{
+ return my_strnxfrmlen_any_uca(cs, len) * cs->levels_for_order;
+}
+
+
+MY_COLLATION_HANDLER my_collation_any_uca_handler_multilevel=
+{
+ my_coll_init_uca_multilevel,
+ my_strnncoll_any_uca_multilevel,
+ my_strnncollsp_any_uca_multilevel,
+ my_strnxfrm_any_uca_multilevel,
+ my_strnxfrmlen_any_uca_multilevel,
+ my_like_range_generic,
+ my_wildcmp_uca,
+ NULL,
+ my_instr_mb,
+ my_hash_sort_any_uca,
+ my_propagate_complex
+};
+
#ifdef HAVE_CHARSET_ucs2
/*
@@ -8231,7 +34376,7 @@ static int my_strnncoll_ucs2_uca(CHARSET_INFO *cs,
const uchar *t, size_t tlen,
my_bool t_is_prefix)
{
- return my_strnncoll_uca(cs, &my_ucs2_uca_scanner_handler,
+ return my_strnncoll_uca(cs, &my_any_uca_scanner_handler,
s, slen, t, tlen, t_is_prefix);
}
@@ -8240,7 +34385,7 @@ static int my_strnncollsp_ucs2_uca(CHARSET_INFO *cs,
const uchar *t, size_t tlen,
my_bool diff_if_only_endspace_difference)
{
- return my_strnncollsp_uca(cs, &my_ucs2_uca_scanner_handler,
+ return my_strnncollsp_uca(cs, &my_any_uca_scanner_handler,
s, slen, t, tlen,
diff_if_only_endspace_difference);
}
@@ -8249,15 +34394,15 @@ static void my_hash_sort_ucs2_uca(CHARSET_INFO *cs,
const uchar *s, size_t slen,
ulong *n1, ulong *n2)
{
- my_hash_sort_uca(cs, &my_ucs2_uca_scanner_handler, s, slen, n1, n2);
+ my_hash_sort_uca(cs, &my_any_uca_scanner_handler, s, slen, n1, n2);
}
static size_t my_strnxfrm_ucs2_uca(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- return my_strnxfrm_uca(cs, &my_ucs2_uca_scanner_handler,
- dst, dstlen, src, srclen);
+ return my_strnxfrm_uca(cs, &my_any_uca_scanner_handler,
+ dst, dstlen, nweights, src, srclen, flags);
}
MY_COLLATION_HANDLER my_collation_ucs2_uca_handler =
@@ -8266,7 +34411,7 @@ MY_COLLATION_HANDLER my_collation_ucs2_uca_handler =
my_strnncoll_ucs2_uca,
my_strnncollsp_ucs2_uca,
my_strnxfrm_ucs2_uca,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_any_uca,
my_like_range_generic,
my_wildcmp_uca,
NULL,
@@ -8275,10 +34420,12 @@ MY_COLLATION_HANDLER my_collation_ucs2_uca_handler =
my_propagate_complex
};
+#define MY_CS_UCS2_UCA_FLAGS (MY_CS_COMMON_UCA_FLAGS|MY_CS_NONASCII)
+
struct charset_info_st my_charset_ucs2_unicode_ci=
{
128,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_unicode_ci", /* name */
"", /* comment */
@@ -8286,12 +34433,11 @@ struct charset_info_st my_charset_ucs2_unicode_ci=
NULL, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
+ NULL, /* sort_order */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8303,6 +34449,7 @@ struct charset_info_st my_charset_ucs2_unicode_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8310,7 +34457,7 @@ struct charset_info_st my_charset_ucs2_unicode_ci=
struct charset_info_st my_charset_ucs2_icelandic_uca_ci=
{
129,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_icelandic_ci",/* name */
"", /* comment */
@@ -8319,11 +34466,10 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8335,6 +34481,7 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8342,7 +34489,7 @@ struct charset_info_st my_charset_ucs2_icelandic_uca_ci=
struct charset_info_st my_charset_ucs2_latvian_uca_ci=
{
130,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_latvian_ci", /* name */
"", /* comment */
@@ -8351,11 +34498,10 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8367,6 +34513,7 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8374,7 +34521,7 @@ struct charset_info_st my_charset_ucs2_latvian_uca_ci=
struct charset_info_st my_charset_ucs2_romanian_uca_ci=
{
131,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_romanian_ci", /* name */
"", /* comment */
@@ -8383,11 +34530,10 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8399,6 +34545,7 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8406,7 +34553,7 @@ struct charset_info_st my_charset_ucs2_romanian_uca_ci=
struct charset_info_st my_charset_ucs2_slovenian_uca_ci=
{
132,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_slovenian_ci",/* name */
"", /* comment */
@@ -8415,11 +34562,10 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8431,6 +34577,7 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8438,7 +34585,7 @@ struct charset_info_st my_charset_ucs2_slovenian_uca_ci=
struct charset_info_st my_charset_ucs2_polish_uca_ci=
{
133,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_polish_ci", /* name */
"", /* comment */
@@ -8447,11 +34594,10 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8463,6 +34609,7 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8470,7 +34617,7 @@ struct charset_info_st my_charset_ucs2_polish_uca_ci=
struct charset_info_st my_charset_ucs2_estonian_uca_ci=
{
134,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_estonian_ci", /* name */
"", /* comment */
@@ -8479,11 +34626,10 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8495,6 +34641,7 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8502,7 +34649,7 @@ struct charset_info_st my_charset_ucs2_estonian_uca_ci=
struct charset_info_st my_charset_ucs2_spanish_uca_ci=
{
135,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_spanish_ci", /* name */
"", /* comment */
@@ -8511,11 +34658,10 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8527,6 +34673,7 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8534,7 +34681,7 @@ struct charset_info_st my_charset_ucs2_spanish_uca_ci=
struct charset_info_st my_charset_ucs2_swedish_uca_ci=
{
136,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_swedish_ci", /* name */
"", /* comment */
@@ -8543,11 +34690,10 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8559,6 +34705,7 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8566,7 +34713,7 @@ struct charset_info_st my_charset_ucs2_swedish_uca_ci=
struct charset_info_st my_charset_ucs2_turkish_uca_ci=
{
137,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_turkish_ci", /* name */
"", /* comment */
@@ -8575,11 +34722,10 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
+ &my_unicase_turkish,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8591,6 +34737,7 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8598,7 +34745,7 @@ struct charset_info_st my_charset_ucs2_turkish_uca_ci=
struct charset_info_st my_charset_ucs2_czech_uca_ci=
{
138,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_czech_ci", /* name */
"", /* comment */
@@ -8607,11 +34754,10 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8623,6 +34769,7 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8631,7 +34778,7 @@ struct charset_info_st my_charset_ucs2_czech_uca_ci=
struct charset_info_st my_charset_ucs2_danish_uca_ci=
{
139,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_danish_ci", /* name */
"", /* comment */
@@ -8640,11 +34787,10 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8656,6 +34802,7 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8663,7 +34810,7 @@ struct charset_info_st my_charset_ucs2_danish_uca_ci=
struct charset_info_st my_charset_ucs2_lithuanian_uca_ci=
{
140,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_lithuanian_ci",/* name */
"", /* comment */
@@ -8672,11 +34819,10 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8688,6 +34834,7 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8695,7 +34842,7 @@ struct charset_info_st my_charset_ucs2_lithuanian_uca_ci=
struct charset_info_st my_charset_ucs2_slovak_uca_ci=
{
141,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_slovak_ci", /* name */
"", /* comment */
@@ -8704,11 +34851,10 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8720,6 +34866,7 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8727,7 +34874,7 @@ struct charset_info_st my_charset_ucs2_slovak_uca_ci=
struct charset_info_st my_charset_ucs2_spanish2_uca_ci=
{
142,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_spanish2_ci", /* name */
"", /* comment */
@@ -8736,11 +34883,10 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8752,6 +34898,7 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8760,7 +34907,7 @@ struct charset_info_st my_charset_ucs2_spanish2_uca_ci=
struct charset_info_st my_charset_ucs2_roman_uca_ci=
{
143,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_roman_ci", /* name */
"", /* comment */
@@ -8769,11 +34916,10 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8785,6 +34931,7 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8793,7 +34940,7 @@ struct charset_info_st my_charset_ucs2_roman_uca_ci=
struct charset_info_st my_charset_ucs2_persian_uca_ci=
{
144,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_persian_ci", /* name */
"", /* comment */
@@ -8802,11 +34949,10 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8818,6 +34964,7 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8826,7 +34973,7 @@ struct charset_info_st my_charset_ucs2_persian_uca_ci=
struct charset_info_st my_charset_ucs2_esperanto_uca_ci=
{
145,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_esperanto_ci",/* name */
"", /* comment */
@@ -8835,11 +34982,10 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8851,6 +34997,7 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8859,7 +35006,7 @@ struct charset_info_st my_charset_ucs2_esperanto_uca_ci=
struct charset_info_st my_charset_ucs2_hungarian_uca_ci=
{
146,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
"ucs2_hungarian_ci",/* name */
"", /* comment */
@@ -8868,11 +35015,10 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8884,6 +35030,7 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
@@ -8891,7 +35038,7 @@ struct charset_info_st my_charset_ucs2_hungarian_uca_ci=
struct charset_info_st my_charset_ucs2_sinhala_uca_ci=
{
147,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* csname */
"ucs2_sinhala_ci", /* name */
"", /* comment */
@@ -8900,11 +35047,10 @@ struct charset_info_st my_charset_ucs2_sinhala_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8916,27 +35062,127 @@ struct charset_info_st my_charset_ucs2_sinhala_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
-struct charset_info_st my_charset_ucs2_croatian_uca_ci=
+
+
+struct charset_info_st my_charset_ucs2_german2_uca_ci=
+{
+ 148,0,0, /* number */
+ MY_CS_UCS2_UCA_FLAGS,/* state */
+ "ucs2", /* csname */
+ "ucs2_german2_ci", /* name */
+ "", /* comment */
+ german2, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 2, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_ucs2_handler,
+ &my_collation_ucs2_uca_handler
+};
+
+struct charset_info_st my_charset_ucs2_croatian_mysql561_uca_ci=
{
149,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_UCS2_UCA_FLAGS,/* state */
+ "ucs2", /* cs name */
+ "ucs2_croatian_mysql561_ci", /* name */
+ "", /* comment */
+ croatian_mysql561, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 2, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_ucs2_handler,
+ &my_collation_ucs2_uca_handler
+};
+
+
+struct charset_info_st my_charset_ucs2_croatian_uca_ci=
+{
+ MY_PAGE2_COLLATION_ID_UCS2,0,0, /* number */
+ MY_CS_UCS2_UCA_FLAGS,/* state */
+ "ucs2", /* cs name */
+ "ucs2_croatian_ci", /* name */
+ "", /* comment */
+ croatian_mariadb, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 2, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_ucs2_handler,
+ &my_collation_ucs2_uca_handler
+};
+
+
+struct charset_info_st my_charset_ucs2_myanmar_uca_ci=
+{
+ MY_PAGE2_COLLATION_ID_UCS2+1,0,0, /* number */
+ MY_CS_UCS2_UCA_FLAGS,/* state */
"ucs2", /* cs name */
- "ucs2_croatian_ci", /* name */
+ "ucs2_myanmar_ci", /* name */
"", /* comment */
- croatian, /* tailoring */
+ myanmar, /* tailoring */
NULL, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_unicode520,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -8948,10 +35194,110 @@ struct charset_info_st my_charset_ucs2_croatian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_uca_handler
};
+
+struct charset_info_st my_charset_ucs2_thai_520_w2=
+{
+ MY_PAGE2_COLLATION_ID_UCS2+2,0,0, /* number */
+ MY_CS_UCS2_UCA_FLAGS,/* flags */
+ "ucs2", /* csname */
+ "ucs2_thai_520_w2", /* name */
+ "", /* comment */
+ "", /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520_th, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 4, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 2, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 2, /* levels_for_order */
+ &my_charset_ucs2_handler,
+ &my_collation_any_uca_handler_multilevel
+};
+
+struct charset_info_st my_charset_ucs2_unicode_520_ci=
+{
+ 150,0,0, /* number */
+ MY_CS_UCS2_UCA_FLAGS,/* state */
+ "ucs2", /* cs name */
+ "ucs2_unicode_520_ci",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 2, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_ucs2_handler,
+ &my_collation_ucs2_uca_handler
+};
+
+
+struct charset_info_st my_charset_ucs2_vietnamese_ci=
+{
+ 151,0,0, /* number */
+ MY_CS_UCS2_UCA_FLAGS,/* state */
+ "ucs2", /* csname */
+ "ucs2_vietnamese_ci",/* name */
+ "", /* comment */
+ vietnamese, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 2, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_ucs2_handler,
+ &my_collation_ucs2_uca_handler
+};
+
+
#endif
@@ -8962,7 +35308,7 @@ MY_COLLATION_HANDLER my_collation_any_uca_handler =
my_strnncoll_any_uca,
my_strnncollsp_any_uca,
my_strnxfrm_any_uca,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_any_uca,
my_like_range_mb,
my_wildcmp_uca,
NULL,
@@ -8999,7 +35345,7 @@ static uchar ctype_utf8[] = {
extern MY_CHARSET_HANDLER my_charset_utf8_handler;
-#define MY_CS_UTF8MB3_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE)
+#define MY_CS_UTF8MB3_UCA_FLAGS MY_CS_COMMON_UCA_FLAGS
struct charset_info_st my_charset_utf8_unicode_ci=
{
@@ -9012,12 +35358,11 @@ struct charset_info_st my_charset_utf8_unicode_ci=
ctype_utf8, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
+ NULL, /* sort_order */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9029,6 +35374,7 @@ struct charset_info_st my_charset_utf8_unicode_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9037,7 +35383,7 @@ struct charset_info_st my_charset_utf8_unicode_ci=
struct charset_info_st my_charset_utf8_icelandic_uca_ci=
{
193,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE,
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
"utf8", /* cs name */
"utf8_icelandic_ci",/* name */
"", /* comment */
@@ -9046,11 +35392,10 @@ struct charset_info_st my_charset_utf8_icelandic_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9062,6 +35407,7 @@ struct charset_info_st my_charset_utf8_icelandic_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9078,11 +35424,10 @@ struct charset_info_st my_charset_utf8_latvian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9094,6 +35439,7 @@ struct charset_info_st my_charset_utf8_latvian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9110,11 +35456,10 @@ struct charset_info_st my_charset_utf8_romanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9126,6 +35471,7 @@ struct charset_info_st my_charset_utf8_romanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9142,11 +35488,10 @@ struct charset_info_st my_charset_utf8_slovenian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9158,6 +35503,7 @@ struct charset_info_st my_charset_utf8_slovenian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9174,11 +35520,10 @@ struct charset_info_st my_charset_utf8_polish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9190,6 +35535,7 @@ struct charset_info_st my_charset_utf8_polish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9206,11 +35552,10 @@ struct charset_info_st my_charset_utf8_estonian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9222,6 +35567,7 @@ struct charset_info_st my_charset_utf8_estonian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9238,11 +35584,10 @@ struct charset_info_st my_charset_utf8_spanish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9254,6 +35599,7 @@ struct charset_info_st my_charset_utf8_spanish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9270,11 +35616,10 @@ struct charset_info_st my_charset_utf8_swedish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9286,6 +35631,7 @@ struct charset_info_st my_charset_utf8_swedish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9302,11 +35648,10 @@ struct charset_info_st my_charset_utf8_turkish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
+ &my_unicase_turkish,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9318,6 +35663,7 @@ struct charset_info_st my_charset_utf8_turkish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9334,11 +35680,10 @@ struct charset_info_st my_charset_utf8_czech_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9350,6 +35695,7 @@ struct charset_info_st my_charset_utf8_czech_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9367,11 +35713,10 @@ struct charset_info_st my_charset_utf8_danish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9383,6 +35728,7 @@ struct charset_info_st my_charset_utf8_danish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9399,11 +35745,10 @@ struct charset_info_st my_charset_utf8_lithuanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9415,6 +35760,7 @@ struct charset_info_st my_charset_utf8_lithuanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9431,11 +35777,10 @@ struct charset_info_st my_charset_utf8_slovak_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9447,6 +35792,7 @@ struct charset_info_st my_charset_utf8_slovak_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9463,11 +35809,10 @@ struct charset_info_st my_charset_utf8_spanish2_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9479,6 +35824,7 @@ struct charset_info_st my_charset_utf8_spanish2_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9495,11 +35841,10 @@ struct charset_info_st my_charset_utf8_roman_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9511,6 +35856,7 @@ struct charset_info_st my_charset_utf8_roman_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9527,11 +35873,10 @@ struct charset_info_st my_charset_utf8_persian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9543,6 +35888,7 @@ struct charset_info_st my_charset_utf8_persian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9559,11 +35905,10 @@ struct charset_info_st my_charset_utf8_esperanto_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9575,6 +35920,7 @@ struct charset_info_st my_charset_utf8_esperanto_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9591,11 +35937,10 @@ struct charset_info_st my_charset_utf8_hungarian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9607,6 +35952,7 @@ struct charset_info_st my_charset_utf8_hungarian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
@@ -9623,11 +35969,75 @@ struct charset_info_st my_charset_utf8_sinhala_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 3, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8_handler,
+ &my_collation_any_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf8_german2_uca_ci=
+{
+ 212,0,0, /* number */
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
+ MY_UTF8MB3, /* cs name */
+ MY_UTF8MB3 "_german2_ci",/* name */
+ "", /* comment */
+ german2, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 3, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8_handler,
+ &my_collation_any_uca_handler
+};
+
+struct charset_info_st my_charset_utf8_croatian_mysql561_uca_ci=
+{
+ 213,0,0, /* number */
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
+ MY_UTF8MB3, /* cs name */
+ MY_UTF8MB3 "_croatian_mysql561_ci",/* name */
+ "", /* comment */
+ croatian_mysql561, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9639,42 +36049,175 @@ struct charset_info_st my_charset_utf8_sinhala_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
+
struct charset_info_st my_charset_utf8_croatian_uca_ci=
{
- 213,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE,
- "utf8", /* cs name */
- "utf8_croatian_ci", /* name */
- "", /* comment */
- croatian, /* tailoring */
- ctype_utf8, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 1, /* mbminlen */
- 3, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
+ MY_PAGE2_COLLATION_ID_UTF8,0,0, /* number */
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
+ MY_UTF8MB3, /* cs name */
+ MY_UTF8MB3 "_croatian_ci",/* name */
+ "", /* comment */
+ croatian_mariadb, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 3, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_any_uca_handler
};
+
+struct charset_info_st my_charset_utf8_myanmar_uca_ci=
+{
+ MY_PAGE2_COLLATION_ID_UTF8+1,0,0, /* number */
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
+ MY_UTF8MB3, /* cs name */
+ MY_UTF8MB3 "_myanmar_ci",/* name */
+ "", /* comment */
+ myanmar, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 3, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8_handler,
+ &my_collation_any_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf8_unicode_520_ci=
+{
+ 214,0,0, /* number */
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
+ MY_UTF8MB3, /* csname */
+ MY_UTF8MB3 "_unicode_520_ci",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 3, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8_handler,
+ &my_collation_any_uca_handler
+};
+
+struct charset_info_st my_charset_utf8_thai_520_w2=
+{
+ MY_PAGE2_COLLATION_ID_UTF8+2,0,0, /* number */
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
+ MY_UTF8MB3, /* csname */
+ MY_UTF8MB3 "_thai_520_w2",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520_th, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 4, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 3, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 2, /* levels_for_order */
+ &my_charset_utf8_handler,
+ &my_collation_any_uca_handler_multilevel
+};
+
+struct charset_info_st my_charset_utf8_vietnamese_ci=
+{
+ 215,0,0, /* number */
+ MY_CS_UTF8MB3_UCA_FLAGS,/* flags */
+ MY_UTF8MB3, /* cs name */
+ MY_UTF8MB3 "_vietnamese_ci",/* name */
+ "", /* comment */
+ vietnamese, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 3, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8_handler,
+ &my_collation_any_uca_handler
+};
+
+
#endif /* HAVE_CHARSET_utf8 */
@@ -9682,7 +36225,7 @@ struct charset_info_st my_charset_utf8_croatian_uca_ci=
extern MY_CHARSET_HANDLER my_charset_utf8mb4_handler;
-#define MY_CS_UTF8MB4_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_UNICODE_SUPPLEMENT)
+#define MY_CS_UTF8MB4_UCA_FLAGS (MY_CS_COMMON_UCA_FLAGS|MY_CS_UNICODE_SUPPLEMENT)
struct charset_info_st my_charset_utf8mb4_unicode_ci=
{
@@ -9695,12 +36238,11 @@ struct charset_info_st my_charset_utf8mb4_unicode_ci=
ctype_utf8, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
+ NULL, /* sort_order */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9712,6 +36254,7 @@ struct charset_info_st my_charset_utf8mb4_unicode_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9729,11 +36272,10 @@ struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9745,6 +36287,7 @@ struct charset_info_st my_charset_utf8mb4_icelandic_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9761,11 +36304,10 @@ struct charset_info_st my_charset_utf8mb4_latvian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9777,6 +36319,7 @@ struct charset_info_st my_charset_utf8mb4_latvian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9793,11 +36336,10 @@ struct charset_info_st my_charset_utf8mb4_romanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9809,6 +36351,7 @@ struct charset_info_st my_charset_utf8mb4_romanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9825,11 +36368,10 @@ struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9841,6 +36383,7 @@ struct charset_info_st my_charset_utf8mb4_slovenian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9857,11 +36400,10 @@ struct charset_info_st my_charset_utf8mb4_polish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9873,6 +36415,7 @@ struct charset_info_st my_charset_utf8mb4_polish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9889,11 +36432,10 @@ struct charset_info_st my_charset_utf8mb4_estonian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9905,6 +36447,7 @@ struct charset_info_st my_charset_utf8mb4_estonian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9921,11 +36464,10 @@ struct charset_info_st my_charset_utf8mb4_spanish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9937,6 +36479,7 @@ struct charset_info_st my_charset_utf8mb4_spanish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9953,11 +36496,10 @@ struct charset_info_st my_charset_utf8mb4_swedish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -9969,6 +36511,7 @@ struct charset_info_st my_charset_utf8mb4_swedish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -9985,11 +36528,10 @@ struct charset_info_st my_charset_utf8mb4_turkish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
+ &my_unicase_turkish, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10001,6 +36543,7 @@ struct charset_info_st my_charset_utf8mb4_turkish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10017,11 +36560,10 @@ struct charset_info_st my_charset_utf8mb4_czech_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10033,6 +36575,7 @@ struct charset_info_st my_charset_utf8mb4_czech_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10050,11 +36593,10 @@ struct charset_info_st my_charset_utf8mb4_danish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10066,6 +36608,7 @@ struct charset_info_st my_charset_utf8mb4_danish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10082,11 +36625,10 @@ struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10098,6 +36640,7 @@ struct charset_info_st my_charset_utf8mb4_lithuanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10114,11 +36657,10 @@ struct charset_info_st my_charset_utf8mb4_slovak_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10130,6 +36672,7 @@ struct charset_info_st my_charset_utf8mb4_slovak_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10146,11 +36689,10 @@ struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10162,6 +36704,7 @@ struct charset_info_st my_charset_utf8mb4_spanish2_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10178,11 +36721,10 @@ struct charset_info_st my_charset_utf8mb4_roman_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10194,6 +36736,7 @@ struct charset_info_st my_charset_utf8mb4_roman_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10210,11 +36753,10 @@ struct charset_info_st my_charset_utf8mb4_persian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10226,6 +36768,7 @@ struct charset_info_st my_charset_utf8mb4_persian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10242,11 +36785,10 @@ struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10258,6 +36800,7 @@ struct charset_info_st my_charset_utf8mb4_esperanto_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10274,11 +36817,10 @@ struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10290,6 +36832,7 @@ struct charset_info_st my_charset_utf8mb4_hungarian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
@@ -10306,11 +36849,10 @@ struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10322,27 +36864,59 @@ struct charset_info_st my_charset_utf8mb4_sinhala_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
-struct charset_info_st my_charset_utf8mb4_croatian_uca_ci=
+struct charset_info_st my_charset_utf8mb4_german2_uca_ci=
+{
+ 244,0,0, /* number */
+ MY_CS_UTF8MB4_UCA_FLAGS,/* state */
+ MY_UTF8MB4, /* csname */
+ MY_UTF8MB4 "_german2_ci",/* name */
+ "", /* comment */
+ german2, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8mb4_handler,
+ &my_collation_any_uca_handler
+};
+
+struct charset_info_st my_charset_utf8mb4_croatian_mysql561_uca_ci=
{
245,0,0, /* number */
MY_CS_UTF8MB4_UCA_FLAGS,/* state */
MY_UTF8MB4, /* csname */
- MY_UTF8MB4 "_croatian_ci",/* name */
+ MY_UTF8MB4 "_croatian_mysql561_ci",/* name */
"", /* comment */
- croatian, /* tailoring */
+ croatian_mysql561, /* tailoring */
ctype_utf8, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10354,10 +36928,175 @@ struct charset_info_st my_charset_utf8mb4_croatian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_any_uca_handler
};
+
+struct charset_info_st my_charset_utf8mb4_croatian_uca_ci=
+{
+ MY_PAGE2_COLLATION_ID_UTF8MB4,0,0, /* number */
+ MY_CS_UTF8MB4_UCA_FLAGS,/* state */
+ MY_UTF8MB4, /* csname */
+ MY_UTF8MB4 "_croatian_ci",/* name */
+ "", /* comment */
+ croatian_mariadb, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8mb4_handler,
+ &my_collation_any_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf8mb4_myanmar_uca_ci=
+{
+ MY_PAGE2_COLLATION_ID_UTF8MB4+1,0,0, /* number */
+ MY_CS_UTF8MB4_UCA_FLAGS,/* state */
+ MY_UTF8MB4, /* csname */
+ MY_UTF8MB4 "_myanmar_ci",/* name */
+ "", /* comment */
+ myanmar, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8mb4_handler,
+ &my_collation_any_uca_handler
+};
+
+struct charset_info_st my_charset_utf8mb4_thai_520_w2=
+{
+ MY_PAGE2_COLLATION_ID_UTF8MB4+2,0,0, /* number */
+ MY_CS_UTF8MB4_UCA_FLAGS,/* flags */
+ MY_UTF8MB4, /* csname */
+ MY_UTF8MB4 "_thai_520_w2", /* name */
+ "", /* comment */
+ "", /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520_th, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 4, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 2, /* levels_for_order */
+ &my_charset_utf8mb4_handler,
+ &my_collation_any_uca_handler_multilevel
+};
+
+struct charset_info_st my_charset_utf8mb4_unicode_520_ci=
+{
+ 246,0,0, /* number */
+ MY_CS_UTF8MB4_UCA_FLAGS,/* flags */
+ MY_UTF8MB4, /* csname */
+ MY_UTF8MB4 "_unicode_520_ci",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0x10FFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8mb4_handler,
+ &my_collation_any_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf8mb4_vietnamese_ci=
+{
+ 247,0,0, /* number */
+ MY_CS_UTF8MB4_UCA_FLAGS,/* state */
+ MY_UTF8MB4, /* csname */
+ MY_UTF8MB4 "_vietnamese_ci",/* name */
+ "", /* comment */
+ vietnamese, /* tailoring */
+ ctype_utf8, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 1, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf8mb4_handler,
+ &my_collation_any_uca_handler
+};
+
+
#endif /* HAVE_CHARSET_utf8mb4 */
@@ -10369,7 +37108,7 @@ MY_COLLATION_HANDLER my_collation_utf32_uca_handler =
my_strnncoll_any_uca,
my_strnncollsp_any_uca,
my_strnxfrm_any_uca,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_any_uca,
my_like_range_generic,
my_wildcmp_uca,
NULL,
@@ -10380,7 +37119,7 @@ MY_COLLATION_HANDLER my_collation_utf32_uca_handler =
extern MY_CHARSET_HANDLER my_charset_utf32_handler;
-#define MY_CS_UTF32_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII)
+#define MY_CS_UTF32_UCA_FLAGS (MY_CS_COMMON_UCA_FLAGS|MY_CS_NONASCII)
struct charset_info_st my_charset_utf32_unicode_ci=
{
@@ -10393,12 +37132,11 @@ struct charset_info_st my_charset_utf32_unicode_ci=
NULL, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
+ NULL, /* sort_order */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10410,6 +37148,7 @@ struct charset_info_st my_charset_utf32_unicode_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10427,11 +37166,10 @@ struct charset_info_st my_charset_utf32_icelandic_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10443,6 +37181,7 @@ struct charset_info_st my_charset_utf32_icelandic_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10459,11 +37198,10 @@ struct charset_info_st my_charset_utf32_latvian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10475,6 +37213,7 @@ struct charset_info_st my_charset_utf32_latvian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10491,11 +37230,10 @@ struct charset_info_st my_charset_utf32_romanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10507,6 +37245,7 @@ struct charset_info_st my_charset_utf32_romanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10523,11 +37262,10 @@ struct charset_info_st my_charset_utf32_slovenian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10539,6 +37277,7 @@ struct charset_info_st my_charset_utf32_slovenian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10555,11 +37294,10 @@ struct charset_info_st my_charset_utf32_polish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10571,6 +37309,7 @@ struct charset_info_st my_charset_utf32_polish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10587,11 +37326,10 @@ struct charset_info_st my_charset_utf32_estonian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10603,6 +37341,7 @@ struct charset_info_st my_charset_utf32_estonian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10619,11 +37358,10 @@ struct charset_info_st my_charset_utf32_spanish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10635,6 +37373,7 @@ struct charset_info_st my_charset_utf32_spanish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10651,11 +37390,10 @@ struct charset_info_st my_charset_utf32_swedish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10667,6 +37405,7 @@ struct charset_info_st my_charset_utf32_swedish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10683,11 +37422,10 @@ struct charset_info_st my_charset_utf32_turkish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
+ &my_unicase_turkish, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10699,6 +37437,7 @@ struct charset_info_st my_charset_utf32_turkish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10715,11 +37454,10 @@ struct charset_info_st my_charset_utf32_czech_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10731,6 +37469,7 @@ struct charset_info_st my_charset_utf32_czech_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10748,11 +37487,10 @@ struct charset_info_st my_charset_utf32_danish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10764,6 +37502,7 @@ struct charset_info_st my_charset_utf32_danish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10780,11 +37519,10 @@ struct charset_info_st my_charset_utf32_lithuanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10796,6 +37534,7 @@ struct charset_info_st my_charset_utf32_lithuanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10812,11 +37551,10 @@ struct charset_info_st my_charset_utf32_slovak_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10828,6 +37566,7 @@ struct charset_info_st my_charset_utf32_slovak_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10844,11 +37583,10 @@ struct charset_info_st my_charset_utf32_spanish2_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10860,6 +37598,7 @@ struct charset_info_st my_charset_utf32_spanish2_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10876,11 +37615,10 @@ struct charset_info_st my_charset_utf32_roman_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10892,6 +37630,7 @@ struct charset_info_st my_charset_utf32_roman_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10908,11 +37647,10 @@ struct charset_info_st my_charset_utf32_persian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10924,6 +37662,7 @@ struct charset_info_st my_charset_utf32_persian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10940,11 +37679,10 @@ struct charset_info_st my_charset_utf32_esperanto_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10956,6 +37694,7 @@ struct charset_info_st my_charset_utf32_esperanto_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -10972,11 +37711,10 @@ struct charset_info_st my_charset_utf32_hungarian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -10988,6 +37726,7 @@ struct charset_info_st my_charset_utf32_hungarian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
@@ -11004,11 +37743,10 @@ struct charset_info_st my_charset_utf32_sinhala_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11020,27 +37758,223 @@ struct charset_info_st my_charset_utf32_sinhala_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf32_handler,
+ &my_collation_utf32_uca_handler
+};
+
+struct charset_info_st my_charset_utf32_german2_uca_ci=
+{
+ 180,0,0, /* number */
+ MY_CS_UTF32_UCA_FLAGS,/* state */
+ "utf32", /* csname */
+ "utf32_german2_ci", /* name */
+ "", /* comment */
+ german2, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 4, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf32_handler,
+ &my_collation_utf32_uca_handler
+};
+
+struct charset_info_st my_charset_utf32_croatian_mysql561_uca_ci=
+{
+ 181,0,0, /* number */
+ MY_CS_UTF32_UCA_FLAGS,/* state */
+ "utf32", /* csname */
+ "utf32_croatian_mysql561_ci", /* name */
+ "", /* comment */
+ croatian_mysql561, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 4, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
struct charset_info_st my_charset_utf32_croatian_uca_ci=
{
- 214,0,0, /* number */
- MY_CS_UTF32_UCA_FLAGS /* state */,
- "utf32", /* cs name */
+ MY_PAGE2_COLLATION_ID_UTF32,0,0, /* number */
+ MY_CS_UTF32_UCA_FLAGS,/* state */
+ "utf32", /* csname */
"utf32_croatian_ci", /* name */
"", /* comment */
- croatian, /* tailoring */
+ croatian_mariadb, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 4, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf32_handler,
+ &my_collation_utf32_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf32_myanmar_uca_ci=
+{
+ MY_PAGE2_COLLATION_ID_UTF32+1,0,0, /* number */
+ MY_CS_UTF32_UCA_FLAGS,/* state */
+ "utf32", /* csname */
+ "utf32_myanmar_ci", /* name */
+ "", /* comment */
+ myanmar, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 4, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf32_handler,
+ &my_collation_utf32_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf32_thai_520_w2=
+{
+ MY_PAGE2_COLLATION_ID_UTF32+2,0,0, /* number */
+ MY_CS_UTF32_UCA_FLAGS,/* state */
+ "utf32", /* csname */
+ "utf32_thai_520_w2",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520_th, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 4, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 4, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 2, /* levels_for_order */
+ &my_charset_utf32_handler,
+ &my_collation_any_uca_handler_multilevel
+};
+
+
+struct charset_info_st my_charset_utf32_unicode_520_ci=
+{
+ 182,0,0, /* number */
+ MY_CS_UTF32_UCA_FLAGS,/* stat e */
+ "utf32", /* csname */
+ "utf32_unicode_520_ci",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 4, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0x10FFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf32_handler,
+ &my_collation_utf32_uca_handler
+};
+
+
+struct charset_info_st my_charset_utf32_vietnamese_ci=
+{
+ 183,0,0, /* number */
+ MY_CS_UTF32_UCA_FLAGS,/* state */
+ "utf32", /* csname */
+ "utf32_vietnamese_ci",/* name */
+ "", /* comment */
+ vietnamese, /* tailoring */
NULL, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11052,9 +37986,12 @@ struct charset_info_st my_charset_utf32_croatian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_uca_handler
};
+
+
#endif /* HAVE_CHARSET_utf32 */
@@ -11067,7 +38004,7 @@ MY_COLLATION_HANDLER my_collation_utf16_uca_handler =
my_strnncoll_any_uca,
my_strnncollsp_any_uca,
my_strnxfrm_any_uca,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_any_uca,
my_like_range_generic,
my_wildcmp_uca,
NULL,
@@ -11078,7 +38015,7 @@ MY_COLLATION_HANDLER my_collation_utf16_uca_handler =
extern MY_CHARSET_HANDLER my_charset_utf16_handler;
-#define MY_CS_UTF16_UCA_FLAGS (MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII)
+#define MY_CS_UTF16_UCA_FLAGS (MY_CS_COMMON_UCA_FLAGS|MY_CS_NONASCII)
struct charset_info_st my_charset_utf16_unicode_ci=
{
@@ -11091,12 +38028,11 @@ struct charset_info_st my_charset_utf16_unicode_ci=
NULL, /* ctype */
NULL, /* to_lower */
NULL, /* to_upper */
- uca_length, /* sort_order */
- NULL, /* contractions */
- uca_weight, /* sort_order_big*/
+ NULL, /* sort_order */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11108,6 +38044,7 @@ struct charset_info_st my_charset_utf16_unicode_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11125,11 +38062,10 @@ struct charset_info_st my_charset_utf16_icelandic_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11141,6 +38077,7 @@ struct charset_info_st my_charset_utf16_icelandic_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11157,11 +38094,10 @@ struct charset_info_st my_charset_utf16_latvian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11173,6 +38109,7 @@ struct charset_info_st my_charset_utf16_latvian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11189,11 +38126,10 @@ struct charset_info_st my_charset_utf16_romanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11205,6 +38141,7 @@ struct charset_info_st my_charset_utf16_romanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11221,11 +38158,10 @@ struct charset_info_st my_charset_utf16_slovenian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11237,6 +38173,7 @@ struct charset_info_st my_charset_utf16_slovenian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11253,11 +38190,10 @@ struct charset_info_st my_charset_utf16_polish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11269,6 +38205,7 @@ struct charset_info_st my_charset_utf16_polish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11285,11 +38222,10 @@ struct charset_info_st my_charset_utf16_estonian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11301,6 +38237,7 @@ struct charset_info_st my_charset_utf16_estonian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11317,11 +38254,10 @@ struct charset_info_st my_charset_utf16_spanish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11333,6 +38269,7 @@ struct charset_info_st my_charset_utf16_spanish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11349,11 +38286,10 @@ struct charset_info_st my_charset_utf16_swedish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11365,6 +38301,7 @@ struct charset_info_st my_charset_utf16_swedish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11381,11 +38318,10 @@ struct charset_info_st my_charset_utf16_turkish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_turkish, /* caseinfo */
+ &my_unicase_turkish, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11397,6 +38333,7 @@ struct charset_info_st my_charset_utf16_turkish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11413,11 +38350,10 @@ struct charset_info_st my_charset_utf16_czech_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11429,6 +38365,7 @@ struct charset_info_st my_charset_utf16_czech_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11446,11 +38383,10 @@ struct charset_info_st my_charset_utf16_danish_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11462,6 +38398,7 @@ struct charset_info_st my_charset_utf16_danish_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11478,11 +38415,10 @@ struct charset_info_st my_charset_utf16_lithuanian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11494,6 +38430,7 @@ struct charset_info_st my_charset_utf16_lithuanian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11510,11 +38447,10 @@ struct charset_info_st my_charset_utf16_slovak_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11526,6 +38462,7 @@ struct charset_info_st my_charset_utf16_slovak_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11542,11 +38479,10 @@ struct charset_info_st my_charset_utf16_spanish2_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11558,6 +38494,7 @@ struct charset_info_st my_charset_utf16_spanish2_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11574,11 +38511,10 @@ struct charset_info_st my_charset_utf16_roman_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11590,6 +38526,7 @@ struct charset_info_st my_charset_utf16_roman_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11606,11 +38543,10 @@ struct charset_info_st my_charset_utf16_persian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11622,6 +38558,7 @@ struct charset_info_st my_charset_utf16_persian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11638,11 +38575,10 @@ struct charset_info_st my_charset_utf16_esperanto_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11654,6 +38590,7 @@ struct charset_info_st my_charset_utf16_esperanto_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11670,11 +38607,10 @@ struct charset_info_st my_charset_utf16_hungarian_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default,/* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11686,6 +38622,7 @@ struct charset_info_st my_charset_utf16_hungarian_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
@@ -11702,11 +38639,10 @@ struct charset_info_st my_charset_utf16_sinhala_uca_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default,/* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
8, /* strxfrm_multiply */
@@ -11718,118 +38654,244 @@ struct charset_info_st my_charset_utf16_sinhala_uca_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
-struct charset_info_st my_charset_utf16_croatian_uca_ci=
+struct charset_info_st my_charset_utf16_german2_uca_ci=
{
- 215,0,0, /* number */
- MY_CS_UTF16_UCA_FLAGS /* state */,
- "utf16", /* cs name */
- "utf16_croatian_ci", /* name */
- "", /* comment */
- croatian, /* tailoring */
- NULL, /* ctype */
- NULL, /* to_lower */
- NULL, /* to_upper */
- NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
- NULL, /* tab_to_uni */
- NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
- NULL, /* state_map */
- NULL, /* ident_map */
- 8, /* strxfrm_multiply */
- 1, /* caseup_multiply */
- 1, /* casedn_multiply */
- 2, /* mbminlen */
- 4, /* mbmaxlen */
- 9, /* min_sort_char */
- 0xFFFF, /* max_sort_char */
- ' ', /* pad char */
- 0, /* escape_with_backslash_is_dangerous */
+ 121,0,0, /* number */
+ MY_CS_UTF16_UCA_FLAGS,/* state */
+ "utf16", /* cs name */
+ "utf16_german2_ci",/* name */
+ "", /* comment */
+ german2, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_uca_handler
};
-#endif /* HAVE_CHARSET_utf16 */
+struct charset_info_st my_charset_utf16_croatian_mysql561_uca_ci=
+{
+ 122,0,0, /* number */
+ MY_CS_UTF16_UCA_FLAGS,/* state */
+ "utf16", /* cs name */
+ "utf16_croatian_mysql561_ci",/* name */
+ "", /* comment */
+ croatian_mysql561, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf16_handler,
+ &my_collation_utf16_uca_handler
+};
-#endif /* HAVE_UCA_COLLATIONS */
-/**
- Check if UCA data has contractions (public version)
+struct charset_info_st my_charset_utf16_croatian_uca_ci=
+{
+ MY_PAGE2_COLLATION_ID_UTF16,0,0, /* number */
+ MY_CS_UTF16_UCA_FLAGS,/* state */
+ "utf16", /* cs name */
+ "utf16_croatian_ci",/* name */
+ "", /* comment */
+ croatian_mariadb, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf16_handler,
+ &my_collation_utf16_uca_handler
+};
- @cs Pointer to CHARSET_INFO data
- @retval 0 - no contraction, 1 - have contractions.
-*/
-my_bool
-my_cs_have_contractions(CHARSET_INFO *cs)
+struct charset_info_st my_charset_utf16_myanmar_uca_ci=
{
- return cs->contractions != NULL;
-}
+ MY_PAGE2_COLLATION_ID_UTF16+1,0,0, /* number */
+ MY_CS_UTF16_UCA_FLAGS,/* state */
+ "utf16", /* cs name */
+ "utf16_myanmar_ci",/* name */
+ "", /* comment */
+ myanmar, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf16_handler,
+ &my_collation_utf16_uca_handler
+};
-/**
- Check if a character can be contraction head
-
- @cs Pointer to CHARSET_INFO data
- @wc Code point
-
- @retval 0 - cannot be contraction head
- @retval 1 - can be contraction head
-*/
-my_bool
-my_cs_can_be_contraction_head(CHARSET_INFO *cs, my_wc_t wc)
+struct charset_info_st my_charset_utf16_thai_520_w2=
{
- return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_HEAD;
-}
+ MY_PAGE2_COLLATION_ID_UTF16+2,0,0, /* number */
+ MY_CS_UTF16_UCA_FLAGS,/* state */
+ "utf16", /* cs name */
+ "utf16_thai_520_w2",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520_th, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 4, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 2, /* levels_for_order */
+ &my_charset_utf16_handler,
+ &my_collation_any_uca_handler_multilevel
+};
-/**
- Check if a character can be contraction tail
-
- @cs Pointer to CHARSET_INFO data
- @wc Code point
-
- @retval 0 - cannot be contraction tail
- @retval 1 - can be contraction tail
-*/
+struct charset_info_st my_charset_utf16_unicode_520_ci=
+{
+ 123,0,0, /* number */
+ MY_CS_UTF16_UCA_FLAGS,/* state */
+ "utf16", /* csname */
+ "utf16_unicode_520_ci",/* name */
+ "", /* comment */
+ "", /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ &my_uca_v520, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_unicode520,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0x10FFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf16_handler,
+ &my_collation_utf16_uca_handler
+};
-my_bool
-my_cs_can_be_contraction_tail(CHARSET_INFO *cs, my_wc_t wc)
+
+struct charset_info_st my_charset_utf16_vietnamese_ci=
{
- return cs->contractions->flags[wc & MY_UCA_CNT_FLAG_MASK] & MY_UCA_CNT_TAIL;
-}
+ 124,0,0, /* number */
+ MY_CS_UTF16_UCA_FLAGS,/* state */
+ "utf16", /* cs name */
+ "utf16_vietnamese_ci",/* name */
+ "", /* comment */
+ vietnamese, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default,/* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 8, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 9, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf16_handler,
+ &my_collation_utf16_uca_handler
+};
-/**
- Find a contraction and return its weight array
-
- @cs Pointer to CHARSET data
- @wc1 First character
- @wc2 Second character
-
- @return Weight array
- @retval NULL - no contraction found
- @retval ptr - contraction weight array
-*/
+#endif /* HAVE_CHARSET_utf16 */
+
-const uint16 *
-my_cs_contraction2_weight(CHARSET_INFO *cs, my_wc_t wc1, my_wc_t wc2)
-{
- const MY_CONTRACTIONS *list= cs->contractions;
- const MY_CONTRACTION *c, *last;
- for (c= list->item, last= &list->item[list->nitems]; c < last; c++)
- {
- if (c->ch[0] == wc1 && c->ch[1] == wc2)
- {
- return c->weight;
- }
- }
- return NULL;
-}
+#endif /* HAVE_UCA_COLLATIONS */
diff --git a/strings/ctype-ucs2.c b/strings/ctype-ucs2.c
index d4145b1a9e5..754ec69ee9d 100644
--- a/strings/ctype-ucs2.c
+++ b/strings/ctype-ucs2.c
@@ -40,11 +40,11 @@
#undef ULONGLONG_MAX
#define ULONGLONG_MAX (~(ulonglong) 0)
-#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000))
+#define MAX_NEGATIVE_NUMBER ((ulonglong) 0x8000000000000000LL)
#define INIT_CNT 9
-#define LFACTOR ULL(1000000000)
-#define LFACTOR1 ULL(10000000000)
-#define LFACTOR2 ULL(100000000000)
+#define LFACTOR 1000000000ULL
+#define LFACTOR1 10000000000ULL
+#define LFACTOR2 100000000000ULL
#if defined(HAVE_CHARSET_utf32) || defined(HAVE_CHARSET_mb2)
static unsigned long lfactor[9]=
@@ -53,17 +53,6 @@ static unsigned long lfactor[9]=
#ifdef HAVE_CHARSET_mb2_or_mb4
-static inline int
-my_bincmp(const uchar *s, const uchar *se,
- const uchar *t, const uchar *te)
-{
- int slen= (int) (se - s), tlen= (int) (te - t);
- int len= min(slen, tlen);
- int cmp= memcmp(s, t, len);
- return cmp ? cmp : slen - tlen;
-}
-
-
static size_t
my_caseup_str_mb2_or_mb4(CHARSET_INFO * cs __attribute__((unused)),
char * s __attribute__((unused)))
@@ -92,6 +81,110 @@ my_strcasecmp_mb2_or_mb4(CHARSET_INFO *cs __attribute__((unused)),
}
+typedef enum
+{
+ MY_CHAR_COPY_OK= 0, /* The character was Okey */
+ MY_CHAR_COPY_ERROR= 1, /* The character was not Ok, and could not fix */
+ MY_CHAR_COPY_FIXED= 2 /* The character was not Ok, was fixed to '?' */
+} my_char_copy_status_t;
+
+
+/*
+ Copies an incomplete character, lef-padding it with 0x00 bytes.
+
+ @param cs Character set
+ @param dst The destination string
+ @param dst_length Space available in dst
+ @param src The source string
+ @param src_length Length of src
+ @param nchars Copy not more than nchars characters.
+ The "nchars" parameter of the caller.
+ Only 0 and non-0 are important here.
+ @param fix What to do if after zero-padding didn't get a valid
+ character:
+ - FALSE - exit with error.
+ - TRUE - try to put '?' instead.
+
+ @return MY_CHAR_COPY_OK if after zero-padding got a valid character.
+ cs->mbmaxlen bytes were written to "dst".
+ @return MY_CHAR_COPY_FIXED if after zero-padding did not get a valid
+ character, but wrote '?' to the destination
+ string instead.
+ cs->mbminlen bytes were written to "dst".
+ @return MY_CHAR_COPY_ERROR If failed and nothing was written to "dst".
+ Possible reasons:
+ - dst_length was too short
+ - nchars was 0
+ - the character after padding appeared not
+ to be valid, and could not fix it to '?'.
+*/
+static my_char_copy_status_t
+my_copy_incomplete_char(CHARSET_INFO *cs,
+ char *dst, size_t dst_length,
+ const char *src, size_t src_length,
+ size_t nchars, my_bool fix)
+{
+ size_t pad_length;
+ size_t src_offset= src_length % cs->mbminlen;
+ if (dst_length < cs->mbminlen || !nchars)
+ return MY_CHAR_COPY_ERROR;
+
+ pad_length= cs->mbminlen - src_offset;
+ bzero(dst, pad_length);
+ memmove(dst + pad_length, src, src_offset);
+ /*
+ In some cases left zero-padding can create an incorrect character.
+ For example:
+ INSERT INTO t1 (utf32_column) VALUES (0x110000);
+ We'll pad the value to 0x00110000, which is a wrong UTF32 sequence!
+ The valid characters range is limited to 0x00000000..0x0010FFFF.
+
+ Make sure we didn't pad to an incorrect character.
+ */
+ if (cs->cset->charlen(cs, (uchar *) dst, (uchar *) dst + cs->mbminlen) ==
+ (int) cs->mbminlen)
+ return MY_CHAR_COPY_OK;
+
+ if (fix &&
+ cs->cset->wc_mb(cs, '?', (uchar *) dst, (uchar *) dst + cs->mbminlen) ==
+ (int) cs->mbminlen)
+ return MY_CHAR_COPY_FIXED;
+
+ return MY_CHAR_COPY_ERROR;
+}
+
+
+/*
+ Copy an UCS2/UTF16/UTF32 string, fix bad characters.
+*/
+static size_t
+my_copy_fix_mb2_or_mb4(CHARSET_INFO *cs,
+ char *dst, size_t dst_length,
+ const char *src, size_t src_length,
+ size_t nchars, MY_STRCOPY_STATUS *status)
+{
+ size_t length2, src_offset= src_length % cs->mbminlen;
+ my_char_copy_status_t padstatus;
+
+ if (!src_offset)
+ return my_copy_fix_mb(cs, dst, dst_length,
+ src, src_length, nchars, status);
+ if ((padstatus= my_copy_incomplete_char(cs, dst, dst_length,
+ src, src_length, nchars, TRUE)) ==
+ MY_CHAR_COPY_ERROR)
+ {
+ status->m_source_end_pos= status->m_well_formed_error_pos= src;
+ return 0;
+ }
+ length2= my_copy_fix_mb(cs, dst + cs->mbminlen, dst_length - cs->mbminlen,
+ src + src_offset, src_length - src_offset,
+ nchars - 1, status);
+ if (padstatus == MY_CHAR_COPY_FIXED)
+ status->m_well_formed_error_pos= src;
+ return cs->mbminlen /* The left-padded character */ + length2;
+}
+
+
static long
my_strntol_mb2_or_mb4(CHARSET_INFO *cs,
const char *nptr, size_t l, int base,
@@ -101,6 +194,7 @@ my_strntol_mb2_or_mb4(CHARSET_INFO *cs,
int overflow;
int cnv;
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
register unsigned int cutlim;
register uint32 cutoff;
register uint32 res;
@@ -111,7 +205,7 @@ my_strntol_mb2_or_mb4(CHARSET_INFO *cs,
*err= 0;
do
{
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e))>0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
switch (wc)
{
@@ -141,7 +235,7 @@ bs:
cutlim= (uint) (((uint32)~0L) % (uint32) base);
do {
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
s+= cnv;
if (wc >= '0' && wc <= '9')
@@ -212,6 +306,7 @@ my_strntoul_mb2_or_mb4(CHARSET_INFO *cs,
int overflow;
int cnv;
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
register unsigned int cutlim;
register uint32 cutoff;
register uint32 res;
@@ -222,7 +317,7 @@ my_strntoul_mb2_or_mb4(CHARSET_INFO *cs,
*err= 0;
do
{
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
switch (wc)
{
@@ -253,7 +348,7 @@ bs:
do
{
- if ((cnv= cs->cset->mb_wc(cs, &wc, s, e)) > 0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
s+= cnv;
if (wc >= '0' && wc <= '9')
@@ -316,6 +411,7 @@ my_strntoll_mb2_or_mb4(CHARSET_INFO *cs,
int overflow;
int cnv;
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
register ulonglong cutoff;
register unsigned int cutlim;
register ulonglong res;
@@ -326,7 +422,7 @@ my_strntoll_mb2_or_mb4(CHARSET_INFO *cs,
*err= 0;
do
{
- if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
switch (wc)
{
@@ -356,7 +452,7 @@ bs:
cutlim = (uint) ((~(ulonglong) 0) % (unsigned long int) base);
do {
- if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
s+=cnv;
if ( wc>='0' && wc<='9')
@@ -427,6 +523,7 @@ my_strntoull_mb2_or_mb4(CHARSET_INFO *cs,
int overflow;
int cnv;
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
register ulonglong cutoff;
register unsigned int cutlim;
register ulonglong res;
@@ -437,7 +534,7 @@ my_strntoull_mb2_or_mb4(CHARSET_INFO *cs,
*err= 0;
do
{
- if ((cnv= cs->cset->mb_wc(cs,&wc,s,e)) > 0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
switch (wc)
{
@@ -468,7 +565,7 @@ bs:
do
{
- if ((cnv=cs->cset->mb_wc(cs,&wc,s,e))>0)
+ if ((cnv= mb_wc(cs, &wc, s, e)) > 0)
{
s+=cnv;
if ( wc>='0' && wc<='9')
@@ -533,6 +630,7 @@ my_strntod_mb2_or_mb4(CHARSET_INFO *cs,
register const uchar *s= (const uchar*) nptr;
const uchar *end;
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
int cnv;
*err= 0;
@@ -541,7 +639,7 @@ my_strntod_mb2_or_mb4(CHARSET_INFO *cs,
length= sizeof(buf) - 1;
end= s + length;
- while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0)
+ while ((cnv= mb_wc(cs, &wc, s, end)) > 0)
{
s+= cnv;
if (wc > (int) (uchar) 'e' || !wc)
@@ -566,6 +664,7 @@ my_strntoull10rnd_mb2_or_mb4(CHARSET_INFO *cs,
ulonglong res;
const uchar *end, *s= (const uchar*) nptr;
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
int cnv;
/* Cut too long strings */
@@ -573,7 +672,7 @@ my_strntoull10rnd_mb2_or_mb4(CHARSET_INFO *cs,
length= sizeof(buf)-1;
end= s + length;
- while ((cnv= cs->cset->mb_wc(cs,&wc,s,end)) > 0)
+ while ((cnv= mb_wc(cs, &wc, s, end)) > 0)
{
s+= cnv;
if (wc > (int) (uchar) 'e' || !wc)
@@ -708,27 +807,55 @@ cnv:
#ifdef HAVE_CHARSET_mb2
+/**
+ Convert a Unicode code point to a digit.
+ @param wc - the input Unicode code point
+ @param[OUT] c - the output character representing the digit value 0..9
+
+ @return 0 - if wc is a good digit
+ @return 1 - if wc is not a digit
+*/
+static inline my_bool
+wc2digit_uchar(uchar *c, my_wc_t wc)
+{
+ return wc > '9' || (c[0]= (uchar) (wc - '0')) > 9;
+}
+
+
static longlong
my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)),
const char *nptr, char **endptr, int *error)
{
- const char *s, *end, *start, *n_end, *true_end;
+ const uchar *s, *end, *start, *n_end, *true_end;
uchar c;
unsigned long i, j, k;
ulonglong li;
int negative;
ulong cutoff, cutoff2, cutoff3;
+ my_wc_t wc;
+ int res;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
- s= nptr;
+ s= (const uchar *) nptr;
/* If fixed length string */
if (endptr)
{
- /* Make sure string length is even */
- end= s + ((*endptr - s) / 2) * 2;
- while (s < end && !s[0] && (s[1] == ' ' || s[1] == '\t'))
- s+= 2;
- if (s == end)
- goto no_conv;
+ /*
+ Make sure string length is even.
+ Odd length indicates a bug in the caller.
+ Assert in debug, round in production.
+ */
+ DBUG_ASSERT((*endptr - (const char *) s) % 2 == 0);
+ end= s + ((*endptr - (const char*) s) / 2) * 2;
+
+ for ( ; ; ) /* Skip leading spaces and tabs */
+ {
+ if ((res= mb_wc(cs, &wc, s, end)) <= 0)
+ goto no_conv;
+ s+= res;
+ if (wc != ' ' && wc != '\t')
+ break;
+ }
}
else
{
@@ -738,13 +865,13 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)),
/* Check for a sign. */
negative= 0;
- if (!s[0] && s[1] == '-')
+ if (wc == '-')
{
*error= -1; /* Mark as negative number */
negative= 1;
- s+= 2;
- if (s == end)
+ if ((res= mb_wc(cs, &wc, s, end)) <= 0)
goto no_conv;
+ s+= res; /* wc is now expected to hold the first digit. */
cutoff= MAX_NEGATIVE_NUMBER / LFACTOR2;
cutoff2= (MAX_NEGATIVE_NUMBER % LFACTOR2) / 100;
cutoff3= MAX_NEGATIVE_NUMBER % 100;
@@ -752,46 +879,53 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)),
else
{
*error= 0;
- if (!s[0] && s[1] == '+')
+ if (wc == '+')
{
- s+= 2;
- if (s == end)
+ if ((res= mb_wc(cs, &wc, s, end)) <= 0)
goto no_conv;
+ s+= res; /* wc is now expected to hold the first digit. */
}
cutoff= ULONGLONG_MAX / LFACTOR2;
cutoff2= ULONGLONG_MAX % LFACTOR2 / 100;
cutoff3= ULONGLONG_MAX % 100;
}
- /* Handle case where we have a lot of pre-zero */
- if (!s[0] && s[1] == '0')
+ /*
+ The code below assumes that 'wc' holds the first digit
+ and 's' points to the next character after it.
+
+ Scan pre-zeros if any.
+ */
+ if (wc == '0')
{
i= 0;
- do
+ for ( ; ; s+= res)
{
- s+= 2;
if (s == end)
goto end_i; /* Return 0 */
+ if ((res= mb_wc(cs, &wc, s, end)) <= 0)
+ goto no_conv;
+ if (wc != '0')
+ break;
}
- while (!s[0] && s[1] == '0');
n_end= s + 2 * INIT_CNT;
}
else
{
/* Read first digit to check that it's a valid number */
- if (s[0] || (c= (s[1]-'0')) > 9)
+ if ((i= (wc - '0')) > 9)
goto no_conv;
- i= c;
- s+= 2;
n_end= s + 2 * (INIT_CNT-1);
}
/* Handle first 9 digits and store them in i */
if (n_end > end)
n_end= end;
- for (; s != n_end ; s+= 2)
+ for ( ; ; s+= res)
{
- if (s[0] || (c= (s[1]-'0')) > 9)
+ if ((res= mb_wc(cs, &wc, s, n_end)) <= 0)
+ break;
+ if (wc2digit_uchar(&c, wc))
goto end_i;
i= i*10+c;
}
@@ -806,10 +940,12 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)),
n_end= end;
do
{
- if (s[0] || (c= (s[1]-'0')) > 9)
+ if ((res= mb_wc(cs, &wc, s, end)) <= 0)
+ goto no_conv;
+ if (wc2digit_uchar(&c, wc))
goto end_i_and_j;
- j= j*10+c;
- s+= 2;
+ s+= res;
+ j= j * 10 + c;
} while (s != n_end);
if (s == end)
{
@@ -817,20 +953,26 @@ my_strtoll10_mb2(CHARSET_INFO *cs __attribute__((unused)),
goto end_i_and_j;
goto end3;
}
- if (s[0] || (c= (s[1]-'0')) > 9)
- goto end3;
/* Handle the next 1 or 2 digits and store them in k */
- k=c;
- s+= 2;
- if (s == end || s[0] || (c= (s[1]-'0')) > 9)
+ if ((res= mb_wc(cs, &wc, s, end)) <= 0)
+ goto no_conv;
+ if ((k= (wc - '0')) > 9)
+ goto end3;
+ s+= res;
+
+ if (s == end)
+ goto end4;
+ if ((res= mb_wc(cs, &wc, s, end)) <= 0)
+ goto no_conv;
+ if (wc2digit_uchar(&c, wc))
goto end4;
+ s+= res;
k= k*10+c;
- s+= 2;
*endptr= (char*) s;
/* number string should have ended here */
- if (s != end && !s[0] && (c= (s[1]-'0')) <= 9)
+ if (s != end && mb_wc(cs, &wc, s, end) > 0 && ((uchar) (wc - '0')) <= 9)
goto overflow;
/* Check that we didn't get an overflow with the last digit */
@@ -882,15 +1024,18 @@ my_scan_mb2(CHARSET_INFO *cs __attribute__((unused)),
const char *str, const char *end, int sequence_type)
{
const char *str0= str;
- end--; /* for easier loop condition, because of two bytes per character */
-
+ my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
+ int res;
+
switch (sequence_type)
{
case MY_SEQ_SPACES:
- for ( ; str < end; str+= 2)
+ for (res= mb_wc(cs, &wc, (const uchar *) str, (const uchar *) end);
+ res > 0 && wc == ' ';
+ str+= res,
+ res= mb_wc(cs, &wc, (const uchar *) str, (const uchar *) end))
{
- if (str[0] != '\0' || str[1] != ' ')
- break;
}
return (size_t) (str - str0);
default:
@@ -900,11 +1045,33 @@ my_scan_mb2(CHARSET_INFO *cs __attribute__((unused)),
static void
-my_fill_mb2(CHARSET_INFO *cs __attribute__((unused)),
- char *s, size_t l, int fill)
+my_fill_mb2(CHARSET_INFO *cs, char *s, size_t slen, int fill)
{
- DBUG_ASSERT(fill <= 0xFFFF);
- for ( ; l >= 2; s[0]= (fill >> 8), s[1]= (fill & 0xFF), s+= 2, l-= 2);
+ char buf[10], *last;
+ int buflen, remainder;
+
+ DBUG_ASSERT((slen % 2) == 0);
+
+ buflen= cs->cset->wc_mb(cs, (my_wc_t) fill, (uchar*) buf,
+ (uchar*) buf + sizeof(buf));
+
+ DBUG_ASSERT(buflen > 0);
+
+ /*
+ "last" in the last position where a sequence of "buflen" bytes can start.
+ */
+ for (last= s + slen - buflen; s <= last; s+= buflen)
+ {
+ /* Enough space for the characer */
+ memcpy(s, buf, (size_t) buflen);
+ }
+
+ /*
+ If there are some more space which is not enough
+ for the whole multibyte character, then add trailing zeros.
+ */
+ if ((remainder= last + buflen - s) > 0)
+ bzero(s, (size_t) remainder);
}
@@ -1018,10 +1185,52 @@ my_lengthsp_mb2(CHARSET_INFO *cs __attribute__((unused)),
DB80..DBFF - Private surrogate high (128 pages)
DC00..DFFF - Surrogate low (1024 codes in a page)
*/
+#define MY_UTF16_SURROGATE_HIGH_FIRST 0xD800
+#define MY_UTF16_SURROGATE_HIGH_LAST 0xDBFF
+#define MY_UTF16_SURROGATE_LOW_FIRST 0xDC00
+#define MY_UTF16_SURROGATE_LOW_LAST 0xDFFF
+
+#define MY_UTF16_HIGH_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xD8)
+#define MY_UTF16_LOW_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xDC)
+/* Test if a byte is a leading byte of a high or low surrogate head: */
+#define MY_UTF16_SURROGATE_HEAD(x) ((((uchar) (x)) & 0xF8) == 0xD8)
+/* Test if a Unicode code point is a high or low surrogate head */
+#define MY_UTF16_SURROGATE(x) (((x) & 0xF800) == 0xD800)
+
+#define MY_UTF16_WC2(a, b) ((a << 8) + b)
+
+/*
+ a= 110110?? (<< 18)
+ b= ???????? (<< 10)
+ c= 110111?? (<< 8)
+ d= ???????? (<< 0)
+*/
+#define MY_UTF16_WC4(a, b, c, d) (((a & 3) << 18) + (b << 10) + \
+ ((c & 3) << 8) + d + 0x10000)
+
+#define IS_MB2_CHAR(b0,b1) (!MY_UTF16_SURROGATE_HEAD(b0))
+#define IS_MB4_CHAR(b0,b1,b2,b3) (MY_UTF16_HIGH_HEAD(b0) && MY_UTF16_LOW_HEAD(b2))
+
+static inline int my_weight_mb2_utf16mb2_general_ci(uchar b0, uchar b1)
+{
+ my_wc_t wc= MY_UTF16_WC2(b0, b1);
+ MY_UNICASE_CHARACTER *page= my_unicase_default.page[wc >> 8];
+ return (int) (page ? page[wc & 0xFF].sort : wc);
+}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf16_general_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b0,b1)
+#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER
+#include "strcoll.ic"
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf16_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB2(b0,b1) ((int) MY_UTF16_WC2(b0, b1))
+#define WEIGHT_MB4(b0,b1,b2,b3) ((int) MY_UTF16_WC4(b0, b1, b2, b3))
+#include "strcoll.ic"
-#define MY_UTF16_HIGH_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xD8)
-#define MY_UTF16_LOW_HEAD(x) ((((uchar) (x)) & 0xFC) == 0xDC)
-#define MY_UTF16_SURROGATE(x) (((x) & 0xF800) == 0xD800)
+#undef IS_MB2_CHAR
+#undef IS_MB4_CHAR
static int
my_utf16_uni(CHARSET_INFO *cs __attribute__((unused)),
@@ -1044,23 +1253,14 @@ my_utf16_uni(CHARSET_INFO *cs __attribute__((unused)),
if (!MY_UTF16_LOW_HEAD(s[2])) /* Broken surrigate pair */
return MY_CS_ILSEQ;
- /*
- s[0]= 110110?? (<< 18)
- s[1]= ???????? (<< 10)
- s[2]= 110111?? (<< 8)
- s[3]= ???????? (<< 0)
- */
-
- *pwc= ((s[0] & 3) << 18) + (s[1] << 10) +
- ((s[2] & 3) << 8) + s[3] + 0x10000;
-
+ *pwc= MY_UTF16_WC4(s[0], s[1], s[2], s[3]);
return 4;
}
if (MY_UTF16_LOW_HEAD(*s)) /* Low surrogate part without high part */
return MY_CS_ILSEQ;
-
- *pwc= (s[0] << 8) + s[1];
+
+ *pwc= MY_UTF16_WC2(s[0], s[1]);
return 2;
}
@@ -1096,31 +1296,31 @@ my_uni_utf16(CHARSET_INFO *cs __attribute__((unused)),
static inline void
-my_tolower_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_tolower_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].tolower;
+ MY_UNICASE_CHARACTER *page;
+ if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
+ *wc= page[*wc & 0xFF].tolower;
}
static inline void
-my_toupper_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_toupper_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].toupper;
+ MY_UNICASE_CHARACTER *page;
+ if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
+ *wc= page[*wc & 0xFF].toupper;
}
static inline void
-my_tosort_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_tosort_utf16(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256)
+ if (*wc <= uni_plane->maxchar)
{
- if (uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].sort;
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[*wc >> 8]))
+ *wc= page[*wc & 0xFF].sort;
}
else
{
@@ -1129,24 +1329,28 @@ my_tosort_utf16(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
}
+
static size_t
-my_caseup_utf16(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+my_caseup_utf16(CHARSET_INFO *cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
+ my_charset_conv_wc_mb wc_mb= cs->cset->wc_mb;
int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) &&
- (res= my_utf16_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
+ (res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0)
{
my_toupper_utf16(uni_plane, &wc);
- if (res != my_uni_utf16(cs, wc, (uchar*) src, (uchar*) srcend))
+ if (res != wc_mb(cs, wc, (uchar *) dst, (uchar *) dstend))
break;
src+= res;
+ dst+= res;
}
return srclen;
}
@@ -1154,213 +1358,84 @@ my_caseup_utf16(CHARSET_INFO *cs, char *src, size_t srclen,
static void
my_hash_sort_utf16(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
+ ulong *nr1, ulong *nr2)
{
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
int res;
- const uchar *e= s+slen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ const uchar *e= s + cs->cset->lengthsp(cs, (const char *) s, slen);
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ register ulong m1= *nr1, m2= *nr2;
- while (e > s + 1 && e[-1] == ' ' && e[-2] == '\0')
- e-= 2;
-
- while ((s < e) && (res= my_utf16_uni(cs, &wc, (uchar *)s, (uchar*)e)) > 0)
+ while ((s < e) && (res= mb_wc(cs, &wc, (uchar *) s, (uchar *) e)) > 0)
{
my_tosort_utf16(uni_plane, &wc);
- n1[0]^= (((n1[0] & 63) + n2[0]) * (wc & 0xFF)) + (n1[0] << 8);
- n2[0]+= 3;
- n1[0]^= (((n1[0] & 63) + n2[0]) * (wc >> 8)) + (n1[0] << 8);
- n2[0]+= 3;
+ MY_HASH_ADD_16(m1, m2, wc);
s+= res;
}
+ *nr1= m1;
+ *nr2= m2;
}
static size_t
-my_casedn_utf16(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+my_casedn_utf16(CHARSET_INFO *cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
+ my_charset_conv_wc_mb wc_mb= cs->cset->wc_mb;
int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) &&
- (res= my_utf16_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
+ (res= mb_wc(cs, &wc, (uchar *) src, (uchar *) srcend)) > 0)
{
my_tolower_utf16(uni_plane, &wc);
- if (res != my_uni_utf16(cs, wc, (uchar*) src, (uchar*) srcend))
+ if (res != wc_mb(cs, wc, (uchar *) dst, (uchar *) dstend))
break;
src+= res;
+ dst+= res;
}
return srclen;
}
-static int
-my_strnncoll_utf16(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
+static uint
+my_ismbchar_utf16(CHARSET_INFO *cs, const char *b, const char *e)
{
- int s_res, t_res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
- while (s < se && t < te)
- {
- s_res= my_utf16_uni(cs, &s_wc, s, se);
- t_res= my_utf16_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf16(uni_plane, &s_wc);
- my_tosort_utf16(uni_plane, &t_wc);
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
+ my_wc_t wc;
+ int res= cs->cset->mb_wc(cs, &wc, (const uchar *) b, (const uchar *) e);
+ return (uint) (res > 0 ? res : 0);
}
-/**
- Compare strings, discarding end space
-
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- @param cs Character set pinter.
- @param a First string to compare.
- @param a_length Length of 'a'.
- @param b Second string to compare.
- @param b_length Length of 'b'.
-
- IMPLEMENTATION
-
- @return Comparison result.
- @retval Negative number, if a less than b.
- @retval 0, if a is equal to b
- @retval Positive number, if a > b
-*/
-
static int
-my_strnncollsp_utf16(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
+my_charlen_utf16(CHARSET_INFO *cs, const uchar *str, const uchar *end)
{
- int res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen, *te= t + tlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
- DBUG_ASSERT((slen % 2) == 0);
- DBUG_ASSERT((tlen % 2) == 0);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while (s < se && t < te)
- {
- int s_res= my_utf16_uni(cs, &s_wc, s, se);
- int t_res= my_utf16_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare bytewise */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf16(uni_plane, &s_wc);
- my_tosort_utf16(uni_plane, &t_wc);
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
-
- slen= (size_t) (se - s);
- tlen= (size_t) (te - t);
- res= 0;
-
- if (slen != tlen)
- {
- int s_res, swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 's' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
-
- for ( ; s < se; s+= s_res)
- {
- if ((s_res= my_utf16_uni(cs, &s_wc, s, se)) < 0)
- {
- DBUG_ASSERT(0);
- return 0;
- }
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return res;
+ my_wc_t wc;
+ return cs->cset->mb_wc(cs, &wc, str, end);
}
-static uint
-my_ismbchar_utf16(CHARSET_INFO *cs __attribute__((unused)),
- const char *b __attribute__((unused)),
- const char *e __attribute__((unused)))
-{
- if (b + 2 > e)
- return 0;
-
- if (MY_UTF16_HIGH_HEAD(*b))
- {
- return (b + 4 <= e) && MY_UTF16_LOW_HEAD(b[2]) ? 4 : 0;
- }
-
- if (MY_UTF16_LOW_HEAD(*b))
- return 0;
-
- return 2;
-}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf16
+#define CHARLEN(cs,str,end) my_charlen_utf16(cs,str,end)
+#define DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+#include "ctype-mb.ic"
+#undef MY_FUNCTION_NAME
+#undef CHARLEN
+#undef DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+/* Defines my_well_formed_char_length_utf16 */
static uint
my_mbcharlen_utf16(CHARSET_INFO *cs __attribute__((unused)),
uint c __attribute__((unused)))
{
+ DBUG_ASSERT(0);
return MY_UTF16_HIGH_HEAD(c) ? 4 : 2;
}
@@ -1424,7 +1499,7 @@ my_wildcmp_utf16_ci(CHARSET_INFO *cs,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many)
{
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
escape, w_one, w_many, uni_plane);
}
@@ -1441,136 +1516,29 @@ my_wildcmp_utf16_bin(CHARSET_INFO *cs,
}
-static int
-my_strnncoll_utf16_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
-
- while ( s < se && t < te )
- {
- s_res= my_utf16_uni(cs,&s_wc, s, se);
- t_res= my_utf16_uni(cs,&t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
-}
-
-
-static int
-my_strnncollsp_utf16_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen, *te= t + tlen;
-
- DBUG_ASSERT((slen % 2) == 0);
- DBUG_ASSERT((tlen % 2) == 0);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while (s < se && t < te)
- {
- int s_res= my_utf16_uni(cs, &s_wc, s, se);
- int t_res= my_utf16_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare bytewise */
- return my_bincmp(s, se, t, te);
- }
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
-
- slen= (size_t) (se - s);
- tlen= (size_t) (te - t);
- res= 0;
-
- if (slen != tlen)
- {
- int s_res, swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 's' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
-
- for ( ; s < se; s+= s_res)
- {
- if ((s_res= my_utf16_uni(cs, &s_wc, s, se)) < 0)
- {
- DBUG_ASSERT(0);
- return 0;
- }
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
static void
-my_hash_sort_utf16_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *key, size_t len,ulong *nr1, ulong *nr2)
+my_hash_sort_utf16_bin(CHARSET_INFO *cs,
+ const uchar *pos, size_t len, ulong *nr1, ulong *nr2)
{
- const uchar *pos = key;
-
- key+= len;
+ const uchar *end= pos + cs->cset->lengthsp(cs, (const char *) pos, len);
+ register ulong m1= *nr1, m2= *nr2;
- while (key > pos + 1 && key[-1] == ' ' && key[-2] == '\0')
- key-= 2;
-
- for (; pos < (uchar*) key ; pos++)
+ for ( ; pos < end ; pos++)
{
- nr1[0]^= (ulong) ((((uint) nr1[0] & 63) + nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+= 3;
+ MY_HASH_ADD(m1, m2, (uint)*pos);
}
+ *nr1= m1;
+ *nr2= m2;
}
static MY_COLLATION_HANDLER my_collation_utf16_general_ci_handler =
{
NULL, /* init */
- my_strnncoll_utf16,
- my_strnncollsp_utf16,
+ my_strnncoll_utf16_general_ci,
+ my_strnncollsp_utf16_general_ci,
my_strnxfrm_unicode,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_unicode,
my_like_range_generic,
my_wildcmp_utf16_ci,
my_strcasecmp_mb2_or_mb4,
@@ -1624,7 +1592,11 @@ MY_CHARSET_HANDLER my_charset_utf16_handler=
my_strntod_mb2_or_mb4,
my_strtoll10_mb2,
my_strntoull10rnd_mb2_or_mb4,
- my_scan_mb2
+ my_scan_mb2,
+ my_charlen_utf16,
+ my_well_formed_char_length_utf16,
+ my_copy_fix_mb2_or_mb4,
+ my_uni_utf16,
};
@@ -1640,11 +1612,10 @@ struct charset_info_st my_charset_utf16_general_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -1656,6 +1627,7 @@ struct charset_info_st my_charset_utf16_general_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_general_ci_handler
};
@@ -1673,11 +1645,10 @@ struct charset_info_st my_charset_utf16_bin=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -1689,23 +1660,284 @@ struct charset_info_st my_charset_utf16_bin=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf16_handler,
&my_collation_utf16_bin_handler
};
+
+#define IS_MB2_CHAR(b0,b1) (!MY_UTF16_SURROGATE_HEAD(b1))
+#define IS_MB4_CHAR(b0,b1,b2,b3) (MY_UTF16_HIGH_HEAD(b1) && MY_UTF16_LOW_HEAD(b3))
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf16le_general_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB2(b0,b1) my_weight_mb2_utf16mb2_general_ci(b1,b0)
+#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER
+#include "strcoll.ic"
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf16le_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB2(b0,b1) ((int) MY_UTF16_WC2(b1, b0))
+#define WEIGHT_MB4(b0,b1,b2,b3) ((int) MY_UTF16_WC4(b1, b0, b3, b2))
+#include "strcoll.ic"
+
+#undef IS_MB2_CHAR
+#undef IS_MB4_CHAR
+
+static int
+my_utf16le_uni(CHARSET_INFO *cs __attribute__((unused)),
+ my_wc_t *pwc, const uchar *s, const uchar *e)
+{
+ my_wc_t lo;
+
+ if (s + 2 > e)
+ return MY_CS_TOOSMALL2;
+
+ if ((*pwc= uint2korr(s)) < MY_UTF16_SURROGATE_HIGH_FIRST ||
+ (*pwc > MY_UTF16_SURROGATE_LOW_LAST))
+ return 2; /* [0000-D7FF,E000-FFFF] */
+
+ if (*pwc >= MY_UTF16_SURROGATE_LOW_FIRST)
+ return MY_CS_ILSEQ; /* [DC00-DFFF] Low surrogate part without high part */
+
+ if (s + 4 > e)
+ return MY_CS_TOOSMALL4;
+
+ s+= 2;
+
+ if ((lo= uint2korr(s)) < MY_UTF16_SURROGATE_LOW_FIRST ||
+ lo > MY_UTF16_SURROGATE_LOW_LAST)
+ return MY_CS_ILSEQ; /* Expected low surrogate part, got something else */
+
+ *pwc= 0x10000 + (((*pwc & 0x3FF) << 10) | (lo & 0x3FF));
+ return 4;
+}
+
+
+static int
+my_uni_utf16le(CHARSET_INFO *cs __attribute__((unused)),
+ my_wc_t wc, uchar *s, uchar *e)
+{
+ uint32 first, second, total;
+ if (wc < MY_UTF16_SURROGATE_HIGH_FIRST ||
+ (wc > MY_UTF16_SURROGATE_LOW_LAST &&
+ wc <= 0xFFFF))
+ {
+ if (s + 2 > e)
+ return MY_CS_TOOSMALL2;
+ int2store(s, wc);
+ return 2; /* [0000-D7FF,E000-FFFF] */
+ }
+
+ if (wc < 0xFFFF || wc > 0x10FFFF)
+ return MY_CS_ILUNI; /* [D800-DFFF,10FFFF+] */
+
+ if (s + 4 > e)
+ return MY_CS_TOOSMALL4;
+
+ wc-= 0x10000;
+ first= (0xD800 | ((wc >> 10) & 0x3FF));
+ second= (0xDC00 | (wc & 0x3FF));
+ total= first | (second << 16);
+ int4store(s, total);
+ return 4; /* [010000-10FFFF] */
+}
+
+
+static size_t
+my_lengthsp_utf16le(CHARSET_INFO *cs __attribute__((unused)),
+ const char *ptr, size_t length)
+{
+ const char *end= ptr + length;
+ while (end > ptr + 1 && uint2korr(end - 2) == ' ')
+ end-= 2;
+ return (size_t) (end - ptr);
+}
+
+
+static MY_COLLATION_HANDLER my_collation_utf16le_general_ci_handler =
+{
+ NULL, /* init */
+ my_strnncoll_utf16le_general_ci,
+ my_strnncollsp_utf16le_general_ci,
+ my_strnxfrm_unicode,
+ my_strnxfrmlen_unicode,
+ my_like_range_generic,
+ my_wildcmp_utf16_ci,
+ my_strcasecmp_mb2_or_mb4,
+ my_instr_mb,
+ my_hash_sort_utf16,
+ my_propagate_simple
+};
+
+
+static MY_COLLATION_HANDLER my_collation_utf16le_bin_handler =
+{
+ NULL, /* init */
+ my_strnncoll_utf16le_bin,
+ my_strnncollsp_utf16le_bin,
+ my_strnxfrm_unicode_full_bin,
+ my_strnxfrmlen_unicode_full_bin,
+ my_like_range_generic,
+ my_wildcmp_utf16_bin,
+ my_strcasecmp_mb2_or_mb4,
+ my_instr_mb,
+ my_hash_sort_utf16_bin,
+ my_propagate_simple
+};
+
+
+static MY_CHARSET_HANDLER my_charset_utf16le_handler=
+{
+ NULL, /* init */
+ my_ismbchar_utf16,
+ my_mbcharlen_utf16,
+ my_numchars_utf16,
+ my_charpos_utf16,
+ my_well_formed_len_utf16,
+ my_lengthsp_utf16le,
+ my_numcells_mb,
+ my_utf16le_uni, /* mb_wc */
+ my_uni_utf16le, /* wc_mb */
+ my_mb_ctype_mb,
+ my_caseup_str_mb2_or_mb4,
+ my_casedn_str_mb2_or_mb4,
+ my_caseup_utf16,
+ my_casedn_utf16,
+ my_snprintf_mb2,
+ my_l10tostr_mb2_or_mb4,
+ my_ll10tostr_mb2_or_mb4,
+ my_fill_mb2,
+ my_strntol_mb2_or_mb4,
+ my_strntoul_mb2_or_mb4,
+ my_strntoll_mb2_or_mb4,
+ my_strntoull_mb2_or_mb4,
+ my_strntod_mb2_or_mb4,
+ my_strtoll10_mb2,
+ my_strntoull10rnd_mb2_or_mb4,
+ my_scan_mb2,
+ my_charlen_utf16,
+ my_well_formed_char_length_utf16,
+ my_copy_fix_mb2_or_mb4,
+ my_uni_utf16le,
+};
+
+
+struct charset_info_st my_charset_utf16le_general_ci=
+{
+ 56,0,0, /* number */
+ MY_CS_COMPILED|MY_CS_PRIMARY|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ "utf16le", /* cs name */
+ "utf16le_general_ci",/* name */
+ "UTF-16LE Unicode", /* comment */
+ NULL, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 1, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 0, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf16le_handler,
+ &my_collation_utf16le_general_ci_handler
+};
+
+
+struct charset_info_st my_charset_utf16le_bin=
+{
+ 62,0,0, /* number */
+ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
+ "utf16le", /* cs name */
+ "utf16le_bin", /* name */
+ "UTF-16LE Unicode", /* comment */
+ NULL, /* tailoring */
+ NULL, /* ctype */
+ NULL, /* to_lower */
+ NULL, /* to_upper */
+ NULL, /* sort_order */
+ NULL, /* uca */
+ NULL, /* tab_to_uni */
+ NULL, /* tab_from_uni */
+ &my_unicase_default, /* caseinfo */
+ NULL, /* state_map */
+ NULL, /* ident_map */
+ 1, /* strxfrm_multiply */
+ 1, /* caseup_multiply */
+ 1, /* casedn_multiply */
+ 2, /* mbminlen */
+ 4, /* mbmaxlen */
+ 0, /* min_sort_char */
+ 0xFFFF, /* max_sort_char */
+ ' ', /* pad char */
+ 0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
+ &my_charset_utf16le_handler,
+ &my_collation_utf16le_bin_handler
+};
+
+
#endif /* HAVE_CHARSET_utf16 */
#ifdef HAVE_CHARSET_utf32
+/*
+ Check is b0 and b1 start a valid UTF32 four-byte sequence.
+ Don't accept characters greater than U+10FFFF.
+*/
+#define IS_UTF32_MBHEAD4(b0,b1) (!(b0) && ((uchar) (b1) <= 0x10))
+
+#define IS_MB4_CHAR(b0,b1,b2,b3) (IS_UTF32_MBHEAD4(b0,b1))
+
+#define MY_UTF32_WC4(b0,b1,b2,b3) ((((my_wc_t)b0) << 24) + (b1 << 16) + \
+ (b2 << 8) + (b3))
+
+static inline int my_weight_utf32_general_ci(uchar b0, uchar b1,
+ uchar b2, uchar b3)
+{
+ my_wc_t wc= MY_UTF32_WC4(b0, b1, b2, b3);
+ if (wc <= 0xFFFF)
+ {
+ MY_UNICASE_CHARACTER *page= my_unicase_default.page[wc >> 8];
+ return (int) (page ? page[wc & 0xFF].sort : wc);
+ }
+ return MY_CS_REPLACEMENT_CHARACTER;
+}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf32_general_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB4(b0,b1,b2,b3) my_weight_utf32_general_ci(b0, b1, b2, b3)
+#include "strcoll.ic"
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf32_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB4(b0,b1,b2,b3) ((int) MY_UTF32_WC4(b0, b1, b2, b3))
+#include "strcoll.ic"
+
+#undef IS_MB2_CHAR
+#undef IS_MB4_CHAR
+
+
static int
my_utf32_uni(CHARSET_INFO *cs __attribute__((unused)),
my_wc_t *pwc, const uchar *s, const uchar *e)
{
if (s + 4 > e)
return MY_CS_TOOSMALL4;
- *pwc= (s[0] << 24) + (s[1] << 16) + (s[2] << 8) + (s[3]);
- return 4;
+ *pwc= MY_UTF32_WC4(s[0], s[1], s[2], s[3]);
+ return *pwc > 0x10FFFF ? MY_CS_ILSEQ : 4;
}
@@ -1715,7 +1947,10 @@ my_uni_utf32(CHARSET_INFO *cs __attribute__((unused)),
{
if (s + 4 > e)
return MY_CS_TOOSMALL4;
-
+
+ if (wc > 0x10FFFF)
+ return MY_CS_ILUNI;
+
s[0]= (uchar) (wc >> 24);
s[1]= (uchar) (wc >> 16) & 0xFF;
s[2]= (uchar) (wc >> 8) & 0xFF;
@@ -1725,31 +1960,31 @@ my_uni_utf32(CHARSET_INFO *cs __attribute__((unused)),
static inline void
-my_tolower_utf32(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_tolower_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].tolower;
+ MY_UNICASE_CHARACTER *page;
+ if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
+ *wc= page[*wc & 0xFF].tolower;
}
static inline void
-my_toupper_utf32(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_toupper_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].toupper;
+ MY_UNICASE_CHARACTER *page;
+ if ((*wc <= uni_plane->maxchar) && (page= uni_plane->page[*wc >> 8]))
+ *wc= page[*wc & 0xFF].toupper;
}
static inline void
-my_tosort_utf32(MY_UNICASE_INFO *const* uni_plane, my_wc_t *wc)
+my_tosort_utf32(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256)
+ if (*wc <= uni_plane->maxchar)
{
- if (uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].sort;
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[*wc >> 8]))
+ *wc= page[*wc & 0xFF].sort;
}
else
{
@@ -1759,44 +1994,38 @@ my_tosort_utf32(MY_UNICASE_INFO *const* uni_plane, my_wc_t *wc)
static size_t
-my_caseup_utf32(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+my_caseup_utf32(CHARSET_INFO *cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
my_wc_t wc;
int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) &&
(res= my_utf32_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
{
my_toupper_utf32(uni_plane, &wc);
- if (res != my_uni_utf32(cs, wc, (uchar*) src, (uchar*) srcend))
+ if (res != my_uni_utf32(cs, wc, (uchar*) dst, (uchar*) dstend))
break;
src+= res;
+ dst+= res;
}
return srclen;
}
-static inline void
-my_hash_add(ulong *n1, ulong *n2, uint ch)
-{
- n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8);
- n2[0]+= 3;
-}
-
-
static void
my_hash_sort_utf32(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
+ ulong *nr1, ulong *nr2)
{
my_wc_t wc;
int res;
const uchar *e= s + slen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ register ulong m1= *nr1, m2= *nr2;
/* Skip trailing spaces */
while (e > s + 3 && e[-1] == ' ' && !e[-2] && !e[-3] && !e[-4])
@@ -1805,189 +2034,66 @@ my_hash_sort_utf32(CHARSET_INFO *cs, const uchar *s, size_t slen,
while ((res= my_utf32_uni(cs, &wc, (uchar*) s, (uchar*) e)) > 0)
{
my_tosort_utf32(uni_plane, &wc);
- my_hash_add(n1, n2, (uint) (wc >> 24));
- my_hash_add(n1, n2, (uint) (wc >> 16) & 0xFF);
- my_hash_add(n1, n2, (uint) (wc >> 8) & 0xFF);
- my_hash_add(n1, n2, (uint) (wc & 0xFF));
+ MY_HASH_ADD(m1, m2, (uint) (wc >> 24));
+ MY_HASH_ADD(m1, m2, (uint) (wc >> 16) & 0xFF);
+ MY_HASH_ADD(m1, m2, (uint) (wc >> 8) & 0xFF);
+ MY_HASH_ADD(m1, m2, (uint) (wc & 0xFF));
s+= res;
}
+ *nr1= m1;
+ *nr2= m2;
}
static size_t
-my_casedn_utf32(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+my_casedn_utf32(CHARSET_INFO *cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
my_wc_t wc;
int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ DBUG_ASSERT(srclen <= dstlen);
while ((res= my_utf32_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
{
my_tolower_utf32(uni_plane,&wc);
- if (res != my_uni_utf32(cs, wc, (uchar*) src, (uchar*) srcend))
+ if (res != my_uni_utf32(cs, wc, (uchar*) dst, (uchar*) dstend))
break;
src+= res;
+ dst+= res;
}
return srclen;
}
-static int
-my_strnncoll_utf32(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
+static uint
+my_ismbchar_utf32(CHARSET_INFO *cs __attribute__((unused)),
+ const char *b,
+ const char *e)
{
- my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc);
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
- while (s < se && t < te)
- {
- int s_res= my_utf32_uni(cs, &s_wc, s, se);
- int t_res= my_utf32_uni(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf32(uni_plane, &s_wc);
- my_tosort_utf32(uni_plane, &t_wc);
-
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
+ return b + 4 > e || !IS_UTF32_MBHEAD4(b[0], b[1]) ? 0 : 4;
}
-/**
- Compare strings, discarding end space
-
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- @param cs Character set pinter.
- @param a First string to compare.
- @param a_length Length of 'a'.
- @param b Second string to compare.
- @param b_length Length of 'b'.
-
- IMPLEMENTATION
-
- @return Comparison result.
- @retval Negative number, if a less than b.
- @retval 0, if a is equal to b
- @retval Positive number, if a > b
-*/
-
-
static int
-my_strnncollsp_utf32(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen, *te= t + tlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
- DBUG_ASSERT((slen % 4) == 0);
- DBUG_ASSERT((tlen % 4) == 0);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while ( s < se && t < te )
- {
- int s_res= my_utf32_uni(cs, &s_wc, s, se);
- int t_res= my_utf32_uni(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare bytewise */
- return my_bincmp(s, se, t, te);
- }
-
- my_tosort_utf32(uni_plane, &s_wc);
- my_tosort_utf32(uni_plane, &t_wc);
-
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
-
- slen= (size_t) (se - s);
- tlen= (size_t) (te - t);
- res= 0;
-
- if (slen != tlen)
- {
- int s_res, swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 's' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
-
- for ( ; s < se; s+= s_res)
- {
- if ((s_res= my_utf32_uni(cs, &s_wc, s, se)) < 0)
- {
- DBUG_ASSERT(0);
- return 0;
- }
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
-static size_t
-my_strnxfrmlen_utf32(CHARSET_INFO *cs __attribute__((unused)), size_t len)
+my_charlen_utf32(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *b, const uchar *e)
{
- return len / 2;
+ return b + 4 > e ? MY_CS_TOOSMALL4 :
+ IS_UTF32_MBHEAD4(b[0], b[1]) ? 4 : MY_CS_ILSEQ;
}
-static uint
-my_ismbchar_utf32(CHARSET_INFO *cs __attribute__((unused)),
- const char *b,
- const char *e)
-{
- return b + 4 > e ? 0 : 4;
-}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf32
+#define CHARLEN(cs,str,end) my_charlen_utf32(cs,str,end)
+#define DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+#include "ctype-mb.ic"
+#undef MY_FUNCTION_NAME
+#undef CHARLEN
+#undef DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+/* Defines my_well_formed_char_length_utf32 */
static uint
@@ -2216,7 +2322,7 @@ my_strtoll10_utf32(CHARSET_INFO *cs __attribute__((unused)),
if (s == end || s[0] || s[1] || s[2] || (c= (s[3]-'0')) > 9)
goto end4;
k= k * 10 + c;
- s+= 2;
+ s+= 4;
*endptr= (char*) s;
/* number string should have ended here */
@@ -2302,8 +2408,7 @@ my_well_formed_len_utf32(CHARSET_INFO *cs __attribute__((unused)),
}
for (; b < e; b+= 4)
{
- /* Don't accept characters greater than U+10FFFF */
- if (b[0] || (uchar) b[1] > 0x10)
+ if (!IS_UTF32_MBHEAD4(b[0], b[1]))
{
*error= 1;
return b - b0;
@@ -2357,7 +2462,7 @@ my_wildcmp_utf32_ci(CHARSET_INFO *cs,
const char *wildstr, const char *wildend,
int escape, int w_one, int w_many)
{
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
return my_wildcmp_unicode(cs, str, str_end, wildstr, wildend,
escape, w_one, w_many, uni_plane);
}
@@ -2374,97 +2479,6 @@ my_wildcmp_utf32_bin(CHARSET_INFO *cs,
}
-static int
-my_strnncoll_utf32_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
-
- while (s < se && t < te)
- {
- int s_res= my_utf32_uni(cs, &s_wc, s, se);
- int t_res= my_utf32_uni(cs, &t_wc, t, te);
-
- if (s_res <= 0 || t_res <= 0)
- {
- /* Incorrect string, compare by char value */
- return my_bincmp(s, se, t, te);
- }
- if (s_wc != t_wc)
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t-te) : ((se - s) - (te - t)));
-}
-
-
-static inline my_wc_t
-my_utf32_get(const uchar *s)
-{
- return
- ((my_wc_t) s[0] << 24) +
- ((my_wc_t) s[1] << 16) +
- ((my_wc_t) s[2] << 8) +
- s[3];
-}
-
-
-static int
-my_strnncollsp_utf32_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- const uchar *se, *te;
- size_t minlen;
-
- DBUG_ASSERT((slen % 4) == 0);
- DBUG_ASSERT((tlen % 4) == 0);
-
- se= s + slen;
- te= t + tlen;
-
- for (minlen= min(slen, tlen); minlen; minlen-= 4)
- {
- my_wc_t s_wc= my_utf32_get(s);
- my_wc_t t_wc= my_utf32_get(t);
- if (s_wc != t_wc)
- return s_wc > t_wc ? 1 : -1;
-
- s+= 4;
- t+= 4;
- }
-
- if (slen != tlen)
- {
- int swap= 1;
- if (slen < tlen)
- {
- s= t;
- se= te;
- swap= -1;
- }
-
- for ( ; s < se ; s+= 4)
- {
- my_wc_t s_wc= my_utf32_get(s);
- if (s_wc != ' ')
- return (s_wc < ' ') ? -swap : swap;
- }
- }
- return 0;
-}
-
-
static size_t
my_scan_utf32(CHARSET_INFO *cs,
const char *str, const char *end, int sequence_type)
@@ -2492,10 +2506,10 @@ my_scan_utf32(CHARSET_INFO *cs,
static MY_COLLATION_HANDLER my_collation_utf32_general_ci_handler =
{
NULL, /* init */
- my_strnncoll_utf32,
- my_strnncollsp_utf32,
+ my_strnncoll_utf32_general_ci,
+ my_strnncollsp_utf32_general_ci,
my_strnxfrm_unicode,
- my_strnxfrmlen_utf32,
+ my_strnxfrmlen_unicode,
my_like_range_generic,
my_wildcmp_utf32_ci,
my_strcasecmp_mb2_or_mb4,
@@ -2549,7 +2563,11 @@ MY_CHARSET_HANDLER my_charset_utf32_handler=
my_strntod_mb2_or_mb4,
my_strtoll10_utf32,
my_strntoull10rnd_mb2_or_mb4,
- my_scan_utf32
+ my_scan_utf32,
+ my_charlen_utf32,
+ my_well_formed_char_length_utf32,
+ my_copy_fix_mb2_or_mb4,
+ my_uni_utf32,
};
@@ -2565,11 +2583,10 @@ struct charset_info_st my_charset_utf32_general_ci=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -2581,6 +2598,7 @@ struct charset_info_st my_charset_utf32_general_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_general_ci_handler
};
@@ -2589,7 +2607,7 @@ struct charset_info_st my_charset_utf32_general_ci=
struct charset_info_st my_charset_utf32_bin=
{
61,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE|MY_CS_NONASCII,
+ MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_STRNXFRM|MY_CS_UNICODE|MY_CS_NONASCII,
"utf32", /* cs name */
"utf32_bin", /* name */
"UTF-32 Unicode", /* comment */
@@ -2598,11 +2616,10 @@ struct charset_info_st my_charset_utf32_bin=
NULL, /* to_lower */
NULL, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -2614,6 +2631,7 @@ struct charset_info_st my_charset_utf32_bin=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf32_handler,
&my_collation_utf32_bin_handler
};
@@ -2683,6 +2701,39 @@ static const uchar to_upper_ucs2[] = {
};
+/* Definitions for strcoll.ic */
+#define IS_MB2_CHAR(x,y) (1)
+#define UCS2_CODE(b0,b1) (((uchar) b0) << 8 | ((uchar) b1))
+
+
+static inline int my_weight_mb2_ucs2_general_ci(uchar b0, uchar b1)
+{
+ my_wc_t wc= UCS2_CODE(b0, b1);
+ MY_UNICASE_CHARACTER *page= my_unicase_default.page[wc >> 8];
+ return (int) (page ? page[wc & 0xFF].sort : wc);
+}
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _ucs2_general_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB2(b0,b1) my_weight_mb2_ucs2_general_ci(b0,b1)
+#include "strcoll.ic"
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _ucs2_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB2(b0,b1) UCS2_CODE(b0,b1)
+#include "strcoll.ic"
+
+
+static int
+my_charlen_ucs2(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *s, const uchar *e)
+{
+ return s + 2 > e ? MY_CS_TOOSMALLN(2) : 2;
+}
+
+
static int my_ucs2_uni(CHARSET_INFO *cs __attribute__((unused)),
my_wc_t * pwc, const uchar *s, const uchar *e)
{
@@ -2708,189 +2759,122 @@ static int my_uni_ucs2(CHARSET_INFO *cs __attribute__((unused)) ,
}
-static size_t my_caseup_ucs2(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+static inline void
+my_tolower_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
+{
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
+ *wc= page[*wc & 0xFF].tolower;
+}
+
+
+static inline void
+my_toupper_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
+{
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
+ *wc= page[*wc & 0xFF].toupper;
+}
+
+
+static inline void
+my_tosort_ucs2(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
+{
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
+ *wc= page[*wc & 0xFF].sort;
+}
+
+static size_t my_caseup_ucs2(CHARSET_INFO *cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
my_wc_t wc;
int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) &&
(res= my_ucs2_uni(cs, &wc, (uchar *)src, (uchar*) srcend)) > 0)
{
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc;
- if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend))
+ my_toupper_ucs2(uni_plane, &wc);
+ if (res != my_uni_ucs2(cs, wc, (uchar*) dst, (uchar*) dstend))
break;
src+= res;
+ dst+= res;
}
return srclen;
}
static void my_hash_sort_ucs2(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
+ ulong *nr1, ulong *nr2)
{
my_wc_t wc;
int res;
const uchar *e=s+slen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ register ulong m1= *nr1, m2= *nr2;
while (e > s+1 && e[-1] == ' ' && e[-2] == '\0')
e-= 2;
while ((s < e) && (res=my_ucs2_uni(cs,&wc, (uchar *)s, (uchar*)e)) >0)
{
- int plane = (wc>>8) & 0xFF;
- wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8);
- n2[0]+=3;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8);
- n2[0]+=3;
+ my_tosort_ucs2(uni_plane, &wc);
+ MY_HASH_ADD_16(m1, m2, wc);
s+=res;
}
+ *nr1= m1;
+ *nr2= m2;
}
-static size_t my_casedn_ucs2(CHARSET_INFO *cs, char *src, size_t srclen,
- char *dst __attribute__((unused)),
- size_t dstlen __attribute__((unused)))
+static size_t my_casedn_ucs2(CHARSET_INFO *cs, const char *src, size_t srclen,
+ char *dst, size_t dstlen)
{
my_wc_t wc;
int res;
- char *srcend= src + srclen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
- DBUG_ASSERT(src == dst && srclen == dstlen);
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ DBUG_ASSERT(srclen <= dstlen);
while ((src < srcend) &&
(res= my_ucs2_uni(cs, &wc, (uchar*) src, (uchar*) srcend)) > 0)
{
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc;
- if (res != my_uni_ucs2(cs, wc, (uchar*) src, (uchar*) srcend))
+ my_tolower_ucs2(uni_plane, &wc);
+ if (res != my_uni_ucs2(cs, wc, (uchar*) dst, (uchar*) dstend))
break;
src+= res;
+ dst+= res;
}
return srclen;
}
-static int my_strnncoll_ucs2(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc);
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_ucs2_uni(cs,&s_wc, s, se);
- t_res=my_ucs2_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare by char value */
- return ((int)s[0]-(int)t[0]);
- }
-
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
- return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
-}
-
-/*
- Compare strings, discarding end space
-
- SYNOPSIS
- my_strnncollsp_ucs2()
- cs character set handler
- a First string to compare
- a_length Length of 'a'
- b Second string to compare
- b_length Length of 'b'
-
- IMPLEMENTATION
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- RETURN
- < 0 a < b
- = 0 a == b
- > 0 a > b
-*/
-
-static int my_strnncollsp_ucs2(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
+static void
+my_fill_ucs2(CHARSET_INFO *cs __attribute__((unused)),
+ char *s, size_t l, int fill)
{
- const uchar *se, *te;
- size_t minlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
- /* extra safety to make sure the lengths are even numbers */
- slen&= ~1;
- tlen&= ~1;
-
- se= s + slen;
- te= t + tlen;
-
- for (minlen= min(slen, tlen); minlen; minlen-= 2)
- {
- int s_wc = uni_plane[s[0]] ? (int) uni_plane[s[0]][s[1]].sort :
- (((int) s[0]) << 8) + (int) s[1];
-
- int t_wc = uni_plane[t[0]] ? (int) uni_plane[t[0]][t[1]].sort :
- (((int) t[0]) << 8) + (int) t[1];
- if ( s_wc != t_wc )
- return s_wc > t_wc ? 1 : -1;
-
- s+= 2;
- t+= 2;
- }
-
- if (slen != tlen)
- {
- int swap= 1;
- if (slen < tlen)
- {
- s= t;
- se= te;
- swap= -1;
- }
-
- for ( ; s < se ; s+= 2)
- {
- if (s[0] || s[1] != ' ')
- return (s[0] == 0 && s[1] < ' ') ? -swap : swap;
- }
- }
- return 0;
+ DBUG_ASSERT(fill <= 0xFFFF);
+#ifdef WAITING_FOR_GCC_VECTORIZATION_BUG_TO_BE_FIXED
+ /*
+ This code with int2store() is known to be faster on some processors,
+ but crashes on other processors due to a possible bug in GCC's
+ -ftree-vectorization (which is enabled in -O3) in case of
+ a non-aligned memory. See here for details:
+ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58039
+ */
+ char *last= s + l - 2;
+ uint16 tmp= (fill >> 8) + ((fill & 0xFF) << 8); /* swap bytes */
+ DBUG_ASSERT(fill <= 0xFFFF);
+ for ( ; s <= last; s+= 2)
+ int2store(s, tmp); /* store little-endian */
+#else
+ for ( ; l >= 2; s[0]= (fill >> 8), s[1]= (fill & 0xFF), s+= 2, l-= 2);
+#endif
}
@@ -2937,7 +2921,32 @@ size_t my_well_formed_len_ucs2(CHARSET_INFO *cs __attribute__((unused)),
size_t nbytes= ((size_t) (e-b)) & ~(size_t) 1;
*error= 0;
nchars*= 2;
- return min(nbytes, nchars);
+ return MY_MIN(nbytes, nchars);
+}
+
+
+static size_t
+my_well_formed_char_length_ucs2(CHARSET_INFO *cs __attribute__((unused)),
+ const char *b, const char *e,
+ size_t nchars, MY_STRCOPY_STATUS *status)
+{
+ size_t length= e - b;
+ if (nchars * 2 <= length)
+ {
+ status->m_well_formed_error_pos= NULL;
+ status->m_source_end_pos= b + (nchars * 2);
+ return nchars;
+ }
+ if (length % 2)
+ {
+ status->m_well_formed_error_pos= status->m_source_end_pos= e - 1;
+ }
+ else
+ {
+ status->m_well_formed_error_pos= NULL;
+ status->m_source_end_pos= e;
+ }
+ return length / 2;
}
@@ -2947,7 +2956,7 @@ int my_wildcmp_ucs2_ci(CHARSET_INFO *cs,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many)
{
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
escape,w_one,w_many,uni_plane);
}
@@ -2965,111 +2974,31 @@ int my_wildcmp_ucs2_bin(CHARSET_INFO *cs,
static
-int my_strnncoll_ucs2_bin(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc),UNINIT_VAR(t_wc);
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
-
- while ( s < se && t < te )
- {
- s_res=my_ucs2_uni(cs,&s_wc, s, se);
- t_res=my_ucs2_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare by char value */
- return ((int)s[0]-(int)t[0]);
- }
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
- return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
-}
-
-static int my_strnncollsp_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference
- __attribute__((unused)))
-{
- const uchar *se, *te;
- size_t minlen;
-
- /* extra safety to make sure the lengths are even numbers */
- slen= (slen >> 1) << 1;
- tlen= (tlen >> 1) << 1;
-
- se= s + slen;
- te= t + tlen;
-
- for (minlen= min(slen, tlen); minlen; minlen-= 2)
- {
- int s_wc= s[0] * 256 + s[1];
- int t_wc= t[0] * 256 + t[1];
- if ( s_wc != t_wc )
- return s_wc > t_wc ? 1 : -1;
-
- s+= 2;
- t+= 2;
- }
-
- if (slen != tlen)
- {
- int swap= 1;
- if (slen < tlen)
- {
- s= t;
- se= te;
- swap= -1;
- }
-
- for ( ; s < se ; s+= 2)
- {
- if (s[0] || s[1] != ' ')
- return (s[0] == 0 && s[1] < ' ') ? -swap : swap;
- }
- }
- return 0;
-}
-
-
-static
void my_hash_sort_ucs2_bin(CHARSET_INFO *cs __attribute__((unused)),
const uchar *key, size_t len,ulong *nr1, ulong *nr2)
{
- const uchar *pos = key;
-
- key+= len;
+ const uchar *end = key + len;
+ register ulong m1= *nr1, m2= *nr2;
- while (key > pos+1 && key[-1] == ' ' && key[-2] == '\0')
- key-= 2;
+ while (end > key+1 && end[-1] == ' ' && end[-2] == '\0')
+ end-= 2;
- for (; pos < (uchar*) key ; pos++)
+ for (; key < (uchar*) end ; key++)
{
- nr1[0]^=(ulong) ((((uint) nr1[0] & 63)+nr2[0]) *
- ((uint)*pos)) + (nr1[0] << 8);
- nr2[0]+=3;
+ MY_HASH_ADD(m1, m2, (uint)*key);
}
+ *nr1= m1;
+ *nr2= m2;
}
static MY_COLLATION_HANDLER my_collation_ucs2_general_ci_handler =
{
NULL, /* init */
- my_strnncoll_ucs2,
- my_strnncollsp_ucs2,
+ my_strnncoll_ucs2_general_ci,
+ my_strnncollsp_ucs2_general_ci,
my_strnxfrm_unicode,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_unicode,
my_like_range_generic,
my_wildcmp_ucs2_ci,
my_strcasecmp_mb2_or_mb4,
@@ -3085,7 +3014,7 @@ static MY_COLLATION_HANDLER my_collation_ucs2_bin_handler =
my_strnncoll_ucs2_bin,
my_strnncollsp_ucs2_bin,
my_strnxfrm_unicode,
- my_strnxfrmlen_simple,
+ my_strnxfrmlen_unicode,
my_like_range_generic,
my_wildcmp_ucs2_bin,
my_strcasecmp_mb2_or_mb4,
@@ -3115,7 +3044,7 @@ MY_CHARSET_HANDLER my_charset_ucs2_handler=
my_snprintf_mb2,
my_l10tostr_mb2_or_mb4,
my_ll10tostr_mb2_or_mb4,
- my_fill_mb2,
+ my_fill_ucs2,
my_strntol_mb2_or_mb4,
my_strntoul_mb2_or_mb4,
my_strntoll_mb2_or_mb4,
@@ -3123,7 +3052,11 @@ MY_CHARSET_HANDLER my_charset_ucs2_handler=
my_strntod_mb2_or_mb4,
my_strtoll10_mb2,
my_strntoull10rnd_mb2_or_mb4,
- my_scan_mb2
+ my_scan_mb2,
+ my_charlen_ucs2,
+ my_well_formed_char_length_ucs2,
+ my_copy_fix_mb2_or_mb4,
+ my_uni_ucs2,
};
@@ -3139,11 +3072,10 @@ struct charset_info_st my_charset_ucs2_general_ci=
to_lower_ucs2, /* to_lower */
to_upper_ucs2, /* to_upper */
to_upper_ucs2, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -3155,6 +3087,7 @@ struct charset_info_st my_charset_ucs2_general_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_general_ci_handler
};
@@ -3172,11 +3105,10 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci=
to_lower_ucs2, /* to_lower */
to_upper_ucs2, /* to_upper */
to_upper_ucs2, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_mysql500, /* caseinfo */
+ &my_unicase_mysql500, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -3188,6 +3120,7 @@ struct charset_info_st my_charset_ucs2_general_mysql500_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_general_ci_handler
};
@@ -3205,11 +3138,10 @@ struct charset_info_st my_charset_ucs2_bin=
to_lower_ucs2, /* to_lower */
to_upper_ucs2, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -3221,6 +3153,7 @@ struct charset_info_st my_charset_ucs2_bin=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_ucs2_handler,
&my_collation_ucs2_bin_handler
};
diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c
index c2b3c248034..22fbf425602 100644
--- a/strings/ctype-ujis.c
+++ b/strings/ctype-ujis.c
@@ -179,10 +179,44 @@ static const uchar sort_order_ujis[]=
};
-#define isujis(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xfe))
-#define iskata(c) ((0xa1<=((c)&0xff) && ((c)&0xff)<=0xdf))
-#define isujis_ss2(c) (((c)&0xff) == 0x8e)
-#define isujis_ss3(c) (((c)&0xff) == 0x8f)
+/*
+ EUC-JP encoding subcomponents:
+ [x00-x7F] # ASCII/JIS-Roman (one-byte/character)
+ [x8E][xA1-xDF] # half-width katakana (two bytes/char)
+ [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char)
+ [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char)
+*/
+
+#define isujis(c) (0xa1 <= (uchar) (c) && (uchar) (c) <= 0xfe)
+#define iskata(c) (0xa1 <= (uchar) (c) && (uchar) (c) <= 0xdf)
+#define isujis_ss2(c) ((uchar) (c) == 0x8e)
+#define isujis_ss3(c) ((uchar) (c) == 0x8f)
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _ujis
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80)
+#define IS_MB2_JIS(x,y) (isujis(x) && isujis(y))
+#define IS_MB2_KATA(x,y) (isujis_ss2(x) && iskata(y))
+#define IS_MB2_CHAR(x, y) (IS_MB2_KATA(x,y) || IS_MB2_JIS(x,y))
+#define IS_MB3_CHAR(x, y, z) (isujis_ss3(x) && IS_MB2_JIS(y,z))
+#define DEFINE_ASIAN_ROUTINES
+#include "ctype-mb.ic"
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _ujis_japanese_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(x) ((int) sort_order_ujis[(uchar) (x)])
+#define WEIGHT_MB2(x,y) ((((uint) (uchar)(x)) << 16) | \
+ (((uint) (uchar) (y)) << 8))
+#define WEIGHT_MB3(x,y,z) (WEIGHT_MB2(x,y) | ((uint) (uchar) z))
+#include "strcoll.ic"
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _ujis_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(x) ((int) (uchar) (x))
+#define WEIGHT_MB2(x,y) ((((uint) (uchar)(x)) << 16) | \
+ (((uint) (uchar) (y)) << 8))
+#define WEIGHT_MB3(x,y,z) (WEIGHT_MB2(x,y) | ((uint) (uchar) z))
+#include "strcoll.ic"
static uint ismbchar_ujis(CHARSET_INFO *cs __attribute__((unused)),
@@ -201,64 +235,6 @@ static uint mbcharlen_ujis(CHARSET_INFO *cs __attribute__((unused)),uint c)
}
-/*
- EUC-JP encoding subcomponents:
- [x00-x7F] # ASCII/JIS-Roman (one-byte/character)
- [x8E][xA0-xDF] # half-width katakana (two bytes/char)
- [x8F][xA1-xFE][xA1-xFE] # JIS X 0212-1990 (three bytes/char)
- [xA1-xFE][xA1-xFE] # JIS X 0208:1997 (two bytes/char)
-*/
-
-static
-size_t my_well_formed_len_ujis(CHARSET_INFO *cs __attribute__((unused)),
- const char *beg, const char *end,
- size_t pos, int *error)
-{
- const uchar *b= (uchar *) beg;
-
- for ( *error= 0 ; pos && b < (uchar*) end; pos--, b++)
- {
- char *chbeg;
- uint ch= *b;
-
- if (ch <= 0x7F) /* one byte */
- continue;
-
- chbeg= (char *) b++;
- if (b >= (uchar *) end) /* need more bytes */
- {
- *error= 1;
- return (size_t) (chbeg - beg); /* unexpected EOL */
- }
-
- if (ch == 0x8E) /* [x8E][xA0-xDF] */
- {
- if (*b >= 0xA0 && *b <= 0xDF)
- continue;
- *error= 1;
- return (size_t) (chbeg - beg); /* invalid sequence */
- }
-
- if (ch == 0x8F) /* [x8F][xA1-xFE][xA1-xFE] */
- {
- ch= *b++;
- if (b >= (uchar*) end)
- {
- *error= 1;
- return (size_t) (chbeg - beg); /* unexpected EOL */
- }
- }
-
- if (ch >= 0xA1 && ch <= 0xFE &&
- *b >= 0xA1 && *b <= 0xFE) /* [xA1-xFE][xA1-xFE] */
- continue;
- *error= 1;
- return (size_t) (chbeg - beg); /* invalid sequence */
- }
- return (size_t) (b - (uchar *) beg);
-}
-
-
static
size_t my_numcells_eucjp(CHARSET_INFO *cs __attribute__((unused)),
const char *str, const char *str_end)
@@ -65988,7 +65964,7 @@ my_wc_mb_euc_jp(CHARSET_INFO *cs __attribute__((unused)),
/* Case info pages for JIS-X-0208 range */
-static MY_UNICASE_INFO cA2[256]=
+static MY_UNICASE_CHARACTER cA2[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66109,7 +66085,7 @@ static MY_UNICASE_INFO cA2[256]=
};
-static MY_UNICASE_INFO cA3[256]=
+static MY_UNICASE_CHARACTER cA3[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66230,7 +66206,7 @@ static MY_UNICASE_INFO cA3[256]=
};
-static MY_UNICASE_INFO cA6[256]=
+static MY_UNICASE_CHARACTER cA6[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66351,7 +66327,7 @@ static MY_UNICASE_INFO cA6[256]=
};
-static MY_UNICASE_INFO cA7[256]=
+static MY_UNICASE_CHARACTER cA7[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}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66473,7 +66449,7 @@ static MY_UNICASE_INFO cA7[256]=
/* Case info pages for JIS-X-0212 range */
-static MY_UNICASE_INFO c8FA6[]=
+static MY_UNICASE_CHARACTER c8FA6[]=
{
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66594,7 +66570,7 @@ static MY_UNICASE_INFO c8FA6[]=
};
-static MY_UNICASE_INFO c8FA7[]=
+static MY_UNICASE_CHARACTER c8FA7[]=
{
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66715,7 +66691,7 @@ static MY_UNICASE_INFO c8FA7[]=
};
-static MY_UNICASE_INFO c8FA9[]=
+static MY_UNICASE_CHARACTER c8FA9[]=
{
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66836,7 +66812,7 @@ static MY_UNICASE_INFO c8FA9[]=
};
-static MY_UNICASE_INFO c8FAA[]=
+static MY_UNICASE_CHARACTER c8FAA[]=
{
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -66957,7 +66933,7 @@ static MY_UNICASE_INFO c8FAA[]=
};
-static MY_UNICASE_INFO c8FAB[]=
+static MY_UNICASE_CHARACTER c8FAB[]=
{
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0}, /* xx00 */
{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},{0,0,0},
@@ -67078,7 +67054,7 @@ static MY_UNICASE_INFO c8FAB[]=
};
-static MY_UNICASE_INFO *my_caseinfo_ujis[512]=
+static MY_UNICASE_CHARACTER *my_caseinfo_pages_ujis[512]=
{
/* JIS-X-0208 */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* 0 */
@@ -67148,6 +67124,15 @@ static MY_UNICASE_INFO *my_caseinfo_ujis[512]=
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, /* F */
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
};
+
+static MY_UNICASE_INFO my_caseinfo_ujis=
+{
+ 0x0FFFF,
+ my_caseinfo_pages_ujis
+};
+
+
+
#endif /* HAVE_CHARSET_ujis */
@@ -67158,11 +67143,11 @@ static MY_UNICASE_INFO *my_caseinfo_ujis[512]=
UJIS and EUCJPMS share the same UPPER/LOWER functions.
*/
-static MY_UNICASE_INFO*
+static MY_UNICASE_CHARACTER*
get_case_info_for_ch(CHARSET_INFO *cs, uint plane, uint page, uint offs)
{
- MY_UNICASE_INFO *p;
- return (p= cs->caseinfo[page + plane * 256]) ? &p[offs & 0xFF] : NULL;
+ MY_UNICASE_CHARACTER *p;
+ return (p= cs->caseinfo->page[page + plane * 256]) ? &p[offs & 0xFF] : NULL;
}
@@ -67171,19 +67156,19 @@ get_case_info_for_ch(CHARSET_INFO *cs, uint plane, uint page, uint offs)
*/
static size_t
my_casefold_ujis(CHARSET_INFO *cs,
- char *src, size_t srclen,
+ const char *src, size_t srclen,
char *dst, size_t dstlen __attribute__((unused)),
const uchar * const map,
size_t is_upper)
{
- char *srcend= src + srclen, *dst0= dst;
+ const char *srcend= src + srclen, *dst0= dst;
while (src < srcend)
{
size_t mblen= my_ismbchar(cs, src, srcend);
if (mblen)
{
- MY_UNICASE_INFO *ch;
+ MY_UNICASE_CHARACTER *ch;
ch= (mblen == 2) ?
get_case_info_for_ch(cs, 0, (uchar) src[0], (uchar) src[1]) :
get_case_info_for_ch(cs, 1, (uchar) src[1], (uchar) src[2]);
@@ -67218,7 +67203,7 @@ my_casefold_ujis(CHARSET_INFO *cs,
LOWER()
*/
size_t
-my_casedn_ujis(CHARSET_INFO * cs, char *src, size_t srclen,
+my_casedn_ujis(CHARSET_INFO * cs, const char *src, size_t srclen,
char *dst, size_t dstlen)
{
DBUG_ASSERT(dstlen >= srclen * cs->casedn_multiply);
@@ -67231,7 +67216,7 @@ my_casedn_ujis(CHARSET_INFO * cs, char *src, size_t srclen,
UPPER()
*/
size_t
-my_caseup_ujis(CHARSET_INFO * cs, char *src, size_t srclen,
+my_caseup_ujis(CHARSET_INFO * cs, const char *src, size_t srclen,
char *dst, size_t dstlen)
{
DBUG_ASSERT(dstlen >= srclen * cs->caseup_multiply);
@@ -67244,12 +67229,12 @@ my_caseup_ujis(CHARSET_INFO * cs, char *src, size_t srclen,
#ifdef HAVE_CHARSET_ujis
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+static MY_COLLATION_HANDLER my_collation_ujis_japanese_ci_handler =
{
NULL, /* init */
- my_strnncoll_simple,/* strnncoll */
- my_strnncollsp_simple,
- my_strnxfrm_simple, /* strnxfrm */
+ my_strnncoll_ujis_japanese_ci,
+ my_strnncollsp_ujis_japanese_ci,
+ my_strnxfrm_mb, /* strnxfrm */
my_strnxfrmlen_simple,
my_like_range_mb, /* like_range */
my_wildcmp_mb, /* wildcmp */
@@ -67259,6 +67244,23 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
my_propagate_simple
};
+
+static MY_COLLATION_HANDLER my_collation_ujis_bin_handler =
+{
+ NULL, /* init */
+ my_strnncoll_ujis_bin,
+ my_strnncollsp_ujis_bin,
+ my_strnxfrm_mb,
+ my_strnxfrmlen_simple,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
+
static MY_CHARSET_HANDLER my_charset_handler=
{
NULL, /* init */
@@ -67287,7 +67289,11 @@ static MY_CHARSET_HANDLER my_charset_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_ujis,
+ my_well_formed_char_length_ujis,
+ my_copy_fix_mb,
+ my_native_to_mb_ujis,
};
@@ -67304,11 +67310,10 @@ struct charset_info_st my_charset_ujis_japanese_ci=
to_lower_ujis,
to_upper_ujis,
sort_order_ujis,
- NULL, /* sort_order_big*/
- NULL, /* contractions */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_ujis, /* caseinfo */
+ &my_caseinfo_ujis, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -67320,8 +67325,9 @@ struct charset_info_st my_charset_ujis_japanese_ci=
0xFEFE, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_ci_handler
+ &my_collation_ujis_japanese_ci_handler
};
@@ -67337,11 +67343,10 @@ struct charset_info_st my_charset_ujis_bin=
to_lower_ujis,
to_upper_ujis,
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_caseinfo_ujis, /* caseinfo */
+ &my_caseinfo_ujis, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -67353,8 +67358,9 @@ struct charset_info_st my_charset_ujis_bin=
0xFEFE, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_handler,
- &my_collation_mb_bin_handler
+ &my_collation_ujis_bin_handler
};
diff --git a/strings/ctype-utf8.c b/strings/ctype-utf8.c
index c6a57ceafa6..25fb081bbb2 100644
--- a/strings/ctype-utf8.c
+++ b/strings/ctype-utf8.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2000, 2013, Oracle and/or its affiliates.
- Copyright (c) 2009, 2016, MariaDB
+ Copyright (c) 2009, 2019, MariaDB
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -26,8 +26,86 @@
#define EILSEQ ENOENT
#endif
-#define IS_CONTINUATION_BYTE(c) (((c) ^ 0x80) < 0x40)
+/* Detect special bytes and sequences */
+#define IS_CONTINUATION_BYTE(c) (((uchar) (c) ^ 0x80) < 0x40)
+/*
+ Check MB2 character assuming that b0 is alredy known to be >= 0xC2.
+ Use this macro if the caller already checked b0 for:
+ - an MB1 character
+ - an unused gap between MB1 and MB2HEAD
+*/
+#define IS_UTF8MB2_STEP2(b0,b1) (((uchar) (b0) < 0xE0) && \
+ IS_CONTINUATION_BYTE((uchar) b1))
+
+/*
+ Check MB3 character assuming that b0 is already known to be
+ in the valid MB3HEAD range [0xE0..0xEF].
+*/
+#define IS_UTF8MB3_STEP2(b0,b1,b2) (IS_CONTINUATION_BYTE(b1) && \
+ IS_CONTINUATION_BYTE(b2) && \
+ ((uchar) b0 >= 0xe1 || (uchar) b1 >= 0xa0))
+
+/*
+ Check MB3 character assuming that b0 is already known to be >= 0xE0,
+ but is not checked for the high end 0xF0 yet.
+ Use this macro if the caller already checked b0 for:
+ - an MB1 character
+ - an unused gap between MB1 and MB2HEAD
+ - an MB2HEAD
+*/
+#define IS_UTF8MB3_STEP3(b0,b1,b2) (((uchar) (b0) < 0xF0) && \
+ IS_UTF8MB3_STEP2(b0,b1,b2))
+
+/*
+ UTF-8 quick four-byte mask:
+ 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
+ Encoding allows to encode U+00010000..U+001FFFFF
+
+ The maximum character defined in the Unicode standard is U+0010FFFF.
+ Higher characters U+00110000..U+001FFFFF are not used.
+
+ 11110000.10010000.10xxxxxx.10xxxxxx == F0.90.80.80 == U+00010000 (min)
+ 11110100.10001111.10111111.10111111 == F4.8F.BF.BF == U+0010FFFF (max)
+
+ Valid codes:
+ [F0][90..BF][80..BF][80..BF]
+ [F1][80..BF][80..BF][80..BF]
+ [F2][80..BF][80..BF][80..BF]
+ [F3][80..BF][80..BF][80..BF]
+ [F4][80..8F][80..BF][80..BF]
+*/
+
+/*
+ Check MB4 character assuming that b0 is already
+ known to be in the range [0xF0..0xF4]
+*/
+#define IS_UTF8MB4_STEP2(b0,b1,b2,b3) (IS_CONTINUATION_BYTE(b1) && \
+ IS_CONTINUATION_BYTE(b2) && \
+ IS_CONTINUATION_BYTE(b3) && \
+ (b0 >= 0xf1 || b1 >= 0x90) && \
+ (b0 <= 0xf3 || b1 <= 0x8F))
+#define IS_UTF8MB4_STEP3(b0,b1,b2,b3) (((uchar) (b0) < 0xF5) && \
+ IS_UTF8MB4_STEP2(b0,b1,b2,b3))
+
+/* Convert individual bytes to Unicode code points */
+#define UTF8MB2_CODE(b0,b1) (((my_wc_t) ((uchar) b0 & 0x1f) << 6) |\
+ ((my_wc_t) ((uchar) b1 ^ 0x80)))
+#define UTF8MB3_CODE(b0,b1,b2) (((my_wc_t) ((uchar) b0 & 0x0f) << 12) |\
+ ((my_wc_t) ((uchar) b1 ^ 0x80) << 6) |\
+ ((my_wc_t) ((uchar) b2 ^ 0x80)))
+#define UTF8MB4_CODE(b0,b1,b2,b3) (((my_wc_t) ((uchar) b0 & 0x07) << 18) |\
+ ((my_wc_t) ((uchar) b1 ^ 0x80) << 12) |\
+ ((my_wc_t) ((uchar) b2 ^ 0x80) << 6) |\
+ (my_wc_t) ((uchar) b3 ^ 0x80))
+
+/* Definitions for strcoll.ic */
+#define IS_MB1_CHAR(x) ((uchar) (x) < 0x80)
+#define IS_MB1_MBHEAD_UNUSED_GAP(x) ((uchar) (x) < 0xC2)
+#define IS_MB2_CHAR(x,y) IS_UTF8MB2_STEP2(x,y)
+#define IS_MB3_CHAR(x,y,z) IS_UTF8MB3_STEP3(x,y,z)
+
+/* Collation names */
#define MY_UTF8MB3_GENERAL_CI MY_UTF8MB3 "_general_ci"
#define MY_UTF8MB3_GENERAL_CS MY_UTF8MB3 "_general_cs"
#define MY_UTF8MB3_BIN MY_UTF8MB3 "_bin"
@@ -88,8 +166,7 @@ int my_valid_mbcharlen_utf8mb3(const uchar *s, const uchar *e)
if (s+3 > e) /* We need 3 characters */
return MY_CS_TOOSMALL3;
- if (!(IS_CONTINUATION_BYTE(s[1]) && IS_CONTINUATION_BYTE(s[2]) &&
- (c >= 0xe1 || s[1] >= 0xa0)))
+ if (!IS_UTF8MB3_STEP2(c, s[1], s[2]))
return MY_CS_ILSEQ;
return 3;
@@ -101,7 +178,7 @@ int my_valid_mbcharlen_utf8mb3(const uchar *s, const uchar *e)
#include "my_uctype.h"
-static MY_UNICASE_INFO plane00[]={
+static MY_UNICASE_CHARACTER plane00[]={
{0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
{0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
{0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
@@ -237,7 +314,7 @@ static MY_UNICASE_INFO plane00[]={
Almost similar to plane00, but maps sorting order
for U+00DF to 0x00DF instead of 0x0053.
*/
-static MY_UNICASE_INFO plane00_mysql500[]={
+static MY_UNICASE_CHARACTER plane00_mysql500[]={
{0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
{0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
{0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005},
@@ -369,7 +446,7 @@ static MY_UNICASE_INFO plane00_mysql500[]={
};
-static MY_UNICASE_INFO plane01[]={
+static MY_UNICASE_CHARACTER plane01[]={
{0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041},
{0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041},
{0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041},
@@ -500,7 +577,7 @@ static MY_UNICASE_INFO plane01[]={
{0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8}
};
-static MY_UNICASE_INFO plane02[]={
+static MY_UNICASE_CHARACTER plane02[]={
{0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041},
{0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041},
{0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045},
@@ -631,7 +708,7 @@ static MY_UNICASE_INFO plane02[]={
{0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF}
};
-static MY_UNICASE_INFO plane03[]={
+static MY_UNICASE_CHARACTER plane03[]={
{0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301},
{0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303},
{0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305},
@@ -762,7 +839,7 @@ static MY_UNICASE_INFO plane03[]={
{0x03FE,0x03FE,0x03FE}, {0x03FF,0x03FF,0x03FF}
};
-static MY_UNICASE_INFO plane04[]={
+static MY_UNICASE_CHARACTER plane04[]={
{0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415},
{0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413},
{0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405},
@@ -893,7 +970,7 @@ static MY_UNICASE_INFO plane04[]={
{0x04FE,0x04FE,0x04FE}, {0x04FF,0x04FF,0x04FF}
};
-static MY_UNICASE_INFO plane05[]={
+static MY_UNICASE_CHARACTER plane05[]={
{0x0500,0x0500,0x0500}, {0x0501,0x0501,0x0501},
{0x0502,0x0502,0x0502}, {0x0503,0x0503,0x0503},
{0x0504,0x0504,0x0504}, {0x0505,0x0505,0x0505},
@@ -1024,7 +1101,7 @@ static MY_UNICASE_INFO plane05[]={
{0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF}
};
-static MY_UNICASE_INFO plane1E[]={
+static MY_UNICASE_CHARACTER plane1E[]={
{0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041},
{0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042},
{0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042},
@@ -1155,7 +1232,7 @@ static MY_UNICASE_INFO plane1E[]={
{0x1EFE,0x1EFE,0x1EFE}, {0x1EFF,0x1EFF,0x1EFF}
};
-static MY_UNICASE_INFO plane1F[]={
+static MY_UNICASE_CHARACTER plane1F[]={
{0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391},
{0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391},
{0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391},
@@ -1286,7 +1363,7 @@ static MY_UNICASE_INFO plane1F[]={
{0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF}
};
-static MY_UNICASE_INFO plane21[]={
+static MY_UNICASE_CHARACTER plane21[]={
{0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101},
{0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103},
{0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105},
@@ -1417,7 +1494,7 @@ static MY_UNICASE_INFO plane21[]={
{0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF}
};
-static MY_UNICASE_INFO plane24[]={
+static MY_UNICASE_CHARACTER plane24[]={
{0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401},
{0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403},
{0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405},
@@ -1548,7 +1625,7 @@ static MY_UNICASE_INFO plane24[]={
{0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF}
};
-static MY_UNICASE_INFO planeFF[]={
+static MY_UNICASE_CHARACTER planeFF[]={
{0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01},
{0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03},
{0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05},
@@ -1679,7 +1756,9 @@ static MY_UNICASE_INFO planeFF[]={
{0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF}
};
-MY_UNICASE_INFO *const my_unicase_default[256]={
+
+static MY_UNICASE_CHARACTER *my_unicase_pages_default[256]=
+{
plane00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -1712,14 +1791,20 @@ MY_UNICASE_INFO *const my_unicase_default[256]={
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, planeFF
+};
+
+MY_UNICASE_INFO my_unicase_default=
+{
+ 0xFFFF,
+ my_unicase_pages_default
};
/*
Reproduce old utf8_general_ci behaviour before we fixed Bug#27877.
*/
-MY_UNICASE_INFO *const my_unicase_mysql500[256]={
+MY_UNICASE_CHARACTER *my_unicase_pages_mysql500[256]={
plane00_mysql500,
plane01, plane02, plane03, plane04, plane05, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -1757,6 +1842,13 @@ MY_UNICASE_INFO *const my_unicase_mysql500[256]={
};
+MY_UNICASE_INFO my_unicase_mysql500=
+{
+ 0xFFFF,
+ my_unicase_pages_mysql500
+};
+
+
/*
Turkish lower/upper mapping:
1. LOWER(0x0049 LATIN CAPITAL LETTER I) ->
@@ -1765,7 +1857,7 @@ MY_UNICASE_INFO *const my_unicase_mysql500[256]={
0x0130 LATIN CAPITAL LETTER I WITH DOT ABOVE
*/
-static MY_UNICASE_INFO turk00[]=
+static MY_UNICASE_CHARACTER turk00[]=
{
{0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001},
{0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003},
@@ -1899,7 +1991,7 @@ static MY_UNICASE_INFO turk00[]=
-MY_UNICASE_INFO *const my_unicase_turkish[256]=
+static MY_UNICASE_CHARACTER *my_unicase_pages_turkish[256]=
{
turk00, plane01, plane02, plane03, plane04, plane05, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
@@ -1936,14 +2028,2428 @@ MY_UNICASE_INFO *const my_unicase_turkish[256]=
};
+MY_UNICASE_INFO my_unicase_turkish=
+{
+ 0xFFFF,
+ my_unicase_pages_turkish
+};
+
+
+/* Unicode-5.2.0 case folding information */
+static MY_UNICASE_CHARACTER u520p00[]={
+ {0x0000,0x0000,0x0000}, {0x0001,0x0001,0x0001}, /* 0000 */
+ {0x0002,0x0002,0x0002}, {0x0003,0x0003,0x0003}, /* 0002 */
+ {0x0004,0x0004,0x0004}, {0x0005,0x0005,0x0005}, /* 0004 */
+ {0x0006,0x0006,0x0006}, {0x0007,0x0007,0x0007}, /* 0006 */
+ {0x0008,0x0008,0x0008}, {0x0009,0x0009,0x0009}, /* 0008 */
+ {0x000A,0x000A,0x000A}, {0x000B,0x000B,0x000B}, /* 000A */
+ {0x000C,0x000C,0x000C}, {0x000D,0x000D,0x000D}, /* 000C */
+ {0x000E,0x000E,0x000E}, {0x000F,0x000F,0x000F}, /* 000E */
+ {0x0010,0x0010,0x0010}, {0x0011,0x0011,0x0011}, /* 0010 */
+ {0x0012,0x0012,0x0012}, {0x0013,0x0013,0x0013}, /* 0012 */
+ {0x0014,0x0014,0x0014}, {0x0015,0x0015,0x0015}, /* 0014 */
+ {0x0016,0x0016,0x0016}, {0x0017,0x0017,0x0017}, /* 0016 */
+ {0x0018,0x0018,0x0018}, {0x0019,0x0019,0x0019}, /* 0018 */
+ {0x001A,0x001A,0x001A}, {0x001B,0x001B,0x001B}, /* 001A */
+ {0x001C,0x001C,0x001C}, {0x001D,0x001D,0x001D}, /* 001C */
+ {0x001E,0x001E,0x001E}, {0x001F,0x001F,0x001F}, /* 001E */
+ {0x0020,0x0020,0x0020}, {0x0021,0x0021,0x0021}, /* 0020 */
+ {0x0022,0x0022,0x0022}, {0x0023,0x0023,0x0023}, /* 0022 */
+ {0x0024,0x0024,0x0024}, {0x0025,0x0025,0x0025}, /* 0024 */
+ {0x0026,0x0026,0x0026}, {0x0027,0x0027,0x0027}, /* 0026 */
+ {0x0028,0x0028,0x0028}, {0x0029,0x0029,0x0029}, /* 0028 */
+ {0x002A,0x002A,0x002A}, {0x002B,0x002B,0x002B}, /* 002A */
+ {0x002C,0x002C,0x002C}, {0x002D,0x002D,0x002D}, /* 002C */
+ {0x002E,0x002E,0x002E}, {0x002F,0x002F,0x002F}, /* 002E */
+ {0x0030,0x0030,0x0030}, {0x0031,0x0031,0x0031}, /* 0030 */
+ {0x0032,0x0032,0x0032}, {0x0033,0x0033,0x0033}, /* 0032 */
+ {0x0034,0x0034,0x0034}, {0x0035,0x0035,0x0035}, /* 0034 */
+ {0x0036,0x0036,0x0036}, {0x0037,0x0037,0x0037}, /* 0036 */
+ {0x0038,0x0038,0x0038}, {0x0039,0x0039,0x0039}, /* 0038 */
+ {0x003A,0x003A,0x003A}, {0x003B,0x003B,0x003B}, /* 003A */
+ {0x003C,0x003C,0x003C}, {0x003D,0x003D,0x003D}, /* 003C */
+ {0x003E,0x003E,0x003E}, {0x003F,0x003F,0x003F}, /* 003E */
+ {0x0040,0x0040,0x0040}, {0x0041,0x0061,0x0041}, /* 0040 */
+ {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0042 */
+ {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0044 */
+ {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0046 */
+ {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0048 */
+ {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 004A */
+ {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 004C */
+ {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 004E */
+ {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0050 */
+ {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0052 */
+ {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0054 */
+ {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0056 */
+ {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0058 */
+ {0x005A,0x007A,0x005A}, {0x005B,0x005B,0x005B}, /* 005A */
+ {0x005C,0x005C,0x005C}, {0x005D,0x005D,0x005D}, /* 005C */
+ {0x005E,0x005E,0x005E}, {0x005F,0x005F,0x005F}, /* 005E */
+ {0x0060,0x0060,0x0060}, {0x0041,0x0061,0x0041}, /* 0060 */
+ {0x0042,0x0062,0x0042}, {0x0043,0x0063,0x0043}, /* 0062 */
+ {0x0044,0x0064,0x0044}, {0x0045,0x0065,0x0045}, /* 0064 */
+ {0x0046,0x0066,0x0046}, {0x0047,0x0067,0x0047}, /* 0066 */
+ {0x0048,0x0068,0x0048}, {0x0049,0x0069,0x0049}, /* 0068 */
+ {0x004A,0x006A,0x004A}, {0x004B,0x006B,0x004B}, /* 006A */
+ {0x004C,0x006C,0x004C}, {0x004D,0x006D,0x004D}, /* 006C */
+ {0x004E,0x006E,0x004E}, {0x004F,0x006F,0x004F}, /* 006E */
+ {0x0050,0x0070,0x0050}, {0x0051,0x0071,0x0051}, /* 0070 */
+ {0x0052,0x0072,0x0052}, {0x0053,0x0073,0x0053}, /* 0072 */
+ {0x0054,0x0074,0x0054}, {0x0055,0x0075,0x0055}, /* 0074 */
+ {0x0056,0x0076,0x0056}, {0x0057,0x0077,0x0057}, /* 0076 */
+ {0x0058,0x0078,0x0058}, {0x0059,0x0079,0x0059}, /* 0078 */
+ {0x005A,0x007A,0x005A}, {0x007B,0x007B,0x007B}, /* 007A */
+ {0x007C,0x007C,0x007C}, {0x007D,0x007D,0x007D}, /* 007C */
+ {0x007E,0x007E,0x007E}, {0x007F,0x007F,0x007F}, /* 007E */
+ {0x0080,0x0080,0x0080}, {0x0081,0x0081,0x0081}, /* 0080 */
+ {0x0082,0x0082,0x0082}, {0x0083,0x0083,0x0083}, /* 0082 */
+ {0x0084,0x0084,0x0084}, {0x0085,0x0085,0x0085}, /* 0084 */
+ {0x0086,0x0086,0x0086}, {0x0087,0x0087,0x0087}, /* 0086 */
+ {0x0088,0x0088,0x0088}, {0x0089,0x0089,0x0089}, /* 0088 */
+ {0x008A,0x008A,0x008A}, {0x008B,0x008B,0x008B}, /* 008A */
+ {0x008C,0x008C,0x008C}, {0x008D,0x008D,0x008D}, /* 008C */
+ {0x008E,0x008E,0x008E}, {0x008F,0x008F,0x008F}, /* 008E */
+ {0x0090,0x0090,0x0090}, {0x0091,0x0091,0x0091}, /* 0090 */
+ {0x0092,0x0092,0x0092}, {0x0093,0x0093,0x0093}, /* 0092 */
+ {0x0094,0x0094,0x0094}, {0x0095,0x0095,0x0095}, /* 0094 */
+ {0x0096,0x0096,0x0096}, {0x0097,0x0097,0x0097}, /* 0096 */
+ {0x0098,0x0098,0x0098}, {0x0099,0x0099,0x0099}, /* 0098 */
+ {0x009A,0x009A,0x009A}, {0x009B,0x009B,0x009B}, /* 009A */
+ {0x009C,0x009C,0x009C}, {0x009D,0x009D,0x009D}, /* 009C */
+ {0x009E,0x009E,0x009E}, {0x009F,0x009F,0x009F}, /* 009E */
+ {0x00A0,0x00A0,0x00A0}, {0x00A1,0x00A1,0x00A1}, /* 00A0 */
+ {0x00A2,0x00A2,0x00A2}, {0x00A3,0x00A3,0x00A3}, /* 00A2 */
+ {0x00A4,0x00A4,0x00A4}, {0x00A5,0x00A5,0x00A5}, /* 00A4 */
+ {0x00A6,0x00A6,0x00A6}, {0x00A7,0x00A7,0x00A7}, /* 00A6 */
+ {0x00A8,0x00A8,0x00A8}, {0x00A9,0x00A9,0x00A9}, /* 00A8 */
+ {0x00AA,0x00AA,0x00AA}, {0x00AB,0x00AB,0x00AB}, /* 00AA */
+ {0x00AC,0x00AC,0x00AC}, {0x00AD,0x00AD,0x00AD}, /* 00AC */
+ {0x00AE,0x00AE,0x00AE}, {0x00AF,0x00AF,0x00AF}, /* 00AE */
+ {0x00B0,0x00B0,0x00B0}, {0x00B1,0x00B1,0x00B1}, /* 00B0 */
+ {0x00B2,0x00B2,0x00B2}, {0x00B3,0x00B3,0x00B3}, /* 00B2 */
+ {0x00B4,0x00B4,0x00B4}, {0x039C,0x00B5,0x039C}, /* 00B4 */
+ {0x00B6,0x00B6,0x00B6}, {0x00B7,0x00B7,0x00B7}, /* 00B6 */
+ {0x00B8,0x00B8,0x00B8}, {0x00B9,0x00B9,0x00B9}, /* 00B8 */
+ {0x00BA,0x00BA,0x00BA}, {0x00BB,0x00BB,0x00BB}, /* 00BA */
+ {0x00BC,0x00BC,0x00BC}, {0x00BD,0x00BD,0x00BD}, /* 00BC */
+ {0x00BE,0x00BE,0x00BE}, {0x00BF,0x00BF,0x00BF}, /* 00BE */
+ {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00C0 */
+ {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00C2 */
+ {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00C4 */
+ {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00C6 */
+ {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00C8 */
+ {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00CA */
+ {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00CC */
+ {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00CE */
+ {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00D0 */
+ {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00D2 */
+ {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00D4 */
+ {0x00D6,0x00F6,0x004F}, {0x00D7,0x00D7,0x00D7}, /* 00D6 */
+ {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00D8 */
+ {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00DA */
+ {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00DC */
+ {0x00DE,0x00FE,0x00DE}, {0x00DF,0x00DF,0x0053}, /* 00DE */
+ {0x00C0,0x00E0,0x0041}, {0x00C1,0x00E1,0x0041}, /* 00E0 */
+ {0x00C2,0x00E2,0x0041}, {0x00C3,0x00E3,0x0041}, /* 00E2 */
+ {0x00C4,0x00E4,0x0041}, {0x00C5,0x00E5,0x0041}, /* 00E4 */
+ {0x00C6,0x00E6,0x00C6}, {0x00C7,0x00E7,0x0043}, /* 00E6 */
+ {0x00C8,0x00E8,0x0045}, {0x00C9,0x00E9,0x0045}, /* 00E8 */
+ {0x00CA,0x00EA,0x0045}, {0x00CB,0x00EB,0x0045}, /* 00EA */
+ {0x00CC,0x00EC,0x0049}, {0x00CD,0x00ED,0x0049}, /* 00EC */
+ {0x00CE,0x00EE,0x0049}, {0x00CF,0x00EF,0x0049}, /* 00EE */
+ {0x00D0,0x00F0,0x00D0}, {0x00D1,0x00F1,0x004E}, /* 00F0 */
+ {0x00D2,0x00F2,0x004F}, {0x00D3,0x00F3,0x004F}, /* 00F2 */
+ {0x00D4,0x00F4,0x004F}, {0x00D5,0x00F5,0x004F}, /* 00F4 */
+ {0x00D6,0x00F6,0x004F}, {0x00F7,0x00F7,0x00F7}, /* 00F6 */
+ {0x00D8,0x00F8,0x00D8}, {0x00D9,0x00F9,0x0055}, /* 00F8 */
+ {0x00DA,0x00FA,0x0055}, {0x00DB,0x00FB,0x0055}, /* 00FA */
+ {0x00DC,0x00FC,0x0055}, {0x00DD,0x00FD,0x0059}, /* 00FC */
+ {0x00DE,0x00FE,0x00DE}, {0x0178,0x00FF,0x0059} /* 00FE */
+};
+
+static MY_UNICASE_CHARACTER u520p01[]={
+ {0x0100,0x0101,0x0041}, {0x0100,0x0101,0x0041}, /* 0100 */
+ {0x0102,0x0103,0x0041}, {0x0102,0x0103,0x0041}, /* 0102 */
+ {0x0104,0x0105,0x0041}, {0x0104,0x0105,0x0041}, /* 0104 */
+ {0x0106,0x0107,0x0043}, {0x0106,0x0107,0x0043}, /* 0106 */
+ {0x0108,0x0109,0x0043}, {0x0108,0x0109,0x0043}, /* 0108 */
+ {0x010A,0x010B,0x0043}, {0x010A,0x010B,0x0043}, /* 010A */
+ {0x010C,0x010D,0x0043}, {0x010C,0x010D,0x0043}, /* 010C */
+ {0x010E,0x010F,0x0044}, {0x010E,0x010F,0x0044}, /* 010E */
+ {0x0110,0x0111,0x0110}, {0x0110,0x0111,0x0110}, /* 0110 */
+ {0x0112,0x0113,0x0045}, {0x0112,0x0113,0x0045}, /* 0112 */
+ {0x0114,0x0115,0x0045}, {0x0114,0x0115,0x0045}, /* 0114 */
+ {0x0116,0x0117,0x0045}, {0x0116,0x0117,0x0045}, /* 0116 */
+ {0x0118,0x0119,0x0045}, {0x0118,0x0119,0x0045}, /* 0118 */
+ {0x011A,0x011B,0x0045}, {0x011A,0x011B,0x0045}, /* 011A */
+ {0x011C,0x011D,0x0047}, {0x011C,0x011D,0x0047}, /* 011C */
+ {0x011E,0x011F,0x0047}, {0x011E,0x011F,0x0047}, /* 011E */
+ {0x0120,0x0121,0x0047}, {0x0120,0x0121,0x0047}, /* 0120 */
+ {0x0122,0x0123,0x0047}, {0x0122,0x0123,0x0047}, /* 0122 */
+ {0x0124,0x0125,0x0048}, {0x0124,0x0125,0x0048}, /* 0124 */
+ {0x0126,0x0127,0x0126}, {0x0126,0x0127,0x0126}, /* 0126 */
+ {0x0128,0x0129,0x0049}, {0x0128,0x0129,0x0049}, /* 0128 */
+ {0x012A,0x012B,0x0049}, {0x012A,0x012B,0x0049}, /* 012A */
+ {0x012C,0x012D,0x0049}, {0x012C,0x012D,0x0049}, /* 012C */
+ {0x012E,0x012F,0x0049}, {0x012E,0x012F,0x0049}, /* 012E */
+ {0x0130,0x0069,0x0049}, {0x0049,0x0131,0x0049}, /* 0130 */
+ {0x0132,0x0133,0x0132}, {0x0132,0x0133,0x0132}, /* 0132 */
+ {0x0134,0x0135,0x004A}, {0x0134,0x0135,0x004A}, /* 0134 */
+ {0x0136,0x0137,0x004B}, {0x0136,0x0137,0x004B}, /* 0136 */
+ {0x0138,0x0138,0x0138}, {0x0139,0x013A,0x004C}, /* 0138 */
+ {0x0139,0x013A,0x004C}, {0x013B,0x013C,0x004C}, /* 013A */
+ {0x013B,0x013C,0x004C}, {0x013D,0x013E,0x004C}, /* 013C */
+ {0x013D,0x013E,0x004C}, {0x013F,0x0140,0x013F}, /* 013E */
+ {0x013F,0x0140,0x013F}, {0x0141,0x0142,0x0141}, /* 0140 */
+ {0x0141,0x0142,0x0141}, {0x0143,0x0144,0x004E}, /* 0142 */
+ {0x0143,0x0144,0x004E}, {0x0145,0x0146,0x004E}, /* 0144 */
+ {0x0145,0x0146,0x004E}, {0x0147,0x0148,0x004E}, /* 0146 */
+ {0x0147,0x0148,0x004E}, {0x0149,0x0149,0x0149}, /* 0148 */
+ {0x014A,0x014B,0x014A}, {0x014A,0x014B,0x014A}, /* 014A */
+ {0x014C,0x014D,0x004F}, {0x014C,0x014D,0x004F}, /* 014C */
+ {0x014E,0x014F,0x004F}, {0x014E,0x014F,0x004F}, /* 014E */
+ {0x0150,0x0151,0x004F}, {0x0150,0x0151,0x004F}, /* 0150 */
+ {0x0152,0x0153,0x0152}, {0x0152,0x0153,0x0152}, /* 0152 */
+ {0x0154,0x0155,0x0052}, {0x0154,0x0155,0x0052}, /* 0154 */
+ {0x0156,0x0157,0x0052}, {0x0156,0x0157,0x0052}, /* 0156 */
+ {0x0158,0x0159,0x0052}, {0x0158,0x0159,0x0052}, /* 0158 */
+ {0x015A,0x015B,0x0053}, {0x015A,0x015B,0x0053}, /* 015A */
+ {0x015C,0x015D,0x0053}, {0x015C,0x015D,0x0053}, /* 015C */
+ {0x015E,0x015F,0x0053}, {0x015E,0x015F,0x0053}, /* 015E */
+ {0x0160,0x0161,0x0053}, {0x0160,0x0161,0x0053}, /* 0160 */
+ {0x0162,0x0163,0x0054}, {0x0162,0x0163,0x0054}, /* 0162 */
+ {0x0164,0x0165,0x0054}, {0x0164,0x0165,0x0054}, /* 0164 */
+ {0x0166,0x0167,0x0166}, {0x0166,0x0167,0x0166}, /* 0166 */
+ {0x0168,0x0169,0x0055}, {0x0168,0x0169,0x0055}, /* 0168 */
+ {0x016A,0x016B,0x0055}, {0x016A,0x016B,0x0055}, /* 016A */
+ {0x016C,0x016D,0x0055}, {0x016C,0x016D,0x0055}, /* 016C */
+ {0x016E,0x016F,0x0055}, {0x016E,0x016F,0x0055}, /* 016E */
+ {0x0170,0x0171,0x0055}, {0x0170,0x0171,0x0055}, /* 0170 */
+ {0x0172,0x0173,0x0055}, {0x0172,0x0173,0x0055}, /* 0172 */
+ {0x0174,0x0175,0x0057}, {0x0174,0x0175,0x0057}, /* 0174 */
+ {0x0176,0x0177,0x0059}, {0x0176,0x0177,0x0059}, /* 0176 */
+ {0x0178,0x00FF,0x0059}, {0x0179,0x017A,0x005A}, /* 0178 */
+ {0x0179,0x017A,0x005A}, {0x017B,0x017C,0x005A}, /* 017A */
+ {0x017B,0x017C,0x005A}, {0x017D,0x017E,0x005A}, /* 017C */
+ {0x017D,0x017E,0x005A}, {0x0053,0x017F,0x0053}, /* 017E */
+ {0x0243,0x0180,0x0243}, {0x0181,0x0253,0x0181}, /* 0180 */
+ {0x0182,0x0183,0x0182}, {0x0182,0x0183,0x0182}, /* 0182 */
+ {0x0184,0x0185,0x0184}, {0x0184,0x0185,0x0184}, /* 0184 */
+ {0x0186,0x0254,0x0186}, {0x0187,0x0188,0x0187}, /* 0186 */
+ {0x0187,0x0188,0x0187}, {0x0189,0x0256,0x0189}, /* 0188 */
+ {0x018A,0x0257,0x018A}, {0x018B,0x018C,0x018B}, /* 018A */
+ {0x018B,0x018C,0x018B}, {0x018D,0x018D,0x018D}, /* 018C */
+ {0x018E,0x01DD,0x018E}, {0x018F,0x0259,0x018F}, /* 018E */
+ {0x0190,0x025B,0x0190}, {0x0191,0x0192,0x0191}, /* 0190 */
+ {0x0191,0x0192,0x0191}, {0x0193,0x0260,0x0193}, /* 0192 */
+ {0x0194,0x0263,0x0194}, {0x01F6,0x0195,0x01F6}, /* 0194 */
+ {0x0196,0x0269,0x0196}, {0x0197,0x0268,0x0197}, /* 0196 */
+ {0x0198,0x0199,0x0198}, {0x0198,0x0199,0x0198}, /* 0198 */
+ {0x023D,0x019A,0x023D}, {0x019B,0x019B,0x019B}, /* 019A */
+ {0x019C,0x026F,0x019C}, {0x019D,0x0272,0x019D}, /* 019C */
+ {0x0220,0x019E,0x0220}, {0x019F,0x0275,0x019F}, /* 019E */
+ {0x01A0,0x01A1,0x004F}, {0x01A0,0x01A1,0x004F}, /* 01A0 */
+ {0x01A2,0x01A3,0x01A2}, {0x01A2,0x01A3,0x01A2}, /* 01A2 */
+ {0x01A4,0x01A5,0x01A4}, {0x01A4,0x01A5,0x01A4}, /* 01A4 */
+ {0x01A6,0x0280,0x01A6}, {0x01A7,0x01A8,0x01A7}, /* 01A6 */
+ {0x01A7,0x01A8,0x01A7}, {0x01A9,0x0283,0x01A9}, /* 01A8 */
+ {0x01AA,0x01AA,0x01AA}, {0x01AB,0x01AB,0x01AB}, /* 01AA */
+ {0x01AC,0x01AD,0x01AC}, {0x01AC,0x01AD,0x01AC}, /* 01AC */
+ {0x01AE,0x0288,0x01AE}, {0x01AF,0x01B0,0x0055}, /* 01AE */
+ {0x01AF,0x01B0,0x0055}, {0x01B1,0x028A,0x01B1}, /* 01B0 */
+ {0x01B2,0x028B,0x01B2}, {0x01B3,0x01B4,0x01B3}, /* 01B2 */
+ {0x01B3,0x01B4,0x01B3}, {0x01B5,0x01B6,0x01B5}, /* 01B4 */
+ {0x01B5,0x01B6,0x01B5}, {0x01B7,0x0292,0x01B7}, /* 01B6 */
+ {0x01B8,0x01B9,0x01B8}, {0x01B8,0x01B9,0x01B8}, /* 01B8 */
+ {0x01BA,0x01BA,0x01BA}, {0x01BB,0x01BB,0x01BB}, /* 01BA */
+ {0x01BC,0x01BD,0x01BC}, {0x01BC,0x01BD,0x01BC}, /* 01BC */
+ {0x01BE,0x01BE,0x01BE}, {0x01F7,0x01BF,0x01F7}, /* 01BE */
+ {0x01C0,0x01C0,0x01C0}, {0x01C1,0x01C1,0x01C1}, /* 01C0 */
+ {0x01C2,0x01C2,0x01C2}, {0x01C3,0x01C3,0x01C3}, /* 01C2 */
+ {0x01C4,0x01C6,0x01C4}, {0x01C4,0x01C6,0x01C4}, /* 01C4 */
+ {0x01C4,0x01C6,0x01C4}, {0x01C7,0x01C9,0x01C7}, /* 01C6 */
+ {0x01C7,0x01C9,0x01C7}, {0x01C7,0x01C9,0x01C7}, /* 01C8 */
+ {0x01CA,0x01CC,0x01CA}, {0x01CA,0x01CC,0x01CA}, /* 01CA */
+ {0x01CA,0x01CC,0x01CA}, {0x01CD,0x01CE,0x0041}, /* 01CC */
+ {0x01CD,0x01CE,0x0041}, {0x01CF,0x01D0,0x0049}, /* 01CE */
+ {0x01CF,0x01D0,0x0049}, {0x01D1,0x01D2,0x004F}, /* 01D0 */
+ {0x01D1,0x01D2,0x004F}, {0x01D3,0x01D4,0x0055}, /* 01D2 */
+ {0x01D3,0x01D4,0x0055}, {0x01D5,0x01D6,0x0055}, /* 01D4 */
+ {0x01D5,0x01D6,0x0055}, {0x01D7,0x01D8,0x0055}, /* 01D6 */
+ {0x01D7,0x01D8,0x0055}, {0x01D9,0x01DA,0x0055}, /* 01D8 */
+ {0x01D9,0x01DA,0x0055}, {0x01DB,0x01DC,0x0055}, /* 01DA */
+ {0x01DB,0x01DC,0x0055}, {0x018E,0x01DD,0x018E}, /* 01DC */
+ {0x01DE,0x01DF,0x0041}, {0x01DE,0x01DF,0x0041}, /* 01DE */
+ {0x01E0,0x01E1,0x0041}, {0x01E0,0x01E1,0x0041}, /* 01E0 */
+ {0x01E2,0x01E3,0x00C6}, {0x01E2,0x01E3,0x00C6}, /* 01E2 */
+ {0x01E4,0x01E5,0x01E4}, {0x01E4,0x01E5,0x01E4}, /* 01E4 */
+ {0x01E6,0x01E7,0x0047}, {0x01E6,0x01E7,0x0047}, /* 01E6 */
+ {0x01E8,0x01E9,0x004B}, {0x01E8,0x01E9,0x004B}, /* 01E8 */
+ {0x01EA,0x01EB,0x004F}, {0x01EA,0x01EB,0x004F}, /* 01EA */
+ {0x01EC,0x01ED,0x004F}, {0x01EC,0x01ED,0x004F}, /* 01EC */
+ {0x01EE,0x01EF,0x01B7}, {0x01EE,0x01EF,0x01B7}, /* 01EE */
+ {0x01F0,0x01F0,0x004A}, {0x01F1,0x01F3,0x01F1}, /* 01F0 */
+ {0x01F1,0x01F3,0x01F1}, {0x01F1,0x01F3,0x01F1}, /* 01F2 */
+ {0x01F4,0x01F5,0x0047}, {0x01F4,0x01F5,0x0047}, /* 01F4 */
+ {0x01F6,0x0195,0x01F6}, {0x01F7,0x01BF,0x01F7}, /* 01F6 */
+ {0x01F8,0x01F9,0x004E}, {0x01F8,0x01F9,0x004E}, /* 01F8 */
+ {0x01FA,0x01FB,0x0041}, {0x01FA,0x01FB,0x0041}, /* 01FA */
+ {0x01FC,0x01FD,0x00C6}, {0x01FC,0x01FD,0x00C6}, /* 01FC */
+ {0x01FE,0x01FF,0x00D8}, {0x01FE,0x01FF,0x00D8} /* 01FE */
+};
+
+static MY_UNICASE_CHARACTER u520p02[]={
+ {0x0200,0x0201,0x0041}, {0x0200,0x0201,0x0041}, /* 0200 */
+ {0x0202,0x0203,0x0041}, {0x0202,0x0203,0x0041}, /* 0202 */
+ {0x0204,0x0205,0x0045}, {0x0204,0x0205,0x0045}, /* 0204 */
+ {0x0206,0x0207,0x0045}, {0x0206,0x0207,0x0045}, /* 0206 */
+ {0x0208,0x0209,0x0049}, {0x0208,0x0209,0x0049}, /* 0208 */
+ {0x020A,0x020B,0x0049}, {0x020A,0x020B,0x0049}, /* 020A */
+ {0x020C,0x020D,0x004F}, {0x020C,0x020D,0x004F}, /* 020C */
+ {0x020E,0x020F,0x004F}, {0x020E,0x020F,0x004F}, /* 020E */
+ {0x0210,0x0211,0x0052}, {0x0210,0x0211,0x0052}, /* 0210 */
+ {0x0212,0x0213,0x0052}, {0x0212,0x0213,0x0052}, /* 0212 */
+ {0x0214,0x0215,0x0055}, {0x0214,0x0215,0x0055}, /* 0214 */
+ {0x0216,0x0217,0x0055}, {0x0216,0x0217,0x0055}, /* 0216 */
+ {0x0218,0x0219,0x0053}, {0x0218,0x0219,0x0053}, /* 0218 */
+ {0x021A,0x021B,0x0054}, {0x021A,0x021B,0x0054}, /* 021A */
+ {0x021C,0x021D,0x021C}, {0x021C,0x021D,0x021C}, /* 021C */
+ {0x021E,0x021F,0x0048}, {0x021E,0x021F,0x0048}, /* 021E */
+ {0x0220,0x019E,0x0220}, {0x0221,0x0221,0x0221}, /* 0220 */
+ {0x0222,0x0223,0x0222}, {0x0222,0x0223,0x0222}, /* 0222 */
+ {0x0224,0x0225,0x0224}, {0x0224,0x0225,0x0224}, /* 0224 */
+ {0x0226,0x0227,0x0041}, {0x0226,0x0227,0x0041}, /* 0226 */
+ {0x0228,0x0229,0x0045}, {0x0228,0x0229,0x0045}, /* 0228 */
+ {0x022A,0x022B,0x004F}, {0x022A,0x022B,0x004F}, /* 022A */
+ {0x022C,0x022D,0x004F}, {0x022C,0x022D,0x004F}, /* 022C */
+ {0x022E,0x022F,0x004F}, {0x022E,0x022F,0x004F}, /* 022E */
+ {0x0230,0x0231,0x004F}, {0x0230,0x0231,0x004F}, /* 0230 */
+ {0x0232,0x0233,0x0059}, {0x0232,0x0233,0x0059}, /* 0232 */
+ {0x0234,0x0234,0x0234}, {0x0235,0x0235,0x0235}, /* 0234 */
+ {0x0236,0x0236,0x0236}, {0x0237,0x0237,0x0237}, /* 0236 */
+ {0x0238,0x0238,0x0238}, {0x0239,0x0239,0x0239}, /* 0238 */
+ {0x023A,0x2C65,0x023A}, {0x023B,0x023C,0x023B}, /* 023A */
+ {0x023B,0x023C,0x023B}, {0x023D,0x019A,0x023D}, /* 023C */
+ {0x023E,0x2C66,0x023E}, {0x2C7E,0x023F,0x2C7E}, /* 023E */
+ {0x2C7F,0x0240,0x2C7F}, {0x0241,0x0242,0x0241}, /* 0240 */
+ {0x0241,0x0242,0x0241}, {0x0243,0x0180,0x0243}, /* 0242 */
+ {0x0244,0x0289,0x0244}, {0x0245,0x028C,0x0245}, /* 0244 */
+ {0x0246,0x0247,0x0246}, {0x0246,0x0247,0x0246}, /* 0246 */
+ {0x0248,0x0249,0x0248}, {0x0248,0x0249,0x0248}, /* 0248 */
+ {0x024A,0x024B,0x024A}, {0x024A,0x024B,0x024A}, /* 024A */
+ {0x024C,0x024D,0x024C}, {0x024C,0x024D,0x024C}, /* 024C */
+ {0x024E,0x024F,0x024E}, {0x024E,0x024F,0x024E}, /* 024E */
+ {0x2C6F,0x0250,0x2C6F}, {0x2C6D,0x0251,0x2C6D}, /* 0250 */
+ {0x2C70,0x0252,0x2C70}, {0x0181,0x0253,0x0181}, /* 0252 */
+ {0x0186,0x0254,0x0186}, {0x0255,0x0255,0x0255}, /* 0254 */
+ {0x0189,0x0256,0x0189}, {0x018A,0x0257,0x018A}, /* 0256 */
+ {0x0258,0x0258,0x0258}, {0x018F,0x0259,0x018F}, /* 0258 */
+ {0x025A,0x025A,0x025A}, {0x0190,0x025B,0x0190}, /* 025A */
+ {0x025C,0x025C,0x025C}, {0x025D,0x025D,0x025D}, /* 025C */
+ {0x025E,0x025E,0x025E}, {0x025F,0x025F,0x025F}, /* 025E */
+ {0x0193,0x0260,0x0193}, {0x0261,0x0261,0x0261}, /* 0260 */
+ {0x0262,0x0262,0x0262}, {0x0194,0x0263,0x0194}, /* 0262 */
+ {0x0264,0x0264,0x0264}, {0x0265,0x0265,0x0265}, /* 0264 */
+ {0x0266,0x0266,0x0266}, {0x0267,0x0267,0x0267}, /* 0266 */
+ {0x0197,0x0268,0x0197}, {0x0196,0x0269,0x0196}, /* 0268 */
+ {0x026A,0x026A,0x026A}, {0x2C62,0x026B,0x2C62}, /* 026A */
+ {0x026C,0x026C,0x026C}, {0x026D,0x026D,0x026D}, /* 026C */
+ {0x026E,0x026E,0x026E}, {0x019C,0x026F,0x019C}, /* 026E */
+ {0x0270,0x0270,0x0270}, {0x2C6E,0x0271,0x2C6E}, /* 0270 */
+ {0x019D,0x0272,0x019D}, {0x0273,0x0273,0x0273}, /* 0272 */
+ {0x0274,0x0274,0x0274}, {0x019F,0x0275,0x019F}, /* 0274 */
+ {0x0276,0x0276,0x0276}, {0x0277,0x0277,0x0277}, /* 0276 */
+ {0x0278,0x0278,0x0278}, {0x0279,0x0279,0x0279}, /* 0278 */
+ {0x027A,0x027A,0x027A}, {0x027B,0x027B,0x027B}, /* 027A */
+ {0x027C,0x027C,0x027C}, {0x2C64,0x027D,0x2C64}, /* 027C */
+ {0x027E,0x027E,0x027E}, {0x027F,0x027F,0x027F}, /* 027E */
+ {0x01A6,0x0280,0x01A6}, {0x0281,0x0281,0x0281}, /* 0280 */
+ {0x0282,0x0282,0x0282}, {0x01A9,0x0283,0x01A9}, /* 0282 */
+ {0x0284,0x0284,0x0284}, {0x0285,0x0285,0x0285}, /* 0284 */
+ {0x0286,0x0286,0x0286}, {0x0287,0x0287,0x0287}, /* 0286 */
+ {0x01AE,0x0288,0x01AE}, {0x0244,0x0289,0x0244}, /* 0288 */
+ {0x01B1,0x028A,0x01B1}, {0x01B2,0x028B,0x01B2}, /* 028A */
+ {0x0245,0x028C,0x0245}, {0x028D,0x028D,0x028D}, /* 028C */
+ {0x028E,0x028E,0x028E}, {0x028F,0x028F,0x028F}, /* 028E */
+ {0x0290,0x0290,0x0290}, {0x0291,0x0291,0x0291}, /* 0290 */
+ {0x01B7,0x0292,0x01B7}, {0x0293,0x0293,0x0293}, /* 0292 */
+ {0x0294,0x0294,0x0294}, {0x0295,0x0295,0x0295}, /* 0294 */
+ {0x0296,0x0296,0x0296}, {0x0297,0x0297,0x0297}, /* 0296 */
+ {0x0298,0x0298,0x0298}, {0x0299,0x0299,0x0299}, /* 0298 */
+ {0x029A,0x029A,0x029A}, {0x029B,0x029B,0x029B}, /* 029A */
+ {0x029C,0x029C,0x029C}, {0x029D,0x029D,0x029D}, /* 029C */
+ {0x029E,0x029E,0x029E}, {0x029F,0x029F,0x029F}, /* 029E */
+ {0x02A0,0x02A0,0x02A0}, {0x02A1,0x02A1,0x02A1}, /* 02A0 */
+ {0x02A2,0x02A2,0x02A2}, {0x02A3,0x02A3,0x02A3}, /* 02A2 */
+ {0x02A4,0x02A4,0x02A4}, {0x02A5,0x02A5,0x02A5}, /* 02A4 */
+ {0x02A6,0x02A6,0x02A6}, {0x02A7,0x02A7,0x02A7}, /* 02A6 */
+ {0x02A8,0x02A8,0x02A8}, {0x02A9,0x02A9,0x02A9}, /* 02A8 */
+ {0x02AA,0x02AA,0x02AA}, {0x02AB,0x02AB,0x02AB}, /* 02AA */
+ {0x02AC,0x02AC,0x02AC}, {0x02AD,0x02AD,0x02AD}, /* 02AC */
+ {0x02AE,0x02AE,0x02AE}, {0x02AF,0x02AF,0x02AF}, /* 02AE */
+ {0x02B0,0x02B0,0x02B0}, {0x02B1,0x02B1,0x02B1}, /* 02B0 */
+ {0x02B2,0x02B2,0x02B2}, {0x02B3,0x02B3,0x02B3}, /* 02B2 */
+ {0x02B4,0x02B4,0x02B4}, {0x02B5,0x02B5,0x02B5}, /* 02B4 */
+ {0x02B6,0x02B6,0x02B6}, {0x02B7,0x02B7,0x02B7}, /* 02B6 */
+ {0x02B8,0x02B8,0x02B8}, {0x02B9,0x02B9,0x02B9}, /* 02B8 */
+ {0x02BA,0x02BA,0x02BA}, {0x02BB,0x02BB,0x02BB}, /* 02BA */
+ {0x02BC,0x02BC,0x02BC}, {0x02BD,0x02BD,0x02BD}, /* 02BC */
+ {0x02BE,0x02BE,0x02BE}, {0x02BF,0x02BF,0x02BF}, /* 02BE */
+ {0x02C0,0x02C0,0x02C0}, {0x02C1,0x02C1,0x02C1}, /* 02C0 */
+ {0x02C2,0x02C2,0x02C2}, {0x02C3,0x02C3,0x02C3}, /* 02C2 */
+ {0x02C4,0x02C4,0x02C4}, {0x02C5,0x02C5,0x02C5}, /* 02C4 */
+ {0x02C6,0x02C6,0x02C6}, {0x02C7,0x02C7,0x02C7}, /* 02C6 */
+ {0x02C8,0x02C8,0x02C8}, {0x02C9,0x02C9,0x02C9}, /* 02C8 */
+ {0x02CA,0x02CA,0x02CA}, {0x02CB,0x02CB,0x02CB}, /* 02CA */
+ {0x02CC,0x02CC,0x02CC}, {0x02CD,0x02CD,0x02CD}, /* 02CC */
+ {0x02CE,0x02CE,0x02CE}, {0x02CF,0x02CF,0x02CF}, /* 02CE */
+ {0x02D0,0x02D0,0x02D0}, {0x02D1,0x02D1,0x02D1}, /* 02D0 */
+ {0x02D2,0x02D2,0x02D2}, {0x02D3,0x02D3,0x02D3}, /* 02D2 */
+ {0x02D4,0x02D4,0x02D4}, {0x02D5,0x02D5,0x02D5}, /* 02D4 */
+ {0x02D6,0x02D6,0x02D6}, {0x02D7,0x02D7,0x02D7}, /* 02D6 */
+ {0x02D8,0x02D8,0x02D8}, {0x02D9,0x02D9,0x02D9}, /* 02D8 */
+ {0x02DA,0x02DA,0x02DA}, {0x02DB,0x02DB,0x02DB}, /* 02DA */
+ {0x02DC,0x02DC,0x02DC}, {0x02DD,0x02DD,0x02DD}, /* 02DC */
+ {0x02DE,0x02DE,0x02DE}, {0x02DF,0x02DF,0x02DF}, /* 02DE */
+ {0x02E0,0x02E0,0x02E0}, {0x02E1,0x02E1,0x02E1}, /* 02E0 */
+ {0x02E2,0x02E2,0x02E2}, {0x02E3,0x02E3,0x02E3}, /* 02E2 */
+ {0x02E4,0x02E4,0x02E4}, {0x02E5,0x02E5,0x02E5}, /* 02E4 */
+ {0x02E6,0x02E6,0x02E6}, {0x02E7,0x02E7,0x02E7}, /* 02E6 */
+ {0x02E8,0x02E8,0x02E8}, {0x02E9,0x02E9,0x02E9}, /* 02E8 */
+ {0x02EA,0x02EA,0x02EA}, {0x02EB,0x02EB,0x02EB}, /* 02EA */
+ {0x02EC,0x02EC,0x02EC}, {0x02ED,0x02ED,0x02ED}, /* 02EC */
+ {0x02EE,0x02EE,0x02EE}, {0x02EF,0x02EF,0x02EF}, /* 02EE */
+ {0x02F0,0x02F0,0x02F0}, {0x02F1,0x02F1,0x02F1}, /* 02F0 */
+ {0x02F2,0x02F2,0x02F2}, {0x02F3,0x02F3,0x02F3}, /* 02F2 */
+ {0x02F4,0x02F4,0x02F4}, {0x02F5,0x02F5,0x02F5}, /* 02F4 */
+ {0x02F6,0x02F6,0x02F6}, {0x02F7,0x02F7,0x02F7}, /* 02F6 */
+ {0x02F8,0x02F8,0x02F8}, {0x02F9,0x02F9,0x02F9}, /* 02F8 */
+ {0x02FA,0x02FA,0x02FA}, {0x02FB,0x02FB,0x02FB}, /* 02FA */
+ {0x02FC,0x02FC,0x02FC}, {0x02FD,0x02FD,0x02FD}, /* 02FC */
+ {0x02FE,0x02FE,0x02FE}, {0x02FF,0x02FF,0x02FF} /* 02FE */
+};
+
+static MY_UNICASE_CHARACTER u520p03[]={
+ {0x0300,0x0300,0x0300}, {0x0301,0x0301,0x0301}, /* 0300 */
+ {0x0302,0x0302,0x0302}, {0x0303,0x0303,0x0303}, /* 0302 */
+ {0x0304,0x0304,0x0304}, {0x0305,0x0305,0x0305}, /* 0304 */
+ {0x0306,0x0306,0x0306}, {0x0307,0x0307,0x0307}, /* 0306 */
+ {0x0308,0x0308,0x0308}, {0x0309,0x0309,0x0309}, /* 0308 */
+ {0x030A,0x030A,0x030A}, {0x030B,0x030B,0x030B}, /* 030A */
+ {0x030C,0x030C,0x030C}, {0x030D,0x030D,0x030D}, /* 030C */
+ {0x030E,0x030E,0x030E}, {0x030F,0x030F,0x030F}, /* 030E */
+ {0x0310,0x0310,0x0310}, {0x0311,0x0311,0x0311}, /* 0310 */
+ {0x0312,0x0312,0x0312}, {0x0313,0x0313,0x0313}, /* 0312 */
+ {0x0314,0x0314,0x0314}, {0x0315,0x0315,0x0315}, /* 0314 */
+ {0x0316,0x0316,0x0316}, {0x0317,0x0317,0x0317}, /* 0316 */
+ {0x0318,0x0318,0x0318}, {0x0319,0x0319,0x0319}, /* 0318 */
+ {0x031A,0x031A,0x031A}, {0x031B,0x031B,0x031B}, /* 031A */
+ {0x031C,0x031C,0x031C}, {0x031D,0x031D,0x031D}, /* 031C */
+ {0x031E,0x031E,0x031E}, {0x031F,0x031F,0x031F}, /* 031E */
+ {0x0320,0x0320,0x0320}, {0x0321,0x0321,0x0321}, /* 0320 */
+ {0x0322,0x0322,0x0322}, {0x0323,0x0323,0x0323}, /* 0322 */
+ {0x0324,0x0324,0x0324}, {0x0325,0x0325,0x0325}, /* 0324 */
+ {0x0326,0x0326,0x0326}, {0x0327,0x0327,0x0327}, /* 0326 */
+ {0x0328,0x0328,0x0328}, {0x0329,0x0329,0x0329}, /* 0328 */
+ {0x032A,0x032A,0x032A}, {0x032B,0x032B,0x032B}, /* 032A */
+ {0x032C,0x032C,0x032C}, {0x032D,0x032D,0x032D}, /* 032C */
+ {0x032E,0x032E,0x032E}, {0x032F,0x032F,0x032F}, /* 032E */
+ {0x0330,0x0330,0x0330}, {0x0331,0x0331,0x0331}, /* 0330 */
+ {0x0332,0x0332,0x0332}, {0x0333,0x0333,0x0333}, /* 0332 */
+ {0x0334,0x0334,0x0334}, {0x0335,0x0335,0x0335}, /* 0334 */
+ {0x0336,0x0336,0x0336}, {0x0337,0x0337,0x0337}, /* 0336 */
+ {0x0338,0x0338,0x0338}, {0x0339,0x0339,0x0339}, /* 0338 */
+ {0x033A,0x033A,0x033A}, {0x033B,0x033B,0x033B}, /* 033A */
+ {0x033C,0x033C,0x033C}, {0x033D,0x033D,0x033D}, /* 033C */
+ {0x033E,0x033E,0x033E}, {0x033F,0x033F,0x033F}, /* 033E */
+ {0x0340,0x0340,0x0340}, {0x0341,0x0341,0x0341}, /* 0340 */
+ {0x0342,0x0342,0x0342}, {0x0343,0x0343,0x0343}, /* 0342 */
+ {0x0344,0x0344,0x0344}, {0x0399,0x0345,0x0399}, /* 0344 */
+ {0x0346,0x0346,0x0346}, {0x0347,0x0347,0x0347}, /* 0346 */
+ {0x0348,0x0348,0x0348}, {0x0349,0x0349,0x0349}, /* 0348 */
+ {0x034A,0x034A,0x034A}, {0x034B,0x034B,0x034B}, /* 034A */
+ {0x034C,0x034C,0x034C}, {0x034D,0x034D,0x034D}, /* 034C */
+ {0x034E,0x034E,0x034E}, {0x034F,0x034F,0x034F}, /* 034E */
+ {0x0350,0x0350,0x0350}, {0x0351,0x0351,0x0351}, /* 0350 */
+ {0x0352,0x0352,0x0352}, {0x0353,0x0353,0x0353}, /* 0352 */
+ {0x0354,0x0354,0x0354}, {0x0355,0x0355,0x0355}, /* 0354 */
+ {0x0356,0x0356,0x0356}, {0x0357,0x0357,0x0357}, /* 0356 */
+ {0x0358,0x0358,0x0358}, {0x0359,0x0359,0x0359}, /* 0358 */
+ {0x035A,0x035A,0x035A}, {0x035B,0x035B,0x035B}, /* 035A */
+ {0x035C,0x035C,0x035C}, {0x035D,0x035D,0x035D}, /* 035C */
+ {0x035E,0x035E,0x035E}, {0x035F,0x035F,0x035F}, /* 035E */
+ {0x0360,0x0360,0x0360}, {0x0361,0x0361,0x0361}, /* 0360 */
+ {0x0362,0x0362,0x0362}, {0x0363,0x0363,0x0363}, /* 0362 */
+ {0x0364,0x0364,0x0364}, {0x0365,0x0365,0x0365}, /* 0364 */
+ {0x0366,0x0366,0x0366}, {0x0367,0x0367,0x0367}, /* 0366 */
+ {0x0368,0x0368,0x0368}, {0x0369,0x0369,0x0369}, /* 0368 */
+ {0x036A,0x036A,0x036A}, {0x036B,0x036B,0x036B}, /* 036A */
+ {0x036C,0x036C,0x036C}, {0x036D,0x036D,0x036D}, /* 036C */
+ {0x036E,0x036E,0x036E}, {0x036F,0x036F,0x036F}, /* 036E */
+ {0x0370,0x0371,0x0370}, {0x0370,0x0371,0x0370}, /* 0370 */
+ {0x0372,0x0373,0x0372}, {0x0372,0x0373,0x0372}, /* 0372 */
+ {0x0374,0x0374,0x0374}, {0x0375,0x0375,0x0375}, /* 0374 */
+ {0x0376,0x0377,0x0376}, {0x0376,0x0377,0x0376}, /* 0376 */
+ {0x0378,0x0378,0x0378}, {0x0379,0x0379,0x0379}, /* 0378 */
+ {0x037A,0x037A,0x037A}, {0x03FD,0x037B,0x03FD}, /* 037A */
+ {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF}, /* 037C */
+ {0x037E,0x037E,0x037E}, {0x037F,0x037F,0x037F}, /* 037E */
+ {0x0380,0x0380,0x0380}, {0x0381,0x0381,0x0381}, /* 0380 */
+ {0x0382,0x0382,0x0382}, {0x0383,0x0383,0x0383}, /* 0382 */
+ {0x0384,0x0384,0x0384}, {0x0385,0x0385,0x0385}, /* 0384 */
+ {0x0386,0x03AC,0x0391}, {0x0387,0x0387,0x0387}, /* 0386 */
+ {0x0388,0x03AD,0x0395}, {0x0389,0x03AE,0x0397}, /* 0388 */
+ {0x038A,0x03AF,0x0399}, {0x038B,0x038B,0x038B}, /* 038A */
+ {0x038C,0x03CC,0x039F}, {0x038D,0x038D,0x038D}, /* 038C */
+ {0x038E,0x03CD,0x03A5}, {0x038F,0x03CE,0x03A9}, /* 038E */
+ {0x0390,0x0390,0x0399}, {0x0391,0x03B1,0x0391}, /* 0390 */
+ {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 0392 */
+ {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 0394 */
+ {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 0396 */
+ {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 0398 */
+ {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 039A */
+ {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 039C */
+ {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 039E */
+ {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03A0 */
+ {0x03A2,0x03A2,0x03A2}, {0x03A3,0x03C3,0x03A3}, /* 03A2 */
+ {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03A4 */
+ {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03A6 */
+ {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03A8 */
+ {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03AA */
+ {0x0386,0x03AC,0x0391}, {0x0388,0x03AD,0x0395}, /* 03AC */
+ {0x0389,0x03AE,0x0397}, {0x038A,0x03AF,0x0399}, /* 03AE */
+ {0x03B0,0x03B0,0x03A5}, {0x0391,0x03B1,0x0391}, /* 03B0 */
+ {0x0392,0x03B2,0x0392}, {0x0393,0x03B3,0x0393}, /* 03B2 */
+ {0x0394,0x03B4,0x0394}, {0x0395,0x03B5,0x0395}, /* 03B4 */
+ {0x0396,0x03B6,0x0396}, {0x0397,0x03B7,0x0397}, /* 03B6 */
+ {0x0398,0x03B8,0x0398}, {0x0399,0x03B9,0x0399}, /* 03B8 */
+ {0x039A,0x03BA,0x039A}, {0x039B,0x03BB,0x039B}, /* 03BA */
+ {0x039C,0x03BC,0x039C}, {0x039D,0x03BD,0x039D}, /* 03BC */
+ {0x039E,0x03BE,0x039E}, {0x039F,0x03BF,0x039F}, /* 03BE */
+ {0x03A0,0x03C0,0x03A0}, {0x03A1,0x03C1,0x03A1}, /* 03C0 */
+ {0x03A3,0x03C2,0x03A3}, {0x03A3,0x03C3,0x03A3}, /* 03C2 */
+ {0x03A4,0x03C4,0x03A4}, {0x03A5,0x03C5,0x03A5}, /* 03C4 */
+ {0x03A6,0x03C6,0x03A6}, {0x03A7,0x03C7,0x03A7}, /* 03C6 */
+ {0x03A8,0x03C8,0x03A8}, {0x03A9,0x03C9,0x03A9}, /* 03C8 */
+ {0x03AA,0x03CA,0x0399}, {0x03AB,0x03CB,0x03A5}, /* 03CA */
+ {0x038C,0x03CC,0x039F}, {0x038E,0x03CD,0x03A5}, /* 03CC */
+ {0x038F,0x03CE,0x03A9}, {0x03CF,0x03D7,0x03CF}, /* 03CE */
+ {0x0392,0x03D0,0x0392}, {0x0398,0x03D1,0x0398}, /* 03D0 */
+ {0x03D2,0x03D2,0x03D2}, {0x03D3,0x03D3,0x03D2}, /* 03D2 */
+ {0x03D4,0x03D4,0x03D2}, {0x03A6,0x03D5,0x03A6}, /* 03D4 */
+ {0x03A0,0x03D6,0x03A0}, {0x03CF,0x03D7,0x03CF}, /* 03D6 */
+ {0x03D8,0x03D9,0x03D8}, {0x03D8,0x03D9,0x03D8}, /* 03D8 */
+ {0x03DA,0x03DB,0x03DA}, {0x03DA,0x03DB,0x03DA}, /* 03DA */
+ {0x03DC,0x03DD,0x03DC}, {0x03DC,0x03DD,0x03DC}, /* 03DC */
+ {0x03DE,0x03DF,0x03DE}, {0x03DE,0x03DF,0x03DE}, /* 03DE */
+ {0x03E0,0x03E1,0x03E0}, {0x03E0,0x03E1,0x03E0}, /* 03E0 */
+ {0x03E2,0x03E3,0x03E2}, {0x03E2,0x03E3,0x03E2}, /* 03E2 */
+ {0x03E4,0x03E5,0x03E4}, {0x03E4,0x03E5,0x03E4}, /* 03E4 */
+ {0x03E6,0x03E7,0x03E6}, {0x03E6,0x03E7,0x03E6}, /* 03E6 */
+ {0x03E8,0x03E9,0x03E8}, {0x03E8,0x03E9,0x03E8}, /* 03E8 */
+ {0x03EA,0x03EB,0x03EA}, {0x03EA,0x03EB,0x03EA}, /* 03EA */
+ {0x03EC,0x03ED,0x03EC}, {0x03EC,0x03ED,0x03EC}, /* 03EC */
+ {0x03EE,0x03EF,0x03EE}, {0x03EE,0x03EF,0x03EE}, /* 03EE */
+ {0x039A,0x03F0,0x039A}, {0x03A1,0x03F1,0x03A1}, /* 03F0 */
+ {0x03F9,0x03F2,0x03F9}, {0x03F3,0x03F3,0x03F3}, /* 03F2 */
+ {0x03F4,0x03B8,0x03F4}, {0x0395,0x03F5,0x0395}, /* 03F4 */
+ {0x03F6,0x03F6,0x03F6}, {0x03F7,0x03F8,0x03F7}, /* 03F6 */
+ {0x03F7,0x03F8,0x03F7}, {0x03F9,0x03F2,0x03F9}, /* 03F8 */
+ {0x03FA,0x03FB,0x03FA}, {0x03FA,0x03FB,0x03FA}, /* 03FA */
+ {0x03FC,0x03FC,0x03FC}, {0x03FD,0x037B,0x03FD}, /* 03FC */
+ {0x03FE,0x037C,0x03FE}, {0x03FF,0x037D,0x03FF} /* 03FE */
+};
+
+static MY_UNICASE_CHARACTER u520p04[]={
+ {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0400 */
+ {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0402 */
+ {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0404 */
+ {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0406 */
+ {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0408 */
+ {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 040A */
+ {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 040C */
+ {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 040E */
+ {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0410 */
+ {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0412 */
+ {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0414 */
+ {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0416 */
+ {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0418 */
+ {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 041A */
+ {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 041C */
+ {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 041E */
+ {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0420 */
+ {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0422 */
+ {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0424 */
+ {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0426 */
+ {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0428 */
+ {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 042A */
+ {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 042C */
+ {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 042E */
+ {0x0410,0x0430,0x0410}, {0x0411,0x0431,0x0411}, /* 0430 */
+ {0x0412,0x0432,0x0412}, {0x0413,0x0433,0x0413}, /* 0432 */
+ {0x0414,0x0434,0x0414}, {0x0415,0x0435,0x0415}, /* 0434 */
+ {0x0416,0x0436,0x0416}, {0x0417,0x0437,0x0417}, /* 0436 */
+ {0x0418,0x0438,0x0418}, {0x0419,0x0439,0x0419}, /* 0438 */
+ {0x041A,0x043A,0x041A}, {0x041B,0x043B,0x041B}, /* 043A */
+ {0x041C,0x043C,0x041C}, {0x041D,0x043D,0x041D}, /* 043C */
+ {0x041E,0x043E,0x041E}, {0x041F,0x043F,0x041F}, /* 043E */
+ {0x0420,0x0440,0x0420}, {0x0421,0x0441,0x0421}, /* 0440 */
+ {0x0422,0x0442,0x0422}, {0x0423,0x0443,0x0423}, /* 0442 */
+ {0x0424,0x0444,0x0424}, {0x0425,0x0445,0x0425}, /* 0444 */
+ {0x0426,0x0446,0x0426}, {0x0427,0x0447,0x0427}, /* 0446 */
+ {0x0428,0x0448,0x0428}, {0x0429,0x0449,0x0429}, /* 0448 */
+ {0x042A,0x044A,0x042A}, {0x042B,0x044B,0x042B}, /* 044A */
+ {0x042C,0x044C,0x042C}, {0x042D,0x044D,0x042D}, /* 044C */
+ {0x042E,0x044E,0x042E}, {0x042F,0x044F,0x042F}, /* 044E */
+ {0x0400,0x0450,0x0415}, {0x0401,0x0451,0x0415}, /* 0450 */
+ {0x0402,0x0452,0x0402}, {0x0403,0x0453,0x0413}, /* 0452 */
+ {0x0404,0x0454,0x0404}, {0x0405,0x0455,0x0405}, /* 0454 */
+ {0x0406,0x0456,0x0406}, {0x0407,0x0457,0x0406}, /* 0456 */
+ {0x0408,0x0458,0x0408}, {0x0409,0x0459,0x0409}, /* 0458 */
+ {0x040A,0x045A,0x040A}, {0x040B,0x045B,0x040B}, /* 045A */
+ {0x040C,0x045C,0x041A}, {0x040D,0x045D,0x0418}, /* 045C */
+ {0x040E,0x045E,0x0423}, {0x040F,0x045F,0x040F}, /* 045E */
+ {0x0460,0x0461,0x0460}, {0x0460,0x0461,0x0460}, /* 0460 */
+ {0x0462,0x0463,0x0462}, {0x0462,0x0463,0x0462}, /* 0462 */
+ {0x0464,0x0465,0x0464}, {0x0464,0x0465,0x0464}, /* 0464 */
+ {0x0466,0x0467,0x0466}, {0x0466,0x0467,0x0466}, /* 0466 */
+ {0x0468,0x0469,0x0468}, {0x0468,0x0469,0x0468}, /* 0468 */
+ {0x046A,0x046B,0x046A}, {0x046A,0x046B,0x046A}, /* 046A */
+ {0x046C,0x046D,0x046C}, {0x046C,0x046D,0x046C}, /* 046C */
+ {0x046E,0x046F,0x046E}, {0x046E,0x046F,0x046E}, /* 046E */
+ {0x0470,0x0471,0x0470}, {0x0470,0x0471,0x0470}, /* 0470 */
+ {0x0472,0x0473,0x0472}, {0x0472,0x0473,0x0472}, /* 0472 */
+ {0x0474,0x0475,0x0474}, {0x0474,0x0475,0x0474}, /* 0474 */
+ {0x0476,0x0477,0x0474}, {0x0476,0x0477,0x0474}, /* 0476 */
+ {0x0478,0x0479,0x0478}, {0x0478,0x0479,0x0478}, /* 0478 */
+ {0x047A,0x047B,0x047A}, {0x047A,0x047B,0x047A}, /* 047A */
+ {0x047C,0x047D,0x047C}, {0x047C,0x047D,0x047C}, /* 047C */
+ {0x047E,0x047F,0x047E}, {0x047E,0x047F,0x047E}, /* 047E */
+ {0x0480,0x0481,0x0480}, {0x0480,0x0481,0x0480}, /* 0480 */
+ {0x0482,0x0482,0x0482}, {0x0483,0x0483,0x0483}, /* 0482 */
+ {0x0484,0x0484,0x0484}, {0x0485,0x0485,0x0485}, /* 0484 */
+ {0x0486,0x0486,0x0486}, {0x0487,0x0487,0x0487}, /* 0486 */
+ {0x0488,0x0488,0x0488}, {0x0489,0x0489,0x0489}, /* 0488 */
+ {0x048A,0x048B,0x048A}, {0x048A,0x048B,0x048A}, /* 048A */
+ {0x048C,0x048D,0x048C}, {0x048C,0x048D,0x048C}, /* 048C */
+ {0x048E,0x048F,0x048E}, {0x048E,0x048F,0x048E}, /* 048E */
+ {0x0490,0x0491,0x0490}, {0x0490,0x0491,0x0490}, /* 0490 */
+ {0x0492,0x0493,0x0492}, {0x0492,0x0493,0x0492}, /* 0492 */
+ {0x0494,0x0495,0x0494}, {0x0494,0x0495,0x0494}, /* 0494 */
+ {0x0496,0x0497,0x0496}, {0x0496,0x0497,0x0496}, /* 0496 */
+ {0x0498,0x0499,0x0498}, {0x0498,0x0499,0x0498}, /* 0498 */
+ {0x049A,0x049B,0x049A}, {0x049A,0x049B,0x049A}, /* 049A */
+ {0x049C,0x049D,0x049C}, {0x049C,0x049D,0x049C}, /* 049C */
+ {0x049E,0x049F,0x049E}, {0x049E,0x049F,0x049E}, /* 049E */
+ {0x04A0,0x04A1,0x04A0}, {0x04A0,0x04A1,0x04A0}, /* 04A0 */
+ {0x04A2,0x04A3,0x04A2}, {0x04A2,0x04A3,0x04A2}, /* 04A2 */
+ {0x04A4,0x04A5,0x04A4}, {0x04A4,0x04A5,0x04A4}, /* 04A4 */
+ {0x04A6,0x04A7,0x04A6}, {0x04A6,0x04A7,0x04A6}, /* 04A6 */
+ {0x04A8,0x04A9,0x04A8}, {0x04A8,0x04A9,0x04A8}, /* 04A8 */
+ {0x04AA,0x04AB,0x04AA}, {0x04AA,0x04AB,0x04AA}, /* 04AA */
+ {0x04AC,0x04AD,0x04AC}, {0x04AC,0x04AD,0x04AC}, /* 04AC */
+ {0x04AE,0x04AF,0x04AE}, {0x04AE,0x04AF,0x04AE}, /* 04AE */
+ {0x04B0,0x04B1,0x04B0}, {0x04B0,0x04B1,0x04B0}, /* 04B0 */
+ {0x04B2,0x04B3,0x04B2}, {0x04B2,0x04B3,0x04B2}, /* 04B2 */
+ {0x04B4,0x04B5,0x04B4}, {0x04B4,0x04B5,0x04B4}, /* 04B4 */
+ {0x04B6,0x04B7,0x04B6}, {0x04B6,0x04B7,0x04B6}, /* 04B6 */
+ {0x04B8,0x04B9,0x04B8}, {0x04B8,0x04B9,0x04B8}, /* 04B8 */
+ {0x04BA,0x04BB,0x04BA}, {0x04BA,0x04BB,0x04BA}, /* 04BA */
+ {0x04BC,0x04BD,0x04BC}, {0x04BC,0x04BD,0x04BC}, /* 04BC */
+ {0x04BE,0x04BF,0x04BE}, {0x04BE,0x04BF,0x04BE}, /* 04BE */
+ {0x04C0,0x04CF,0x04C0}, {0x04C1,0x04C2,0x0416}, /* 04C0 */
+ {0x04C1,0x04C2,0x0416}, {0x04C3,0x04C4,0x04C3}, /* 04C2 */
+ {0x04C3,0x04C4,0x04C3}, {0x04C5,0x04C6,0x04C5}, /* 04C4 */
+ {0x04C5,0x04C6,0x04C5}, {0x04C7,0x04C8,0x04C7}, /* 04C6 */
+ {0x04C7,0x04C8,0x04C7}, {0x04C9,0x04CA,0x04C9}, /* 04C8 */
+ {0x04C9,0x04CA,0x04C9}, {0x04CB,0x04CC,0x04CB}, /* 04CA */
+ {0x04CB,0x04CC,0x04CB}, {0x04CD,0x04CE,0x04CD}, /* 04CC */
+ {0x04CD,0x04CE,0x04CD}, {0x04C0,0x04CF,0x04C0}, /* 04CE */
+ {0x04D0,0x04D1,0x0410}, {0x04D0,0x04D1,0x0410}, /* 04D0 */
+ {0x04D2,0x04D3,0x0410}, {0x04D2,0x04D3,0x0410}, /* 04D2 */
+ {0x04D4,0x04D5,0x04D4}, {0x04D4,0x04D5,0x04D4}, /* 04D4 */
+ {0x04D6,0x04D7,0x0415}, {0x04D6,0x04D7,0x0415}, /* 04D6 */
+ {0x04D8,0x04D9,0x04D8}, {0x04D8,0x04D9,0x04D8}, /* 04D8 */
+ {0x04DA,0x04DB,0x04D8}, {0x04DA,0x04DB,0x04D8}, /* 04DA */
+ {0x04DC,0x04DD,0x0416}, {0x04DC,0x04DD,0x0416}, /* 04DC */
+ {0x04DE,0x04DF,0x0417}, {0x04DE,0x04DF,0x0417}, /* 04DE */
+ {0x04E0,0x04E1,0x04E0}, {0x04E0,0x04E1,0x04E0}, /* 04E0 */
+ {0x04E2,0x04E3,0x0418}, {0x04E2,0x04E3,0x0418}, /* 04E2 */
+ {0x04E4,0x04E5,0x0418}, {0x04E4,0x04E5,0x0418}, /* 04E4 */
+ {0x04E6,0x04E7,0x041E}, {0x04E6,0x04E7,0x041E}, /* 04E6 */
+ {0x04E8,0x04E9,0x04E8}, {0x04E8,0x04E9,0x04E8}, /* 04E8 */
+ {0x04EA,0x04EB,0x04E8}, {0x04EA,0x04EB,0x04E8}, /* 04EA */
+ {0x04EC,0x04ED,0x042D}, {0x04EC,0x04ED,0x042D}, /* 04EC */
+ {0x04EE,0x04EF,0x0423}, {0x04EE,0x04EF,0x0423}, /* 04EE */
+ {0x04F0,0x04F1,0x0423}, {0x04F0,0x04F1,0x0423}, /* 04F0 */
+ {0x04F2,0x04F3,0x0423}, {0x04F2,0x04F3,0x0423}, /* 04F2 */
+ {0x04F4,0x04F5,0x0427}, {0x04F4,0x04F5,0x0427}, /* 04F4 */
+ {0x04F6,0x04F7,0x04F6}, {0x04F6,0x04F7,0x04F6}, /* 04F6 */
+ {0x04F8,0x04F9,0x042B}, {0x04F8,0x04F9,0x042B}, /* 04F8 */
+ {0x04FA,0x04FB,0x04FA}, {0x04FA,0x04FB,0x04FA}, /* 04FA */
+ {0x04FC,0x04FD,0x04FC}, {0x04FC,0x04FD,0x04FC}, /* 04FC */
+ {0x04FE,0x04FF,0x04FE}, {0x04FE,0x04FF,0x04FE} /* 04FE */
+};
+
+static MY_UNICASE_CHARACTER u520p05[]={
+ {0x0500,0x0501,0x0500}, {0x0500,0x0501,0x0500}, /* 0500 */
+ {0x0502,0x0503,0x0502}, {0x0502,0x0503,0x0502}, /* 0502 */
+ {0x0504,0x0505,0x0504}, {0x0504,0x0505,0x0504}, /* 0504 */
+ {0x0506,0x0507,0x0506}, {0x0506,0x0507,0x0506}, /* 0506 */
+ {0x0508,0x0509,0x0508}, {0x0508,0x0509,0x0508}, /* 0508 */
+ {0x050A,0x050B,0x050A}, {0x050A,0x050B,0x050A}, /* 050A */
+ {0x050C,0x050D,0x050C}, {0x050C,0x050D,0x050C}, /* 050C */
+ {0x050E,0x050F,0x050E}, {0x050E,0x050F,0x050E}, /* 050E */
+ {0x0510,0x0511,0x0510}, {0x0510,0x0511,0x0510}, /* 0510 */
+ {0x0512,0x0513,0x0512}, {0x0512,0x0513,0x0512}, /* 0512 */
+ {0x0514,0x0515,0x0514}, {0x0514,0x0515,0x0514}, /* 0514 */
+ {0x0516,0x0517,0x0516}, {0x0516,0x0517,0x0516}, /* 0516 */
+ {0x0518,0x0519,0x0518}, {0x0518,0x0519,0x0518}, /* 0518 */
+ {0x051A,0x051B,0x051A}, {0x051A,0x051B,0x051A}, /* 051A */
+ {0x051C,0x051D,0x051C}, {0x051C,0x051D,0x051C}, /* 051C */
+ {0x051E,0x051F,0x051E}, {0x051E,0x051F,0x051E}, /* 051E */
+ {0x0520,0x0521,0x0520}, {0x0520,0x0521,0x0520}, /* 0520 */
+ {0x0522,0x0523,0x0522}, {0x0522,0x0523,0x0522}, /* 0522 */
+ {0x0524,0x0525,0x0524}, {0x0524,0x0525,0x0524}, /* 0524 */
+ {0x0526,0x0526,0x0526}, {0x0527,0x0527,0x0527}, /* 0526 */
+ {0x0528,0x0528,0x0528}, {0x0529,0x0529,0x0529}, /* 0528 */
+ {0x052A,0x052A,0x052A}, {0x052B,0x052B,0x052B}, /* 052A */
+ {0x052C,0x052C,0x052C}, {0x052D,0x052D,0x052D}, /* 052C */
+ {0x052E,0x052E,0x052E}, {0x052F,0x052F,0x052F}, /* 052E */
+ {0x0530,0x0530,0x0530}, {0x0531,0x0561,0x0531}, /* 0530 */
+ {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0532 */
+ {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0534 */
+ {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0536 */
+ {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0538 */
+ {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 053A */
+ {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 053C */
+ {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 053E */
+ {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0540 */
+ {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0542 */
+ {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0544 */
+ {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0546 */
+ {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0548 */
+ {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 054A */
+ {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 054C */
+ {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 054E */
+ {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0550 */
+ {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0552 */
+ {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0554 */
+ {0x0556,0x0586,0x0556}, {0x0557,0x0557,0x0557}, /* 0556 */
+ {0x0558,0x0558,0x0558}, {0x0559,0x0559,0x0559}, /* 0558 */
+ {0x055A,0x055A,0x055A}, {0x055B,0x055B,0x055B}, /* 055A */
+ {0x055C,0x055C,0x055C}, {0x055D,0x055D,0x055D}, /* 055C */
+ {0x055E,0x055E,0x055E}, {0x055F,0x055F,0x055F}, /* 055E */
+ {0x0560,0x0560,0x0560}, {0x0531,0x0561,0x0531}, /* 0560 */
+ {0x0532,0x0562,0x0532}, {0x0533,0x0563,0x0533}, /* 0562 */
+ {0x0534,0x0564,0x0534}, {0x0535,0x0565,0x0535}, /* 0564 */
+ {0x0536,0x0566,0x0536}, {0x0537,0x0567,0x0537}, /* 0566 */
+ {0x0538,0x0568,0x0538}, {0x0539,0x0569,0x0539}, /* 0568 */
+ {0x053A,0x056A,0x053A}, {0x053B,0x056B,0x053B}, /* 056A */
+ {0x053C,0x056C,0x053C}, {0x053D,0x056D,0x053D}, /* 056C */
+ {0x053E,0x056E,0x053E}, {0x053F,0x056F,0x053F}, /* 056E */
+ {0x0540,0x0570,0x0540}, {0x0541,0x0571,0x0541}, /* 0570 */
+ {0x0542,0x0572,0x0542}, {0x0543,0x0573,0x0543}, /* 0572 */
+ {0x0544,0x0574,0x0544}, {0x0545,0x0575,0x0545}, /* 0574 */
+ {0x0546,0x0576,0x0546}, {0x0547,0x0577,0x0547}, /* 0576 */
+ {0x0548,0x0578,0x0548}, {0x0549,0x0579,0x0549}, /* 0578 */
+ {0x054A,0x057A,0x054A}, {0x054B,0x057B,0x054B}, /* 057A */
+ {0x054C,0x057C,0x054C}, {0x054D,0x057D,0x054D}, /* 057C */
+ {0x054E,0x057E,0x054E}, {0x054F,0x057F,0x054F}, /* 057E */
+ {0x0550,0x0580,0x0550}, {0x0551,0x0581,0x0551}, /* 0580 */
+ {0x0552,0x0582,0x0552}, {0x0553,0x0583,0x0553}, /* 0582 */
+ {0x0554,0x0584,0x0554}, {0x0555,0x0585,0x0555}, /* 0584 */
+ {0x0556,0x0586,0x0556}, {0x0587,0x0587,0x0587}, /* 0586 */
+ {0x0588,0x0588,0x0588}, {0x0589,0x0589,0x0589}, /* 0588 */
+ {0x058A,0x058A,0x058A}, {0x058B,0x058B,0x058B}, /* 058A */
+ {0x058C,0x058C,0x058C}, {0x058D,0x058D,0x058D}, /* 058C */
+ {0x058E,0x058E,0x058E}, {0x058F,0x058F,0x058F}, /* 058E */
+ {0x0590,0x0590,0x0590}, {0x0591,0x0591,0x0591}, /* 0590 */
+ {0x0592,0x0592,0x0592}, {0x0593,0x0593,0x0593}, /* 0592 */
+ {0x0594,0x0594,0x0594}, {0x0595,0x0595,0x0595}, /* 0594 */
+ {0x0596,0x0596,0x0596}, {0x0597,0x0597,0x0597}, /* 0596 */
+ {0x0598,0x0598,0x0598}, {0x0599,0x0599,0x0599}, /* 0598 */
+ {0x059A,0x059A,0x059A}, {0x059B,0x059B,0x059B}, /* 059A */
+ {0x059C,0x059C,0x059C}, {0x059D,0x059D,0x059D}, /* 059C */
+ {0x059E,0x059E,0x059E}, {0x059F,0x059F,0x059F}, /* 059E */
+ {0x05A0,0x05A0,0x05A0}, {0x05A1,0x05A1,0x05A1}, /* 05A0 */
+ {0x05A2,0x05A2,0x05A2}, {0x05A3,0x05A3,0x05A3}, /* 05A2 */
+ {0x05A4,0x05A4,0x05A4}, {0x05A5,0x05A5,0x05A5}, /* 05A4 */
+ {0x05A6,0x05A6,0x05A6}, {0x05A7,0x05A7,0x05A7}, /* 05A6 */
+ {0x05A8,0x05A8,0x05A8}, {0x05A9,0x05A9,0x05A9}, /* 05A8 */
+ {0x05AA,0x05AA,0x05AA}, {0x05AB,0x05AB,0x05AB}, /* 05AA */
+ {0x05AC,0x05AC,0x05AC}, {0x05AD,0x05AD,0x05AD}, /* 05AC */
+ {0x05AE,0x05AE,0x05AE}, {0x05AF,0x05AF,0x05AF}, /* 05AE */
+ {0x05B0,0x05B0,0x05B0}, {0x05B1,0x05B1,0x05B1}, /* 05B0 */
+ {0x05B2,0x05B2,0x05B2}, {0x05B3,0x05B3,0x05B3}, /* 05B2 */
+ {0x05B4,0x05B4,0x05B4}, {0x05B5,0x05B5,0x05B5}, /* 05B4 */
+ {0x05B6,0x05B6,0x05B6}, {0x05B7,0x05B7,0x05B7}, /* 05B6 */
+ {0x05B8,0x05B8,0x05B8}, {0x05B9,0x05B9,0x05B9}, /* 05B8 */
+ {0x05BA,0x05BA,0x05BA}, {0x05BB,0x05BB,0x05BB}, /* 05BA */
+ {0x05BC,0x05BC,0x05BC}, {0x05BD,0x05BD,0x05BD}, /* 05BC */
+ {0x05BE,0x05BE,0x05BE}, {0x05BF,0x05BF,0x05BF}, /* 05BE */
+ {0x05C0,0x05C0,0x05C0}, {0x05C1,0x05C1,0x05C1}, /* 05C0 */
+ {0x05C2,0x05C2,0x05C2}, {0x05C3,0x05C3,0x05C3}, /* 05C2 */
+ {0x05C4,0x05C4,0x05C4}, {0x05C5,0x05C5,0x05C5}, /* 05C4 */
+ {0x05C6,0x05C6,0x05C6}, {0x05C7,0x05C7,0x05C7}, /* 05C6 */
+ {0x05C8,0x05C8,0x05C8}, {0x05C9,0x05C9,0x05C9}, /* 05C8 */
+ {0x05CA,0x05CA,0x05CA}, {0x05CB,0x05CB,0x05CB}, /* 05CA */
+ {0x05CC,0x05CC,0x05CC}, {0x05CD,0x05CD,0x05CD}, /* 05CC */
+ {0x05CE,0x05CE,0x05CE}, {0x05CF,0x05CF,0x05CF}, /* 05CE */
+ {0x05D0,0x05D0,0x05D0}, {0x05D1,0x05D1,0x05D1}, /* 05D0 */
+ {0x05D2,0x05D2,0x05D2}, {0x05D3,0x05D3,0x05D3}, /* 05D2 */
+ {0x05D4,0x05D4,0x05D4}, {0x05D5,0x05D5,0x05D5}, /* 05D4 */
+ {0x05D6,0x05D6,0x05D6}, {0x05D7,0x05D7,0x05D7}, /* 05D6 */
+ {0x05D8,0x05D8,0x05D8}, {0x05D9,0x05D9,0x05D9}, /* 05D8 */
+ {0x05DA,0x05DA,0x05DA}, {0x05DB,0x05DB,0x05DB}, /* 05DA */
+ {0x05DC,0x05DC,0x05DC}, {0x05DD,0x05DD,0x05DD}, /* 05DC */
+ {0x05DE,0x05DE,0x05DE}, {0x05DF,0x05DF,0x05DF}, /* 05DE */
+ {0x05E0,0x05E0,0x05E0}, {0x05E1,0x05E1,0x05E1}, /* 05E0 */
+ {0x05E2,0x05E2,0x05E2}, {0x05E3,0x05E3,0x05E3}, /* 05E2 */
+ {0x05E4,0x05E4,0x05E4}, {0x05E5,0x05E5,0x05E5}, /* 05E4 */
+ {0x05E6,0x05E6,0x05E6}, {0x05E7,0x05E7,0x05E7}, /* 05E6 */
+ {0x05E8,0x05E8,0x05E8}, {0x05E9,0x05E9,0x05E9}, /* 05E8 */
+ {0x05EA,0x05EA,0x05EA}, {0x05EB,0x05EB,0x05EB}, /* 05EA */
+ {0x05EC,0x05EC,0x05EC}, {0x05ED,0x05ED,0x05ED}, /* 05EC */
+ {0x05EE,0x05EE,0x05EE}, {0x05EF,0x05EF,0x05EF}, /* 05EE */
+ {0x05F0,0x05F0,0x05F0}, {0x05F1,0x05F1,0x05F1}, /* 05F0 */
+ {0x05F2,0x05F2,0x05F2}, {0x05F3,0x05F3,0x05F3}, /* 05F2 */
+ {0x05F4,0x05F4,0x05F4}, {0x05F5,0x05F5,0x05F5}, /* 05F4 */
+ {0x05F6,0x05F6,0x05F6}, {0x05F7,0x05F7,0x05F7}, /* 05F6 */
+ {0x05F8,0x05F8,0x05F8}, {0x05F9,0x05F9,0x05F9}, /* 05F8 */
+ {0x05FA,0x05FA,0x05FA}, {0x05FB,0x05FB,0x05FB}, /* 05FA */
+ {0x05FC,0x05FC,0x05FC}, {0x05FD,0x05FD,0x05FD}, /* 05FC */
+ {0x05FE,0x05FE,0x05FE}, {0x05FF,0x05FF,0x05FF} /* 05FE */
+};
+
+static MY_UNICASE_CHARACTER u520p10[]={
+ {0x1000,0x1000,0x1000}, {0x1001,0x1001,0x1001}, /* 1000 */
+ {0x1002,0x1002,0x1002}, {0x1003,0x1003,0x1003}, /* 1002 */
+ {0x1004,0x1004,0x1004}, {0x1005,0x1005,0x1005}, /* 1004 */
+ {0x1006,0x1006,0x1006}, {0x1007,0x1007,0x1007}, /* 1006 */
+ {0x1008,0x1008,0x1008}, {0x1009,0x1009,0x1009}, /* 1008 */
+ {0x100A,0x100A,0x100A}, {0x100B,0x100B,0x100B}, /* 100A */
+ {0x100C,0x100C,0x100C}, {0x100D,0x100D,0x100D}, /* 100C */
+ {0x100E,0x100E,0x100E}, {0x100F,0x100F,0x100F}, /* 100E */
+ {0x1010,0x1010,0x1010}, {0x1011,0x1011,0x1011}, /* 1010 */
+ {0x1012,0x1012,0x1012}, {0x1013,0x1013,0x1013}, /* 1012 */
+ {0x1014,0x1014,0x1014}, {0x1015,0x1015,0x1015}, /* 1014 */
+ {0x1016,0x1016,0x1016}, {0x1017,0x1017,0x1017}, /* 1016 */
+ {0x1018,0x1018,0x1018}, {0x1019,0x1019,0x1019}, /* 1018 */
+ {0x101A,0x101A,0x101A}, {0x101B,0x101B,0x101B}, /* 101A */
+ {0x101C,0x101C,0x101C}, {0x101D,0x101D,0x101D}, /* 101C */
+ {0x101E,0x101E,0x101E}, {0x101F,0x101F,0x101F}, /* 101E */
+ {0x1020,0x1020,0x1020}, {0x1021,0x1021,0x1021}, /* 1020 */
+ {0x1022,0x1022,0x1022}, {0x1023,0x1023,0x1023}, /* 1022 */
+ {0x1024,0x1024,0x1024}, {0x1025,0x1025,0x1025}, /* 1024 */
+ {0x1026,0x1026,0x1026}, {0x1027,0x1027,0x1027}, /* 1026 */
+ {0x1028,0x1028,0x1028}, {0x1029,0x1029,0x1029}, /* 1028 */
+ {0x102A,0x102A,0x102A}, {0x102B,0x102B,0x102B}, /* 102A */
+ {0x102C,0x102C,0x102C}, {0x102D,0x102D,0x102D}, /* 102C */
+ {0x102E,0x102E,0x102E}, {0x102F,0x102F,0x102F}, /* 102E */
+ {0x1030,0x1030,0x1030}, {0x1031,0x1031,0x1031}, /* 1030 */
+ {0x1032,0x1032,0x1032}, {0x1033,0x1033,0x1033}, /* 1032 */
+ {0x1034,0x1034,0x1034}, {0x1035,0x1035,0x1035}, /* 1034 */
+ {0x1036,0x1036,0x1036}, {0x1037,0x1037,0x1037}, /* 1036 */
+ {0x1038,0x1038,0x1038}, {0x1039,0x1039,0x1039}, /* 1038 */
+ {0x103A,0x103A,0x103A}, {0x103B,0x103B,0x103B}, /* 103A */
+ {0x103C,0x103C,0x103C}, {0x103D,0x103D,0x103D}, /* 103C */
+ {0x103E,0x103E,0x103E}, {0x103F,0x103F,0x103F}, /* 103E */
+ {0x1040,0x1040,0x1040}, {0x1041,0x1041,0x1041}, /* 1040 */
+ {0x1042,0x1042,0x1042}, {0x1043,0x1043,0x1043}, /* 1042 */
+ {0x1044,0x1044,0x1044}, {0x1045,0x1045,0x1045}, /* 1044 */
+ {0x1046,0x1046,0x1046}, {0x1047,0x1047,0x1047}, /* 1046 */
+ {0x1048,0x1048,0x1048}, {0x1049,0x1049,0x1049}, /* 1048 */
+ {0x104A,0x104A,0x104A}, {0x104B,0x104B,0x104B}, /* 104A */
+ {0x104C,0x104C,0x104C}, {0x104D,0x104D,0x104D}, /* 104C */
+ {0x104E,0x104E,0x104E}, {0x104F,0x104F,0x104F}, /* 104E */
+ {0x1050,0x1050,0x1050}, {0x1051,0x1051,0x1051}, /* 1050 */
+ {0x1052,0x1052,0x1052}, {0x1053,0x1053,0x1053}, /* 1052 */
+ {0x1054,0x1054,0x1054}, {0x1055,0x1055,0x1055}, /* 1054 */
+ {0x1056,0x1056,0x1056}, {0x1057,0x1057,0x1057}, /* 1056 */
+ {0x1058,0x1058,0x1058}, {0x1059,0x1059,0x1059}, /* 1058 */
+ {0x105A,0x105A,0x105A}, {0x105B,0x105B,0x105B}, /* 105A */
+ {0x105C,0x105C,0x105C}, {0x105D,0x105D,0x105D}, /* 105C */
+ {0x105E,0x105E,0x105E}, {0x105F,0x105F,0x105F}, /* 105E */
+ {0x1060,0x1060,0x1060}, {0x1061,0x1061,0x1061}, /* 1060 */
+ {0x1062,0x1062,0x1062}, {0x1063,0x1063,0x1063}, /* 1062 */
+ {0x1064,0x1064,0x1064}, {0x1065,0x1065,0x1065}, /* 1064 */
+ {0x1066,0x1066,0x1066}, {0x1067,0x1067,0x1067}, /* 1066 */
+ {0x1068,0x1068,0x1068}, {0x1069,0x1069,0x1069}, /* 1068 */
+ {0x106A,0x106A,0x106A}, {0x106B,0x106B,0x106B}, /* 106A */
+ {0x106C,0x106C,0x106C}, {0x106D,0x106D,0x106D}, /* 106C */
+ {0x106E,0x106E,0x106E}, {0x106F,0x106F,0x106F}, /* 106E */
+ {0x1070,0x1070,0x1070}, {0x1071,0x1071,0x1071}, /* 1070 */
+ {0x1072,0x1072,0x1072}, {0x1073,0x1073,0x1073}, /* 1072 */
+ {0x1074,0x1074,0x1074}, {0x1075,0x1075,0x1075}, /* 1074 */
+ {0x1076,0x1076,0x1076}, {0x1077,0x1077,0x1077}, /* 1076 */
+ {0x1078,0x1078,0x1078}, {0x1079,0x1079,0x1079}, /* 1078 */
+ {0x107A,0x107A,0x107A}, {0x107B,0x107B,0x107B}, /* 107A */
+ {0x107C,0x107C,0x107C}, {0x107D,0x107D,0x107D}, /* 107C */
+ {0x107E,0x107E,0x107E}, {0x107F,0x107F,0x107F}, /* 107E */
+ {0x1080,0x1080,0x1080}, {0x1081,0x1081,0x1081}, /* 1080 */
+ {0x1082,0x1082,0x1082}, {0x1083,0x1083,0x1083}, /* 1082 */
+ {0x1084,0x1084,0x1084}, {0x1085,0x1085,0x1085}, /* 1084 */
+ {0x1086,0x1086,0x1086}, {0x1087,0x1087,0x1087}, /* 1086 */
+ {0x1088,0x1088,0x1088}, {0x1089,0x1089,0x1089}, /* 1088 */
+ {0x108A,0x108A,0x108A}, {0x108B,0x108B,0x108B}, /* 108A */
+ {0x108C,0x108C,0x108C}, {0x108D,0x108D,0x108D}, /* 108C */
+ {0x108E,0x108E,0x108E}, {0x108F,0x108F,0x108F}, /* 108E */
+ {0x1090,0x1090,0x1090}, {0x1091,0x1091,0x1091}, /* 1090 */
+ {0x1092,0x1092,0x1092}, {0x1093,0x1093,0x1093}, /* 1092 */
+ {0x1094,0x1094,0x1094}, {0x1095,0x1095,0x1095}, /* 1094 */
+ {0x1096,0x1096,0x1096}, {0x1097,0x1097,0x1097}, /* 1096 */
+ {0x1098,0x1098,0x1098}, {0x1099,0x1099,0x1099}, /* 1098 */
+ {0x109A,0x109A,0x109A}, {0x109B,0x109B,0x109B}, /* 109A */
+ {0x109C,0x109C,0x109C}, {0x109D,0x109D,0x109D}, /* 109C */
+ {0x109E,0x109E,0x109E}, {0x109F,0x109F,0x109F}, /* 109E */
+ {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 10A0 */
+ {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 10A2 */
+ {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 10A4 */
+ {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 10A6 */
+ {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 10A8 */
+ {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 10AA */
+ {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 10AC */
+ {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 10AE */
+ {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 10B0 */
+ {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 10B2 */
+ {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 10B4 */
+ {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 10B6 */
+ {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 10B8 */
+ {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 10BA */
+ {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 10BC */
+ {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 10BE */
+ {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 10C0 */
+ {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 10C2 */
+ {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 10C4 */
+ {0x10C6,0x10C6,0x10C6}, {0x10C7,0x10C7,0x10C7}, /* 10C6 */
+ {0x10C8,0x10C8,0x10C8}, {0x10C9,0x10C9,0x10C9}, /* 10C8 */
+ {0x10CA,0x10CA,0x10CA}, {0x10CB,0x10CB,0x10CB}, /* 10CA */
+ {0x10CC,0x10CC,0x10CC}, {0x10CD,0x10CD,0x10CD}, /* 10CC */
+ {0x10CE,0x10CE,0x10CE}, {0x10CF,0x10CF,0x10CF}, /* 10CE */
+ {0x10D0,0x10D0,0x10D0}, {0x10D1,0x10D1,0x10D1}, /* 10D0 */
+ {0x10D2,0x10D2,0x10D2}, {0x10D3,0x10D3,0x10D3}, /* 10D2 */
+ {0x10D4,0x10D4,0x10D4}, {0x10D5,0x10D5,0x10D5}, /* 10D4 */
+ {0x10D6,0x10D6,0x10D6}, {0x10D7,0x10D7,0x10D7}, /* 10D6 */
+ {0x10D8,0x10D8,0x10D8}, {0x10D9,0x10D9,0x10D9}, /* 10D8 */
+ {0x10DA,0x10DA,0x10DA}, {0x10DB,0x10DB,0x10DB}, /* 10DA */
+ {0x10DC,0x10DC,0x10DC}, {0x10DD,0x10DD,0x10DD}, /* 10DC */
+ {0x10DE,0x10DE,0x10DE}, {0x10DF,0x10DF,0x10DF}, /* 10DE */
+ {0x10E0,0x10E0,0x10E0}, {0x10E1,0x10E1,0x10E1}, /* 10E0 */
+ {0x10E2,0x10E2,0x10E2}, {0x10E3,0x10E3,0x10E3}, /* 10E2 */
+ {0x10E4,0x10E4,0x10E4}, {0x10E5,0x10E5,0x10E5}, /* 10E4 */
+ {0x10E6,0x10E6,0x10E6}, {0x10E7,0x10E7,0x10E7}, /* 10E6 */
+ {0x10E8,0x10E8,0x10E8}, {0x10E9,0x10E9,0x10E9}, /* 10E8 */
+ {0x10EA,0x10EA,0x10EA}, {0x10EB,0x10EB,0x10EB}, /* 10EA */
+ {0x10EC,0x10EC,0x10EC}, {0x10ED,0x10ED,0x10ED}, /* 10EC */
+ {0x10EE,0x10EE,0x10EE}, {0x10EF,0x10EF,0x10EF}, /* 10EE */
+ {0x10F0,0x10F0,0x10F0}, {0x10F1,0x10F1,0x10F1}, /* 10F0 */
+ {0x10F2,0x10F2,0x10F2}, {0x10F3,0x10F3,0x10F3}, /* 10F2 */
+ {0x10F4,0x10F4,0x10F4}, {0x10F5,0x10F5,0x10F5}, /* 10F4 */
+ {0x10F6,0x10F6,0x10F6}, {0x10F7,0x10F7,0x10F7}, /* 10F6 */
+ {0x10F8,0x10F8,0x10F8}, {0x10F9,0x10F9,0x10F9}, /* 10F8 */
+ {0x10FA,0x10FA,0x10FA}, {0x10FB,0x10FB,0x10FB}, /* 10FA */
+ {0x10FC,0x10FC,0x10FC}, {0x10FD,0x10FD,0x10FD}, /* 10FC */
+ {0x10FE,0x10FE,0x10FE}, {0x10FF,0x10FF,0x10FF} /* 10FE */
+};
+
+static MY_UNICASE_CHARACTER u520p1D[]={
+ {0x1D00,0x1D00,0x1D00}, {0x1D01,0x1D01,0x1D01}, /* 1D00 */
+ {0x1D02,0x1D02,0x1D02}, {0x1D03,0x1D03,0x1D03}, /* 1D02 */
+ {0x1D04,0x1D04,0x1D04}, {0x1D05,0x1D05,0x1D05}, /* 1D04 */
+ {0x1D06,0x1D06,0x1D06}, {0x1D07,0x1D07,0x1D07}, /* 1D06 */
+ {0x1D08,0x1D08,0x1D08}, {0x1D09,0x1D09,0x1D09}, /* 1D08 */
+ {0x1D0A,0x1D0A,0x1D0A}, {0x1D0B,0x1D0B,0x1D0B}, /* 1D0A */
+ {0x1D0C,0x1D0C,0x1D0C}, {0x1D0D,0x1D0D,0x1D0D}, /* 1D0C */
+ {0x1D0E,0x1D0E,0x1D0E}, {0x1D0F,0x1D0F,0x1D0F}, /* 1D0E */
+ {0x1D10,0x1D10,0x1D10}, {0x1D11,0x1D11,0x1D11}, /* 1D10 */
+ {0x1D12,0x1D12,0x1D12}, {0x1D13,0x1D13,0x1D13}, /* 1D12 */
+ {0x1D14,0x1D14,0x1D14}, {0x1D15,0x1D15,0x1D15}, /* 1D14 */
+ {0x1D16,0x1D16,0x1D16}, {0x1D17,0x1D17,0x1D17}, /* 1D16 */
+ {0x1D18,0x1D18,0x1D18}, {0x1D19,0x1D19,0x1D19}, /* 1D18 */
+ {0x1D1A,0x1D1A,0x1D1A}, {0x1D1B,0x1D1B,0x1D1B}, /* 1D1A */
+ {0x1D1C,0x1D1C,0x1D1C}, {0x1D1D,0x1D1D,0x1D1D}, /* 1D1C */
+ {0x1D1E,0x1D1E,0x1D1E}, {0x1D1F,0x1D1F,0x1D1F}, /* 1D1E */
+ {0x1D20,0x1D20,0x1D20}, {0x1D21,0x1D21,0x1D21}, /* 1D20 */
+ {0x1D22,0x1D22,0x1D22}, {0x1D23,0x1D23,0x1D23}, /* 1D22 */
+ {0x1D24,0x1D24,0x1D24}, {0x1D25,0x1D25,0x1D25}, /* 1D24 */
+ {0x1D26,0x1D26,0x1D26}, {0x1D27,0x1D27,0x1D27}, /* 1D26 */
+ {0x1D28,0x1D28,0x1D28}, {0x1D29,0x1D29,0x1D29}, /* 1D28 */
+ {0x1D2A,0x1D2A,0x1D2A}, {0x1D2B,0x1D2B,0x1D2B}, /* 1D2A */
+ {0x1D2C,0x1D2C,0x1D2C}, {0x1D2D,0x1D2D,0x1D2D}, /* 1D2C */
+ {0x1D2E,0x1D2E,0x1D2E}, {0x1D2F,0x1D2F,0x1D2F}, /* 1D2E */
+ {0x1D30,0x1D30,0x1D30}, {0x1D31,0x1D31,0x1D31}, /* 1D30 */
+ {0x1D32,0x1D32,0x1D32}, {0x1D33,0x1D33,0x1D33}, /* 1D32 */
+ {0x1D34,0x1D34,0x1D34}, {0x1D35,0x1D35,0x1D35}, /* 1D34 */
+ {0x1D36,0x1D36,0x1D36}, {0x1D37,0x1D37,0x1D37}, /* 1D36 */
+ {0x1D38,0x1D38,0x1D38}, {0x1D39,0x1D39,0x1D39}, /* 1D38 */
+ {0x1D3A,0x1D3A,0x1D3A}, {0x1D3B,0x1D3B,0x1D3B}, /* 1D3A */
+ {0x1D3C,0x1D3C,0x1D3C}, {0x1D3D,0x1D3D,0x1D3D}, /* 1D3C */
+ {0x1D3E,0x1D3E,0x1D3E}, {0x1D3F,0x1D3F,0x1D3F}, /* 1D3E */
+ {0x1D40,0x1D40,0x1D40}, {0x1D41,0x1D41,0x1D41}, /* 1D40 */
+ {0x1D42,0x1D42,0x1D42}, {0x1D43,0x1D43,0x1D43}, /* 1D42 */
+ {0x1D44,0x1D44,0x1D44}, {0x1D45,0x1D45,0x1D45}, /* 1D44 */
+ {0x1D46,0x1D46,0x1D46}, {0x1D47,0x1D47,0x1D47}, /* 1D46 */
+ {0x1D48,0x1D48,0x1D48}, {0x1D49,0x1D49,0x1D49}, /* 1D48 */
+ {0x1D4A,0x1D4A,0x1D4A}, {0x1D4B,0x1D4B,0x1D4B}, /* 1D4A */
+ {0x1D4C,0x1D4C,0x1D4C}, {0x1D4D,0x1D4D,0x1D4D}, /* 1D4C */
+ {0x1D4E,0x1D4E,0x1D4E}, {0x1D4F,0x1D4F,0x1D4F}, /* 1D4E */
+ {0x1D50,0x1D50,0x1D50}, {0x1D51,0x1D51,0x1D51}, /* 1D50 */
+ {0x1D52,0x1D52,0x1D52}, {0x1D53,0x1D53,0x1D53}, /* 1D52 */
+ {0x1D54,0x1D54,0x1D54}, {0x1D55,0x1D55,0x1D55}, /* 1D54 */
+ {0x1D56,0x1D56,0x1D56}, {0x1D57,0x1D57,0x1D57}, /* 1D56 */
+ {0x1D58,0x1D58,0x1D58}, {0x1D59,0x1D59,0x1D59}, /* 1D58 */
+ {0x1D5A,0x1D5A,0x1D5A}, {0x1D5B,0x1D5B,0x1D5B}, /* 1D5A */
+ {0x1D5C,0x1D5C,0x1D5C}, {0x1D5D,0x1D5D,0x1D5D}, /* 1D5C */
+ {0x1D5E,0x1D5E,0x1D5E}, {0x1D5F,0x1D5F,0x1D5F}, /* 1D5E */
+ {0x1D60,0x1D60,0x1D60}, {0x1D61,0x1D61,0x1D61}, /* 1D60 */
+ {0x1D62,0x1D62,0x1D62}, {0x1D63,0x1D63,0x1D63}, /* 1D62 */
+ {0x1D64,0x1D64,0x1D64}, {0x1D65,0x1D65,0x1D65}, /* 1D64 */
+ {0x1D66,0x1D66,0x1D66}, {0x1D67,0x1D67,0x1D67}, /* 1D66 */
+ {0x1D68,0x1D68,0x1D68}, {0x1D69,0x1D69,0x1D69}, /* 1D68 */
+ {0x1D6A,0x1D6A,0x1D6A}, {0x1D6B,0x1D6B,0x1D6B}, /* 1D6A */
+ {0x1D6C,0x1D6C,0x1D6C}, {0x1D6D,0x1D6D,0x1D6D}, /* 1D6C */
+ {0x1D6E,0x1D6E,0x1D6E}, {0x1D6F,0x1D6F,0x1D6F}, /* 1D6E */
+ {0x1D70,0x1D70,0x1D70}, {0x1D71,0x1D71,0x1D71}, /* 1D70 */
+ {0x1D72,0x1D72,0x1D72}, {0x1D73,0x1D73,0x1D73}, /* 1D72 */
+ {0x1D74,0x1D74,0x1D74}, {0x1D75,0x1D75,0x1D75}, /* 1D74 */
+ {0x1D76,0x1D76,0x1D76}, {0x1D77,0x1D77,0x1D77}, /* 1D76 */
+ {0x1D78,0x1D78,0x1D78}, {0xA77D,0x1D79,0xA77D}, /* 1D78 */
+ {0x1D7A,0x1D7A,0x1D7A}, {0x1D7B,0x1D7B,0x1D7B}, /* 1D7A */
+ {0x1D7C,0x1D7C,0x1D7C}, {0x2C63,0x1D7D,0x2C63}, /* 1D7C */
+ {0x1D7E,0x1D7E,0x1D7E}, {0x1D7F,0x1D7F,0x1D7F}, /* 1D7E */
+ {0x1D80,0x1D80,0x1D80}, {0x1D81,0x1D81,0x1D81}, /* 1D80 */
+ {0x1D82,0x1D82,0x1D82}, {0x1D83,0x1D83,0x1D83}, /* 1D82 */
+ {0x1D84,0x1D84,0x1D84}, {0x1D85,0x1D85,0x1D85}, /* 1D84 */
+ {0x1D86,0x1D86,0x1D86}, {0x1D87,0x1D87,0x1D87}, /* 1D86 */
+ {0x1D88,0x1D88,0x1D88}, {0x1D89,0x1D89,0x1D89}, /* 1D88 */
+ {0x1D8A,0x1D8A,0x1D8A}, {0x1D8B,0x1D8B,0x1D8B}, /* 1D8A */
+ {0x1D8C,0x1D8C,0x1D8C}, {0x1D8D,0x1D8D,0x1D8D}, /* 1D8C */
+ {0x1D8E,0x1D8E,0x1D8E}, {0x1D8F,0x1D8F,0x1D8F}, /* 1D8E */
+ {0x1D90,0x1D90,0x1D90}, {0x1D91,0x1D91,0x1D91}, /* 1D90 */
+ {0x1D92,0x1D92,0x1D92}, {0x1D93,0x1D93,0x1D93}, /* 1D92 */
+ {0x1D94,0x1D94,0x1D94}, {0x1D95,0x1D95,0x1D95}, /* 1D94 */
+ {0x1D96,0x1D96,0x1D96}, {0x1D97,0x1D97,0x1D97}, /* 1D96 */
+ {0x1D98,0x1D98,0x1D98}, {0x1D99,0x1D99,0x1D99}, /* 1D98 */
+ {0x1D9A,0x1D9A,0x1D9A}, {0x1D9B,0x1D9B,0x1D9B}, /* 1D9A */
+ {0x1D9C,0x1D9C,0x1D9C}, {0x1D9D,0x1D9D,0x1D9D}, /* 1D9C */
+ {0x1D9E,0x1D9E,0x1D9E}, {0x1D9F,0x1D9F,0x1D9F}, /* 1D9E */
+ {0x1DA0,0x1DA0,0x1DA0}, {0x1DA1,0x1DA1,0x1DA1}, /* 1DA0 */
+ {0x1DA2,0x1DA2,0x1DA2}, {0x1DA3,0x1DA3,0x1DA3}, /* 1DA2 */
+ {0x1DA4,0x1DA4,0x1DA4}, {0x1DA5,0x1DA5,0x1DA5}, /* 1DA4 */
+ {0x1DA6,0x1DA6,0x1DA6}, {0x1DA7,0x1DA7,0x1DA7}, /* 1DA6 */
+ {0x1DA8,0x1DA8,0x1DA8}, {0x1DA9,0x1DA9,0x1DA9}, /* 1DA8 */
+ {0x1DAA,0x1DAA,0x1DAA}, {0x1DAB,0x1DAB,0x1DAB}, /* 1DAA */
+ {0x1DAC,0x1DAC,0x1DAC}, {0x1DAD,0x1DAD,0x1DAD}, /* 1DAC */
+ {0x1DAE,0x1DAE,0x1DAE}, {0x1DAF,0x1DAF,0x1DAF}, /* 1DAE */
+ {0x1DB0,0x1DB0,0x1DB0}, {0x1DB1,0x1DB1,0x1DB1}, /* 1DB0 */
+ {0x1DB2,0x1DB2,0x1DB2}, {0x1DB3,0x1DB3,0x1DB3}, /* 1DB2 */
+ {0x1DB4,0x1DB4,0x1DB4}, {0x1DB5,0x1DB5,0x1DB5}, /* 1DB4 */
+ {0x1DB6,0x1DB6,0x1DB6}, {0x1DB7,0x1DB7,0x1DB7}, /* 1DB6 */
+ {0x1DB8,0x1DB8,0x1DB8}, {0x1DB9,0x1DB9,0x1DB9}, /* 1DB8 */
+ {0x1DBA,0x1DBA,0x1DBA}, {0x1DBB,0x1DBB,0x1DBB}, /* 1DBA */
+ {0x1DBC,0x1DBC,0x1DBC}, {0x1DBD,0x1DBD,0x1DBD}, /* 1DBC */
+ {0x1DBE,0x1DBE,0x1DBE}, {0x1DBF,0x1DBF,0x1DBF}, /* 1DBE */
+ {0x1DC0,0x1DC0,0x1DC0}, {0x1DC1,0x1DC1,0x1DC1}, /* 1DC0 */
+ {0x1DC2,0x1DC2,0x1DC2}, {0x1DC3,0x1DC3,0x1DC3}, /* 1DC2 */
+ {0x1DC4,0x1DC4,0x1DC4}, {0x1DC5,0x1DC5,0x1DC5}, /* 1DC4 */
+ {0x1DC6,0x1DC6,0x1DC6}, {0x1DC7,0x1DC7,0x1DC7}, /* 1DC6 */
+ {0x1DC8,0x1DC8,0x1DC8}, {0x1DC9,0x1DC9,0x1DC9}, /* 1DC8 */
+ {0x1DCA,0x1DCA,0x1DCA}, {0x1DCB,0x1DCB,0x1DCB}, /* 1DCA */
+ {0x1DCC,0x1DCC,0x1DCC}, {0x1DCD,0x1DCD,0x1DCD}, /* 1DCC */
+ {0x1DCE,0x1DCE,0x1DCE}, {0x1DCF,0x1DCF,0x1DCF}, /* 1DCE */
+ {0x1DD0,0x1DD0,0x1DD0}, {0x1DD1,0x1DD1,0x1DD1}, /* 1DD0 */
+ {0x1DD2,0x1DD2,0x1DD2}, {0x1DD3,0x1DD3,0x1DD3}, /* 1DD2 */
+ {0x1DD4,0x1DD4,0x1DD4}, {0x1DD5,0x1DD5,0x1DD5}, /* 1DD4 */
+ {0x1DD6,0x1DD6,0x1DD6}, {0x1DD7,0x1DD7,0x1DD7}, /* 1DD6 */
+ {0x1DD8,0x1DD8,0x1DD8}, {0x1DD9,0x1DD9,0x1DD9}, /* 1DD8 */
+ {0x1DDA,0x1DDA,0x1DDA}, {0x1DDB,0x1DDB,0x1DDB}, /* 1DDA */
+ {0x1DDC,0x1DDC,0x1DDC}, {0x1DDD,0x1DDD,0x1DDD}, /* 1DDC */
+ {0x1DDE,0x1DDE,0x1DDE}, {0x1DDF,0x1DDF,0x1DDF}, /* 1DDE */
+ {0x1DE0,0x1DE0,0x1DE0}, {0x1DE1,0x1DE1,0x1DE1}, /* 1DE0 */
+ {0x1DE2,0x1DE2,0x1DE2}, {0x1DE3,0x1DE3,0x1DE3}, /* 1DE2 */
+ {0x1DE4,0x1DE4,0x1DE4}, {0x1DE5,0x1DE5,0x1DE5}, /* 1DE4 */
+ {0x1DE6,0x1DE6,0x1DE6}, {0x1DE7,0x1DE7,0x1DE7}, /* 1DE6 */
+ {0x1DE8,0x1DE8,0x1DE8}, {0x1DE9,0x1DE9,0x1DE9}, /* 1DE8 */
+ {0x1DEA,0x1DEA,0x1DEA}, {0x1DEB,0x1DEB,0x1DEB}, /* 1DEA */
+ {0x1DEC,0x1DEC,0x1DEC}, {0x1DED,0x1DED,0x1DED}, /* 1DEC */
+ {0x1DEE,0x1DEE,0x1DEE}, {0x1DEF,0x1DEF,0x1DEF}, /* 1DEE */
+ {0x1DF0,0x1DF0,0x1DF0}, {0x1DF1,0x1DF1,0x1DF1}, /* 1DF0 */
+ {0x1DF2,0x1DF2,0x1DF2}, {0x1DF3,0x1DF3,0x1DF3}, /* 1DF2 */
+ {0x1DF4,0x1DF4,0x1DF4}, {0x1DF5,0x1DF5,0x1DF5}, /* 1DF4 */
+ {0x1DF6,0x1DF6,0x1DF6}, {0x1DF7,0x1DF7,0x1DF7}, /* 1DF6 */
+ {0x1DF8,0x1DF8,0x1DF8}, {0x1DF9,0x1DF9,0x1DF9}, /* 1DF8 */
+ {0x1DFA,0x1DFA,0x1DFA}, {0x1DFB,0x1DFB,0x1DFB}, /* 1DFA */
+ {0x1DFC,0x1DFC,0x1DFC}, {0x1DFD,0x1DFD,0x1DFD}, /* 1DFC */
+ {0x1DFE,0x1DFE,0x1DFE}, {0x1DFF,0x1DFF,0x1DFF} /* 1DFE */
+};
+
+static MY_UNICASE_CHARACTER u520p1E[]={
+ {0x1E00,0x1E01,0x0041}, {0x1E00,0x1E01,0x0041}, /* 1E00 */
+ {0x1E02,0x1E03,0x0042}, {0x1E02,0x1E03,0x0042}, /* 1E02 */
+ {0x1E04,0x1E05,0x0042}, {0x1E04,0x1E05,0x0042}, /* 1E04 */
+ {0x1E06,0x1E07,0x0042}, {0x1E06,0x1E07,0x0042}, /* 1E06 */
+ {0x1E08,0x1E09,0x0043}, {0x1E08,0x1E09,0x0043}, /* 1E08 */
+ {0x1E0A,0x1E0B,0x0044}, {0x1E0A,0x1E0B,0x0044}, /* 1E0A */
+ {0x1E0C,0x1E0D,0x0044}, {0x1E0C,0x1E0D,0x0044}, /* 1E0C */
+ {0x1E0E,0x1E0F,0x0044}, {0x1E0E,0x1E0F,0x0044}, /* 1E0E */
+ {0x1E10,0x1E11,0x0044}, {0x1E10,0x1E11,0x0044}, /* 1E10 */
+ {0x1E12,0x1E13,0x0044}, {0x1E12,0x1E13,0x0044}, /* 1E12 */
+ {0x1E14,0x1E15,0x0045}, {0x1E14,0x1E15,0x0045}, /* 1E14 */
+ {0x1E16,0x1E17,0x0045}, {0x1E16,0x1E17,0x0045}, /* 1E16 */
+ {0x1E18,0x1E19,0x0045}, {0x1E18,0x1E19,0x0045}, /* 1E18 */
+ {0x1E1A,0x1E1B,0x0045}, {0x1E1A,0x1E1B,0x0045}, /* 1E1A */
+ {0x1E1C,0x1E1D,0x0045}, {0x1E1C,0x1E1D,0x0045}, /* 1E1C */
+ {0x1E1E,0x1E1F,0x0046}, {0x1E1E,0x1E1F,0x0046}, /* 1E1E */
+ {0x1E20,0x1E21,0x0047}, {0x1E20,0x1E21,0x0047}, /* 1E20 */
+ {0x1E22,0x1E23,0x0048}, {0x1E22,0x1E23,0x0048}, /* 1E22 */
+ {0x1E24,0x1E25,0x0048}, {0x1E24,0x1E25,0x0048}, /* 1E24 */
+ {0x1E26,0x1E27,0x0048}, {0x1E26,0x1E27,0x0048}, /* 1E26 */
+ {0x1E28,0x1E29,0x0048}, {0x1E28,0x1E29,0x0048}, /* 1E28 */
+ {0x1E2A,0x1E2B,0x0048}, {0x1E2A,0x1E2B,0x0048}, /* 1E2A */
+ {0x1E2C,0x1E2D,0x0049}, {0x1E2C,0x1E2D,0x0049}, /* 1E2C */
+ {0x1E2E,0x1E2F,0x0049}, {0x1E2E,0x1E2F,0x0049}, /* 1E2E */
+ {0x1E30,0x1E31,0x004B}, {0x1E30,0x1E31,0x004B}, /* 1E30 */
+ {0x1E32,0x1E33,0x004B}, {0x1E32,0x1E33,0x004B}, /* 1E32 */
+ {0x1E34,0x1E35,0x004B}, {0x1E34,0x1E35,0x004B}, /* 1E34 */
+ {0x1E36,0x1E37,0x004C}, {0x1E36,0x1E37,0x004C}, /* 1E36 */
+ {0x1E38,0x1E39,0x004C}, {0x1E38,0x1E39,0x004C}, /* 1E38 */
+ {0x1E3A,0x1E3B,0x004C}, {0x1E3A,0x1E3B,0x004C}, /* 1E3A */
+ {0x1E3C,0x1E3D,0x004C}, {0x1E3C,0x1E3D,0x004C}, /* 1E3C */
+ {0x1E3E,0x1E3F,0x004D}, {0x1E3E,0x1E3F,0x004D}, /* 1E3E */
+ {0x1E40,0x1E41,0x004D}, {0x1E40,0x1E41,0x004D}, /* 1E40 */
+ {0x1E42,0x1E43,0x004D}, {0x1E42,0x1E43,0x004D}, /* 1E42 */
+ {0x1E44,0x1E45,0x004E}, {0x1E44,0x1E45,0x004E}, /* 1E44 */
+ {0x1E46,0x1E47,0x004E}, {0x1E46,0x1E47,0x004E}, /* 1E46 */
+ {0x1E48,0x1E49,0x004E}, {0x1E48,0x1E49,0x004E}, /* 1E48 */
+ {0x1E4A,0x1E4B,0x004E}, {0x1E4A,0x1E4B,0x004E}, /* 1E4A */
+ {0x1E4C,0x1E4D,0x004F}, {0x1E4C,0x1E4D,0x004F}, /* 1E4C */
+ {0x1E4E,0x1E4F,0x004F}, {0x1E4E,0x1E4F,0x004F}, /* 1E4E */
+ {0x1E50,0x1E51,0x004F}, {0x1E50,0x1E51,0x004F}, /* 1E50 */
+ {0x1E52,0x1E53,0x004F}, {0x1E52,0x1E53,0x004F}, /* 1E52 */
+ {0x1E54,0x1E55,0x0050}, {0x1E54,0x1E55,0x0050}, /* 1E54 */
+ {0x1E56,0x1E57,0x0050}, {0x1E56,0x1E57,0x0050}, /* 1E56 */
+ {0x1E58,0x1E59,0x0052}, {0x1E58,0x1E59,0x0052}, /* 1E58 */
+ {0x1E5A,0x1E5B,0x0052}, {0x1E5A,0x1E5B,0x0052}, /* 1E5A */
+ {0x1E5C,0x1E5D,0x0052}, {0x1E5C,0x1E5D,0x0052}, /* 1E5C */
+ {0x1E5E,0x1E5F,0x0052}, {0x1E5E,0x1E5F,0x0052}, /* 1E5E */
+ {0x1E60,0x1E61,0x0053}, {0x1E60,0x1E61,0x0053}, /* 1E60 */
+ {0x1E62,0x1E63,0x0053}, {0x1E62,0x1E63,0x0053}, /* 1E62 */
+ {0x1E64,0x1E65,0x0053}, {0x1E64,0x1E65,0x0053}, /* 1E64 */
+ {0x1E66,0x1E67,0x0053}, {0x1E66,0x1E67,0x0053}, /* 1E66 */
+ {0x1E68,0x1E69,0x0053}, {0x1E68,0x1E69,0x0053}, /* 1E68 */
+ {0x1E6A,0x1E6B,0x0054}, {0x1E6A,0x1E6B,0x0054}, /* 1E6A */
+ {0x1E6C,0x1E6D,0x0054}, {0x1E6C,0x1E6D,0x0054}, /* 1E6C */
+ {0x1E6E,0x1E6F,0x0054}, {0x1E6E,0x1E6F,0x0054}, /* 1E6E */
+ {0x1E70,0x1E71,0x0054}, {0x1E70,0x1E71,0x0054}, /* 1E70 */
+ {0x1E72,0x1E73,0x0055}, {0x1E72,0x1E73,0x0055}, /* 1E72 */
+ {0x1E74,0x1E75,0x0055}, {0x1E74,0x1E75,0x0055}, /* 1E74 */
+ {0x1E76,0x1E77,0x0055}, {0x1E76,0x1E77,0x0055}, /* 1E76 */
+ {0x1E78,0x1E79,0x0055}, {0x1E78,0x1E79,0x0055}, /* 1E78 */
+ {0x1E7A,0x1E7B,0x0055}, {0x1E7A,0x1E7B,0x0055}, /* 1E7A */
+ {0x1E7C,0x1E7D,0x0056}, {0x1E7C,0x1E7D,0x0056}, /* 1E7C */
+ {0x1E7E,0x1E7F,0x0056}, {0x1E7E,0x1E7F,0x0056}, /* 1E7E */
+ {0x1E80,0x1E81,0x0057}, {0x1E80,0x1E81,0x0057}, /* 1E80 */
+ {0x1E82,0x1E83,0x0057}, {0x1E82,0x1E83,0x0057}, /* 1E82 */
+ {0x1E84,0x1E85,0x0057}, {0x1E84,0x1E85,0x0057}, /* 1E84 */
+ {0x1E86,0x1E87,0x0057}, {0x1E86,0x1E87,0x0057}, /* 1E86 */
+ {0x1E88,0x1E89,0x0057}, {0x1E88,0x1E89,0x0057}, /* 1E88 */
+ {0x1E8A,0x1E8B,0x0058}, {0x1E8A,0x1E8B,0x0058}, /* 1E8A */
+ {0x1E8C,0x1E8D,0x0058}, {0x1E8C,0x1E8D,0x0058}, /* 1E8C */
+ {0x1E8E,0x1E8F,0x0059}, {0x1E8E,0x1E8F,0x0059}, /* 1E8E */
+ {0x1E90,0x1E91,0x005A}, {0x1E90,0x1E91,0x005A}, /* 1E90 */
+ {0x1E92,0x1E93,0x005A}, {0x1E92,0x1E93,0x005A}, /* 1E92 */
+ {0x1E94,0x1E95,0x005A}, {0x1E94,0x1E95,0x005A}, /* 1E94 */
+ {0x1E96,0x1E96,0x0048}, {0x1E97,0x1E97,0x0054}, /* 1E96 */
+ {0x1E98,0x1E98,0x0057}, {0x1E99,0x1E99,0x0059}, /* 1E98 */
+ {0x1E9A,0x1E9A,0x1E9A}, {0x1E60,0x1E9B,0x0053}, /* 1E9A */
+ {0x1E9C,0x1E9C,0x1E9C}, {0x1E9D,0x1E9D,0x1E9D}, /* 1E9C */
+ {0x1E9E,0x00DF,0x1E9E}, {0x1E9F,0x1E9F,0x1E9F}, /* 1E9E */
+ {0x1EA0,0x1EA1,0x0041}, {0x1EA0,0x1EA1,0x0041}, /* 1EA0 */
+ {0x1EA2,0x1EA3,0x0041}, {0x1EA2,0x1EA3,0x0041}, /* 1EA2 */
+ {0x1EA4,0x1EA5,0x0041}, {0x1EA4,0x1EA5,0x0041}, /* 1EA4 */
+ {0x1EA6,0x1EA7,0x0041}, {0x1EA6,0x1EA7,0x0041}, /* 1EA6 */
+ {0x1EA8,0x1EA9,0x0041}, {0x1EA8,0x1EA9,0x0041}, /* 1EA8 */
+ {0x1EAA,0x1EAB,0x0041}, {0x1EAA,0x1EAB,0x0041}, /* 1EAA */
+ {0x1EAC,0x1EAD,0x0041}, {0x1EAC,0x1EAD,0x0041}, /* 1EAC */
+ {0x1EAE,0x1EAF,0x0041}, {0x1EAE,0x1EAF,0x0041}, /* 1EAE */
+ {0x1EB0,0x1EB1,0x0041}, {0x1EB0,0x1EB1,0x0041}, /* 1EB0 */
+ {0x1EB2,0x1EB3,0x0041}, {0x1EB2,0x1EB3,0x0041}, /* 1EB2 */
+ {0x1EB4,0x1EB5,0x0041}, {0x1EB4,0x1EB5,0x0041}, /* 1EB4 */
+ {0x1EB6,0x1EB7,0x0041}, {0x1EB6,0x1EB7,0x0041}, /* 1EB6 */
+ {0x1EB8,0x1EB9,0x0045}, {0x1EB8,0x1EB9,0x0045}, /* 1EB8 */
+ {0x1EBA,0x1EBB,0x0045}, {0x1EBA,0x1EBB,0x0045}, /* 1EBA */
+ {0x1EBC,0x1EBD,0x0045}, {0x1EBC,0x1EBD,0x0045}, /* 1EBC */
+ {0x1EBE,0x1EBF,0x0045}, {0x1EBE,0x1EBF,0x0045}, /* 1EBE */
+ {0x1EC0,0x1EC1,0x0045}, {0x1EC0,0x1EC1,0x0045}, /* 1EC0 */
+ {0x1EC2,0x1EC3,0x0045}, {0x1EC2,0x1EC3,0x0045}, /* 1EC2 */
+ {0x1EC4,0x1EC5,0x0045}, {0x1EC4,0x1EC5,0x0045}, /* 1EC4 */
+ {0x1EC6,0x1EC7,0x0045}, {0x1EC6,0x1EC7,0x0045}, /* 1EC6 */
+ {0x1EC8,0x1EC9,0x0049}, {0x1EC8,0x1EC9,0x0049}, /* 1EC8 */
+ {0x1ECA,0x1ECB,0x0049}, {0x1ECA,0x1ECB,0x0049}, /* 1ECA */
+ {0x1ECC,0x1ECD,0x004F}, {0x1ECC,0x1ECD,0x004F}, /* 1ECC */
+ {0x1ECE,0x1ECF,0x004F}, {0x1ECE,0x1ECF,0x004F}, /* 1ECE */
+ {0x1ED0,0x1ED1,0x004F}, {0x1ED0,0x1ED1,0x004F}, /* 1ED0 */
+ {0x1ED2,0x1ED3,0x004F}, {0x1ED2,0x1ED3,0x004F}, /* 1ED2 */
+ {0x1ED4,0x1ED5,0x004F}, {0x1ED4,0x1ED5,0x004F}, /* 1ED4 */
+ {0x1ED6,0x1ED7,0x004F}, {0x1ED6,0x1ED7,0x004F}, /* 1ED6 */
+ {0x1ED8,0x1ED9,0x004F}, {0x1ED8,0x1ED9,0x004F}, /* 1ED8 */
+ {0x1EDA,0x1EDB,0x004F}, {0x1EDA,0x1EDB,0x004F}, /* 1EDA */
+ {0x1EDC,0x1EDD,0x004F}, {0x1EDC,0x1EDD,0x004F}, /* 1EDC */
+ {0x1EDE,0x1EDF,0x004F}, {0x1EDE,0x1EDF,0x004F}, /* 1EDE */
+ {0x1EE0,0x1EE1,0x004F}, {0x1EE0,0x1EE1,0x004F}, /* 1EE0 */
+ {0x1EE2,0x1EE3,0x004F}, {0x1EE2,0x1EE3,0x004F}, /* 1EE2 */
+ {0x1EE4,0x1EE5,0x0055}, {0x1EE4,0x1EE5,0x0055}, /* 1EE4 */
+ {0x1EE6,0x1EE7,0x0055}, {0x1EE6,0x1EE7,0x0055}, /* 1EE6 */
+ {0x1EE8,0x1EE9,0x0055}, {0x1EE8,0x1EE9,0x0055}, /* 1EE8 */
+ {0x1EEA,0x1EEB,0x0055}, {0x1EEA,0x1EEB,0x0055}, /* 1EEA */
+ {0x1EEC,0x1EED,0x0055}, {0x1EEC,0x1EED,0x0055}, /* 1EEC */
+ {0x1EEE,0x1EEF,0x0055}, {0x1EEE,0x1EEF,0x0055}, /* 1EEE */
+ {0x1EF0,0x1EF1,0x0055}, {0x1EF0,0x1EF1,0x0055}, /* 1EF0 */
+ {0x1EF2,0x1EF3,0x0059}, {0x1EF2,0x1EF3,0x0059}, /* 1EF2 */
+ {0x1EF4,0x1EF5,0x0059}, {0x1EF4,0x1EF5,0x0059}, /* 1EF4 */
+ {0x1EF6,0x1EF7,0x0059}, {0x1EF6,0x1EF7,0x0059}, /* 1EF6 */
+ {0x1EF8,0x1EF9,0x0059}, {0x1EF8,0x1EF9,0x0059}, /* 1EF8 */
+ {0x1EFA,0x1EFB,0x1EFA}, {0x1EFA,0x1EFB,0x1EFA}, /* 1EFA */
+ {0x1EFC,0x1EFD,0x1EFC}, {0x1EFC,0x1EFD,0x1EFC}, /* 1EFC */
+ {0x1EFE,0x1EFF,0x1EFE}, {0x1EFE,0x1EFF,0x1EFE} /* 1EFE */
+};
+
+static MY_UNICASE_CHARACTER u520p1F[]={
+ {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F00 */
+ {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F02 */
+ {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F04 */
+ {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F06 */
+ {0x1F08,0x1F00,0x0391}, {0x1F09,0x1F01,0x0391}, /* 1F08 */
+ {0x1F0A,0x1F02,0x0391}, {0x1F0B,0x1F03,0x0391}, /* 1F0A */
+ {0x1F0C,0x1F04,0x0391}, {0x1F0D,0x1F05,0x0391}, /* 1F0C */
+ {0x1F0E,0x1F06,0x0391}, {0x1F0F,0x1F07,0x0391}, /* 1F0E */
+ {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F10 */
+ {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F12 */
+ {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F14 */
+ {0x1F16,0x1F16,0x1F16}, {0x1F17,0x1F17,0x1F17}, /* 1F16 */
+ {0x1F18,0x1F10,0x0395}, {0x1F19,0x1F11,0x0395}, /* 1F18 */
+ {0x1F1A,0x1F12,0x0395}, {0x1F1B,0x1F13,0x0395}, /* 1F1A */
+ {0x1F1C,0x1F14,0x0395}, {0x1F1D,0x1F15,0x0395}, /* 1F1C */
+ {0x1F1E,0x1F1E,0x1F1E}, {0x1F1F,0x1F1F,0x1F1F}, /* 1F1E */
+ {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F20 */
+ {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F22 */
+ {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F24 */
+ {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F26 */
+ {0x1F28,0x1F20,0x0397}, {0x1F29,0x1F21,0x0397}, /* 1F28 */
+ {0x1F2A,0x1F22,0x0397}, {0x1F2B,0x1F23,0x0397}, /* 1F2A */
+ {0x1F2C,0x1F24,0x0397}, {0x1F2D,0x1F25,0x0397}, /* 1F2C */
+ {0x1F2E,0x1F26,0x0397}, {0x1F2F,0x1F27,0x0397}, /* 1F2E */
+ {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F30 */
+ {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F32 */
+ {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F34 */
+ {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F36 */
+ {0x1F38,0x1F30,0x0399}, {0x1F39,0x1F31,0x0399}, /* 1F38 */
+ {0x1F3A,0x1F32,0x0399}, {0x1F3B,0x1F33,0x0399}, /* 1F3A */
+ {0x1F3C,0x1F34,0x0399}, {0x1F3D,0x1F35,0x0399}, /* 1F3C */
+ {0x1F3E,0x1F36,0x0399}, {0x1F3F,0x1F37,0x0399}, /* 1F3E */
+ {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F40 */
+ {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F42 */
+ {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F44 */
+ {0x1F46,0x1F46,0x1F46}, {0x1F47,0x1F47,0x1F47}, /* 1F46 */
+ {0x1F48,0x1F40,0x039F}, {0x1F49,0x1F41,0x039F}, /* 1F48 */
+ {0x1F4A,0x1F42,0x039F}, {0x1F4B,0x1F43,0x039F}, /* 1F4A */
+ {0x1F4C,0x1F44,0x039F}, {0x1F4D,0x1F45,0x039F}, /* 1F4C */
+ {0x1F4E,0x1F4E,0x1F4E}, {0x1F4F,0x1F4F,0x1F4F}, /* 1F4E */
+ {0x1F50,0x1F50,0x03A5}, {0x1F59,0x1F51,0x03A5}, /* 1F50 */
+ {0x1F52,0x1F52,0x03A5}, {0x1F5B,0x1F53,0x03A5}, /* 1F52 */
+ {0x1F54,0x1F54,0x03A5}, {0x1F5D,0x1F55,0x03A5}, /* 1F54 */
+ {0x1F56,0x1F56,0x03A5}, {0x1F5F,0x1F57,0x03A5}, /* 1F56 */
+ {0x1F58,0x1F58,0x1F58}, {0x1F59,0x1F51,0x03A5}, /* 1F58 */
+ {0x1F5A,0x1F5A,0x1F5A}, {0x1F5B,0x1F53,0x03A5}, /* 1F5A */
+ {0x1F5C,0x1F5C,0x1F5C}, {0x1F5D,0x1F55,0x03A5}, /* 1F5C */
+ {0x1F5E,0x1F5E,0x1F5E}, {0x1F5F,0x1F57,0x03A5}, /* 1F5E */
+ {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F60 */
+ {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F62 */
+ {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F64 */
+ {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F66 */
+ {0x1F68,0x1F60,0x03A9}, {0x1F69,0x1F61,0x03A9}, /* 1F68 */
+ {0x1F6A,0x1F62,0x03A9}, {0x1F6B,0x1F63,0x03A9}, /* 1F6A */
+ {0x1F6C,0x1F64,0x03A9}, {0x1F6D,0x1F65,0x03A9}, /* 1F6C */
+ {0x1F6E,0x1F66,0x03A9}, {0x1F6F,0x1F67,0x03A9}, /* 1F6E */
+ {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1F70 */
+ {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1F72 */
+ {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1F74 */
+ {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1F76 */
+ {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1F78 */
+ {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1F7A */
+ {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1F7C */
+ {0x1F7E,0x1F7E,0x1F7E}, {0x1F7F,0x1F7F,0x1F7F}, /* 1F7E */
+ {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F80 */
+ {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F82 */
+ {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F84 */
+ {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F86 */
+ {0x1F88,0x1F80,0x0391}, {0x1F89,0x1F81,0x0391}, /* 1F88 */
+ {0x1F8A,0x1F82,0x0391}, {0x1F8B,0x1F83,0x0391}, /* 1F8A */
+ {0x1F8C,0x1F84,0x0391}, {0x1F8D,0x1F85,0x0391}, /* 1F8C */
+ {0x1F8E,0x1F86,0x0391}, {0x1F8F,0x1F87,0x0391}, /* 1F8E */
+ {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F90 */
+ {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F92 */
+ {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F94 */
+ {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F96 */
+ {0x1F98,0x1F90,0x0397}, {0x1F99,0x1F91,0x0397}, /* 1F98 */
+ {0x1F9A,0x1F92,0x0397}, {0x1F9B,0x1F93,0x0397}, /* 1F9A */
+ {0x1F9C,0x1F94,0x0397}, {0x1F9D,0x1F95,0x0397}, /* 1F9C */
+ {0x1F9E,0x1F96,0x0397}, {0x1F9F,0x1F97,0x0397}, /* 1F9E */
+ {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA0 */
+ {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FA2 */
+ {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FA4 */
+ {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FA6 */
+ {0x1FA8,0x1FA0,0x03A9}, {0x1FA9,0x1FA1,0x03A9}, /* 1FA8 */
+ {0x1FAA,0x1FA2,0x03A9}, {0x1FAB,0x1FA3,0x03A9}, /* 1FAA */
+ {0x1FAC,0x1FA4,0x03A9}, {0x1FAD,0x1FA5,0x03A9}, /* 1FAC */
+ {0x1FAE,0x1FA6,0x03A9}, {0x1FAF,0x1FA7,0x03A9}, /* 1FAE */
+ {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB0 */
+ {0x1FB2,0x1FB2,0x0391}, {0x1FBC,0x1FB3,0x0391}, /* 1FB2 */
+ {0x1FB4,0x1FB4,0x0391}, {0x1FB5,0x1FB5,0x1FB5}, /* 1FB4 */
+ {0x1FB6,0x1FB6,0x0391}, {0x1FB7,0x1FB7,0x0391}, /* 1FB6 */
+ {0x1FB8,0x1FB0,0x0391}, {0x1FB9,0x1FB1,0x0391}, /* 1FB8 */
+ {0x1FBA,0x1F70,0x0391}, {0x1FBB,0x1F71,0x1FBB}, /* 1FBA */
+ {0x1FBC,0x1FB3,0x0391}, {0x1FBD,0x1FBD,0x1FBD}, /* 1FBC */
+ {0x0399,0x1FBE,0x0399}, {0x1FBF,0x1FBF,0x1FBF}, /* 1FBE */
+ {0x1FC0,0x1FC0,0x1FC0}, {0x1FC1,0x1FC1,0x1FC1}, /* 1FC0 */
+ {0x1FC2,0x1FC2,0x0397}, {0x1FCC,0x1FC3,0x0397}, /* 1FC2 */
+ {0x1FC4,0x1FC4,0x0397}, {0x1FC5,0x1FC5,0x1FC5}, /* 1FC4 */
+ {0x1FC6,0x1FC6,0x0397}, {0x1FC7,0x1FC7,0x0397}, /* 1FC6 */
+ {0x1FC8,0x1F72,0x0395}, {0x1FC9,0x1F73,0x1FC9}, /* 1FC8 */
+ {0x1FCA,0x1F74,0x0397}, {0x1FCB,0x1F75,0x1FCB}, /* 1FCA */
+ {0x1FCC,0x1FC3,0x0397}, {0x1FCD,0x1FCD,0x1FCD}, /* 1FCC */
+ {0x1FCE,0x1FCE,0x1FCE}, {0x1FCF,0x1FCF,0x1FCF}, /* 1FCE */
+ {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD0 */
+ {0x1FD2,0x1FD2,0x0399}, {0x1FD3,0x1FD3,0x1FD3}, /* 1FD2 */
+ {0x1FD4,0x1FD4,0x1FD4}, {0x1FD5,0x1FD5,0x1FD5}, /* 1FD4 */
+ {0x1FD6,0x1FD6,0x0399}, {0x1FD7,0x1FD7,0x0399}, /* 1FD6 */
+ {0x1FD8,0x1FD0,0x0399}, {0x1FD9,0x1FD1,0x0399}, /* 1FD8 */
+ {0x1FDA,0x1F76,0x0399}, {0x1FDB,0x1F77,0x1FDB}, /* 1FDA */
+ {0x1FDC,0x1FDC,0x1FDC}, {0x1FDD,0x1FDD,0x1FDD}, /* 1FDC */
+ {0x1FDE,0x1FDE,0x1FDE}, {0x1FDF,0x1FDF,0x1FDF}, /* 1FDE */
+ {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE0 */
+ {0x1FE2,0x1FE2,0x03A5}, {0x1FE3,0x1FE3,0x1FE3}, /* 1FE2 */
+ {0x1FE4,0x1FE4,0x03A1}, {0x1FEC,0x1FE5,0x03A1}, /* 1FE4 */
+ {0x1FE6,0x1FE6,0x03A5}, {0x1FE7,0x1FE7,0x03A5}, /* 1FE6 */
+ {0x1FE8,0x1FE0,0x03A5}, {0x1FE9,0x1FE1,0x03A5}, /* 1FE8 */
+ {0x1FEA,0x1F7A,0x03A5}, {0x1FEB,0x1F7B,0x1FEB}, /* 1FEA */
+ {0x1FEC,0x1FE5,0x03A1}, {0x1FED,0x1FED,0x1FED}, /* 1FEC */
+ {0x1FEE,0x1FEE,0x1FEE}, {0x1FEF,0x1FEF,0x1FEF}, /* 1FEE */
+ {0x1FF0,0x1FF0,0x1FF0}, {0x1FF1,0x1FF1,0x1FF1}, /* 1FF0 */
+ {0x1FF2,0x1FF2,0x03A9}, {0x1FFC,0x1FF3,0x03A9}, /* 1FF2 */
+ {0x1FF4,0x1FF4,0x03A9}, {0x1FF5,0x1FF5,0x1FF5}, /* 1FF4 */
+ {0x1FF6,0x1FF6,0x03A9}, {0x1FF7,0x1FF7,0x03A9}, /* 1FF6 */
+ {0x1FF8,0x1F78,0x039F}, {0x1FF9,0x1F79,0x1FF9}, /* 1FF8 */
+ {0x1FFA,0x1F7C,0x03A9}, {0x1FFB,0x1F7D,0x1FFB}, /* 1FFA */
+ {0x1FFC,0x1FF3,0x03A9}, {0x1FFD,0x1FFD,0x1FFD}, /* 1FFC */
+ {0x1FFE,0x1FFE,0x1FFE}, {0x1FFF,0x1FFF,0x1FFF} /* 1FFE */
+};
+
+static MY_UNICASE_CHARACTER u520p21[]={
+ {0x2100,0x2100,0x2100}, {0x2101,0x2101,0x2101}, /* 2100 */
+ {0x2102,0x2102,0x2102}, {0x2103,0x2103,0x2103}, /* 2102 */
+ {0x2104,0x2104,0x2104}, {0x2105,0x2105,0x2105}, /* 2104 */
+ {0x2106,0x2106,0x2106}, {0x2107,0x2107,0x2107}, /* 2106 */
+ {0x2108,0x2108,0x2108}, {0x2109,0x2109,0x2109}, /* 2108 */
+ {0x210A,0x210A,0x210A}, {0x210B,0x210B,0x210B}, /* 210A */
+ {0x210C,0x210C,0x210C}, {0x210D,0x210D,0x210D}, /* 210C */
+ {0x210E,0x210E,0x210E}, {0x210F,0x210F,0x210F}, /* 210E */
+ {0x2110,0x2110,0x2110}, {0x2111,0x2111,0x2111}, /* 2110 */
+ {0x2112,0x2112,0x2112}, {0x2113,0x2113,0x2113}, /* 2112 */
+ {0x2114,0x2114,0x2114}, {0x2115,0x2115,0x2115}, /* 2114 */
+ {0x2116,0x2116,0x2116}, {0x2117,0x2117,0x2117}, /* 2116 */
+ {0x2118,0x2118,0x2118}, {0x2119,0x2119,0x2119}, /* 2118 */
+ {0x211A,0x211A,0x211A}, {0x211B,0x211B,0x211B}, /* 211A */
+ {0x211C,0x211C,0x211C}, {0x211D,0x211D,0x211D}, /* 211C */
+ {0x211E,0x211E,0x211E}, {0x211F,0x211F,0x211F}, /* 211E */
+ {0x2120,0x2120,0x2120}, {0x2121,0x2121,0x2121}, /* 2120 */
+ {0x2122,0x2122,0x2122}, {0x2123,0x2123,0x2123}, /* 2122 */
+ {0x2124,0x2124,0x2124}, {0x2125,0x2125,0x2125}, /* 2124 */
+ {0x2126,0x03C9,0x2126}, {0x2127,0x2127,0x2127}, /* 2126 */
+ {0x2128,0x2128,0x2128}, {0x2129,0x2129,0x2129}, /* 2128 */
+ {0x212A,0x006B,0x212A}, {0x212B,0x00E5,0x212B}, /* 212A */
+ {0x212C,0x212C,0x212C}, {0x212D,0x212D,0x212D}, /* 212C */
+ {0x212E,0x212E,0x212E}, {0x212F,0x212F,0x212F}, /* 212E */
+ {0x2130,0x2130,0x2130}, {0x2131,0x2131,0x2131}, /* 2130 */
+ {0x2132,0x214E,0x2132}, {0x2133,0x2133,0x2133}, /* 2132 */
+ {0x2134,0x2134,0x2134}, {0x2135,0x2135,0x2135}, /* 2134 */
+ {0x2136,0x2136,0x2136}, {0x2137,0x2137,0x2137}, /* 2136 */
+ {0x2138,0x2138,0x2138}, {0x2139,0x2139,0x2139}, /* 2138 */
+ {0x213A,0x213A,0x213A}, {0x213B,0x213B,0x213B}, /* 213A */
+ {0x213C,0x213C,0x213C}, {0x213D,0x213D,0x213D}, /* 213C */
+ {0x213E,0x213E,0x213E}, {0x213F,0x213F,0x213F}, /* 213E */
+ {0x2140,0x2140,0x2140}, {0x2141,0x2141,0x2141}, /* 2140 */
+ {0x2142,0x2142,0x2142}, {0x2143,0x2143,0x2143}, /* 2142 */
+ {0x2144,0x2144,0x2144}, {0x2145,0x2145,0x2145}, /* 2144 */
+ {0x2146,0x2146,0x2146}, {0x2147,0x2147,0x2147}, /* 2146 */
+ {0x2148,0x2148,0x2148}, {0x2149,0x2149,0x2149}, /* 2148 */
+ {0x214A,0x214A,0x214A}, {0x214B,0x214B,0x214B}, /* 214A */
+ {0x214C,0x214C,0x214C}, {0x214D,0x214D,0x214D}, /* 214C */
+ {0x2132,0x214E,0x2132}, {0x214F,0x214F,0x214F}, /* 214E */
+ {0x2150,0x2150,0x2150}, {0x2151,0x2151,0x2151}, /* 2150 */
+ {0x2152,0x2152,0x2152}, {0x2153,0x2153,0x2153}, /* 2152 */
+ {0x2154,0x2154,0x2154}, {0x2155,0x2155,0x2155}, /* 2154 */
+ {0x2156,0x2156,0x2156}, {0x2157,0x2157,0x2157}, /* 2156 */
+ {0x2158,0x2158,0x2158}, {0x2159,0x2159,0x2159}, /* 2158 */
+ {0x215A,0x215A,0x215A}, {0x215B,0x215B,0x215B}, /* 215A */
+ {0x215C,0x215C,0x215C}, {0x215D,0x215D,0x215D}, /* 215C */
+ {0x215E,0x215E,0x215E}, {0x215F,0x215F,0x215F}, /* 215E */
+ {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2160 */
+ {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2162 */
+ {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2164 */
+ {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2166 */
+ {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2168 */
+ {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 216A */
+ {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 216C */
+ {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 216E */
+ {0x2160,0x2170,0x2160}, {0x2161,0x2171,0x2161}, /* 2170 */
+ {0x2162,0x2172,0x2162}, {0x2163,0x2173,0x2163}, /* 2172 */
+ {0x2164,0x2174,0x2164}, {0x2165,0x2175,0x2165}, /* 2174 */
+ {0x2166,0x2176,0x2166}, {0x2167,0x2177,0x2167}, /* 2176 */
+ {0x2168,0x2178,0x2168}, {0x2169,0x2179,0x2169}, /* 2178 */
+ {0x216A,0x217A,0x216A}, {0x216B,0x217B,0x216B}, /* 217A */
+ {0x216C,0x217C,0x216C}, {0x216D,0x217D,0x216D}, /* 217C */
+ {0x216E,0x217E,0x216E}, {0x216F,0x217F,0x216F}, /* 217E */
+ {0x2180,0x2180,0x2180}, {0x2181,0x2181,0x2181}, /* 2180 */
+ {0x2182,0x2182,0x2182}, {0x2183,0x2184,0x2183}, /* 2182 */
+ {0x2183,0x2184,0x2183}, {0x2185,0x2185,0x2185}, /* 2184 */
+ {0x2186,0x2186,0x2186}, {0x2187,0x2187,0x2187}, /* 2186 */
+ {0x2188,0x2188,0x2188}, {0x2189,0x2189,0x2189}, /* 2188 */
+ {0x218A,0x218A,0x218A}, {0x218B,0x218B,0x218B}, /* 218A */
+ {0x218C,0x218C,0x218C}, {0x218D,0x218D,0x218D}, /* 218C */
+ {0x218E,0x218E,0x218E}, {0x218F,0x218F,0x218F}, /* 218E */
+ {0x2190,0x2190,0x2190}, {0x2191,0x2191,0x2191}, /* 2190 */
+ {0x2192,0x2192,0x2192}, {0x2193,0x2193,0x2193}, /* 2192 */
+ {0x2194,0x2194,0x2194}, {0x2195,0x2195,0x2195}, /* 2194 */
+ {0x2196,0x2196,0x2196}, {0x2197,0x2197,0x2197}, /* 2196 */
+ {0x2198,0x2198,0x2198}, {0x2199,0x2199,0x2199}, /* 2198 */
+ {0x219A,0x219A,0x219A}, {0x219B,0x219B,0x219B}, /* 219A */
+ {0x219C,0x219C,0x219C}, {0x219D,0x219D,0x219D}, /* 219C */
+ {0x219E,0x219E,0x219E}, {0x219F,0x219F,0x219F}, /* 219E */
+ {0x21A0,0x21A0,0x21A0}, {0x21A1,0x21A1,0x21A1}, /* 21A0 */
+ {0x21A2,0x21A2,0x21A2}, {0x21A3,0x21A3,0x21A3}, /* 21A2 */
+ {0x21A4,0x21A4,0x21A4}, {0x21A5,0x21A5,0x21A5}, /* 21A4 */
+ {0x21A6,0x21A6,0x21A6}, {0x21A7,0x21A7,0x21A7}, /* 21A6 */
+ {0x21A8,0x21A8,0x21A8}, {0x21A9,0x21A9,0x21A9}, /* 21A8 */
+ {0x21AA,0x21AA,0x21AA}, {0x21AB,0x21AB,0x21AB}, /* 21AA */
+ {0x21AC,0x21AC,0x21AC}, {0x21AD,0x21AD,0x21AD}, /* 21AC */
+ {0x21AE,0x21AE,0x21AE}, {0x21AF,0x21AF,0x21AF}, /* 21AE */
+ {0x21B0,0x21B0,0x21B0}, {0x21B1,0x21B1,0x21B1}, /* 21B0 */
+ {0x21B2,0x21B2,0x21B2}, {0x21B3,0x21B3,0x21B3}, /* 21B2 */
+ {0x21B4,0x21B4,0x21B4}, {0x21B5,0x21B5,0x21B5}, /* 21B4 */
+ {0x21B6,0x21B6,0x21B6}, {0x21B7,0x21B7,0x21B7}, /* 21B6 */
+ {0x21B8,0x21B8,0x21B8}, {0x21B9,0x21B9,0x21B9}, /* 21B8 */
+ {0x21BA,0x21BA,0x21BA}, {0x21BB,0x21BB,0x21BB}, /* 21BA */
+ {0x21BC,0x21BC,0x21BC}, {0x21BD,0x21BD,0x21BD}, /* 21BC */
+ {0x21BE,0x21BE,0x21BE}, {0x21BF,0x21BF,0x21BF}, /* 21BE */
+ {0x21C0,0x21C0,0x21C0}, {0x21C1,0x21C1,0x21C1}, /* 21C0 */
+ {0x21C2,0x21C2,0x21C2}, {0x21C3,0x21C3,0x21C3}, /* 21C2 */
+ {0x21C4,0x21C4,0x21C4}, {0x21C5,0x21C5,0x21C5}, /* 21C4 */
+ {0x21C6,0x21C6,0x21C6}, {0x21C7,0x21C7,0x21C7}, /* 21C6 */
+ {0x21C8,0x21C8,0x21C8}, {0x21C9,0x21C9,0x21C9}, /* 21C8 */
+ {0x21CA,0x21CA,0x21CA}, {0x21CB,0x21CB,0x21CB}, /* 21CA */
+ {0x21CC,0x21CC,0x21CC}, {0x21CD,0x21CD,0x21CD}, /* 21CC */
+ {0x21CE,0x21CE,0x21CE}, {0x21CF,0x21CF,0x21CF}, /* 21CE */
+ {0x21D0,0x21D0,0x21D0}, {0x21D1,0x21D1,0x21D1}, /* 21D0 */
+ {0x21D2,0x21D2,0x21D2}, {0x21D3,0x21D3,0x21D3}, /* 21D2 */
+ {0x21D4,0x21D4,0x21D4}, {0x21D5,0x21D5,0x21D5}, /* 21D4 */
+ {0x21D6,0x21D6,0x21D6}, {0x21D7,0x21D7,0x21D7}, /* 21D6 */
+ {0x21D8,0x21D8,0x21D8}, {0x21D9,0x21D9,0x21D9}, /* 21D8 */
+ {0x21DA,0x21DA,0x21DA}, {0x21DB,0x21DB,0x21DB}, /* 21DA */
+ {0x21DC,0x21DC,0x21DC}, {0x21DD,0x21DD,0x21DD}, /* 21DC */
+ {0x21DE,0x21DE,0x21DE}, {0x21DF,0x21DF,0x21DF}, /* 21DE */
+ {0x21E0,0x21E0,0x21E0}, {0x21E1,0x21E1,0x21E1}, /* 21E0 */
+ {0x21E2,0x21E2,0x21E2}, {0x21E3,0x21E3,0x21E3}, /* 21E2 */
+ {0x21E4,0x21E4,0x21E4}, {0x21E5,0x21E5,0x21E5}, /* 21E4 */
+ {0x21E6,0x21E6,0x21E6}, {0x21E7,0x21E7,0x21E7}, /* 21E6 */
+ {0x21E8,0x21E8,0x21E8}, {0x21E9,0x21E9,0x21E9}, /* 21E8 */
+ {0x21EA,0x21EA,0x21EA}, {0x21EB,0x21EB,0x21EB}, /* 21EA */
+ {0x21EC,0x21EC,0x21EC}, {0x21ED,0x21ED,0x21ED}, /* 21EC */
+ {0x21EE,0x21EE,0x21EE}, {0x21EF,0x21EF,0x21EF}, /* 21EE */
+ {0x21F0,0x21F0,0x21F0}, {0x21F1,0x21F1,0x21F1}, /* 21F0 */
+ {0x21F2,0x21F2,0x21F2}, {0x21F3,0x21F3,0x21F3}, /* 21F2 */
+ {0x21F4,0x21F4,0x21F4}, {0x21F5,0x21F5,0x21F5}, /* 21F4 */
+ {0x21F6,0x21F6,0x21F6}, {0x21F7,0x21F7,0x21F7}, /* 21F6 */
+ {0x21F8,0x21F8,0x21F8}, {0x21F9,0x21F9,0x21F9}, /* 21F8 */
+ {0x21FA,0x21FA,0x21FA}, {0x21FB,0x21FB,0x21FB}, /* 21FA */
+ {0x21FC,0x21FC,0x21FC}, {0x21FD,0x21FD,0x21FD}, /* 21FC */
+ {0x21FE,0x21FE,0x21FE}, {0x21FF,0x21FF,0x21FF} /* 21FE */
+};
+
+static MY_UNICASE_CHARACTER u520p24[]={
+ {0x2400,0x2400,0x2400}, {0x2401,0x2401,0x2401}, /* 2400 */
+ {0x2402,0x2402,0x2402}, {0x2403,0x2403,0x2403}, /* 2402 */
+ {0x2404,0x2404,0x2404}, {0x2405,0x2405,0x2405}, /* 2404 */
+ {0x2406,0x2406,0x2406}, {0x2407,0x2407,0x2407}, /* 2406 */
+ {0x2408,0x2408,0x2408}, {0x2409,0x2409,0x2409}, /* 2408 */
+ {0x240A,0x240A,0x240A}, {0x240B,0x240B,0x240B}, /* 240A */
+ {0x240C,0x240C,0x240C}, {0x240D,0x240D,0x240D}, /* 240C */
+ {0x240E,0x240E,0x240E}, {0x240F,0x240F,0x240F}, /* 240E */
+ {0x2410,0x2410,0x2410}, {0x2411,0x2411,0x2411}, /* 2410 */
+ {0x2412,0x2412,0x2412}, {0x2413,0x2413,0x2413}, /* 2412 */
+ {0x2414,0x2414,0x2414}, {0x2415,0x2415,0x2415}, /* 2414 */
+ {0x2416,0x2416,0x2416}, {0x2417,0x2417,0x2417}, /* 2416 */
+ {0x2418,0x2418,0x2418}, {0x2419,0x2419,0x2419}, /* 2418 */
+ {0x241A,0x241A,0x241A}, {0x241B,0x241B,0x241B}, /* 241A */
+ {0x241C,0x241C,0x241C}, {0x241D,0x241D,0x241D}, /* 241C */
+ {0x241E,0x241E,0x241E}, {0x241F,0x241F,0x241F}, /* 241E */
+ {0x2420,0x2420,0x2420}, {0x2421,0x2421,0x2421}, /* 2420 */
+ {0x2422,0x2422,0x2422}, {0x2423,0x2423,0x2423}, /* 2422 */
+ {0x2424,0x2424,0x2424}, {0x2425,0x2425,0x2425}, /* 2424 */
+ {0x2426,0x2426,0x2426}, {0x2427,0x2427,0x2427}, /* 2426 */
+ {0x2428,0x2428,0x2428}, {0x2429,0x2429,0x2429}, /* 2428 */
+ {0x242A,0x242A,0x242A}, {0x242B,0x242B,0x242B}, /* 242A */
+ {0x242C,0x242C,0x242C}, {0x242D,0x242D,0x242D}, /* 242C */
+ {0x242E,0x242E,0x242E}, {0x242F,0x242F,0x242F}, /* 242E */
+ {0x2430,0x2430,0x2430}, {0x2431,0x2431,0x2431}, /* 2430 */
+ {0x2432,0x2432,0x2432}, {0x2433,0x2433,0x2433}, /* 2432 */
+ {0x2434,0x2434,0x2434}, {0x2435,0x2435,0x2435}, /* 2434 */
+ {0x2436,0x2436,0x2436}, {0x2437,0x2437,0x2437}, /* 2436 */
+ {0x2438,0x2438,0x2438}, {0x2439,0x2439,0x2439}, /* 2438 */
+ {0x243A,0x243A,0x243A}, {0x243B,0x243B,0x243B}, /* 243A */
+ {0x243C,0x243C,0x243C}, {0x243D,0x243D,0x243D}, /* 243C */
+ {0x243E,0x243E,0x243E}, {0x243F,0x243F,0x243F}, /* 243E */
+ {0x2440,0x2440,0x2440}, {0x2441,0x2441,0x2441}, /* 2440 */
+ {0x2442,0x2442,0x2442}, {0x2443,0x2443,0x2443}, /* 2442 */
+ {0x2444,0x2444,0x2444}, {0x2445,0x2445,0x2445}, /* 2444 */
+ {0x2446,0x2446,0x2446}, {0x2447,0x2447,0x2447}, /* 2446 */
+ {0x2448,0x2448,0x2448}, {0x2449,0x2449,0x2449}, /* 2448 */
+ {0x244A,0x244A,0x244A}, {0x244B,0x244B,0x244B}, /* 244A */
+ {0x244C,0x244C,0x244C}, {0x244D,0x244D,0x244D}, /* 244C */
+ {0x244E,0x244E,0x244E}, {0x244F,0x244F,0x244F}, /* 244E */
+ {0x2450,0x2450,0x2450}, {0x2451,0x2451,0x2451}, /* 2450 */
+ {0x2452,0x2452,0x2452}, {0x2453,0x2453,0x2453}, /* 2452 */
+ {0x2454,0x2454,0x2454}, {0x2455,0x2455,0x2455}, /* 2454 */
+ {0x2456,0x2456,0x2456}, {0x2457,0x2457,0x2457}, /* 2456 */
+ {0x2458,0x2458,0x2458}, {0x2459,0x2459,0x2459}, /* 2458 */
+ {0x245A,0x245A,0x245A}, {0x245B,0x245B,0x245B}, /* 245A */
+ {0x245C,0x245C,0x245C}, {0x245D,0x245D,0x245D}, /* 245C */
+ {0x245E,0x245E,0x245E}, {0x245F,0x245F,0x245F}, /* 245E */
+ {0x2460,0x2460,0x2460}, {0x2461,0x2461,0x2461}, /* 2460 */
+ {0x2462,0x2462,0x2462}, {0x2463,0x2463,0x2463}, /* 2462 */
+ {0x2464,0x2464,0x2464}, {0x2465,0x2465,0x2465}, /* 2464 */
+ {0x2466,0x2466,0x2466}, {0x2467,0x2467,0x2467}, /* 2466 */
+ {0x2468,0x2468,0x2468}, {0x2469,0x2469,0x2469}, /* 2468 */
+ {0x246A,0x246A,0x246A}, {0x246B,0x246B,0x246B}, /* 246A */
+ {0x246C,0x246C,0x246C}, {0x246D,0x246D,0x246D}, /* 246C */
+ {0x246E,0x246E,0x246E}, {0x246F,0x246F,0x246F}, /* 246E */
+ {0x2470,0x2470,0x2470}, {0x2471,0x2471,0x2471}, /* 2470 */
+ {0x2472,0x2472,0x2472}, {0x2473,0x2473,0x2473}, /* 2472 */
+ {0x2474,0x2474,0x2474}, {0x2475,0x2475,0x2475}, /* 2474 */
+ {0x2476,0x2476,0x2476}, {0x2477,0x2477,0x2477}, /* 2476 */
+ {0x2478,0x2478,0x2478}, {0x2479,0x2479,0x2479}, /* 2478 */
+ {0x247A,0x247A,0x247A}, {0x247B,0x247B,0x247B}, /* 247A */
+ {0x247C,0x247C,0x247C}, {0x247D,0x247D,0x247D}, /* 247C */
+ {0x247E,0x247E,0x247E}, {0x247F,0x247F,0x247F}, /* 247E */
+ {0x2480,0x2480,0x2480}, {0x2481,0x2481,0x2481}, /* 2480 */
+ {0x2482,0x2482,0x2482}, {0x2483,0x2483,0x2483}, /* 2482 */
+ {0x2484,0x2484,0x2484}, {0x2485,0x2485,0x2485}, /* 2484 */
+ {0x2486,0x2486,0x2486}, {0x2487,0x2487,0x2487}, /* 2486 */
+ {0x2488,0x2488,0x2488}, {0x2489,0x2489,0x2489}, /* 2488 */
+ {0x248A,0x248A,0x248A}, {0x248B,0x248B,0x248B}, /* 248A */
+ {0x248C,0x248C,0x248C}, {0x248D,0x248D,0x248D}, /* 248C */
+ {0x248E,0x248E,0x248E}, {0x248F,0x248F,0x248F}, /* 248E */
+ {0x2490,0x2490,0x2490}, {0x2491,0x2491,0x2491}, /* 2490 */
+ {0x2492,0x2492,0x2492}, {0x2493,0x2493,0x2493}, /* 2492 */
+ {0x2494,0x2494,0x2494}, {0x2495,0x2495,0x2495}, /* 2494 */
+ {0x2496,0x2496,0x2496}, {0x2497,0x2497,0x2497}, /* 2496 */
+ {0x2498,0x2498,0x2498}, {0x2499,0x2499,0x2499}, /* 2498 */
+ {0x249A,0x249A,0x249A}, {0x249B,0x249B,0x249B}, /* 249A */
+ {0x249C,0x249C,0x249C}, {0x249D,0x249D,0x249D}, /* 249C */
+ {0x249E,0x249E,0x249E}, {0x249F,0x249F,0x249F}, /* 249E */
+ {0x24A0,0x24A0,0x24A0}, {0x24A1,0x24A1,0x24A1}, /* 24A0 */
+ {0x24A2,0x24A2,0x24A2}, {0x24A3,0x24A3,0x24A3}, /* 24A2 */
+ {0x24A4,0x24A4,0x24A4}, {0x24A5,0x24A5,0x24A5}, /* 24A4 */
+ {0x24A6,0x24A6,0x24A6}, {0x24A7,0x24A7,0x24A7}, /* 24A6 */
+ {0x24A8,0x24A8,0x24A8}, {0x24A9,0x24A9,0x24A9}, /* 24A8 */
+ {0x24AA,0x24AA,0x24AA}, {0x24AB,0x24AB,0x24AB}, /* 24AA */
+ {0x24AC,0x24AC,0x24AC}, {0x24AD,0x24AD,0x24AD}, /* 24AC */
+ {0x24AE,0x24AE,0x24AE}, {0x24AF,0x24AF,0x24AF}, /* 24AE */
+ {0x24B0,0x24B0,0x24B0}, {0x24B1,0x24B1,0x24B1}, /* 24B0 */
+ {0x24B2,0x24B2,0x24B2}, {0x24B3,0x24B3,0x24B3}, /* 24B2 */
+ {0x24B4,0x24B4,0x24B4}, {0x24B5,0x24B5,0x24B5}, /* 24B4 */
+ {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24B6 */
+ {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24B8 */
+ {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24BA */
+ {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24BC */
+ {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24BE */
+ {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24C0 */
+ {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24C2 */
+ {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24C4 */
+ {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24C6 */
+ {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24C8 */
+ {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24CA */
+ {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24CC */
+ {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24CE */
+ {0x24B6,0x24D0,0x24B6}, {0x24B7,0x24D1,0x24B7}, /* 24D0 */
+ {0x24B8,0x24D2,0x24B8}, {0x24B9,0x24D3,0x24B9}, /* 24D2 */
+ {0x24BA,0x24D4,0x24BA}, {0x24BB,0x24D5,0x24BB}, /* 24D4 */
+ {0x24BC,0x24D6,0x24BC}, {0x24BD,0x24D7,0x24BD}, /* 24D6 */
+ {0x24BE,0x24D8,0x24BE}, {0x24BF,0x24D9,0x24BF}, /* 24D8 */
+ {0x24C0,0x24DA,0x24C0}, {0x24C1,0x24DB,0x24C1}, /* 24DA */
+ {0x24C2,0x24DC,0x24C2}, {0x24C3,0x24DD,0x24C3}, /* 24DC */
+ {0x24C4,0x24DE,0x24C4}, {0x24C5,0x24DF,0x24C5}, /* 24DE */
+ {0x24C6,0x24E0,0x24C6}, {0x24C7,0x24E1,0x24C7}, /* 24E0 */
+ {0x24C8,0x24E2,0x24C8}, {0x24C9,0x24E3,0x24C9}, /* 24E2 */
+ {0x24CA,0x24E4,0x24CA}, {0x24CB,0x24E5,0x24CB}, /* 24E4 */
+ {0x24CC,0x24E6,0x24CC}, {0x24CD,0x24E7,0x24CD}, /* 24E6 */
+ {0x24CE,0x24E8,0x24CE}, {0x24CF,0x24E9,0x24CF}, /* 24E8 */
+ {0x24EA,0x24EA,0x24EA}, {0x24EB,0x24EB,0x24EB}, /* 24EA */
+ {0x24EC,0x24EC,0x24EC}, {0x24ED,0x24ED,0x24ED}, /* 24EC */
+ {0x24EE,0x24EE,0x24EE}, {0x24EF,0x24EF,0x24EF}, /* 24EE */
+ {0x24F0,0x24F0,0x24F0}, {0x24F1,0x24F1,0x24F1}, /* 24F0 */
+ {0x24F2,0x24F2,0x24F2}, {0x24F3,0x24F3,0x24F3}, /* 24F2 */
+ {0x24F4,0x24F4,0x24F4}, {0x24F5,0x24F5,0x24F5}, /* 24F4 */
+ {0x24F6,0x24F6,0x24F6}, {0x24F7,0x24F7,0x24F7}, /* 24F6 */
+ {0x24F8,0x24F8,0x24F8}, {0x24F9,0x24F9,0x24F9}, /* 24F8 */
+ {0x24FA,0x24FA,0x24FA}, {0x24FB,0x24FB,0x24FB}, /* 24FA */
+ {0x24FC,0x24FC,0x24FC}, {0x24FD,0x24FD,0x24FD}, /* 24FC */
+ {0x24FE,0x24FE,0x24FE}, {0x24FF,0x24FF,0x24FF} /* 24FE */
+};
+
+static MY_UNICASE_CHARACTER u520p2C[]={
+ {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C00 */
+ {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C02 */
+ {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C04 */
+ {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C06 */
+ {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C08 */
+ {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C0A */
+ {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C0C */
+ {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C0E */
+ {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C10 */
+ {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C12 */
+ {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C14 */
+ {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C16 */
+ {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C18 */
+ {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C1A */
+ {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C1C */
+ {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C1E */
+ {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C20 */
+ {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C22 */
+ {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C24 */
+ {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C26 */
+ {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C28 */
+ {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C2A */
+ {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C2C */
+ {0x2C2E,0x2C5E,0x2C2E}, {0x2C2F,0x2C2F,0x2C2F}, /* 2C2E */
+ {0x2C00,0x2C30,0x2C00}, {0x2C01,0x2C31,0x2C01}, /* 2C30 */
+ {0x2C02,0x2C32,0x2C02}, {0x2C03,0x2C33,0x2C03}, /* 2C32 */
+ {0x2C04,0x2C34,0x2C04}, {0x2C05,0x2C35,0x2C05}, /* 2C34 */
+ {0x2C06,0x2C36,0x2C06}, {0x2C07,0x2C37,0x2C07}, /* 2C36 */
+ {0x2C08,0x2C38,0x2C08}, {0x2C09,0x2C39,0x2C09}, /* 2C38 */
+ {0x2C0A,0x2C3A,0x2C0A}, {0x2C0B,0x2C3B,0x2C0B}, /* 2C3A */
+ {0x2C0C,0x2C3C,0x2C0C}, {0x2C0D,0x2C3D,0x2C0D}, /* 2C3C */
+ {0x2C0E,0x2C3E,0x2C0E}, {0x2C0F,0x2C3F,0x2C0F}, /* 2C3E */
+ {0x2C10,0x2C40,0x2C10}, {0x2C11,0x2C41,0x2C11}, /* 2C40 */
+ {0x2C12,0x2C42,0x2C12}, {0x2C13,0x2C43,0x2C13}, /* 2C42 */
+ {0x2C14,0x2C44,0x2C14}, {0x2C15,0x2C45,0x2C15}, /* 2C44 */
+ {0x2C16,0x2C46,0x2C16}, {0x2C17,0x2C47,0x2C17}, /* 2C46 */
+ {0x2C18,0x2C48,0x2C18}, {0x2C19,0x2C49,0x2C19}, /* 2C48 */
+ {0x2C1A,0x2C4A,0x2C1A}, {0x2C1B,0x2C4B,0x2C1B}, /* 2C4A */
+ {0x2C1C,0x2C4C,0x2C1C}, {0x2C1D,0x2C4D,0x2C1D}, /* 2C4C */
+ {0x2C1E,0x2C4E,0x2C1E}, {0x2C1F,0x2C4F,0x2C1F}, /* 2C4E */
+ {0x2C20,0x2C50,0x2C20}, {0x2C21,0x2C51,0x2C21}, /* 2C50 */
+ {0x2C22,0x2C52,0x2C22}, {0x2C23,0x2C53,0x2C23}, /* 2C52 */
+ {0x2C24,0x2C54,0x2C24}, {0x2C25,0x2C55,0x2C25}, /* 2C54 */
+ {0x2C26,0x2C56,0x2C26}, {0x2C27,0x2C57,0x2C27}, /* 2C56 */
+ {0x2C28,0x2C58,0x2C28}, {0x2C29,0x2C59,0x2C29}, /* 2C58 */
+ {0x2C2A,0x2C5A,0x2C2A}, {0x2C2B,0x2C5B,0x2C2B}, /* 2C5A */
+ {0x2C2C,0x2C5C,0x2C2C}, {0x2C2D,0x2C5D,0x2C2D}, /* 2C5C */
+ {0x2C2E,0x2C5E,0x2C2E}, {0x2C5F,0x2C5F,0x2C5F}, /* 2C5E */
+ {0x2C60,0x2C61,0x2C60}, {0x2C60,0x2C61,0x2C60}, /* 2C60 */
+ {0x2C62,0x026B,0x2C62}, {0x2C63,0x1D7D,0x2C63}, /* 2C62 */
+ {0x2C64,0x027D,0x2C64}, {0x023A,0x2C65,0x023A}, /* 2C64 */
+ {0x023E,0x2C66,0x023E}, {0x2C67,0x2C68,0x2C67}, /* 2C66 */
+ {0x2C67,0x2C68,0x2C67}, {0x2C69,0x2C6A,0x2C69}, /* 2C68 */
+ {0x2C69,0x2C6A,0x2C69}, {0x2C6B,0x2C6C,0x2C6B}, /* 2C6A */
+ {0x2C6B,0x2C6C,0x2C6B}, {0x2C6D,0x0251,0x2C6D}, /* 2C6C */
+ {0x2C6E,0x0271,0x2C6E}, {0x2C6F,0x0250,0x2C6F}, /* 2C6E */
+ {0x2C70,0x0252,0x2C70}, {0x2C71,0x2C71,0x2C71}, /* 2C70 */
+ {0x2C72,0x2C73,0x2C72}, {0x2C72,0x2C73,0x2C72}, /* 2C72 */
+ {0x2C74,0x2C74,0x2C74}, {0x2C75,0x2C76,0x2C75}, /* 2C74 */
+ {0x2C75,0x2C76,0x2C75}, {0x2C77,0x2C77,0x2C77}, /* 2C76 */
+ {0x2C78,0x2C78,0x2C78}, {0x2C79,0x2C79,0x2C79}, /* 2C78 */
+ {0x2C7A,0x2C7A,0x2C7A}, {0x2C7B,0x2C7B,0x2C7B}, /* 2C7A */
+ {0x2C7C,0x2C7C,0x2C7C}, {0x2C7D,0x2C7D,0x2C7D}, /* 2C7C */
+ {0x2C7E,0x023F,0x2C7E}, {0x2C7F,0x0240,0x2C7F}, /* 2C7E */
+ {0x2C80,0x2C81,0x2C80}, {0x2C80,0x2C81,0x2C80}, /* 2C80 */
+ {0x2C82,0x2C83,0x2C82}, {0x2C82,0x2C83,0x2C82}, /* 2C82 */
+ {0x2C84,0x2C85,0x2C84}, {0x2C84,0x2C85,0x2C84}, /* 2C84 */
+ {0x2C86,0x2C87,0x2C86}, {0x2C86,0x2C87,0x2C86}, /* 2C86 */
+ {0x2C88,0x2C89,0x2C88}, {0x2C88,0x2C89,0x2C88}, /* 2C88 */
+ {0x2C8A,0x2C8B,0x2C8A}, {0x2C8A,0x2C8B,0x2C8A}, /* 2C8A */
+ {0x2C8C,0x2C8D,0x2C8C}, {0x2C8C,0x2C8D,0x2C8C}, /* 2C8C */
+ {0x2C8E,0x2C8F,0x2C8E}, {0x2C8E,0x2C8F,0x2C8E}, /* 2C8E */
+ {0x2C90,0x2C91,0x2C90}, {0x2C90,0x2C91,0x2C90}, /* 2C90 */
+ {0x2C92,0x2C93,0x2C92}, {0x2C92,0x2C93,0x2C92}, /* 2C92 */
+ {0x2C94,0x2C95,0x2C94}, {0x2C94,0x2C95,0x2C94}, /* 2C94 */
+ {0x2C96,0x2C97,0x2C96}, {0x2C96,0x2C97,0x2C96}, /* 2C96 */
+ {0x2C98,0x2C99,0x2C98}, {0x2C98,0x2C99,0x2C98}, /* 2C98 */
+ {0x2C9A,0x2C9B,0x2C9A}, {0x2C9A,0x2C9B,0x2C9A}, /* 2C9A */
+ {0x2C9C,0x2C9D,0x2C9C}, {0x2C9C,0x2C9D,0x2C9C}, /* 2C9C */
+ {0x2C9E,0x2C9F,0x2C9E}, {0x2C9E,0x2C9F,0x2C9E}, /* 2C9E */
+ {0x2CA0,0x2CA1,0x2CA0}, {0x2CA0,0x2CA1,0x2CA0}, /* 2CA0 */
+ {0x2CA2,0x2CA3,0x2CA2}, {0x2CA2,0x2CA3,0x2CA2}, /* 2CA2 */
+ {0x2CA4,0x2CA5,0x2CA4}, {0x2CA4,0x2CA5,0x2CA4}, /* 2CA4 */
+ {0x2CA6,0x2CA7,0x2CA6}, {0x2CA6,0x2CA7,0x2CA6}, /* 2CA6 */
+ {0x2CA8,0x2CA9,0x2CA8}, {0x2CA8,0x2CA9,0x2CA8}, /* 2CA8 */
+ {0x2CAA,0x2CAB,0x2CAA}, {0x2CAA,0x2CAB,0x2CAA}, /* 2CAA */
+ {0x2CAC,0x2CAD,0x2CAC}, {0x2CAC,0x2CAD,0x2CAC}, /* 2CAC */
+ {0x2CAE,0x2CAF,0x2CAE}, {0x2CAE,0x2CAF,0x2CAE}, /* 2CAE */
+ {0x2CB0,0x2CB1,0x2CB0}, {0x2CB0,0x2CB1,0x2CB0}, /* 2CB0 */
+ {0x2CB2,0x2CB3,0x2CB2}, {0x2CB2,0x2CB3,0x2CB2}, /* 2CB2 */
+ {0x2CB4,0x2CB5,0x2CB4}, {0x2CB4,0x2CB5,0x2CB4}, /* 2CB4 */
+ {0x2CB6,0x2CB7,0x2CB6}, {0x2CB6,0x2CB7,0x2CB6}, /* 2CB6 */
+ {0x2CB8,0x2CB9,0x2CB8}, {0x2CB8,0x2CB9,0x2CB8}, /* 2CB8 */
+ {0x2CBA,0x2CBB,0x2CBA}, {0x2CBA,0x2CBB,0x2CBA}, /* 2CBA */
+ {0x2CBC,0x2CBD,0x2CBC}, {0x2CBC,0x2CBD,0x2CBC}, /* 2CBC */
+ {0x2CBE,0x2CBF,0x2CBE}, {0x2CBE,0x2CBF,0x2CBE}, /* 2CBE */
+ {0x2CC0,0x2CC1,0x2CC0}, {0x2CC0,0x2CC1,0x2CC0}, /* 2CC0 */
+ {0x2CC2,0x2CC3,0x2CC2}, {0x2CC2,0x2CC3,0x2CC2}, /* 2CC2 */
+ {0x2CC4,0x2CC5,0x2CC4}, {0x2CC4,0x2CC5,0x2CC4}, /* 2CC4 */
+ {0x2CC6,0x2CC7,0x2CC6}, {0x2CC6,0x2CC7,0x2CC6}, /* 2CC6 */
+ {0x2CC8,0x2CC9,0x2CC8}, {0x2CC8,0x2CC9,0x2CC8}, /* 2CC8 */
+ {0x2CCA,0x2CCB,0x2CCA}, {0x2CCA,0x2CCB,0x2CCA}, /* 2CCA */
+ {0x2CCC,0x2CCD,0x2CCC}, {0x2CCC,0x2CCD,0x2CCC}, /* 2CCC */
+ {0x2CCE,0x2CCF,0x2CCE}, {0x2CCE,0x2CCF,0x2CCE}, /* 2CCE */
+ {0x2CD0,0x2CD1,0x2CD0}, {0x2CD0,0x2CD1,0x2CD0}, /* 2CD0 */
+ {0x2CD2,0x2CD3,0x2CD2}, {0x2CD2,0x2CD3,0x2CD2}, /* 2CD2 */
+ {0x2CD4,0x2CD5,0x2CD4}, {0x2CD4,0x2CD5,0x2CD4}, /* 2CD4 */
+ {0x2CD6,0x2CD7,0x2CD6}, {0x2CD6,0x2CD7,0x2CD6}, /* 2CD6 */
+ {0x2CD8,0x2CD9,0x2CD8}, {0x2CD8,0x2CD9,0x2CD8}, /* 2CD8 */
+ {0x2CDA,0x2CDB,0x2CDA}, {0x2CDA,0x2CDB,0x2CDA}, /* 2CDA */
+ {0x2CDC,0x2CDD,0x2CDC}, {0x2CDC,0x2CDD,0x2CDC}, /* 2CDC */
+ {0x2CDE,0x2CDF,0x2CDE}, {0x2CDE,0x2CDF,0x2CDE}, /* 2CDE */
+ {0x2CE0,0x2CE1,0x2CE0}, {0x2CE0,0x2CE1,0x2CE0}, /* 2CE0 */
+ {0x2CE2,0x2CE3,0x2CE2}, {0x2CE2,0x2CE3,0x2CE2}, /* 2CE2 */
+ {0x2CE4,0x2CE4,0x2CE4}, {0x2CE5,0x2CE5,0x2CE5}, /* 2CE4 */
+ {0x2CE6,0x2CE6,0x2CE6}, {0x2CE7,0x2CE7,0x2CE7}, /* 2CE6 */
+ {0x2CE8,0x2CE8,0x2CE8}, {0x2CE9,0x2CE9,0x2CE9}, /* 2CE8 */
+ {0x2CEA,0x2CEA,0x2CEA}, {0x2CEB,0x2CEC,0x2CEB}, /* 2CEA */
+ {0x2CEB,0x2CEC,0x2CEB}, {0x2CED,0x2CEE,0x2CED}, /* 2CEC */
+ {0x2CED,0x2CEE,0x2CED}, {0x2CEF,0x2CEF,0x2CEF}, /* 2CEE */
+ {0x2CF0,0x2CF0,0x2CF0}, {0x2CF1,0x2CF1,0x2CF1}, /* 2CF0 */
+ {0x2CF2,0x2CF2,0x2CF2}, {0x2CF3,0x2CF3,0x2CF3}, /* 2CF2 */
+ {0x2CF4,0x2CF4,0x2CF4}, {0x2CF5,0x2CF5,0x2CF5}, /* 2CF4 */
+ {0x2CF6,0x2CF6,0x2CF6}, {0x2CF7,0x2CF7,0x2CF7}, /* 2CF6 */
+ {0x2CF8,0x2CF8,0x2CF8}, {0x2CF9,0x2CF9,0x2CF9}, /* 2CF8 */
+ {0x2CFA,0x2CFA,0x2CFA}, {0x2CFB,0x2CFB,0x2CFB}, /* 2CFA */
+ {0x2CFC,0x2CFC,0x2CFC}, {0x2CFD,0x2CFD,0x2CFD}, /* 2CFC */
+ {0x2CFE,0x2CFE,0x2CFE}, {0x2CFF,0x2CFF,0x2CFF} /* 2CFE */
+};
+
+static MY_UNICASE_CHARACTER u520p2D[]={
+ {0x10A0,0x2D00,0x10A0}, {0x10A1,0x2D01,0x10A1}, /* 2D00 */
+ {0x10A2,0x2D02,0x10A2}, {0x10A3,0x2D03,0x10A3}, /* 2D02 */
+ {0x10A4,0x2D04,0x10A4}, {0x10A5,0x2D05,0x10A5}, /* 2D04 */
+ {0x10A6,0x2D06,0x10A6}, {0x10A7,0x2D07,0x10A7}, /* 2D06 */
+ {0x10A8,0x2D08,0x10A8}, {0x10A9,0x2D09,0x10A9}, /* 2D08 */
+ {0x10AA,0x2D0A,0x10AA}, {0x10AB,0x2D0B,0x10AB}, /* 2D0A */
+ {0x10AC,0x2D0C,0x10AC}, {0x10AD,0x2D0D,0x10AD}, /* 2D0C */
+ {0x10AE,0x2D0E,0x10AE}, {0x10AF,0x2D0F,0x10AF}, /* 2D0E */
+ {0x10B0,0x2D10,0x10B0}, {0x10B1,0x2D11,0x10B1}, /* 2D10 */
+ {0x10B2,0x2D12,0x10B2}, {0x10B3,0x2D13,0x10B3}, /* 2D12 */
+ {0x10B4,0x2D14,0x10B4}, {0x10B5,0x2D15,0x10B5}, /* 2D14 */
+ {0x10B6,0x2D16,0x10B6}, {0x10B7,0x2D17,0x10B7}, /* 2D16 */
+ {0x10B8,0x2D18,0x10B8}, {0x10B9,0x2D19,0x10B9}, /* 2D18 */
+ {0x10BA,0x2D1A,0x10BA}, {0x10BB,0x2D1B,0x10BB}, /* 2D1A */
+ {0x10BC,0x2D1C,0x10BC}, {0x10BD,0x2D1D,0x10BD}, /* 2D1C */
+ {0x10BE,0x2D1E,0x10BE}, {0x10BF,0x2D1F,0x10BF}, /* 2D1E */
+ {0x10C0,0x2D20,0x10C0}, {0x10C1,0x2D21,0x10C1}, /* 2D20 */
+ {0x10C2,0x2D22,0x10C2}, {0x10C3,0x2D23,0x10C3}, /* 2D22 */
+ {0x10C4,0x2D24,0x10C4}, {0x10C5,0x2D25,0x10C5}, /* 2D24 */
+ {0x2D26,0x2D26,0x2D26}, {0x2D27,0x2D27,0x2D27}, /* 2D26 */
+ {0x2D28,0x2D28,0x2D28}, {0x2D29,0x2D29,0x2D29}, /* 2D28 */
+ {0x2D2A,0x2D2A,0x2D2A}, {0x2D2B,0x2D2B,0x2D2B}, /* 2D2A */
+ {0x2D2C,0x2D2C,0x2D2C}, {0x2D2D,0x2D2D,0x2D2D}, /* 2D2C */
+ {0x2D2E,0x2D2E,0x2D2E}, {0x2D2F,0x2D2F,0x2D2F}, /* 2D2E */
+ {0x2D30,0x2D30,0x2D30}, {0x2D31,0x2D31,0x2D31}, /* 2D30 */
+ {0x2D32,0x2D32,0x2D32}, {0x2D33,0x2D33,0x2D33}, /* 2D32 */
+ {0x2D34,0x2D34,0x2D34}, {0x2D35,0x2D35,0x2D35}, /* 2D34 */
+ {0x2D36,0x2D36,0x2D36}, {0x2D37,0x2D37,0x2D37}, /* 2D36 */
+ {0x2D38,0x2D38,0x2D38}, {0x2D39,0x2D39,0x2D39}, /* 2D38 */
+ {0x2D3A,0x2D3A,0x2D3A}, {0x2D3B,0x2D3B,0x2D3B}, /* 2D3A */
+ {0x2D3C,0x2D3C,0x2D3C}, {0x2D3D,0x2D3D,0x2D3D}, /* 2D3C */
+ {0x2D3E,0x2D3E,0x2D3E}, {0x2D3F,0x2D3F,0x2D3F}, /* 2D3E */
+ {0x2D40,0x2D40,0x2D40}, {0x2D41,0x2D41,0x2D41}, /* 2D40 */
+ {0x2D42,0x2D42,0x2D42}, {0x2D43,0x2D43,0x2D43}, /* 2D42 */
+ {0x2D44,0x2D44,0x2D44}, {0x2D45,0x2D45,0x2D45}, /* 2D44 */
+ {0x2D46,0x2D46,0x2D46}, {0x2D47,0x2D47,0x2D47}, /* 2D46 */
+ {0x2D48,0x2D48,0x2D48}, {0x2D49,0x2D49,0x2D49}, /* 2D48 */
+ {0x2D4A,0x2D4A,0x2D4A}, {0x2D4B,0x2D4B,0x2D4B}, /* 2D4A */
+ {0x2D4C,0x2D4C,0x2D4C}, {0x2D4D,0x2D4D,0x2D4D}, /* 2D4C */
+ {0x2D4E,0x2D4E,0x2D4E}, {0x2D4F,0x2D4F,0x2D4F}, /* 2D4E */
+ {0x2D50,0x2D50,0x2D50}, {0x2D51,0x2D51,0x2D51}, /* 2D50 */
+ {0x2D52,0x2D52,0x2D52}, {0x2D53,0x2D53,0x2D53}, /* 2D52 */
+ {0x2D54,0x2D54,0x2D54}, {0x2D55,0x2D55,0x2D55}, /* 2D54 */
+ {0x2D56,0x2D56,0x2D56}, {0x2D57,0x2D57,0x2D57}, /* 2D56 */
+ {0x2D58,0x2D58,0x2D58}, {0x2D59,0x2D59,0x2D59}, /* 2D58 */
+ {0x2D5A,0x2D5A,0x2D5A}, {0x2D5B,0x2D5B,0x2D5B}, /* 2D5A */
+ {0x2D5C,0x2D5C,0x2D5C}, {0x2D5D,0x2D5D,0x2D5D}, /* 2D5C */
+ {0x2D5E,0x2D5E,0x2D5E}, {0x2D5F,0x2D5F,0x2D5F}, /* 2D5E */
+ {0x2D60,0x2D60,0x2D60}, {0x2D61,0x2D61,0x2D61}, /* 2D60 */
+ {0x2D62,0x2D62,0x2D62}, {0x2D63,0x2D63,0x2D63}, /* 2D62 */
+ {0x2D64,0x2D64,0x2D64}, {0x2D65,0x2D65,0x2D65}, /* 2D64 */
+ {0x2D66,0x2D66,0x2D66}, {0x2D67,0x2D67,0x2D67}, /* 2D66 */
+ {0x2D68,0x2D68,0x2D68}, {0x2D69,0x2D69,0x2D69}, /* 2D68 */
+ {0x2D6A,0x2D6A,0x2D6A}, {0x2D6B,0x2D6B,0x2D6B}, /* 2D6A */
+ {0x2D6C,0x2D6C,0x2D6C}, {0x2D6D,0x2D6D,0x2D6D}, /* 2D6C */
+ {0x2D6E,0x2D6E,0x2D6E}, {0x2D6F,0x2D6F,0x2D6F}, /* 2D6E */
+ {0x2D70,0x2D70,0x2D70}, {0x2D71,0x2D71,0x2D71}, /* 2D70 */
+ {0x2D72,0x2D72,0x2D72}, {0x2D73,0x2D73,0x2D73}, /* 2D72 */
+ {0x2D74,0x2D74,0x2D74}, {0x2D75,0x2D75,0x2D75}, /* 2D74 */
+ {0x2D76,0x2D76,0x2D76}, {0x2D77,0x2D77,0x2D77}, /* 2D76 */
+ {0x2D78,0x2D78,0x2D78}, {0x2D79,0x2D79,0x2D79}, /* 2D78 */
+ {0x2D7A,0x2D7A,0x2D7A}, {0x2D7B,0x2D7B,0x2D7B}, /* 2D7A */
+ {0x2D7C,0x2D7C,0x2D7C}, {0x2D7D,0x2D7D,0x2D7D}, /* 2D7C */
+ {0x2D7E,0x2D7E,0x2D7E}, {0x2D7F,0x2D7F,0x2D7F}, /* 2D7E */
+ {0x2D80,0x2D80,0x2D80}, {0x2D81,0x2D81,0x2D81}, /* 2D80 */
+ {0x2D82,0x2D82,0x2D82}, {0x2D83,0x2D83,0x2D83}, /* 2D82 */
+ {0x2D84,0x2D84,0x2D84}, {0x2D85,0x2D85,0x2D85}, /* 2D84 */
+ {0x2D86,0x2D86,0x2D86}, {0x2D87,0x2D87,0x2D87}, /* 2D86 */
+ {0x2D88,0x2D88,0x2D88}, {0x2D89,0x2D89,0x2D89}, /* 2D88 */
+ {0x2D8A,0x2D8A,0x2D8A}, {0x2D8B,0x2D8B,0x2D8B}, /* 2D8A */
+ {0x2D8C,0x2D8C,0x2D8C}, {0x2D8D,0x2D8D,0x2D8D}, /* 2D8C */
+ {0x2D8E,0x2D8E,0x2D8E}, {0x2D8F,0x2D8F,0x2D8F}, /* 2D8E */
+ {0x2D90,0x2D90,0x2D90}, {0x2D91,0x2D91,0x2D91}, /* 2D90 */
+ {0x2D92,0x2D92,0x2D92}, {0x2D93,0x2D93,0x2D93}, /* 2D92 */
+ {0x2D94,0x2D94,0x2D94}, {0x2D95,0x2D95,0x2D95}, /* 2D94 */
+ {0x2D96,0x2D96,0x2D96}, {0x2D97,0x2D97,0x2D97}, /* 2D96 */
+ {0x2D98,0x2D98,0x2D98}, {0x2D99,0x2D99,0x2D99}, /* 2D98 */
+ {0x2D9A,0x2D9A,0x2D9A}, {0x2D9B,0x2D9B,0x2D9B}, /* 2D9A */
+ {0x2D9C,0x2D9C,0x2D9C}, {0x2D9D,0x2D9D,0x2D9D}, /* 2D9C */
+ {0x2D9E,0x2D9E,0x2D9E}, {0x2D9F,0x2D9F,0x2D9F}, /* 2D9E */
+ {0x2DA0,0x2DA0,0x2DA0}, {0x2DA1,0x2DA1,0x2DA1}, /* 2DA0 */
+ {0x2DA2,0x2DA2,0x2DA2}, {0x2DA3,0x2DA3,0x2DA3}, /* 2DA2 */
+ {0x2DA4,0x2DA4,0x2DA4}, {0x2DA5,0x2DA5,0x2DA5}, /* 2DA4 */
+ {0x2DA6,0x2DA6,0x2DA6}, {0x2DA7,0x2DA7,0x2DA7}, /* 2DA6 */
+ {0x2DA8,0x2DA8,0x2DA8}, {0x2DA9,0x2DA9,0x2DA9}, /* 2DA8 */
+ {0x2DAA,0x2DAA,0x2DAA}, {0x2DAB,0x2DAB,0x2DAB}, /* 2DAA */
+ {0x2DAC,0x2DAC,0x2DAC}, {0x2DAD,0x2DAD,0x2DAD}, /* 2DAC */
+ {0x2DAE,0x2DAE,0x2DAE}, {0x2DAF,0x2DAF,0x2DAF}, /* 2DAE */
+ {0x2DB0,0x2DB0,0x2DB0}, {0x2DB1,0x2DB1,0x2DB1}, /* 2DB0 */
+ {0x2DB2,0x2DB2,0x2DB2}, {0x2DB3,0x2DB3,0x2DB3}, /* 2DB2 */
+ {0x2DB4,0x2DB4,0x2DB4}, {0x2DB5,0x2DB5,0x2DB5}, /* 2DB4 */
+ {0x2DB6,0x2DB6,0x2DB6}, {0x2DB7,0x2DB7,0x2DB7}, /* 2DB6 */
+ {0x2DB8,0x2DB8,0x2DB8}, {0x2DB9,0x2DB9,0x2DB9}, /* 2DB8 */
+ {0x2DBA,0x2DBA,0x2DBA}, {0x2DBB,0x2DBB,0x2DBB}, /* 2DBA */
+ {0x2DBC,0x2DBC,0x2DBC}, {0x2DBD,0x2DBD,0x2DBD}, /* 2DBC */
+ {0x2DBE,0x2DBE,0x2DBE}, {0x2DBF,0x2DBF,0x2DBF}, /* 2DBE */
+ {0x2DC0,0x2DC0,0x2DC0}, {0x2DC1,0x2DC1,0x2DC1}, /* 2DC0 */
+ {0x2DC2,0x2DC2,0x2DC2}, {0x2DC3,0x2DC3,0x2DC3}, /* 2DC2 */
+ {0x2DC4,0x2DC4,0x2DC4}, {0x2DC5,0x2DC5,0x2DC5}, /* 2DC4 */
+ {0x2DC6,0x2DC6,0x2DC6}, {0x2DC7,0x2DC7,0x2DC7}, /* 2DC6 */
+ {0x2DC8,0x2DC8,0x2DC8}, {0x2DC9,0x2DC9,0x2DC9}, /* 2DC8 */
+ {0x2DCA,0x2DCA,0x2DCA}, {0x2DCB,0x2DCB,0x2DCB}, /* 2DCA */
+ {0x2DCC,0x2DCC,0x2DCC}, {0x2DCD,0x2DCD,0x2DCD}, /* 2DCC */
+ {0x2DCE,0x2DCE,0x2DCE}, {0x2DCF,0x2DCF,0x2DCF}, /* 2DCE */
+ {0x2DD0,0x2DD0,0x2DD0}, {0x2DD1,0x2DD1,0x2DD1}, /* 2DD0 */
+ {0x2DD2,0x2DD2,0x2DD2}, {0x2DD3,0x2DD3,0x2DD3}, /* 2DD2 */
+ {0x2DD4,0x2DD4,0x2DD4}, {0x2DD5,0x2DD5,0x2DD5}, /* 2DD4 */
+ {0x2DD6,0x2DD6,0x2DD6}, {0x2DD7,0x2DD7,0x2DD7}, /* 2DD6 */
+ {0x2DD8,0x2DD8,0x2DD8}, {0x2DD9,0x2DD9,0x2DD9}, /* 2DD8 */
+ {0x2DDA,0x2DDA,0x2DDA}, {0x2DDB,0x2DDB,0x2DDB}, /* 2DDA */
+ {0x2DDC,0x2DDC,0x2DDC}, {0x2DDD,0x2DDD,0x2DDD}, /* 2DDC */
+ {0x2DDE,0x2DDE,0x2DDE}, {0x2DDF,0x2DDF,0x2DDF}, /* 2DDE */
+ {0x2DE0,0x2DE0,0x2DE0}, {0x2DE1,0x2DE1,0x2DE1}, /* 2DE0 */
+ {0x2DE2,0x2DE2,0x2DE2}, {0x2DE3,0x2DE3,0x2DE3}, /* 2DE2 */
+ {0x2DE4,0x2DE4,0x2DE4}, {0x2DE5,0x2DE5,0x2DE5}, /* 2DE4 */
+ {0x2DE6,0x2DE6,0x2DE6}, {0x2DE7,0x2DE7,0x2DE7}, /* 2DE6 */
+ {0x2DE8,0x2DE8,0x2DE8}, {0x2DE9,0x2DE9,0x2DE9}, /* 2DE8 */
+ {0x2DEA,0x2DEA,0x2DEA}, {0x2DEB,0x2DEB,0x2DEB}, /* 2DEA */
+ {0x2DEC,0x2DEC,0x2DEC}, {0x2DED,0x2DED,0x2DED}, /* 2DEC */
+ {0x2DEE,0x2DEE,0x2DEE}, {0x2DEF,0x2DEF,0x2DEF}, /* 2DEE */
+ {0x2DF0,0x2DF0,0x2DF0}, {0x2DF1,0x2DF1,0x2DF1}, /* 2DF0 */
+ {0x2DF2,0x2DF2,0x2DF2}, {0x2DF3,0x2DF3,0x2DF3}, /* 2DF2 */
+ {0x2DF4,0x2DF4,0x2DF4}, {0x2DF5,0x2DF5,0x2DF5}, /* 2DF4 */
+ {0x2DF6,0x2DF6,0x2DF6}, {0x2DF7,0x2DF7,0x2DF7}, /* 2DF6 */
+ {0x2DF8,0x2DF8,0x2DF8}, {0x2DF9,0x2DF9,0x2DF9}, /* 2DF8 */
+ {0x2DFA,0x2DFA,0x2DFA}, {0x2DFB,0x2DFB,0x2DFB}, /* 2DFA */
+ {0x2DFC,0x2DFC,0x2DFC}, {0x2DFD,0x2DFD,0x2DFD}, /* 2DFC */
+ {0x2DFE,0x2DFE,0x2DFE}, {0x2DFF,0x2DFF,0x2DFF} /* 2DFE */
+};
+
+static MY_UNICASE_CHARACTER u520pA6[]={
+ {0xA600,0xA600,0xA600}, {0xA601,0xA601,0xA601}, /* A600 */
+ {0xA602,0xA602,0xA602}, {0xA603,0xA603,0xA603}, /* A602 */
+ {0xA604,0xA604,0xA604}, {0xA605,0xA605,0xA605}, /* A604 */
+ {0xA606,0xA606,0xA606}, {0xA607,0xA607,0xA607}, /* A606 */
+ {0xA608,0xA608,0xA608}, {0xA609,0xA609,0xA609}, /* A608 */
+ {0xA60A,0xA60A,0xA60A}, {0xA60B,0xA60B,0xA60B}, /* A60A */
+ {0xA60C,0xA60C,0xA60C}, {0xA60D,0xA60D,0xA60D}, /* A60C */
+ {0xA60E,0xA60E,0xA60E}, {0xA60F,0xA60F,0xA60F}, /* A60E */
+ {0xA610,0xA610,0xA610}, {0xA611,0xA611,0xA611}, /* A610 */
+ {0xA612,0xA612,0xA612}, {0xA613,0xA613,0xA613}, /* A612 */
+ {0xA614,0xA614,0xA614}, {0xA615,0xA615,0xA615}, /* A614 */
+ {0xA616,0xA616,0xA616}, {0xA617,0xA617,0xA617}, /* A616 */
+ {0xA618,0xA618,0xA618}, {0xA619,0xA619,0xA619}, /* A618 */
+ {0xA61A,0xA61A,0xA61A}, {0xA61B,0xA61B,0xA61B}, /* A61A */
+ {0xA61C,0xA61C,0xA61C}, {0xA61D,0xA61D,0xA61D}, /* A61C */
+ {0xA61E,0xA61E,0xA61E}, {0xA61F,0xA61F,0xA61F}, /* A61E */
+ {0xA620,0xA620,0xA620}, {0xA621,0xA621,0xA621}, /* A620 */
+ {0xA622,0xA622,0xA622}, {0xA623,0xA623,0xA623}, /* A622 */
+ {0xA624,0xA624,0xA624}, {0xA625,0xA625,0xA625}, /* A624 */
+ {0xA626,0xA626,0xA626}, {0xA627,0xA627,0xA627}, /* A626 */
+ {0xA628,0xA628,0xA628}, {0xA629,0xA629,0xA629}, /* A628 */
+ {0xA62A,0xA62A,0xA62A}, {0xA62B,0xA62B,0xA62B}, /* A62A */
+ {0xA62C,0xA62C,0xA62C}, {0xA62D,0xA62D,0xA62D}, /* A62C */
+ {0xA62E,0xA62E,0xA62E}, {0xA62F,0xA62F,0xA62F}, /* A62E */
+ {0xA630,0xA630,0xA630}, {0xA631,0xA631,0xA631}, /* A630 */
+ {0xA632,0xA632,0xA632}, {0xA633,0xA633,0xA633}, /* A632 */
+ {0xA634,0xA634,0xA634}, {0xA635,0xA635,0xA635}, /* A634 */
+ {0xA636,0xA636,0xA636}, {0xA637,0xA637,0xA637}, /* A636 */
+ {0xA638,0xA638,0xA638}, {0xA639,0xA639,0xA639}, /* A638 */
+ {0xA63A,0xA63A,0xA63A}, {0xA63B,0xA63B,0xA63B}, /* A63A */
+ {0xA63C,0xA63C,0xA63C}, {0xA63D,0xA63D,0xA63D}, /* A63C */
+ {0xA63E,0xA63E,0xA63E}, {0xA63F,0xA63F,0xA63F}, /* A63E */
+ {0xA640,0xA641,0xA640}, {0xA640,0xA641,0xA640}, /* A640 */
+ {0xA642,0xA643,0xA642}, {0xA642,0xA643,0xA642}, /* A642 */
+ {0xA644,0xA645,0xA644}, {0xA644,0xA645,0xA644}, /* A644 */
+ {0xA646,0xA647,0xA646}, {0xA646,0xA647,0xA646}, /* A646 */
+ {0xA648,0xA649,0xA648}, {0xA648,0xA649,0xA648}, /* A648 */
+ {0xA64A,0xA64B,0xA64A}, {0xA64A,0xA64B,0xA64A}, /* A64A */
+ {0xA64C,0xA64D,0xA64C}, {0xA64C,0xA64D,0xA64C}, /* A64C */
+ {0xA64E,0xA64F,0xA64E}, {0xA64E,0xA64F,0xA64E}, /* A64E */
+ {0xA650,0xA651,0xA650}, {0xA650,0xA651,0xA650}, /* A650 */
+ {0xA652,0xA653,0xA652}, {0xA652,0xA653,0xA652}, /* A652 */
+ {0xA654,0xA655,0xA654}, {0xA654,0xA655,0xA654}, /* A654 */
+ {0xA656,0xA657,0xA656}, {0xA656,0xA657,0xA656}, /* A656 */
+ {0xA658,0xA659,0xA658}, {0xA658,0xA659,0xA658}, /* A658 */
+ {0xA65A,0xA65B,0xA65A}, {0xA65A,0xA65B,0xA65A}, /* A65A */
+ {0xA65C,0xA65D,0xA65C}, {0xA65C,0xA65D,0xA65C}, /* A65C */
+ {0xA65E,0xA65F,0xA65E}, {0xA65E,0xA65F,0xA65E}, /* A65E */
+ {0xA660,0xA660,0xA660}, {0xA661,0xA661,0xA661}, /* A660 */
+ {0xA662,0xA663,0xA662}, {0xA662,0xA663,0xA662}, /* A662 */
+ {0xA664,0xA665,0xA664}, {0xA664,0xA665,0xA664}, /* A664 */
+ {0xA666,0xA667,0xA666}, {0xA666,0xA667,0xA666}, /* A666 */
+ {0xA668,0xA669,0xA668}, {0xA668,0xA669,0xA668}, /* A668 */
+ {0xA66A,0xA66B,0xA66A}, {0xA66A,0xA66B,0xA66A}, /* A66A */
+ {0xA66C,0xA66D,0xA66C}, {0xA66C,0xA66D,0xA66C}, /* A66C */
+ {0xA66E,0xA66E,0xA66E}, {0xA66F,0xA66F,0xA66F}, /* A66E */
+ {0xA670,0xA670,0xA670}, {0xA671,0xA671,0xA671}, /* A670 */
+ {0xA672,0xA672,0xA672}, {0xA673,0xA673,0xA673}, /* A672 */
+ {0xA674,0xA674,0xA674}, {0xA675,0xA675,0xA675}, /* A674 */
+ {0xA676,0xA676,0xA676}, {0xA677,0xA677,0xA677}, /* A676 */
+ {0xA678,0xA678,0xA678}, {0xA679,0xA679,0xA679}, /* A678 */
+ {0xA67A,0xA67A,0xA67A}, {0xA67B,0xA67B,0xA67B}, /* A67A */
+ {0xA67C,0xA67C,0xA67C}, {0xA67D,0xA67D,0xA67D}, /* A67C */
+ {0xA67E,0xA67E,0xA67E}, {0xA67F,0xA67F,0xA67F}, /* A67E */
+ {0xA680,0xA681,0xA680}, {0xA680,0xA681,0xA680}, /* A680 */
+ {0xA682,0xA683,0xA682}, {0xA682,0xA683,0xA682}, /* A682 */
+ {0xA684,0xA685,0xA684}, {0xA684,0xA685,0xA684}, /* A684 */
+ {0xA686,0xA687,0xA686}, {0xA686,0xA687,0xA686}, /* A686 */
+ {0xA688,0xA689,0xA688}, {0xA688,0xA689,0xA688}, /* A688 */
+ {0xA68A,0xA68B,0xA68A}, {0xA68A,0xA68B,0xA68A}, /* A68A */
+ {0xA68C,0xA68D,0xA68C}, {0xA68C,0xA68D,0xA68C}, /* A68C */
+ {0xA68E,0xA68F,0xA68E}, {0xA68E,0xA68F,0xA68E}, /* A68E */
+ {0xA690,0xA691,0xA690}, {0xA690,0xA691,0xA690}, /* A690 */
+ {0xA692,0xA693,0xA692}, {0xA692,0xA693,0xA692}, /* A692 */
+ {0xA694,0xA695,0xA694}, {0xA694,0xA695,0xA694}, /* A694 */
+ {0xA696,0xA697,0xA696}, {0xA696,0xA697,0xA696}, /* A696 */
+ {0xA698,0xA698,0xA698}, {0xA699,0xA699,0xA699}, /* A698 */
+ {0xA69A,0xA69A,0xA69A}, {0xA69B,0xA69B,0xA69B}, /* A69A */
+ {0xA69C,0xA69C,0xA69C}, {0xA69D,0xA69D,0xA69D}, /* A69C */
+ {0xA69E,0xA69E,0xA69E}, {0xA69F,0xA69F,0xA69F}, /* A69E */
+ {0xA6A0,0xA6A0,0xA6A0}, {0xA6A1,0xA6A1,0xA6A1}, /* A6A0 */
+ {0xA6A2,0xA6A2,0xA6A2}, {0xA6A3,0xA6A3,0xA6A3}, /* A6A2 */
+ {0xA6A4,0xA6A4,0xA6A4}, {0xA6A5,0xA6A5,0xA6A5}, /* A6A4 */
+ {0xA6A6,0xA6A6,0xA6A6}, {0xA6A7,0xA6A7,0xA6A7}, /* A6A6 */
+ {0xA6A8,0xA6A8,0xA6A8}, {0xA6A9,0xA6A9,0xA6A9}, /* A6A8 */
+ {0xA6AA,0xA6AA,0xA6AA}, {0xA6AB,0xA6AB,0xA6AB}, /* A6AA */
+ {0xA6AC,0xA6AC,0xA6AC}, {0xA6AD,0xA6AD,0xA6AD}, /* A6AC */
+ {0xA6AE,0xA6AE,0xA6AE}, {0xA6AF,0xA6AF,0xA6AF}, /* A6AE */
+ {0xA6B0,0xA6B0,0xA6B0}, {0xA6B1,0xA6B1,0xA6B1}, /* A6B0 */
+ {0xA6B2,0xA6B2,0xA6B2}, {0xA6B3,0xA6B3,0xA6B3}, /* A6B2 */
+ {0xA6B4,0xA6B4,0xA6B4}, {0xA6B5,0xA6B5,0xA6B5}, /* A6B4 */
+ {0xA6B6,0xA6B6,0xA6B6}, {0xA6B7,0xA6B7,0xA6B7}, /* A6B6 */
+ {0xA6B8,0xA6B8,0xA6B8}, {0xA6B9,0xA6B9,0xA6B9}, /* A6B8 */
+ {0xA6BA,0xA6BA,0xA6BA}, {0xA6BB,0xA6BB,0xA6BB}, /* A6BA */
+ {0xA6BC,0xA6BC,0xA6BC}, {0xA6BD,0xA6BD,0xA6BD}, /* A6BC */
+ {0xA6BE,0xA6BE,0xA6BE}, {0xA6BF,0xA6BF,0xA6BF}, /* A6BE */
+ {0xA6C0,0xA6C0,0xA6C0}, {0xA6C1,0xA6C1,0xA6C1}, /* A6C0 */
+ {0xA6C2,0xA6C2,0xA6C2}, {0xA6C3,0xA6C3,0xA6C3}, /* A6C2 */
+ {0xA6C4,0xA6C4,0xA6C4}, {0xA6C5,0xA6C5,0xA6C5}, /* A6C4 */
+ {0xA6C6,0xA6C6,0xA6C6}, {0xA6C7,0xA6C7,0xA6C7}, /* A6C6 */
+ {0xA6C8,0xA6C8,0xA6C8}, {0xA6C9,0xA6C9,0xA6C9}, /* A6C8 */
+ {0xA6CA,0xA6CA,0xA6CA}, {0xA6CB,0xA6CB,0xA6CB}, /* A6CA */
+ {0xA6CC,0xA6CC,0xA6CC}, {0xA6CD,0xA6CD,0xA6CD}, /* A6CC */
+ {0xA6CE,0xA6CE,0xA6CE}, {0xA6CF,0xA6CF,0xA6CF}, /* A6CE */
+ {0xA6D0,0xA6D0,0xA6D0}, {0xA6D1,0xA6D1,0xA6D1}, /* A6D0 */
+ {0xA6D2,0xA6D2,0xA6D2}, {0xA6D3,0xA6D3,0xA6D3}, /* A6D2 */
+ {0xA6D4,0xA6D4,0xA6D4}, {0xA6D5,0xA6D5,0xA6D5}, /* A6D4 */
+ {0xA6D6,0xA6D6,0xA6D6}, {0xA6D7,0xA6D7,0xA6D7}, /* A6D6 */
+ {0xA6D8,0xA6D8,0xA6D8}, {0xA6D9,0xA6D9,0xA6D9}, /* A6D8 */
+ {0xA6DA,0xA6DA,0xA6DA}, {0xA6DB,0xA6DB,0xA6DB}, /* A6DA */
+ {0xA6DC,0xA6DC,0xA6DC}, {0xA6DD,0xA6DD,0xA6DD}, /* A6DC */
+ {0xA6DE,0xA6DE,0xA6DE}, {0xA6DF,0xA6DF,0xA6DF}, /* A6DE */
+ {0xA6E0,0xA6E0,0xA6E0}, {0xA6E1,0xA6E1,0xA6E1}, /* A6E0 */
+ {0xA6E2,0xA6E2,0xA6E2}, {0xA6E3,0xA6E3,0xA6E3}, /* A6E2 */
+ {0xA6E4,0xA6E4,0xA6E4}, {0xA6E5,0xA6E5,0xA6E5}, /* A6E4 */
+ {0xA6E6,0xA6E6,0xA6E6}, {0xA6E7,0xA6E7,0xA6E7}, /* A6E6 */
+ {0xA6E8,0xA6E8,0xA6E8}, {0xA6E9,0xA6E9,0xA6E9}, /* A6E8 */
+ {0xA6EA,0xA6EA,0xA6EA}, {0xA6EB,0xA6EB,0xA6EB}, /* A6EA */
+ {0xA6EC,0xA6EC,0xA6EC}, {0xA6ED,0xA6ED,0xA6ED}, /* A6EC */
+ {0xA6EE,0xA6EE,0xA6EE}, {0xA6EF,0xA6EF,0xA6EF}, /* A6EE */
+ {0xA6F0,0xA6F0,0xA6F0}, {0xA6F1,0xA6F1,0xA6F1}, /* A6F0 */
+ {0xA6F2,0xA6F2,0xA6F2}, {0xA6F3,0xA6F3,0xA6F3}, /* A6F2 */
+ {0xA6F4,0xA6F4,0xA6F4}, {0xA6F5,0xA6F5,0xA6F5}, /* A6F4 */
+ {0xA6F6,0xA6F6,0xA6F6}, {0xA6F7,0xA6F7,0xA6F7}, /* A6F6 */
+ {0xA6F8,0xA6F8,0xA6F8}, {0xA6F9,0xA6F9,0xA6F9}, /* A6F8 */
+ {0xA6FA,0xA6FA,0xA6FA}, {0xA6FB,0xA6FB,0xA6FB}, /* A6FA */
+ {0xA6FC,0xA6FC,0xA6FC}, {0xA6FD,0xA6FD,0xA6FD}, /* A6FC */
+ {0xA6FE,0xA6FE,0xA6FE}, {0xA6FF,0xA6FF,0xA6FF} /* A6FE */
+};
+
+static MY_UNICASE_CHARACTER u520pA7[]={
+ {0xA700,0xA700,0xA700}, {0xA701,0xA701,0xA701}, /* A700 */
+ {0xA702,0xA702,0xA702}, {0xA703,0xA703,0xA703}, /* A702 */
+ {0xA704,0xA704,0xA704}, {0xA705,0xA705,0xA705}, /* A704 */
+ {0xA706,0xA706,0xA706}, {0xA707,0xA707,0xA707}, /* A706 */
+ {0xA708,0xA708,0xA708}, {0xA709,0xA709,0xA709}, /* A708 */
+ {0xA70A,0xA70A,0xA70A}, {0xA70B,0xA70B,0xA70B}, /* A70A */
+ {0xA70C,0xA70C,0xA70C}, {0xA70D,0xA70D,0xA70D}, /* A70C */
+ {0xA70E,0xA70E,0xA70E}, {0xA70F,0xA70F,0xA70F}, /* A70E */
+ {0xA710,0xA710,0xA710}, {0xA711,0xA711,0xA711}, /* A710 */
+ {0xA712,0xA712,0xA712}, {0xA713,0xA713,0xA713}, /* A712 */
+ {0xA714,0xA714,0xA714}, {0xA715,0xA715,0xA715}, /* A714 */
+ {0xA716,0xA716,0xA716}, {0xA717,0xA717,0xA717}, /* A716 */
+ {0xA718,0xA718,0xA718}, {0xA719,0xA719,0xA719}, /* A718 */
+ {0xA71A,0xA71A,0xA71A}, {0xA71B,0xA71B,0xA71B}, /* A71A */
+ {0xA71C,0xA71C,0xA71C}, {0xA71D,0xA71D,0xA71D}, /* A71C */
+ {0xA71E,0xA71E,0xA71E}, {0xA71F,0xA71F,0xA71F}, /* A71E */
+ {0xA720,0xA720,0xA720}, {0xA721,0xA721,0xA721}, /* A720 */
+ {0xA722,0xA723,0xA722}, {0xA722,0xA723,0xA722}, /* A722 */
+ {0xA724,0xA725,0xA724}, {0xA724,0xA725,0xA724}, /* A724 */
+ {0xA726,0xA727,0xA726}, {0xA726,0xA727,0xA726}, /* A726 */
+ {0xA728,0xA729,0xA728}, {0xA728,0xA729,0xA728}, /* A728 */
+ {0xA72A,0xA72B,0xA72A}, {0xA72A,0xA72B,0xA72A}, /* A72A */
+ {0xA72C,0xA72D,0xA72C}, {0xA72C,0xA72D,0xA72C}, /* A72C */
+ {0xA72E,0xA72F,0xA72E}, {0xA72E,0xA72F,0xA72E}, /* A72E */
+ {0xA730,0xA730,0xA730}, {0xA731,0xA731,0xA731}, /* A730 */
+ {0xA732,0xA733,0xA732}, {0xA732,0xA733,0xA732}, /* A732 */
+ {0xA734,0xA735,0xA734}, {0xA734,0xA735,0xA734}, /* A734 */
+ {0xA736,0xA737,0xA736}, {0xA736,0xA737,0xA736}, /* A736 */
+ {0xA738,0xA739,0xA738}, {0xA738,0xA739,0xA738}, /* A738 */
+ {0xA73A,0xA73B,0xA73A}, {0xA73A,0xA73B,0xA73A}, /* A73A */
+ {0xA73C,0xA73D,0xA73C}, {0xA73C,0xA73D,0xA73C}, /* A73C */
+ {0xA73E,0xA73F,0xA73E}, {0xA73E,0xA73F,0xA73E}, /* A73E */
+ {0xA740,0xA741,0xA740}, {0xA740,0xA741,0xA740}, /* A740 */
+ {0xA742,0xA743,0xA742}, {0xA742,0xA743,0xA742}, /* A742 */
+ {0xA744,0xA745,0xA744}, {0xA744,0xA745,0xA744}, /* A744 */
+ {0xA746,0xA747,0xA746}, {0xA746,0xA747,0xA746}, /* A746 */
+ {0xA748,0xA749,0xA748}, {0xA748,0xA749,0xA748}, /* A748 */
+ {0xA74A,0xA74B,0xA74A}, {0xA74A,0xA74B,0xA74A}, /* A74A */
+ {0xA74C,0xA74D,0xA74C}, {0xA74C,0xA74D,0xA74C}, /* A74C */
+ {0xA74E,0xA74F,0xA74E}, {0xA74E,0xA74F,0xA74E}, /* A74E */
+ {0xA750,0xA751,0xA750}, {0xA750,0xA751,0xA750}, /* A750 */
+ {0xA752,0xA753,0xA752}, {0xA752,0xA753,0xA752}, /* A752 */
+ {0xA754,0xA755,0xA754}, {0xA754,0xA755,0xA754}, /* A754 */
+ {0xA756,0xA757,0xA756}, {0xA756,0xA757,0xA756}, /* A756 */
+ {0xA758,0xA759,0xA758}, {0xA758,0xA759,0xA758}, /* A758 */
+ {0xA75A,0xA75B,0xA75A}, {0xA75A,0xA75B,0xA75A}, /* A75A */
+ {0xA75C,0xA75D,0xA75C}, {0xA75C,0xA75D,0xA75C}, /* A75C */
+ {0xA75E,0xA75F,0xA75E}, {0xA75E,0xA75F,0xA75E}, /* A75E */
+ {0xA760,0xA761,0xA760}, {0xA760,0xA761,0xA760}, /* A760 */
+ {0xA762,0xA763,0xA762}, {0xA762,0xA763,0xA762}, /* A762 */
+ {0xA764,0xA765,0xA764}, {0xA764,0xA765,0xA764}, /* A764 */
+ {0xA766,0xA767,0xA766}, {0xA766,0xA767,0xA766}, /* A766 */
+ {0xA768,0xA769,0xA768}, {0xA768,0xA769,0xA768}, /* A768 */
+ {0xA76A,0xA76B,0xA76A}, {0xA76A,0xA76B,0xA76A}, /* A76A */
+ {0xA76C,0xA76D,0xA76C}, {0xA76C,0xA76D,0xA76C}, /* A76C */
+ {0xA76E,0xA76F,0xA76E}, {0xA76E,0xA76F,0xA76E}, /* A76E */
+ {0xA770,0xA770,0xA770}, {0xA771,0xA771,0xA771}, /* A770 */
+ {0xA772,0xA772,0xA772}, {0xA773,0xA773,0xA773}, /* A772 */
+ {0xA774,0xA774,0xA774}, {0xA775,0xA775,0xA775}, /* A774 */
+ {0xA776,0xA776,0xA776}, {0xA777,0xA777,0xA777}, /* A776 */
+ {0xA778,0xA778,0xA778}, {0xA779,0xA77A,0xA779}, /* A778 */
+ {0xA779,0xA77A,0xA779}, {0xA77B,0xA77C,0xA77B}, /* A77A */
+ {0xA77B,0xA77C,0xA77B}, {0xA77D,0x1D79,0xA77D}, /* A77C */
+ {0xA77E,0xA77F,0xA77E}, {0xA77E,0xA77F,0xA77E}, /* A77E */
+ {0xA780,0xA781,0xA780}, {0xA780,0xA781,0xA780}, /* A780 */
+ {0xA782,0xA783,0xA782}, {0xA782,0xA783,0xA782}, /* A782 */
+ {0xA784,0xA785,0xA784}, {0xA784,0xA785,0xA784}, /* A784 */
+ {0xA786,0xA787,0xA786}, {0xA786,0xA787,0xA786}, /* A786 */
+ {0xA788,0xA788,0xA788}, {0xA789,0xA789,0xA789}, /* A788 */
+ {0xA78A,0xA78A,0xA78A}, {0xA78B,0xA78C,0xA78B}, /* A78A */
+ {0xA78B,0xA78C,0xA78B}, {0xA78D,0xA78D,0xA78D}, /* A78C */
+ {0xA78E,0xA78E,0xA78E}, {0xA78F,0xA78F,0xA78F}, /* A78E */
+ {0xA790,0xA790,0xA790}, {0xA791,0xA791,0xA791}, /* A790 */
+ {0xA792,0xA792,0xA792}, {0xA793,0xA793,0xA793}, /* A792 */
+ {0xA794,0xA794,0xA794}, {0xA795,0xA795,0xA795}, /* A794 */
+ {0xA796,0xA796,0xA796}, {0xA797,0xA797,0xA797}, /* A796 */
+ {0xA798,0xA798,0xA798}, {0xA799,0xA799,0xA799}, /* A798 */
+ {0xA79A,0xA79A,0xA79A}, {0xA79B,0xA79B,0xA79B}, /* A79A */
+ {0xA79C,0xA79C,0xA79C}, {0xA79D,0xA79D,0xA79D}, /* A79C */
+ {0xA79E,0xA79E,0xA79E}, {0xA79F,0xA79F,0xA79F}, /* A79E */
+ {0xA7A0,0xA7A0,0xA7A0}, {0xA7A1,0xA7A1,0xA7A1}, /* A7A0 */
+ {0xA7A2,0xA7A2,0xA7A2}, {0xA7A3,0xA7A3,0xA7A3}, /* A7A2 */
+ {0xA7A4,0xA7A4,0xA7A4}, {0xA7A5,0xA7A5,0xA7A5}, /* A7A4 */
+ {0xA7A6,0xA7A6,0xA7A6}, {0xA7A7,0xA7A7,0xA7A7}, /* A7A6 */
+ {0xA7A8,0xA7A8,0xA7A8}, {0xA7A9,0xA7A9,0xA7A9}, /* A7A8 */
+ {0xA7AA,0xA7AA,0xA7AA}, {0xA7AB,0xA7AB,0xA7AB}, /* A7AA */
+ {0xA7AC,0xA7AC,0xA7AC}, {0xA7AD,0xA7AD,0xA7AD}, /* A7AC */
+ {0xA7AE,0xA7AE,0xA7AE}, {0xA7AF,0xA7AF,0xA7AF}, /* A7AE */
+ {0xA7B0,0xA7B0,0xA7B0}, {0xA7B1,0xA7B1,0xA7B1}, /* A7B0 */
+ {0xA7B2,0xA7B2,0xA7B2}, {0xA7B3,0xA7B3,0xA7B3}, /* A7B2 */
+ {0xA7B4,0xA7B4,0xA7B4}, {0xA7B5,0xA7B5,0xA7B5}, /* A7B4 */
+ {0xA7B6,0xA7B6,0xA7B6}, {0xA7B7,0xA7B7,0xA7B7}, /* A7B6 */
+ {0xA7B8,0xA7B8,0xA7B8}, {0xA7B9,0xA7B9,0xA7B9}, /* A7B8 */
+ {0xA7BA,0xA7BA,0xA7BA}, {0xA7BB,0xA7BB,0xA7BB}, /* A7BA */
+ {0xA7BC,0xA7BC,0xA7BC}, {0xA7BD,0xA7BD,0xA7BD}, /* A7BC */
+ {0xA7BE,0xA7BE,0xA7BE}, {0xA7BF,0xA7BF,0xA7BF}, /* A7BE */
+ {0xA7C0,0xA7C0,0xA7C0}, {0xA7C1,0xA7C1,0xA7C1}, /* A7C0 */
+ {0xA7C2,0xA7C2,0xA7C2}, {0xA7C3,0xA7C3,0xA7C3}, /* A7C2 */
+ {0xA7C4,0xA7C4,0xA7C4}, {0xA7C5,0xA7C5,0xA7C5}, /* A7C4 */
+ {0xA7C6,0xA7C6,0xA7C6}, {0xA7C7,0xA7C7,0xA7C7}, /* A7C6 */
+ {0xA7C8,0xA7C8,0xA7C8}, {0xA7C9,0xA7C9,0xA7C9}, /* A7C8 */
+ {0xA7CA,0xA7CA,0xA7CA}, {0xA7CB,0xA7CB,0xA7CB}, /* A7CA */
+ {0xA7CC,0xA7CC,0xA7CC}, {0xA7CD,0xA7CD,0xA7CD}, /* A7CC */
+ {0xA7CE,0xA7CE,0xA7CE}, {0xA7CF,0xA7CF,0xA7CF}, /* A7CE */
+ {0xA7D0,0xA7D0,0xA7D0}, {0xA7D1,0xA7D1,0xA7D1}, /* A7D0 */
+ {0xA7D2,0xA7D2,0xA7D2}, {0xA7D3,0xA7D3,0xA7D3}, /* A7D2 */
+ {0xA7D4,0xA7D4,0xA7D4}, {0xA7D5,0xA7D5,0xA7D5}, /* A7D4 */
+ {0xA7D6,0xA7D6,0xA7D6}, {0xA7D7,0xA7D7,0xA7D7}, /* A7D6 */
+ {0xA7D8,0xA7D8,0xA7D8}, {0xA7D9,0xA7D9,0xA7D9}, /* A7D8 */
+ {0xA7DA,0xA7DA,0xA7DA}, {0xA7DB,0xA7DB,0xA7DB}, /* A7DA */
+ {0xA7DC,0xA7DC,0xA7DC}, {0xA7DD,0xA7DD,0xA7DD}, /* A7DC */
+ {0xA7DE,0xA7DE,0xA7DE}, {0xA7DF,0xA7DF,0xA7DF}, /* A7DE */
+ {0xA7E0,0xA7E0,0xA7E0}, {0xA7E1,0xA7E1,0xA7E1}, /* A7E0 */
+ {0xA7E2,0xA7E2,0xA7E2}, {0xA7E3,0xA7E3,0xA7E3}, /* A7E2 */
+ {0xA7E4,0xA7E4,0xA7E4}, {0xA7E5,0xA7E5,0xA7E5}, /* A7E4 */
+ {0xA7E6,0xA7E6,0xA7E6}, {0xA7E7,0xA7E7,0xA7E7}, /* A7E6 */
+ {0xA7E8,0xA7E8,0xA7E8}, {0xA7E9,0xA7E9,0xA7E9}, /* A7E8 */
+ {0xA7EA,0xA7EA,0xA7EA}, {0xA7EB,0xA7EB,0xA7EB}, /* A7EA */
+ {0xA7EC,0xA7EC,0xA7EC}, {0xA7ED,0xA7ED,0xA7ED}, /* A7EC */
+ {0xA7EE,0xA7EE,0xA7EE}, {0xA7EF,0xA7EF,0xA7EF}, /* A7EE */
+ {0xA7F0,0xA7F0,0xA7F0}, {0xA7F1,0xA7F1,0xA7F1}, /* A7F0 */
+ {0xA7F2,0xA7F2,0xA7F2}, {0xA7F3,0xA7F3,0xA7F3}, /* A7F2 */
+ {0xA7F4,0xA7F4,0xA7F4}, {0xA7F5,0xA7F5,0xA7F5}, /* A7F4 */
+ {0xA7F6,0xA7F6,0xA7F6}, {0xA7F7,0xA7F7,0xA7F7}, /* A7F6 */
+ {0xA7F8,0xA7F8,0xA7F8}, {0xA7F9,0xA7F9,0xA7F9}, /* A7F8 */
+ {0xA7FA,0xA7FA,0xA7FA}, {0xA7FB,0xA7FB,0xA7FB}, /* A7FA */
+ {0xA7FC,0xA7FC,0xA7FC}, {0xA7FD,0xA7FD,0xA7FD}, /* A7FC */
+ {0xA7FE,0xA7FE,0xA7FE}, {0xA7FF,0xA7FF,0xA7FF} /* A7FE */
+};
+
+static MY_UNICASE_CHARACTER u520pFF[]={
+ {0xFF00,0xFF00,0xFF00}, {0xFF01,0xFF01,0xFF01}, /* FF00 */
+ {0xFF02,0xFF02,0xFF02}, {0xFF03,0xFF03,0xFF03}, /* FF02 */
+ {0xFF04,0xFF04,0xFF04}, {0xFF05,0xFF05,0xFF05}, /* FF04 */
+ {0xFF06,0xFF06,0xFF06}, {0xFF07,0xFF07,0xFF07}, /* FF06 */
+ {0xFF08,0xFF08,0xFF08}, {0xFF09,0xFF09,0xFF09}, /* FF08 */
+ {0xFF0A,0xFF0A,0xFF0A}, {0xFF0B,0xFF0B,0xFF0B}, /* FF0A */
+ {0xFF0C,0xFF0C,0xFF0C}, {0xFF0D,0xFF0D,0xFF0D}, /* FF0C */
+ {0xFF0E,0xFF0E,0xFF0E}, {0xFF0F,0xFF0F,0xFF0F}, /* FF0E */
+ {0xFF10,0xFF10,0xFF10}, {0xFF11,0xFF11,0xFF11}, /* FF10 */
+ {0xFF12,0xFF12,0xFF12}, {0xFF13,0xFF13,0xFF13}, /* FF12 */
+ {0xFF14,0xFF14,0xFF14}, {0xFF15,0xFF15,0xFF15}, /* FF14 */
+ {0xFF16,0xFF16,0xFF16}, {0xFF17,0xFF17,0xFF17}, /* FF16 */
+ {0xFF18,0xFF18,0xFF18}, {0xFF19,0xFF19,0xFF19}, /* FF18 */
+ {0xFF1A,0xFF1A,0xFF1A}, {0xFF1B,0xFF1B,0xFF1B}, /* FF1A */
+ {0xFF1C,0xFF1C,0xFF1C}, {0xFF1D,0xFF1D,0xFF1D}, /* FF1C */
+ {0xFF1E,0xFF1E,0xFF1E}, {0xFF1F,0xFF1F,0xFF1F}, /* FF1E */
+ {0xFF20,0xFF20,0xFF20}, {0xFF21,0xFF41,0xFF21}, /* FF20 */
+ {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF22 */
+ {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF24 */
+ {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF26 */
+ {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF28 */
+ {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF2A */
+ {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF2C */
+ {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF2E */
+ {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF30 */
+ {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF32 */
+ {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF34 */
+ {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF36 */
+ {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF38 */
+ {0xFF3A,0xFF5A,0xFF3A}, {0xFF3B,0xFF3B,0xFF3B}, /* FF3A */
+ {0xFF3C,0xFF3C,0xFF3C}, {0xFF3D,0xFF3D,0xFF3D}, /* FF3C */
+ {0xFF3E,0xFF3E,0xFF3E}, {0xFF3F,0xFF3F,0xFF3F}, /* FF3E */
+ {0xFF40,0xFF40,0xFF40}, {0xFF21,0xFF41,0xFF21}, /* FF40 */
+ {0xFF22,0xFF42,0xFF22}, {0xFF23,0xFF43,0xFF23}, /* FF42 */
+ {0xFF24,0xFF44,0xFF24}, {0xFF25,0xFF45,0xFF25}, /* FF44 */
+ {0xFF26,0xFF46,0xFF26}, {0xFF27,0xFF47,0xFF27}, /* FF46 */
+ {0xFF28,0xFF48,0xFF28}, {0xFF29,0xFF49,0xFF29}, /* FF48 */
+ {0xFF2A,0xFF4A,0xFF2A}, {0xFF2B,0xFF4B,0xFF2B}, /* FF4A */
+ {0xFF2C,0xFF4C,0xFF2C}, {0xFF2D,0xFF4D,0xFF2D}, /* FF4C */
+ {0xFF2E,0xFF4E,0xFF2E}, {0xFF2F,0xFF4F,0xFF2F}, /* FF4E */
+ {0xFF30,0xFF50,0xFF30}, {0xFF31,0xFF51,0xFF31}, /* FF50 */
+ {0xFF32,0xFF52,0xFF32}, {0xFF33,0xFF53,0xFF33}, /* FF52 */
+ {0xFF34,0xFF54,0xFF34}, {0xFF35,0xFF55,0xFF35}, /* FF54 */
+ {0xFF36,0xFF56,0xFF36}, {0xFF37,0xFF57,0xFF37}, /* FF56 */
+ {0xFF38,0xFF58,0xFF38}, {0xFF39,0xFF59,0xFF39}, /* FF58 */
+ {0xFF3A,0xFF5A,0xFF3A}, {0xFF5B,0xFF5B,0xFF5B}, /* FF5A */
+ {0xFF5C,0xFF5C,0xFF5C}, {0xFF5D,0xFF5D,0xFF5D}, /* FF5C */
+ {0xFF5E,0xFF5E,0xFF5E}, {0xFF5F,0xFF5F,0xFF5F}, /* FF5E */
+ {0xFF60,0xFF60,0xFF60}, {0xFF61,0xFF61,0xFF61}, /* FF60 */
+ {0xFF62,0xFF62,0xFF62}, {0xFF63,0xFF63,0xFF63}, /* FF62 */
+ {0xFF64,0xFF64,0xFF64}, {0xFF65,0xFF65,0xFF65}, /* FF64 */
+ {0xFF66,0xFF66,0xFF66}, {0xFF67,0xFF67,0xFF67}, /* FF66 */
+ {0xFF68,0xFF68,0xFF68}, {0xFF69,0xFF69,0xFF69}, /* FF68 */
+ {0xFF6A,0xFF6A,0xFF6A}, {0xFF6B,0xFF6B,0xFF6B}, /* FF6A */
+ {0xFF6C,0xFF6C,0xFF6C}, {0xFF6D,0xFF6D,0xFF6D}, /* FF6C */
+ {0xFF6E,0xFF6E,0xFF6E}, {0xFF6F,0xFF6F,0xFF6F}, /* FF6E */
+ {0xFF70,0xFF70,0xFF70}, {0xFF71,0xFF71,0xFF71}, /* FF70 */
+ {0xFF72,0xFF72,0xFF72}, {0xFF73,0xFF73,0xFF73}, /* FF72 */
+ {0xFF74,0xFF74,0xFF74}, {0xFF75,0xFF75,0xFF75}, /* FF74 */
+ {0xFF76,0xFF76,0xFF76}, {0xFF77,0xFF77,0xFF77}, /* FF76 */
+ {0xFF78,0xFF78,0xFF78}, {0xFF79,0xFF79,0xFF79}, /* FF78 */
+ {0xFF7A,0xFF7A,0xFF7A}, {0xFF7B,0xFF7B,0xFF7B}, /* FF7A */
+ {0xFF7C,0xFF7C,0xFF7C}, {0xFF7D,0xFF7D,0xFF7D}, /* FF7C */
+ {0xFF7E,0xFF7E,0xFF7E}, {0xFF7F,0xFF7F,0xFF7F}, /* FF7E */
+ {0xFF80,0xFF80,0xFF80}, {0xFF81,0xFF81,0xFF81}, /* FF80 */
+ {0xFF82,0xFF82,0xFF82}, {0xFF83,0xFF83,0xFF83}, /* FF82 */
+ {0xFF84,0xFF84,0xFF84}, {0xFF85,0xFF85,0xFF85}, /* FF84 */
+ {0xFF86,0xFF86,0xFF86}, {0xFF87,0xFF87,0xFF87}, /* FF86 */
+ {0xFF88,0xFF88,0xFF88}, {0xFF89,0xFF89,0xFF89}, /* FF88 */
+ {0xFF8A,0xFF8A,0xFF8A}, {0xFF8B,0xFF8B,0xFF8B}, /* FF8A */
+ {0xFF8C,0xFF8C,0xFF8C}, {0xFF8D,0xFF8D,0xFF8D}, /* FF8C */
+ {0xFF8E,0xFF8E,0xFF8E}, {0xFF8F,0xFF8F,0xFF8F}, /* FF8E */
+ {0xFF90,0xFF90,0xFF90}, {0xFF91,0xFF91,0xFF91}, /* FF90 */
+ {0xFF92,0xFF92,0xFF92}, {0xFF93,0xFF93,0xFF93}, /* FF92 */
+ {0xFF94,0xFF94,0xFF94}, {0xFF95,0xFF95,0xFF95}, /* FF94 */
+ {0xFF96,0xFF96,0xFF96}, {0xFF97,0xFF97,0xFF97}, /* FF96 */
+ {0xFF98,0xFF98,0xFF98}, {0xFF99,0xFF99,0xFF99}, /* FF98 */
+ {0xFF9A,0xFF9A,0xFF9A}, {0xFF9B,0xFF9B,0xFF9B}, /* FF9A */
+ {0xFF9C,0xFF9C,0xFF9C}, {0xFF9D,0xFF9D,0xFF9D}, /* FF9C */
+ {0xFF9E,0xFF9E,0xFF9E}, {0xFF9F,0xFF9F,0xFF9F}, /* FF9E */
+ {0xFFA0,0xFFA0,0xFFA0}, {0xFFA1,0xFFA1,0xFFA1}, /* FFA0 */
+ {0xFFA2,0xFFA2,0xFFA2}, {0xFFA3,0xFFA3,0xFFA3}, /* FFA2 */
+ {0xFFA4,0xFFA4,0xFFA4}, {0xFFA5,0xFFA5,0xFFA5}, /* FFA4 */
+ {0xFFA6,0xFFA6,0xFFA6}, {0xFFA7,0xFFA7,0xFFA7}, /* FFA6 */
+ {0xFFA8,0xFFA8,0xFFA8}, {0xFFA9,0xFFA9,0xFFA9}, /* FFA8 */
+ {0xFFAA,0xFFAA,0xFFAA}, {0xFFAB,0xFFAB,0xFFAB}, /* FFAA */
+ {0xFFAC,0xFFAC,0xFFAC}, {0xFFAD,0xFFAD,0xFFAD}, /* FFAC */
+ {0xFFAE,0xFFAE,0xFFAE}, {0xFFAF,0xFFAF,0xFFAF}, /* FFAE */
+ {0xFFB0,0xFFB0,0xFFB0}, {0xFFB1,0xFFB1,0xFFB1}, /* FFB0 */
+ {0xFFB2,0xFFB2,0xFFB2}, {0xFFB3,0xFFB3,0xFFB3}, /* FFB2 */
+ {0xFFB4,0xFFB4,0xFFB4}, {0xFFB5,0xFFB5,0xFFB5}, /* FFB4 */
+ {0xFFB6,0xFFB6,0xFFB6}, {0xFFB7,0xFFB7,0xFFB7}, /* FFB6 */
+ {0xFFB8,0xFFB8,0xFFB8}, {0xFFB9,0xFFB9,0xFFB9}, /* FFB8 */
+ {0xFFBA,0xFFBA,0xFFBA}, {0xFFBB,0xFFBB,0xFFBB}, /* FFBA */
+ {0xFFBC,0xFFBC,0xFFBC}, {0xFFBD,0xFFBD,0xFFBD}, /* FFBC */
+ {0xFFBE,0xFFBE,0xFFBE}, {0xFFBF,0xFFBF,0xFFBF}, /* FFBE */
+ {0xFFC0,0xFFC0,0xFFC0}, {0xFFC1,0xFFC1,0xFFC1}, /* FFC0 */
+ {0xFFC2,0xFFC2,0xFFC2}, {0xFFC3,0xFFC3,0xFFC3}, /* FFC2 */
+ {0xFFC4,0xFFC4,0xFFC4}, {0xFFC5,0xFFC5,0xFFC5}, /* FFC4 */
+ {0xFFC6,0xFFC6,0xFFC6}, {0xFFC7,0xFFC7,0xFFC7}, /* FFC6 */
+ {0xFFC8,0xFFC8,0xFFC8}, {0xFFC9,0xFFC9,0xFFC9}, /* FFC8 */
+ {0xFFCA,0xFFCA,0xFFCA}, {0xFFCB,0xFFCB,0xFFCB}, /* FFCA */
+ {0xFFCC,0xFFCC,0xFFCC}, {0xFFCD,0xFFCD,0xFFCD}, /* FFCC */
+ {0xFFCE,0xFFCE,0xFFCE}, {0xFFCF,0xFFCF,0xFFCF}, /* FFCE */
+ {0xFFD0,0xFFD0,0xFFD0}, {0xFFD1,0xFFD1,0xFFD1}, /* FFD0 */
+ {0xFFD2,0xFFD2,0xFFD2}, {0xFFD3,0xFFD3,0xFFD3}, /* FFD2 */
+ {0xFFD4,0xFFD4,0xFFD4}, {0xFFD5,0xFFD5,0xFFD5}, /* FFD4 */
+ {0xFFD6,0xFFD6,0xFFD6}, {0xFFD7,0xFFD7,0xFFD7}, /* FFD6 */
+ {0xFFD8,0xFFD8,0xFFD8}, {0xFFD9,0xFFD9,0xFFD9}, /* FFD8 */
+ {0xFFDA,0xFFDA,0xFFDA}, {0xFFDB,0xFFDB,0xFFDB}, /* FFDA */
+ {0xFFDC,0xFFDC,0xFFDC}, {0xFFDD,0xFFDD,0xFFDD}, /* FFDC */
+ {0xFFDE,0xFFDE,0xFFDE}, {0xFFDF,0xFFDF,0xFFDF}, /* FFDE */
+ {0xFFE0,0xFFE0,0xFFE0}, {0xFFE1,0xFFE1,0xFFE1}, /* FFE0 */
+ {0xFFE2,0xFFE2,0xFFE2}, {0xFFE3,0xFFE3,0xFFE3}, /* FFE2 */
+ {0xFFE4,0xFFE4,0xFFE4}, {0xFFE5,0xFFE5,0xFFE5}, /* FFE4 */
+ {0xFFE6,0xFFE6,0xFFE6}, {0xFFE7,0xFFE7,0xFFE7}, /* FFE6 */
+ {0xFFE8,0xFFE8,0xFFE8}, {0xFFE9,0xFFE9,0xFFE9}, /* FFE8 */
+ {0xFFEA,0xFFEA,0xFFEA}, {0xFFEB,0xFFEB,0xFFEB}, /* FFEA */
+ {0xFFEC,0xFFEC,0xFFEC}, {0xFFED,0xFFED,0xFFED}, /* FFEC */
+ {0xFFEE,0xFFEE,0xFFEE}, {0xFFEF,0xFFEF,0xFFEF}, /* FFEE */
+ {0xFFF0,0xFFF0,0xFFF0}, {0xFFF1,0xFFF1,0xFFF1}, /* FFF0 */
+ {0xFFF2,0xFFF2,0xFFF2}, {0xFFF3,0xFFF3,0xFFF3}, /* FFF2 */
+ {0xFFF4,0xFFF4,0xFFF4}, {0xFFF5,0xFFF5,0xFFF5}, /* FFF4 */
+ {0xFFF6,0xFFF6,0xFFF6}, {0xFFF7,0xFFF7,0xFFF7}, /* FFF6 */
+ {0xFFF8,0xFFF8,0xFFF8}, {0xFFF9,0xFFF9,0xFFF9}, /* FFF8 */
+ {0xFFFA,0xFFFA,0xFFFA}, {0xFFFB,0xFFFB,0xFFFB}, /* FFFA */
+ {0xFFFC,0xFFFC,0xFFFC}, {0xFFFD,0xFFFD,0xFFFD}, /* FFFC */
+ {0xFFFE,0xFFFE,0xFFFE}, {0xFFFF,0xFFFF,0xFFFF} /* FFFE */
+};
+
+static MY_UNICASE_CHARACTER u520p104[]={
+ {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10400 */
+ {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 10402 */
+ {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 10404 */
+ {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 10406 */
+ {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10408 */
+ {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 1040A */
+ {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 1040C */
+ {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 1040E */
+ {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10410 */
+ {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 10412 */
+ {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 10414 */
+ {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 10416 */
+ {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10418 */
+ {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 1041A */
+ {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 1041C */
+ {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 1041E */
+ {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10420 */
+ {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 10422 */
+ {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 10424 */
+ {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 10426 */
+ {0x10400,0x10428,0x10400}, {0x10401,0x10429,0x10401}, /* 10428 */
+ {0x10402,0x1042A,0x10402}, {0x10403,0x1042B,0x10403}, /* 1042A */
+ {0x10404,0x1042C,0x10404}, {0x10405,0x1042D,0x10405}, /* 1042C */
+ {0x10406,0x1042E,0x10406}, {0x10407,0x1042F,0x10407}, /* 1042E */
+ {0x10408,0x10430,0x10408}, {0x10409,0x10431,0x10409}, /* 10430 */
+ {0x1040A,0x10432,0x1040A}, {0x1040B,0x10433,0x1040B}, /* 10432 */
+ {0x1040C,0x10434,0x1040C}, {0x1040D,0x10435,0x1040D}, /* 10434 */
+ {0x1040E,0x10436,0x1040E}, {0x1040F,0x10437,0x1040F}, /* 10436 */
+ {0x10410,0x10438,0x10410}, {0x10411,0x10439,0x10411}, /* 10438 */
+ {0x10412,0x1043A,0x10412}, {0x10413,0x1043B,0x10413}, /* 1043A */
+ {0x10414,0x1043C,0x10414}, {0x10415,0x1043D,0x10415}, /* 1043C */
+ {0x10416,0x1043E,0x10416}, {0x10417,0x1043F,0x10417}, /* 1043E */
+ {0x10418,0x10440,0x10418}, {0x10419,0x10441,0x10419}, /* 10440 */
+ {0x1041A,0x10442,0x1041A}, {0x1041B,0x10443,0x1041B}, /* 10442 */
+ {0x1041C,0x10444,0x1041C}, {0x1041D,0x10445,0x1041D}, /* 10444 */
+ {0x1041E,0x10446,0x1041E}, {0x1041F,0x10447,0x1041F}, /* 10446 */
+ {0x10420,0x10448,0x10420}, {0x10421,0x10449,0x10421}, /* 10448 */
+ {0x10422,0x1044A,0x10422}, {0x10423,0x1044B,0x10423}, /* 1044A */
+ {0x10424,0x1044C,0x10424}, {0x10425,0x1044D,0x10425}, /* 1044C */
+ {0x10426,0x1044E,0x10426}, {0x10427,0x1044F,0x10427}, /* 1044E */
+ {0x10450,0x10450,0x10450}, {0x10451,0x10451,0x10451}, /* 10450 */
+ {0x10452,0x10452,0x10452}, {0x10453,0x10453,0x10453}, /* 10452 */
+ {0x10454,0x10454,0x10454}, {0x10455,0x10455,0x10455}, /* 10454 */
+ {0x10456,0x10456,0x10456}, {0x10457,0x10457,0x10457}, /* 10456 */
+ {0x10458,0x10458,0x10458}, {0x10459,0x10459,0x10459}, /* 10458 */
+ {0x1045A,0x1045A,0x1045A}, {0x1045B,0x1045B,0x1045B}, /* 1045A */
+ {0x1045C,0x1045C,0x1045C}, {0x1045D,0x1045D,0x1045D}, /* 1045C */
+ {0x1045E,0x1045E,0x1045E}, {0x1045F,0x1045F,0x1045F}, /* 1045E */
+ {0x10460,0x10460,0x10460}, {0x10461,0x10461,0x10461}, /* 10460 */
+ {0x10462,0x10462,0x10462}, {0x10463,0x10463,0x10463}, /* 10462 */
+ {0x10464,0x10464,0x10464}, {0x10465,0x10465,0x10465}, /* 10464 */
+ {0x10466,0x10466,0x10466}, {0x10467,0x10467,0x10467}, /* 10466 */
+ {0x10468,0x10468,0x10468}, {0x10469,0x10469,0x10469}, /* 10468 */
+ {0x1046A,0x1046A,0x1046A}, {0x1046B,0x1046B,0x1046B}, /* 1046A */
+ {0x1046C,0x1046C,0x1046C}, {0x1046D,0x1046D,0x1046D}, /* 1046C */
+ {0x1046E,0x1046E,0x1046E}, {0x1046F,0x1046F,0x1046F}, /* 1046E */
+ {0x10470,0x10470,0x10470}, {0x10471,0x10471,0x10471}, /* 10470 */
+ {0x10472,0x10472,0x10472}, {0x10473,0x10473,0x10473}, /* 10472 */
+ {0x10474,0x10474,0x10474}, {0x10475,0x10475,0x10475}, /* 10474 */
+ {0x10476,0x10476,0x10476}, {0x10477,0x10477,0x10477}, /* 10476 */
+ {0x10478,0x10478,0x10478}, {0x10479,0x10479,0x10479}, /* 10478 */
+ {0x1047A,0x1047A,0x1047A}, {0x1047B,0x1047B,0x1047B}, /* 1047A */
+ {0x1047C,0x1047C,0x1047C}, {0x1047D,0x1047D,0x1047D}, /* 1047C */
+ {0x1047E,0x1047E,0x1047E}, {0x1047F,0x1047F,0x1047F}, /* 1047E */
+ {0x10480,0x10480,0x10480}, {0x10481,0x10481,0x10481}, /* 10480 */
+ {0x10482,0x10482,0x10482}, {0x10483,0x10483,0x10483}, /* 10482 */
+ {0x10484,0x10484,0x10484}, {0x10485,0x10485,0x10485}, /* 10484 */
+ {0x10486,0x10486,0x10486}, {0x10487,0x10487,0x10487}, /* 10486 */
+ {0x10488,0x10488,0x10488}, {0x10489,0x10489,0x10489}, /* 10488 */
+ {0x1048A,0x1048A,0x1048A}, {0x1048B,0x1048B,0x1048B}, /* 1048A */
+ {0x1048C,0x1048C,0x1048C}, {0x1048D,0x1048D,0x1048D}, /* 1048C */
+ {0x1048E,0x1048E,0x1048E}, {0x1048F,0x1048F,0x1048F}, /* 1048E */
+ {0x10490,0x10490,0x10490}, {0x10491,0x10491,0x10491}, /* 10490 */
+ {0x10492,0x10492,0x10492}, {0x10493,0x10493,0x10493}, /* 10492 */
+ {0x10494,0x10494,0x10494}, {0x10495,0x10495,0x10495}, /* 10494 */
+ {0x10496,0x10496,0x10496}, {0x10497,0x10497,0x10497}, /* 10496 */
+ {0x10498,0x10498,0x10498}, {0x10499,0x10499,0x10499}, /* 10498 */
+ {0x1049A,0x1049A,0x1049A}, {0x1049B,0x1049B,0x1049B}, /* 1049A */
+ {0x1049C,0x1049C,0x1049C}, {0x1049D,0x1049D,0x1049D}, /* 1049C */
+ {0x1049E,0x1049E,0x1049E}, {0x1049F,0x1049F,0x1049F}, /* 1049E */
+ {0x104A0,0x104A0,0x104A0}, {0x104A1,0x104A1,0x104A1}, /* 104A0 */
+ {0x104A2,0x104A2,0x104A2}, {0x104A3,0x104A3,0x104A3}, /* 104A2 */
+ {0x104A4,0x104A4,0x104A4}, {0x104A5,0x104A5,0x104A5}, /* 104A4 */
+ {0x104A6,0x104A6,0x104A6}, {0x104A7,0x104A7,0x104A7}, /* 104A6 */
+ {0x104A8,0x104A8,0x104A8}, {0x104A9,0x104A9,0x104A9}, /* 104A8 */
+ {0x104AA,0x104AA,0x104AA}, {0x104AB,0x104AB,0x104AB}, /* 104AA */
+ {0x104AC,0x104AC,0x104AC}, {0x104AD,0x104AD,0x104AD}, /* 104AC */
+ {0x104AE,0x104AE,0x104AE}, {0x104AF,0x104AF,0x104AF}, /* 104AE */
+ {0x104B0,0x104B0,0x104B0}, {0x104B1,0x104B1,0x104B1}, /* 104B0 */
+ {0x104B2,0x104B2,0x104B2}, {0x104B3,0x104B3,0x104B3}, /* 104B2 */
+ {0x104B4,0x104B4,0x104B4}, {0x104B5,0x104B5,0x104B5}, /* 104B4 */
+ {0x104B6,0x104B6,0x104B6}, {0x104B7,0x104B7,0x104B7}, /* 104B6 */
+ {0x104B8,0x104B8,0x104B8}, {0x104B9,0x104B9,0x104B9}, /* 104B8 */
+ {0x104BA,0x104BA,0x104BA}, {0x104BB,0x104BB,0x104BB}, /* 104BA */
+ {0x104BC,0x104BC,0x104BC}, {0x104BD,0x104BD,0x104BD}, /* 104BC */
+ {0x104BE,0x104BE,0x104BE}, {0x104BF,0x104BF,0x104BF}, /* 104BE */
+ {0x104C0,0x104C0,0x104C0}, {0x104C1,0x104C1,0x104C1}, /* 104C0 */
+ {0x104C2,0x104C2,0x104C2}, {0x104C3,0x104C3,0x104C3}, /* 104C2 */
+ {0x104C4,0x104C4,0x104C4}, {0x104C5,0x104C5,0x104C5}, /* 104C4 */
+ {0x104C6,0x104C6,0x104C6}, {0x104C7,0x104C7,0x104C7}, /* 104C6 */
+ {0x104C8,0x104C8,0x104C8}, {0x104C9,0x104C9,0x104C9}, /* 104C8 */
+ {0x104CA,0x104CA,0x104CA}, {0x104CB,0x104CB,0x104CB}, /* 104CA */
+ {0x104CC,0x104CC,0x104CC}, {0x104CD,0x104CD,0x104CD}, /* 104CC */
+ {0x104CE,0x104CE,0x104CE}, {0x104CF,0x104CF,0x104CF}, /* 104CE */
+ {0x104D0,0x104D0,0x104D0}, {0x104D1,0x104D1,0x104D1}, /* 104D0 */
+ {0x104D2,0x104D2,0x104D2}, {0x104D3,0x104D3,0x104D3}, /* 104D2 */
+ {0x104D4,0x104D4,0x104D4}, {0x104D5,0x104D5,0x104D5}, /* 104D4 */
+ {0x104D6,0x104D6,0x104D6}, {0x104D7,0x104D7,0x104D7}, /* 104D6 */
+ {0x104D8,0x104D8,0x104D8}, {0x104D9,0x104D9,0x104D9}, /* 104D8 */
+ {0x104DA,0x104DA,0x104DA}, {0x104DB,0x104DB,0x104DB}, /* 104DA */
+ {0x104DC,0x104DC,0x104DC}, {0x104DD,0x104DD,0x104DD}, /* 104DC */
+ {0x104DE,0x104DE,0x104DE}, {0x104DF,0x104DF,0x104DF}, /* 104DE */
+ {0x104E0,0x104E0,0x104E0}, {0x104E1,0x104E1,0x104E1}, /* 104E0 */
+ {0x104E2,0x104E2,0x104E2}, {0x104E3,0x104E3,0x104E3}, /* 104E2 */
+ {0x104E4,0x104E4,0x104E4}, {0x104E5,0x104E5,0x104E5}, /* 104E4 */
+ {0x104E6,0x104E6,0x104E6}, {0x104E7,0x104E7,0x104E7}, /* 104E6 */
+ {0x104E8,0x104E8,0x104E8}, {0x104E9,0x104E9,0x104E9}, /* 104E8 */
+ {0x104EA,0x104EA,0x104EA}, {0x104EB,0x104EB,0x104EB}, /* 104EA */
+ {0x104EC,0x104EC,0x104EC}, {0x104ED,0x104ED,0x104ED}, /* 104EC */
+ {0x104EE,0x104EE,0x104EE}, {0x104EF,0x104EF,0x104EF}, /* 104EE */
+ {0x104F0,0x104F0,0x104F0}, {0x104F1,0x104F1,0x104F1}, /* 104F0 */
+ {0x104F2,0x104F2,0x104F2}, {0x104F3,0x104F3,0x104F3}, /* 104F2 */
+ {0x104F4,0x104F4,0x104F4}, {0x104F5,0x104F5,0x104F5}, /* 104F4 */
+ {0x104F6,0x104F6,0x104F6}, {0x104F7,0x104F7,0x104F7}, /* 104F6 */
+ {0x104F8,0x104F8,0x104F8}, {0x104F9,0x104F9,0x104F9}, /* 104F8 */
+ {0x104FA,0x104FA,0x104FA}, {0x104FB,0x104FB,0x104FB}, /* 104FA */
+ {0x104FC,0x104FC,0x104FC}, {0x104FD,0x104FD,0x104FD}, /* 104FC */
+ {0x104FE,0x104FE,0x104FE}, {0x104FF,0x104FF,0x104FF} /* 104FE */
+};
+
+
+MY_UNICASE_CHARACTER *my_unicase_pages_unicode520[4352]=
+{
+ u520p00, u520p01, u520p02, u520p03, u520p04, u520p05, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ u520p10, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, u520p1D, u520p1E, u520p1F,
+ NULL, u520p21, NULL, NULL, u520p24, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, u520p2C, u520p2D, 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, u520pA6, u520pA7,
+ 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, u520pFF,
+ NULL, NULL, NULL, NULL,u520p104, NULL, NULL, NULL,
+};
+
+
+MY_UNICASE_INFO my_unicase_unicode520=
+{
+ 0x104FF,
+ my_unicase_pages_unicode520
+};
+
+
static inline void
-my_tosort_unicode(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_tosort_unicode(MY_UNICASE_INFO *uni_plane, my_wc_t *wc, uint flags)
{
- uint page= *wc >> 8;
- if (page < 256)
+ if (*wc <= uni_plane->maxchar)
{
- if (uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].sort;
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[*wc >> 8]))
+ *wc= (flags & MY_CS_LOWER_SORT) ?
+ page[*wc & 0xFF].tolower :
+ page[*wc & 0xFF].sort;
}
else
{
@@ -1966,14 +4472,12 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs,
const char *str,const char *str_end,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many,
- MY_UNICASE_INFO *const *weights, int recurse_level)
+ MY_UNICASE_INFO *weights, int recurse_level)
{
int result= -1; /* Not found, using wildcards */
my_wc_t s_wc, w_wc;
int scan;
- int (*mb_wc)(CHARSET_INFO *, my_wc_t *,
- const uchar *, const uchar *);
- mb_wc= cs->cset->mb_wc;
+ my_charset_conv_mb_wc mb_wc= cs->cset->mb_wc;
if (my_string_stack_guard && my_string_stack_guard(recurse_level))
return 1;
@@ -2001,12 +4505,12 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs,
wildstr+= scan;
escaped= 1;
}
-
+
if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
(const uchar*)str_end)) <= 0)
return 1;
str+= scan;
-
+
if (!escaped && w_wc == (my_wc_t) w_one)
{
result= 1; /* Found an anchor char */
@@ -2015,8 +4519,8 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs,
{
if (weights)
{
- my_tosort_unicode(weights, &s_wc);
- my_tosort_unicode(weights, &w_wc);
+ my_tosort_unicode(weights, &s_wc, cs->state);
+ my_tosort_unicode(weights, &w_wc, cs->state);
}
if (s_wc != w_wc)
return 1; /* No match */
@@ -2024,86 +4528,84 @@ int my_wildcmp_unicode_impl(CHARSET_INFO *cs,
if (wildstr == wildend)
return (str != str_end); /* Match if both are at end */
}
-
-
+
if (w_wc == (my_wc_t) w_many)
{ /* Found w_many */
-
/* Remove any '%' and '_' from the wild search string */
for ( ; wildstr != wildend ; )
{
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
(const uchar*)wildend)) <= 0)
return 1;
-
- if (w_wc == (my_wc_t)w_many)
+
+ if (w_wc == (my_wc_t) w_many)
{
wildstr+= scan;
continue;
}
-
- if (w_wc == (my_wc_t)w_one)
+
+ if (w_wc == (my_wc_t) w_one)
{
wildstr+= scan;
if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <=0)
+ (const uchar*)str_end)) <= 0)
return 1;
str+= scan;
continue;
}
break; /* Not a wild character */
}
-
+
if (wildstr == wildend)
return 0; /* Ok if w_many is last */
-
+
if (str == str_end)
return -1;
-
+
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <=0)
+ (const uchar*)wildend)) <= 0)
return 1;
wildstr+= scan;
-
- if (w_wc == (my_wc_t)escape)
+
+ if (w_wc == (my_wc_t) escape)
{
if (wildstr < wildend)
{
if ((scan= mb_wc(cs, &w_wc, (const uchar*)wildstr,
- (const uchar*)wildend)) <=0)
+ (const uchar*)wildend)) <= 0)
return 1;
wildstr+= scan;
}
}
-
+
while (1)
{
/* Skip until the first character from wildstr is found */
while (str != str_end)
{
if ((scan= mb_wc(cs, &s_wc, (const uchar*)str,
- (const uchar*)str_end)) <=0)
+ (const uchar*)str_end)) <= 0)
return 1;
if (weights)
{
- my_tosort_unicode(weights, &s_wc);
- my_tosort_unicode(weights, &w_wc);
+ my_tosort_unicode(weights, &s_wc, cs->state);
+ my_tosort_unicode(weights, &w_wc, cs->state);
}
-
+
if (s_wc == w_wc)
break;
str+= scan;
}
if (str == str_end)
return -1;
-
+
str+= scan;
result= my_wildcmp_unicode_impl(cs, str, str_end, wildstr, wildend,
escape, w_one, w_many,
- weights, recurse_level+1);
+ weights, recurse_level + 1);
if (result <= 0)
return result;
- }
+ }
}
}
return (str != str_end ? 1 : 0);
@@ -2115,12 +4617,77 @@ my_wildcmp_unicode(CHARSET_INFO *cs,
const char *str,const char *str_end,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many,
- MY_UNICASE_INFO *const *weights)
+ MY_UNICASE_INFO *weights)
{
return my_wildcmp_unicode_impl(cs, str, str_end,
wildstr, wildend,
escape, w_one, w_many, weights, 1);
}
+
+
+/**
+ Pad buffer with weights for space characters.
+
+ @details
+ This functions fills the buffer pointed by "str"
+ with weights of space character. Not more than
+ "nweights" weights are put. If at some iteration
+ step only a half of weight can fit
+ (which is possible if buffer length is an odd number)
+ then a half of this weight is put - this gives
+ a little bit better ORDER BY result for long strings.
+
+ @str Buffer
+ @strend End of buffer
+ @nweights Number of weights
+
+ @return Result length
+*/
+
+static size_t
+my_strxfrm_pad_nweights_unicode(uchar *str, uchar *strend, size_t nweights)
+{
+ uchar *str0;
+ DBUG_ASSERT(str && str <= strend);
+ for (str0= str; str < strend && nweights; nweights--)
+ {
+ *str++= 0x00;
+ if (str < strend)
+ *str++= 0x20;
+ }
+ return str - str0;
+}
+
+
+/**
+ Pad buffer with weights for space characters.
+
+ @details
+ This functions fills the buffer pointed by "str"
+ with weights of space character. Putting half of weight
+ (when buffer length is an odd number) is OK.
+
+ @str Buffer
+ @strend End of buffer
+
+ @return Result length
+*/
+
+static size_t
+my_strxfrm_pad_unicode(uchar *str, uchar *strend)
+{
+ uchar *str0= str;
+ DBUG_ASSERT(str && str <= strend);
+ for ( ; str < strend ; )
+ {
+ *str++= 0x00;
+ if (str < strend)
+ *str++= 0x20;
+ }
+ return str - str0;
+}
+
+
/*
Store sorting weights using 2 bytes per character.
@@ -2132,90 +4699,115 @@ my_wildcmp_unicode(CHARSET_INFO *cs,
*/
size_t
my_strnxfrm_unicode(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
my_wc_t UNINIT_VAR(wc);
int res;
+ uchar *dst0= dst;
uchar *de= dst + dstlen;
- uchar *de_beg= de - 1;
- const uchar *se = src + srclen;
- MY_UNICASE_INFO * const*uni_plane= (cs->state & MY_CS_BINSORT) ?
- NULL : cs->caseinfo;
+ const uchar *se= src + srclen;
+ MY_UNICASE_INFO *uni_plane= (cs->state & MY_CS_BINSORT) ?
+ NULL : cs->caseinfo;
DBUG_ASSERT(!srclen || src);
-
- while (dst < de_beg)
+
+ for (; dst < de && nweights; nweights--)
{
- if ((res= cs->cset->mb_wc(cs,&wc, src, se)) <= 0)
+ if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0)
break;
- src+=res;
+ src+= res;
if (uni_plane)
- my_tosort_unicode(uni_plane, &wc);
+ my_tosort_unicode(uni_plane, &wc, cs->state);
*dst++= (uchar) (wc >> 8);
if (dst < de)
*dst++= (uchar) (wc & 0xFF);
}
-
- while (dst < de_beg) /* Fill the tail with keys for space character */
- {
- *dst++= 0x00;
- *dst++= 0x20;
- }
-
- if (dst < de) /* Clear the last byte, if "dstlen" was an odd number */
- *dst= 0x00;
-
- return dstlen;
+
+ if (dst < de && nweights && (flags & MY_STRXFRM_PAD_WITH_SPACE))
+ dst+= my_strxfrm_pad_nweights_unicode(dst, de, nweights);
+
+ my_strxfrm_desc_and_reverse(dst0, dst, flags, 0);
+
+ if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && dst < de)
+ dst+= my_strxfrm_pad_unicode(dst, de);
+ return dst - dst0;
}
/*
+ For BMP-only collations that use 2 bytes per weight.
+*/
+size_t
+my_strnxfrmlen_unicode(CHARSET_INFO *cs, size_t len)
+{
+
+ return ((len + cs->mbmaxlen - 1) / cs->mbmaxlen) * 2;
+}
+
+/*
Store sorting weights using 3 bytes per character.
This function is shared between utf8mb4_bin, utf16_bin, utf32_bin.
*/
size_t
my_strnxfrm_unicode_full_bin(CHARSET_INFO *cs,
- uchar *dst, size_t dstlen,
- const uchar *src, size_t srclen)
+ uchar *dst, size_t dstlen, uint nweights,
+ const uchar *src, size_t srclen, uint flags)
{
- my_wc_t wc;
+ my_wc_t UNINIT_VAR(wc);
+ uchar *dst0= dst;
uchar *de= dst + dstlen;
- uchar *de_beg= de - 2; /* The beginning of the last chunk */
const uchar *se = src + srclen;
- LINT_INIT(wc);
DBUG_ASSERT(!srclen || src);
DBUG_ASSERT(cs->state & MY_CS_BINSORT);
- while (dst < de_beg)
+ for ( ; dst < de && nweights; nweights--)
{
int res;
if ((res= cs->cset->mb_wc(cs, &wc, src, se)) <= 0)
break;
src+= res;
*dst++= (uchar) (wc >> 16);
- *dst++= (uchar) ((wc >> 8) & 0xFF);
- *dst++= (uchar) (wc & 0xFF);
+ if (dst < de)
+ {
+ *dst++= (uchar) ((wc >> 8) & 0xFF);
+ if (dst < de)
+ *dst++= (uchar) (wc & 0xFF);
+ }
}
- while (dst < de_beg) /* Fill the tail with keys for space character */
+ if (flags & MY_STRXFRM_PAD_WITH_SPACE)
{
- *dst++= 0x00;
- *dst++= 0x00;
- *dst++= 0x20;
+ for ( ; dst < de && nweights; nweights--)
+ {
+ *dst++= 0x00;
+ if (dst < de)
+ {
+ *dst++= 0x00;
+ if (dst < de)
+ *dst++= 0x20;
+ }
+ }
}
+
+ my_strxfrm_desc_and_reverse(dst0, dst, flags, 0);
- /* Clear the last one or two bytes, if "dstlen" was not divisible by 3 */
- if (dst < de)
+ if (flags & MY_STRXFRM_PAD_TO_MAXLEN)
{
- *dst++= 0x00;
- if (dst < de)
- *dst= 0x00;
+ while (dst < de)
+ {
+ *dst++= 0x00;
+ if (dst < de)
+ {
+ *dst++= 0x00;
+ if (dst < de)
+ *dst++= 0x20;
+ }
+ }
}
-
- return dstlen;
+ return dst - dst0;
}
@@ -2295,16 +4887,6 @@ static const uchar to_upper_utf8[] = {
240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255
};
-static inline int bincmp(const uchar *s, const uchar *se,
- const uchar *t, const uchar *te)
-{
- int slen= (int) (se-s), tlen= (int) (te-t);
- int len=min(slen,tlen);
- int cmp= memcmp(s,t,len);
- return cmp ? cmp : slen-tlen;
-}
-
-
static int my_utf8_uni(CHARSET_INFO *cs __attribute__((unused)),
my_wc_t * pwc, const uchar *s, const uchar *e)
{
@@ -2329,7 +4911,7 @@ static int my_utf8_uni(CHARSET_INFO *cs __attribute__((unused)),
if (!(IS_CONTINUATION_BYTE(s[1])))
return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
+ *pwc= UTF8MB2_CODE(c, s[1]);
return 2;
}
else if (c < 0xf0)
@@ -2337,76 +4919,12 @@ static int my_utf8_uni(CHARSET_INFO *cs __attribute__((unused)),
if (s+3 > e) /* We need 3 characters */
return MY_CS_TOOSMALL3;
- if (!(IS_CONTINUATION_BYTE(s[1]) && IS_CONTINUATION_BYTE(s[2]) &&
- (c >= 0xe1 || s[1] >= 0xa0)))
+ if (!IS_UTF8MB3_STEP2(c, s[1], s[2]))
return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
-
+ *pwc= UTF8MB3_CODE(c, s[1], s[2]);
return 3;
}
-#ifdef UNICODE_32BIT
- else if (c < 0xf8 && sizeof(my_wc_t)*8 >= 32)
- {
- if (s+4 > e) /* We need 4 characters */
- return MY_CS_TOOSMALL4;
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- (c >= 0xf1 || s[1] >= 0x90)))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x07) << 18) |
- ((my_wc_t) (s[1] ^ 0x80) << 12) |
- ((my_wc_t) (s[2] ^ 0x80) << 6) |
- (my_wc_t) (s[3] ^ 0x80);
-
- return 4;
- }
- else if (c < 0xfc && sizeof(my_wc_t)*8 >= 32)
- {
- if (s+5 >e) /* We need 5 characters */
- return MY_CS_TOOSMALL5;
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- IS_CONTINUATION_BYTE(s[4]) &&
- (c >= 0xf9 || s[1] >= 0x88)))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x03) << 24) |
- ((my_wc_t) (s[1] ^ 0x80) << 18) |
- ((my_wc_t) (s[2] ^ 0x80) << 12) |
- ((my_wc_t) (s[3] ^ 0x80) << 6) |
- (my_wc_t) (s[4] ^ 0x80);
- return 5;
- }
- else if (c < 0xfe && sizeof(my_wc_t)*8 >= 32)
- {
- if ( s+6 >e ) /* We need 6 characters */
- return MY_CS_TOOSMALL6;
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- IS_CONTINUATION_BYTE(s[4]) &&
- IS_CONTINUATION_BYTE(s[5]) &&
- (c >= 0xfd || s[1] >= 0x84)))
- return MY_CS_ILSEQ;
-
- *pwc = ((my_wc_t) (c & 0x01) << 30)
- | ((my_wc_t) (s[1] ^ 0x80) << 24)
- | ((my_wc_t) (s[2] ^ 0x80) << 18)
- | ((my_wc_t) (s[3] ^ 0x80) << 12)
- | ((my_wc_t) (s[4] ^ 0x80) << 6)
- | (my_wc_t) (s[5] ^ 0x80);
- return 6;
- }
-#endif
return MY_CS_ILSEQ;
}
@@ -2435,21 +4953,16 @@ static int my_utf8_uni_no_range(CHARSET_INFO *cs __attribute__((unused)),
if (!((s[1] ^ 0x80) < 0x40))
return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
+ *pwc= UTF8MB2_CODE(c, s[1]);
return 2;
}
if (c < 0xf0)
{
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- (c >= 0xe1 || s[1] >= 0xa0)))
+ if (!IS_UTF8MB3_STEP2(c, s[1], s[2]))
return MY_CS_ILSEQ;
- *pwc= ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
-
+ *pwc= UTF8MB3_CODE(c, s[1], s[2]);
return 3;
}
return MY_CS_ILSEQ;
@@ -2459,50 +4972,33 @@ static int my_utf8_uni_no_range(CHARSET_INFO *cs __attribute__((unused)),
static int my_uni_utf8 (CHARSET_INFO *cs __attribute__((unused)),
my_wc_t wc, uchar *r, uchar *e)
{
- int count;
-
- if (r >= e)
- return MY_CS_TOOSMALL;
-
if (wc < 0x80)
- count = 1;
- else if (wc < 0x800)
- count = 2;
- else if (wc < 0x10000)
- count = 3;
-#ifdef UNICODE_32BIT
- else if (wc < 0x200000)
- count = 4;
- else if (wc < 0x4000000)
- count = 5;
- else if (wc <= 0x7fffffff)
- count = 6;
-#endif
- else return MY_CS_ILUNI;
-
- /*
- e is a character after the string r, not the last character of it.
- Because of it (r+count > e), not (r+count-1 >e )
- */
- if ( r+count > e )
- return MY_CS_TOOSMALLN(count);
-
- switch (count) {
-#ifdef UNICODE_32BIT
- case 6: r[5] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x4000000;
- /* fall through */
- case 5: r[4] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x200000;
- /* fall through */
- case 4: r[3] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x10000;
- /* fall through */
-#endif
- case 3: r[2] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0x800;
- /* fall through */
- case 2: r[1] = (uchar) (0x80 | (wc & 0x3f)); wc = wc >> 6; wc |= 0xc0;
- /* fall through */
- case 1: r[0] = (uchar) wc;
+ {
+ if (r >= e)
+ return MY_CS_TOOSMALL;
+ *r= (uchar) wc;
+ return 1;
}
- return count;
+ if (wc < 0x800)
+ {
+ if (r + 2 > e)
+ return MY_CS_TOOSMALLN(2);
+ /* U+0080..U+07FF: 00000xxx.xxyyyyyy -> 110xxxxx 10yyyyyy */
+ *r++= (uchar) (0xC0 | (wc >> 6));
+ *r= (uchar) (0x80 | (wc & 0x3F));
+ return 2;
+ }
+ if (wc < 0x10000)
+ {
+ if (r + 3 > e)
+ return MY_CS_TOOSMALLN(3);
+ /* U+0800..U+FFFF: xxxxyyyy.yyzzzzzz -> 1110xxxx 10yyyyyy 10zzzzzz */
+ *r++= (uchar) (0xE0 | (wc >> 12));
+ *r++= (uchar) (0x80 | ((wc >> 6) & 0x3f));
+ *r= (uchar) (0x80 | (wc & 0x3f));
+ return 3;
+ }
+ return MY_CS_ILUNI;
}
@@ -2535,20 +5031,38 @@ static int my_uni_utf8_no_range(CHARSET_INFO *cs __attribute__((unused)),
}
-static size_t my_caseup_utf8(CHARSET_INFO *cs, char *src, size_t srclen,
+static inline void
+my_tolower_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
+{
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
+ *wc= page[*wc & 0xFF].tolower;
+}
+
+
+static inline void
+my_toupper_utf8mb3(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
+{
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[(*wc >> 8) & 0xFF]))
+ *wc= page[*wc & 0xFF].toupper;
+}
+
+
+static size_t my_caseup_utf8(CHARSET_INFO *cs, const char *src, size_t srclen,
char *dst, size_t dstlen)
{
my_wc_t wc;
int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen, *dst0= dst;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
while ((src < srcend) &&
(srcres= my_utf8_uni(cs, &wc, (uchar *) src, (uchar*) srcend)) > 0)
{
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc;
+ my_toupper_utf8mb3(uni_plane, &wc);
if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
break;
src+= srcres;
@@ -2559,12 +5073,13 @@ static size_t my_caseup_utf8(CHARSET_INFO *cs, char *src, size_t srclen,
static void my_hash_sort_utf8(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
+ ulong *nr1, ulong *nr2)
{
my_wc_t wc;
int res;
const uchar *e=s+slen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ register ulong m1= *nr1, m2= *nr2;
/*
Remove end space. We have to do this to be able to compare
@@ -2575,14 +5090,12 @@ static void my_hash_sort_utf8(CHARSET_INFO *cs, const uchar *s, size_t slen,
while ((s < e) && (res=my_utf8_uni(cs,&wc, (uchar *)s, (uchar*)e))>0 )
{
- int plane = (wc>>8) & 0xFF;
- wc = uni_plane[plane] ? uni_plane[plane][wc & 0xFF].sort : wc;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc & 0xFF))+ (n1[0] << 8);
- n2[0]+=3;
- n1[0]^= (((n1[0] & 63)+n2[0])*(wc >> 8))+ (n1[0] << 8);
- n2[0]+=3;
+ my_tosort_unicode(uni_plane, &wc, cs->state);
+ MY_HASH_ADD_16(m1, m2, wc);
s+=res;
}
+ *nr1= m1;
+ *nr2= m2;
}
@@ -2591,14 +5104,13 @@ static size_t my_caseup_str_utf8(CHARSET_INFO *cs, char *src)
my_wc_t wc;
int srcres, dstres;
char *dst= src, *dst0= src;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(cs->caseup_multiply == 1);
while (*src &&
(srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0)
{
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].toupper : wc;
+ my_toupper_utf8mb3(uni_plane, &wc);
if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0)
break;
src+= srcres;
@@ -2609,20 +5121,20 @@ static size_t my_caseup_str_utf8(CHARSET_INFO *cs, char *src)
}
-static size_t my_casedn_utf8(CHARSET_INFO *cs, char *src, size_t srclen,
+static size_t my_casedn_utf8(CHARSET_INFO *cs, const char *src, size_t srclen,
char *dst, size_t dstlen)
{
my_wc_t wc;
int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen, *dst0= dst;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
while ((src < srcend) &&
(srcres= my_utf8_uni(cs, &wc, (uchar*) src, (uchar*)srcend)) > 0)
{
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc;
+ my_tolower_utf8mb3(uni_plane, &wc);
if ((dstres= my_uni_utf8(cs, wc, (uchar*) dst, (uchar*) dstend)) <= 0)
break;
src+= srcres;
@@ -2637,14 +5149,13 @@ static size_t my_casedn_str_utf8(CHARSET_INFO *cs, char *src)
my_wc_t wc;
int srcres, dstres;
char *dst= src, *dst0= src;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(cs->casedn_multiply == 1);
while (*src &&
(srcres= my_utf8_uni_no_range(cs, &wc, (uchar *) src)) > 0)
{
- int plane= (wc>>8) & 0xFF;
- wc= uni_plane[plane] ? uni_plane[plane][wc & 0xFF].tolower : wc;
+ my_tolower_utf8mb3(uni_plane, &wc);
if ((dstres= my_uni_utf8_no_range(cs, wc, (uchar*) dst)) <= 0)
break;
src+= srcres;
@@ -2671,152 +5182,6 @@ static size_t my_casedn_str_utf8(CHARSET_INFO *cs, char *src)
}
-static int my_strnncoll_utf8(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- int s_res,t_res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se=s+slen;
- const uchar *te=t+tlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_utf8_uni(cs,&s_wc, s, se);
- t_res=my_utf8_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare byte by byte value */
- return bincmp(s, se, t, te);
- }
-
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
- return (int) (t_is_prefix ? t-te : ((se-s) - (te-t)));
-}
-
-
-
-/*
- Compare strings, discarding end space
-
- SYNOPSIS
- my_strnncollsp_utf8()
- cs character set handler
- a First string to compare
- a_length Length of 'a'
- b Second string to compare
- b_length Length of 'b'
- diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- IMPLEMENTATION
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- RETURN
- < 0 a < b
- = 0 a == b
- > 0 a > b
-*/
-
-static int my_strnncollsp_utf8(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int s_res, t_res, res;
- my_wc_t UNINIT_VAR(s_wc), UNINIT_VAR(t_wc);
- const uchar *se= s+slen, *te= t+tlen;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= 0;
-#endif
-
- while ( s < se && t < te )
- {
- int plane;
- s_res=my_utf8_uni(cs,&s_wc, s, se);
- t_res=my_utf8_uni(cs,&t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare byte by byte value */
- return bincmp(s, se, t, te);
- }
-
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
-
- slen= (size_t) (se-s);
- tlen= (size_t) (te-t);
- res= 0;
-
- if (slen != tlen)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
- /*
- This following loop uses the fact that in UTF-8
- all multibyte characters are greater than space,
- and all multibyte head characters are greater than
- space. It means if we meet a character greater
- than space, it always means that the longer string
- is greater. So we can reuse the same loop from the
- 8bit version, without having to process full multibute
- sequences.
- */
- for ( ; s < se; s++)
- {
- if (*s != ' ')
- return (*s < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
/*
Compare 0-terminated UTF8 strings.
@@ -2837,7 +5202,7 @@ static int my_strnncollsp_utf8(CHARSET_INFO *cs,
static
int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t)
{
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
while (s[0] && t[0])
{
my_wc_t s_wc,t_wc;
@@ -2854,7 +5219,7 @@ int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t)
}
else
{
- int plane, res;
+ int res;
/*
Scan a multibyte character.
@@ -2882,8 +5247,7 @@ int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t)
s+= res;
/* Convert Unicode code into weight according to collation */
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].tolower : s_wc;
+ my_tolower_utf8mb3(uni_plane, &s_wc);
}
@@ -2897,15 +5261,13 @@ int my_strcasecmp_utf8(CHARSET_INFO *cs, const char *s, const char *t)
}
else
{
- int plane;
int res=my_utf8_uni(cs,&t_wc, (const uchar*)t, (const uchar*) t + 3);
if (res <= 0)
return strcmp(s, t);
t+= res;
/* Convert code into weight */
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].tolower : t_wc;
+ my_tolower_utf8mb3(uni_plane, &t_wc);
}
/* Now we have two weights, let's compare them */
@@ -2922,23 +5284,15 @@ int my_wildcmp_utf8(CHARSET_INFO *cs,
const char *wildstr,const char *wildend,
int escape, int w_one, int w_many)
{
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
return my_wildcmp_unicode(cs,str,str_end,wildstr,wildend,
escape,w_one,w_many,uni_plane);
}
static
-size_t my_strnxfrmlen_utf8(CHARSET_INFO *cs __attribute__((unused)),
- size_t len)
-{
- return (len * 2 + 2) / 3;
-}
-
-
-static
-int my_valid_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, const uchar *e)
+int my_charlen_utf8(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *s, const uchar *e)
{
uchar c;
@@ -2949,50 +5303,6 @@ int my_valid_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)),
if (c < 0xf0)
return my_valid_mbcharlen_utf8mb3(s, e);
-#ifdef UNICODE_32BIT
- if (c < 0xf8 && sizeof(my_wc_t)*8 >= 32)
- {
- if (s+4 > e) /* We need 4 characters */
- return MY_CS_TOOSMALL4;
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- (c >= 0xf1 || s[1] >= 0x90)))
- return MY_CS_ILSEQ;
-
- return 4;
- }
- if (c < 0xfc && sizeof(my_wc_t)*8 >= 32)
- {
- if (s+5 >e) /* We need 5 characters */
- return MY_CS_TOOSMALL5;
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- IS_CONTINUATION_BYTE(s[4]) &&
- (c >= 0xf9 || s[1] >= 0x88)))
- return MY_CS_ILSEQ;
-
- return 5;
- }
- if (c < 0xfe && sizeof(my_wc_t)*8 >= 32)
- {
- if ( s+6 >e ) /* We need 6 characters */
- return MY_CS_TOOSMALL6;
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- IS_CONTINUATION_BYTE(s[4]) &&
- IS_CONTINUATION_BYTE(s[5]) &&
- (c >= 0xfd || s[1] >= 0x84)))
- return MY_CS_ILSEQ;
-
- return 6;
- }
-#endif
return MY_CS_ILSEQ;
}
@@ -3006,7 +5316,7 @@ my_well_formed_len_utf8(CHARSET_INFO *cs, const char *b, const char *e,
{
int mb_len;
- if ((mb_len= my_valid_mbcharlen_utf8(cs, (uchar*) b, (uchar*) e)) <= 0)
+ if ((mb_len= my_charlen_utf8(cs, (uchar*) b, (uchar*) e)) <= 0)
{
*error= b < e ? 1 : 0;
break;
@@ -3017,9 +5327,89 @@ my_well_formed_len_utf8(CHARSET_INFO *cs, const char *b, const char *e,
return (size_t) (b - b_start);
}
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf8
+#define CHARLEN(cs,str,end) my_charlen_utf8(cs,str,end)
+#define DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+#include "ctype-mb.ic"
+#undef MY_FUNCTION_NAME
+#undef CHARLEN
+#undef DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+/* my_well_formed_char_length_utf8 */
+
+
+static inline int my_weight_mb1_utf8_general_ci(uchar b)
+{
+ return (int) plane00[b & 0xFF].sort;
+}
+
+
+static inline int my_weight_mb2_utf8_general_ci(uchar b0, uchar b1)
+{
+ my_wc_t wc= UTF8MB2_CODE(b0, b1);
+ MY_UNICASE_CHARACTER *page= my_unicase_pages_default[wc >> 8];
+ return (int) (page ? page[wc & 0xFF].sort : wc);
+}
+
+
+static inline int my_weight_mb3_utf8_general_ci(uchar b0, uchar b1, uchar b2)
+{
+ my_wc_t wc= UTF8MB3_CODE(b0, b1, b2);
+ MY_UNICASE_CHARACTER *page= my_unicase_pages_default[wc >> 8];
+ return (int) (page ? page[wc & 0xFF].sort : wc);
+}
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf8_general_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(x) my_weight_mb1_utf8_general_ci(x)
+#define WEIGHT_MB2(x,y) my_weight_mb2_utf8_general_ci(x,y)
+#define WEIGHT_MB3(x,y,z) my_weight_mb3_utf8_general_ci(x,y,z)
+#include "strcoll.ic"
+
+
+static inline int my_weight_mb1_utf8_general_mysql500_ci(uchar b)
+{
+ return (int) plane00_mysql500[b & 0xFF].sort;
+}
+
+
+static inline int my_weight_mb2_utf8_general_mysql500_ci(uchar b0, uchar b1)
+{
+ my_wc_t wc= UTF8MB2_CODE(b0, b1);
+ MY_UNICASE_CHARACTER *page= my_unicase_pages_mysql500[wc >> 8];
+ return (int) (page ? page[wc & 0xFF].sort : wc);
+}
+
+
+static inline int
+my_weight_mb3_utf8_general_mysql500_ci(uchar b0, uchar b1, uchar b2)
+{
+ my_wc_t wc= UTF8MB3_CODE(b0, b1, b2);
+ MY_UNICASE_CHARACTER *page= my_unicase_pages_mysql500[wc >> 8];
+ return (int) (page ? page[wc & 0xFF].sort : wc);
+}
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf8_general_mysql500_ci
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(x) my_weight_mb1_utf8_general_mysql500_ci(x)
+#define WEIGHT_MB2(x,y) my_weight_mb2_utf8_general_mysql500_ci(x,y)
+#define WEIGHT_MB3(x,y,z) my_weight_mb3_utf8_general_mysql500_ci(x,y,z)
+#include "strcoll.ic"
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf8_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(x) ((int) (uchar) (x))
+#define WEIGHT_MB2(x,y) ((int) UTF8MB2_CODE(x,y))
+#define WEIGHT_MB3(x,y,z) ((int) UTF8MB3_CODE(x,y,z))
+#include "strcoll.ic"
+
+
static uint my_ismbchar_utf8(CHARSET_INFO *cs,const char *b, const char *e)
{
- int res= my_valid_mbcharlen_utf8(cs, (const uchar*)b, (const uchar*)e);
+ int res= my_charlen_utf8(cs, (const uchar*) b, (const uchar*) e);
return (res>1) ? res : 0;
}
@@ -3034,25 +5424,49 @@ static uint my_mbcharlen_utf8(CHARSET_INFO *cs __attribute__((unused)),
return 2;
else if (c < 0xf0)
return 3;
-#ifdef UNICODE_32BIT
- else if (c < 0xf8)
- return 4;
- else if (c < 0xfc)
- return 5;
- else if (c < 0xfe)
- return 6;
-#endif
return 0; /* Illegal mb head */;
}
-static MY_COLLATION_HANDLER my_collation_ci_handler =
+/*
+ TODO-10.2: join this with pad_max_char() in ctype-mb.c
+*/
+static void
+my_fill_utf8_mb(CHARSET_INFO *cs, char *str, size_t length, int fill)
+{
+ char *end= str + length;
+ char buf[10];
+ char buflen= cs->cset->native_to_mb(cs, (my_wc_t) fill, (uchar*) buf,
+ (uchar*) buf + sizeof(buf));
+ DBUG_ASSERT(buflen > 0);
+ for ( ; str + buflen <= end ; )
+ {
+ memcpy(str, buf, buflen);
+ str+= buflen;
+ }
+
+ for ( ; str < end; )
+ *str++= ' ';
+}
+
+
+static void
+my_fill_utf8(CHARSET_INFO *cs, char *str, size_t length, int fill)
+{
+ if (fill < 0x80)
+ my_fill_8bit(cs, str, length, fill);
+ else
+ my_fill_utf8_mb(cs, str, length, fill);
+}
+
+
+static MY_COLLATION_HANDLER my_collation_utf8_general_ci_handler =
{
NULL, /* init */
- my_strnncoll_utf8,
- my_strnncollsp_utf8,
+ my_strnncoll_utf8_general_ci,
+ my_strnncollsp_utf8_general_ci,
my_strnxfrm_unicode,
- my_strnxfrmlen_utf8,
+ my_strnxfrmlen_unicode,
my_like_range_mb,
my_wildcmp_utf8,
my_strcasecmp_utf8,
@@ -3061,6 +5475,38 @@ static MY_COLLATION_HANDLER my_collation_ci_handler =
my_propagate_complex
};
+
+static MY_COLLATION_HANDLER my_collation_utf8_general_mysql500_ci_handler =
+{
+ NULL, /* init */
+ my_strnncoll_utf8_general_mysql500_ci,
+ my_strnncollsp_utf8_general_mysql500_ci,
+ my_strnxfrm_unicode,
+ my_strnxfrmlen_unicode,
+ my_like_range_mb,
+ my_wildcmp_utf8,
+ my_strcasecmp_utf8,
+ my_instr_mb,
+ my_hash_sort_utf8,
+ my_propagate_complex
+};
+
+
+static MY_COLLATION_HANDLER my_collation_utf8_bin_handler =
+{
+ NULL, /* init */
+ my_strnncoll_utf8_bin,
+ my_strnncollsp_utf8_bin,
+ my_strnxfrm_unicode,
+ my_strnxfrmlen_unicode,
+ my_like_range_mb,
+ my_wildcmp_mb_bin,
+ my_strcasecmp_mb_bin,
+ my_instr_mb,
+ my_hash_sort_mb_bin,
+ my_propagate_simple
+};
+
MY_CHARSET_HANDLER my_charset_utf8_handler=
{
NULL, /* init */
@@ -3081,7 +5527,7 @@ MY_CHARSET_HANDLER my_charset_utf8_handler=
my_snprintf_8bit,
my_long10_to_str_8bit,
my_longlong10_to_str_8bit,
- my_fill_8bit,
+ my_fill_utf8,
my_strntol_8bit,
my_strntoul_8bit,
my_strntoll_8bit,
@@ -3089,7 +5535,11 @@ MY_CHARSET_HANDLER my_charset_utf8_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_utf8,
+ my_well_formed_char_length_utf8,
+ my_copy_fix_mb,
+ my_uni_utf8,
};
@@ -3106,11 +5556,10 @@ struct charset_info_st my_charset_utf8_general_ci=
to_lower_utf8, /* to_lower */
to_upper_utf8, /* to_upper */
to_upper_utf8, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -3122,8 +5571,9 @@ struct charset_info_st my_charset_utf8_general_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
- &my_collation_ci_handler
+ &my_collation_utf8_general_ci_handler
};
@@ -3139,11 +5589,10 @@ struct charset_info_st my_charset_utf8_general_mysql500_ci=
to_lower_utf8, /* to_lower */
to_upper_utf8, /* to_upper */
to_upper_utf8, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big */
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_mysql500, /* caseinfo */
+ &my_unicase_mysql500, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -3155,15 +5604,16 @@ struct charset_info_st my_charset_utf8_general_mysql500_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
- &my_collation_ci_handler
+ &my_collation_utf8_general_mysql500_ci_handler
};
struct charset_info_st my_charset_utf8_bin=
{
83,0,0, /* number */
- MY_CS_COMPILED|MY_CS_BINSORT|MY_CS_UNICODE, /* state */
+ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_BINSORT|MY_CS_UNICODE, /* state */
"utf8", /* cs name */
"utf8_bin", /* name */
"", /* comment */
@@ -3172,11 +5622,10 @@ struct charset_info_st my_charset_utf8_bin=
to_lower_utf8, /* to_lower */
to_upper_utf8, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -3188,8 +5637,9 @@ struct charset_info_st my_charset_utf8_bin=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
- &my_collation_mb_bin_handler
+ &my_collation_utf8_bin_handler
};
#ifdef HAVE_UTF8_GENERAL_CS
@@ -3216,7 +5666,6 @@ static int my_strnncoll_utf8_cs(CHARSET_INFO *cs,
while ( s < se && t < te )
{
- int plane;
s_res=my_utf8_uni(cs,&s_wc, s, se);
t_res=my_utf8_uni(cs,&t_wc, t, te);
@@ -3231,10 +5680,10 @@ static int my_strnncoll_utf8_cs(CHARSET_INFO *cs,
{
save_diff = ((int)s_wc) - ((int)t_wc);
}
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
+
+ my_tosort_unicode(uni_plane, &s_wc, cs->state);
+ my_tosort_unicode(uni_plane, &t_wc, cs->state);
+
if ( s_wc != t_wc )
{
return ((int) s_wc) - ((int) t_wc);
@@ -3257,7 +5706,7 @@ static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs,
const uchar *se= s + slen;
const uchar *te= t + tlen;
int save_diff= 0;
- MY_UNICASE_INFO *const *uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
diff_if_only_endspace_difference= 0;
@@ -3265,7 +5714,6 @@ static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs,
while ( s < se && t < te )
{
- int plane;
s_res=my_utf8_uni(cs,&s_wc, s, se);
t_res=my_utf8_uni(cs,&t_wc, t, te);
@@ -3279,10 +5727,10 @@ static int my_strnncollsp_utf8_cs(CHARSET_INFO *cs,
{
save_diff = ((int)s_wc) - ((int)t_wc);
}
- plane=(s_wc>>8) & 0xFF;
- s_wc = uni_plane[plane] ? uni_plane[plane][s_wc & 0xFF].sort : s_wc;
- plane=(t_wc>>8) & 0xFF;
- t_wc = uni_plane[plane] ? uni_plane[plane][t_wc & 0xFF].sort : t_wc;
+
+ my_tosort_unicode(uni_plane, &s_wc, cs->state);
+ my_tosort_unicode(uni_plane, &t_wc, cs->state);
+
if ( s_wc != t_wc )
{
return ((int) s_wc) - ((int) t_wc);
@@ -3334,7 +5782,7 @@ static MY_COLLATION_HANDLER my_collation_cs_handler =
my_strnncoll_utf8_cs,
my_strnncollsp_utf8_cs,
my_strnxfrm_unicode,
- my_strnxfrmlen_utf8,
+ my_strnxfrmlen_unicode,
my_like_range_simple,
my_wildcmp_mb,
my_strcasecmp_utf8,
@@ -3355,11 +5803,10 @@ struct charset_info_st my_charset_utf8_general_cs=
to_lower_utf8, /* to_lower */
to_upper_utf8, /* to_upper */
to_upper_utf8, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -3371,6 +5818,7 @@ struct charset_info_st my_charset_utf8_general_cs=
255, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8_handler,
&my_collation_cs_handler
};
@@ -4563,7 +7011,7 @@ my_wc_mb_filename(CHARSET_INFO *cs __attribute__((unused)),
my_wc_t wc, uchar *s, uchar *e)
{
int code;
- char hex[]= "0123456789abcdef";
+ static const char hex[]= "0123456789abcdef";
if (s >= e)
return MY_CS_TOOSMALL;
@@ -4601,13 +7049,40 @@ my_wc_mb_filename(CHARSET_INFO *cs __attribute__((unused)),
}
+static int
+my_charlen_filename(CHARSET_INFO *cs, const uchar *str, const uchar *end)
+{
+ my_wc_t wc;
+ return cs->cset->mb_wc(cs, &wc, str, end);
+}
+
+
+static uint
+my_ismbchar_filename(CHARSET_INFO *cs, const char *str, const char *end)
+{
+ my_wc_t wc;
+ int rc= my_mb_wc_filename(cs, &wc, (const uchar *) str, (const uchar *) end);
+ return rc > 1 ? rc : 0;
+}
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _filename
+#define CHARLEN(cs,str,end) my_charlen_filename(cs,str,end)
+#define DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+#include "ctype-mb.ic"
+#undef MY_FUNCTION_NAME
+#undef CHARLEN
+#undef DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+/* my_well_formed_char_length_filename */
+
+
static MY_COLLATION_HANDLER my_collation_filename_handler =
{
NULL, /* init */
- my_strnncoll_utf8,
- my_strnncollsp_utf8,
+ my_strnncoll_simple,
+ my_strnncollsp_simple,
my_strnxfrm_unicode,
- my_strnxfrmlen_utf8,
+ my_strnxfrmlen_unicode,
my_like_range_mb,
my_wildcmp_utf8,
my_strcasecmp_utf8,
@@ -4619,7 +7094,7 @@ static MY_COLLATION_HANDLER my_collation_filename_handler =
static MY_CHARSET_HANDLER my_charset_filename_handler=
{
NULL, /* init */
- my_ismbchar_utf8,
+ my_ismbchar_filename,
my_mbcharlen_utf8,
my_numchars_mb,
my_charpos_mb,
@@ -4644,7 +7119,11 @@ static MY_CHARSET_HANDLER my_charset_filename_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_filename,
+ my_well_formed_char_length_filename,
+ my_copy_fix_mb,
+ my_wc_mb_filename,
};
@@ -4661,11 +7140,10 @@ struct charset_info_st my_charset_filename=
to_lower_utf8, /* to_lower */
to_upper_utf8, /* to_upper */
to_upper_utf8, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -4677,6 +7155,7 @@ struct charset_info_st my_charset_filename=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_filename_handler,
&my_collation_filename_handler
};
@@ -4809,17 +7288,6 @@ static uchar to_upper_utf8mb4[]=
};
-static inline int
-bincmp_utf8mb4(const uchar *s, const uchar *se,
- const uchar *t, const uchar *te)
-{
- int slen= (int) (se - s), tlen= (int) (te - t);
- int len= min(slen, tlen);
- int cmp= memcmp(s, t, len);
- return cmp ? cmp : slen - tlen;
-}
-
-
static int
my_mb_wc_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
my_wc_t * pwc, const uchar *s, const uchar *e)
@@ -4845,7 +7313,7 @@ my_mb_wc_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
if (!(IS_CONTINUATION_BYTE(s[1])))
return MY_CS_ILSEQ;
- *pwc= ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
+ *pwc= UTF8MB2_CODE(c, s[1]);
return 2;
}
else if (c < 0xf0)
@@ -4853,13 +7321,10 @@ my_mb_wc_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
if (s + 3 > e) /* We need 3 characters */
return MY_CS_TOOSMALL3;
- if (!(IS_CONTINUATION_BYTE(s[1]) && IS_CONTINUATION_BYTE(s[2]) &&
- (c >= 0xe1 || s[1] >= 0xa0)))
+ if (!IS_UTF8MB3_STEP2(c, s[1], s[2]))
return MY_CS_ILSEQ;
- *pwc= ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
+ *pwc= UTF8MB3_CODE(c, s[1], s[2]);
return 3;
}
else if (c < 0xf5)
@@ -4867,35 +7332,9 @@ my_mb_wc_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
if (s + 4 > e) /* We need 4 characters */
return MY_CS_TOOSMALL4;
- /*
- UTF-8 quick four-byte mask:
- 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- Encoding allows to encode U+00010000..U+001FFFFF
-
- The maximum character defined in the Unicode standard is U+0010FFFF.
- Higher characters U+00110000..U+001FFFFF are not used.
-
- 11110000.10010000.10xxxxxx.10xxxxxx == F0.90.80.80 == U+00010000 (min)
- 11110100.10001111.10111111.10111111 == F4.8F.BF.BF == U+0010FFFF (max)
-
- Valid codes:
- [F0][90..BF][80..BF][80..BF]
- [F1][80..BF][80..BF][80..BF]
- [F2][80..BF][80..BF][80..BF]
- [F3][80..BF][80..BF][80..BF]
- [F4][80..8F][80..BF][80..BF]
- */
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- (c >= 0xf1 || s[1] >= 0x90) &&
- (c <= 0xf3 || s[1] <= 0x8F)))
+ if (!IS_UTF8MB4_STEP2(c, s[1], s[2], s[3]))
return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x07) << 18) |
- ((my_wc_t) (s[1] ^ 0x80) << 12) |
- ((my_wc_t) (s[2] ^ 0x80) << 6) |
- (my_wc_t) (s[3] ^ 0x80);
+ *pwc= UTF8MB4_CODE(c, s[1], s[2], s[3]);
return 4;
}
return MY_CS_ILSEQ;
@@ -4927,34 +7366,22 @@ my_mb_wc_utf8mb4_no_range(CHARSET_INFO *cs __attribute__((unused)),
if (!IS_CONTINUATION_BYTE(s[1]))
return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x1f) << 6) | (my_wc_t) (s[1] ^ 0x80);
+ *pwc= UTF8MB2_CODE(c, s[1]);
return 2;
}
if (c < 0xf0)
{
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- (c >= 0xe1 || s[1] >= 0xa0)))
+ if (!IS_UTF8MB3_STEP2(c, s[1], s[2]))
return MY_CS_ILSEQ;
- *pwc= ((my_wc_t) (c & 0x0f) << 12) |
- ((my_wc_t) (s[1] ^ 0x80) << 6) |
- (my_wc_t) (s[2] ^ 0x80);
-
+ *pwc= UTF8MB3_CODE(c, s[1], s[2]);
return 3;
}
else if (c < 0xf5)
{
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- (c >= 0xf1 || s[1] >= 0x90) &&
- (c <= 0xf3 || s[1] <= 0x8F)))
+ if (!IS_UTF8MB4_STEP2(c, s[1], s[2], s[3]))
return MY_CS_ILSEQ;
- *pwc = ((my_wc_t) (c & 0x07) << 18) |
- ((my_wc_t) (s[1] ^ 0x80) << 12) |
- ((my_wc_t) (s[2] ^ 0x80) << 6) |
- (my_wc_t) (s[3] ^ 0x80);
+ *pwc= UTF8MB4_CODE(c, s[1], s[2], s[3]);
return 4;
}
return MY_CS_ILSEQ;
@@ -5031,31 +7458,38 @@ my_wc_mb_utf8mb4_no_range(CHARSET_INFO *cs __attribute__((unused)),
static inline void
-my_tolower_utf8mb4(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_tolower_utf8mb4(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].tolower;
+ if (*wc <= uni_plane->maxchar)
+ {
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[(*wc >> 8)]))
+ *wc= page[*wc & 0xFF].tolower;
+ }
}
static inline void
-my_toupper_utf8mb4(MY_UNICASE_INFO * const* uni_plane, my_wc_t *wc)
+my_toupper_utf8mb4(MY_UNICASE_INFO *uni_plane, my_wc_t *wc)
{
- uint page= *wc >> 8;
- if (page < 256 && uni_plane[page])
- *wc= uni_plane[page][*wc & 0xFF].toupper;
+ if (*wc <= uni_plane->maxchar)
+ {
+ MY_UNICASE_CHARACTER *page;
+ if ((page= uni_plane->page[(*wc >> 8)]))
+ *wc= page[*wc & 0xFF].toupper;
+ }
}
static size_t
-my_caseup_utf8mb4(CHARSET_INFO *cs, char *src, size_t srclen,
+my_caseup_utf8mb4(CHARSET_INFO *cs, const char *src, size_t srclen,
char *dst, size_t dstlen)
{
my_wc_t wc;
int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen, *dst0= dst;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(src != dst || cs->caseup_multiply == 1);
while ((src < srcend) &&
@@ -5072,22 +7506,15 @@ my_caseup_utf8mb4(CHARSET_INFO *cs, char *src, size_t srclen,
}
-static inline void
-my_hash_add(ulong *n1, ulong *n2, uint ch)
-{
- n1[0]^= (((n1[0] & 63) + n2[0]) * (ch)) + (n1[0] << 8);
- n2[0]+= 3;
-}
-
-
static void
my_hash_sort_utf8mb4(CHARSET_INFO *cs, const uchar *s, size_t slen,
- ulong *n1, ulong *n2)
+ ulong *nr1, ulong *nr2)
{
my_wc_t wc;
int res;
const uchar *e= s + slen;
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
+ register ulong m1= *nr1, m2= *nr2;
/*
Remove end space. We do this to be able to compare
@@ -5098,9 +7525,8 @@ my_hash_sort_utf8mb4(CHARSET_INFO *cs, const uchar *s, size_t slen,
while ((res= my_mb_wc_utf8mb4(cs, &wc, (uchar*) s, (uchar*) e)) > 0)
{
- my_tosort_unicode(uni_plane, &wc);
- my_hash_add(n1, n2, (uint) (wc & 0xFF));
- my_hash_add(n1, n2, (uint) (wc >> 8) & 0xFF);
+ my_tosort_unicode(uni_plane, &wc, cs->state);
+ MY_HASH_ADD_16(m1, m2, (uint) (wc & 0xFFFF));
if (wc > 0xFFFF)
{
/*
@@ -5110,10 +7536,12 @@ my_hash_sort_utf8mb4(CHARSET_INFO *cs, const uchar *s, size_t slen,
This is useful to keep order of records in
test results, e.g. for "SHOW GRANTS".
*/
- my_hash_add(n1, n2, (uint) (wc >> 16) & 0xFF);
+ MY_HASH_ADD(m1, m2, (uint) ((wc >> 16) & 0xFF));
}
s+= res;
}
+ *nr1= m1;
+ *nr2= m2;
}
@@ -5123,7 +7551,7 @@ my_caseup_str_utf8mb4(CHARSET_INFO *cs, char *src)
my_wc_t wc;
int srcres, dstres;
char *dst= src, *dst0= src;
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(cs->caseup_multiply == 1);
while (*src &&
@@ -5142,13 +7570,14 @@ my_caseup_str_utf8mb4(CHARSET_INFO *cs, char *src)
static size_t
my_casedn_utf8mb4(CHARSET_INFO *cs,
- char *src, size_t srclen,
+ const char *src, size_t srclen,
char *dst, size_t dstlen)
{
my_wc_t wc;
int srcres, dstres;
- char *srcend= src + srclen, *dstend= dst + dstlen, *dst0= dst;
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
+ const char *srcend= src + srclen;
+ char *dstend= dst + dstlen, *dst0= dst;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(src != dst || cs->casedn_multiply == 1);
while ((src < srcend) &&
@@ -5171,7 +7600,7 @@ my_casedn_str_utf8mb4(CHARSET_INFO *cs, char *src)
my_wc_t wc;
int srcres, dstres;
char *dst= src, *dst0= src;
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
DBUG_ASSERT(cs->casedn_multiply == 1);
while (*src &&
@@ -5204,150 +7633,6 @@ my_casedn_str_utf8mb4(CHARSET_INFO *cs, char *src)
}
-static int
-my_strnncoll_utf8mb4(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool t_is_prefix)
-{
- my_wc_t s_wc,t_wc;
- const uchar *se= s + slen;
- const uchar *te= t + tlen;
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
- LINT_INIT(s_wc);
- LINT_INIT(t_wc);
-
- while ( s < se && t < te )
- {
- int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
- int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare bytewise */
- return bincmp_utf8mb4(s, se, t, te);
- }
-
- my_tosort_unicode(uni_plane, &s_wc);
- my_tosort_unicode(uni_plane, &t_wc);
-
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+= s_res;
- t+= t_res;
- }
- return (int) (t_is_prefix ? (t - te) : ((se - s) - (te - t)));
-}
-
-
-/**
-
- Compare strings, discarding end space
-
- If one string is shorter as the other, then we space extend the other
- so that the strings have equal length.
-
- This will ensure that the following things hold:
-
- "a" == "a "
- "a\0" < "a"
- "a\0" < "a "
-
- @param cs Character set pinter.
- @param a First string to compare.
- @param a_length Length of 'a'.
- @param b Second string to compare.
- @param b_length Length of 'b'.
- @param diff_if_only_endspace_difference
- Set to 1 if the strings should be regarded as different
- if they only difference in end space
-
- @return Comparison result.
- @retval Negative number, if a less than b.
- @retval 0, if a is equal to b
- @retval Positive number, if a > b
-*/
-
-static int
-my_strnncollsp_utf8mb4(CHARSET_INFO *cs,
- const uchar *s, size_t slen,
- const uchar *t, size_t tlen,
- my_bool diff_if_only_endspace_difference)
-{
- int res;
- my_wc_t s_wc, t_wc;
- const uchar *se= s + slen, *te= t + tlen;
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
- LINT_INIT(s_wc);
- LINT_INIT(t_wc);
-
-#ifndef VARCHAR_WITH_DIFF_ENDSPACE_ARE_DIFFERENT_FOR_UNIQUE
- diff_if_only_endspace_difference= FALSE;
-#endif
-
- while ( s < se && t < te )
- {
- int s_res= my_mb_wc_utf8mb4(cs, &s_wc, s, se);
- int t_res= my_mb_wc_utf8mb4(cs, &t_wc, t, te);
-
- if ( s_res <= 0 || t_res <= 0 )
- {
- /* Incorrect string, compare bytewise */
- return bincmp_utf8mb4(s, se, t, te);
- }
-
- my_tosort_unicode(uni_plane, &s_wc);
- my_tosort_unicode(uni_plane, &t_wc);
-
- if ( s_wc != t_wc )
- {
- return s_wc > t_wc ? 1 : -1;
- }
-
- s+=s_res;
- t+=t_res;
- }
-
- slen= (size_t) (se-s);
- tlen= (size_t) (te-t);
- res= 0;
-
- if (slen != tlen)
- {
- int swap= 1;
- if (diff_if_only_endspace_difference)
- res= 1; /* Assume 'a' is bigger */
- if (slen < tlen)
- {
- slen= tlen;
- s= t;
- se= te;
- swap= -1;
- res= -res;
- }
- /*
- This following loop uses the fact that in UTF-8
- all multibyte characters are greater than space,
- and all multibyte head characters are greater than
- space. It means if we meet a character greater
- than space, it always means that the longer string
- is greater. So we can reuse the same loop from the
- 8bit version, without having to process full multibute
- sequences.
- */
- for ( ; s < se; s++)
- {
- if (*s != ' ')
- return (*s < ' ') ? -swap : swap;
- }
- }
- return res;
-}
-
-
/**
Compare 0-terminated UTF8 strings.
@@ -5364,7 +7649,7 @@ my_strnncollsp_utf8mb4(CHARSET_INFO *cs,
static int
my_strcasecmp_utf8mb4(CHARSET_INFO *cs, const char *s, const char *t)
{
- MY_UNICASE_INFO * const* uni_plane= cs->caseinfo;
+ MY_UNICASE_INFO *uni_plane= cs->caseinfo;
while (s[0] && t[0])
{
my_wc_t s_wc,t_wc;
@@ -5432,17 +7717,9 @@ my_wildcmp_utf8mb4(CHARSET_INFO *cs,
}
-static size_t
-my_strnxfrmlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)), size_t len)
-{
- /* TODO: fix when working on WL "Unicode new version" */
- return (len * 2 + 2) / 4;
-}
-
-
static int
-my_valid_mbcharlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
- const uchar *s, const uchar *e)
+my_charlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *s, const uchar *e)
{
uchar c;
@@ -5458,30 +7735,7 @@ my_valid_mbcharlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)),
if (s + 4 > e) /* We need 4 characters */
return MY_CS_TOOSMALL4;
- /*
- UTF-8 quick four-byte mask:
- 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
- Encoding allows to encode U+00010000..U+001FFFFF
-
- The maximum character defined in the Unicode standard is U+0010FFFF.
- Higher characters U+00110000..U+001FFFFF are not used.
-
- 11110000.10010000.10xxxxxx.10xxxxxx == F0.90.80.80 == U+00010000 (min)
- 11110100.10001111.10111111.10111111 == F4.8F.BF.BF == U+0010FFFF (max)
-
- Valid codes:
- [F0][90..BF][80..BF][80..BF]
- [F1][80..BF][80..BF][80..BF]
- [F2][80..BF][80..BF][80..BF]
- [F3][80..BF][80..BF][80..BF]
- [F4][80..8F][80..BF][80..BF]
- */
-
- if (!(IS_CONTINUATION_BYTE(s[1]) &&
- IS_CONTINUATION_BYTE(s[2]) &&
- IS_CONTINUATION_BYTE(s[3]) &&
- (c >= 0xf1 || s[1] >= 0x90) &&
- (c <= 0xf3 || s[1] <= 0x8F)))
+ if (!IS_UTF8MB4_STEP2(c, s[1], s[2], s[3]))
return MY_CS_ILSEQ;
return 4;
@@ -5502,7 +7756,7 @@ size_t my_well_formed_len_utf8mb4(CHARSET_INFO *cs,
{
int mb_len;
- if ((mb_len= my_valid_mbcharlen_utf8mb4(cs, (uchar*) b, (uchar*) e)) <= 0)
+ if ((mb_len= my_charlen_utf8mb4(cs, (uchar*) b, (uchar*) e)) <= 0)
{
*error= b < e ? 1 : 0;
break;
@@ -5514,10 +7768,42 @@ size_t my_well_formed_len_utf8mb4(CHARSET_INFO *cs,
}
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf8mb4
+#define CHARLEN(cs,str,end) my_charlen_utf8mb4(cs,str,end)
+#define DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+#include "ctype-mb.ic"
+#undef MY_FUNCTION_NAME
+#undef CHARLEN
+#undef DEFINE_WELL_FORMED_CHAR_LENGTH_USING_CHARLEN
+/* my_well_formed_char_length_utf8mb4 */
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf8mb4_general_ci
+#define IS_MB4_CHAR(b0,b1,b2,b3) IS_UTF8MB4_STEP3(b0,b1,b2,b3)
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(b0) my_weight_mb1_utf8_general_ci(b0)
+#define WEIGHT_MB2(b0,b1) my_weight_mb2_utf8_general_ci(b0,b1)
+#define WEIGHT_MB3(b0,b1,b2) my_weight_mb3_utf8_general_ci(b0,b1,b2)
+/*
+ All non-BMP characters have the same weight.
+*/
+#define WEIGHT_MB4(b0,b1,b2,b3) MY_CS_REPLACEMENT_CHARACTER
+#include "strcoll.ic"
+
+
+#define MY_FUNCTION_NAME(x) my_ ## x ## _utf8mb4_bin
+#define WEIGHT_ILSEQ(x) (0xFF0000 + (uchar) (x))
+#define WEIGHT_MB1(b0) ((int) (uchar) (b0))
+#define WEIGHT_MB2(b0,b1) ((int) UTF8MB2_CODE(b0,b1))
+#define WEIGHT_MB3(b0,b1,b2) ((int) UTF8MB3_CODE(b0,b1,b2))
+#define WEIGHT_MB4(b0,b1,b2,b3) ((int) UTF8MB4_CODE(b0,b1,b2,b3))
+#include "strcoll.ic"
+
+
static uint
my_ismbchar_utf8mb4(CHARSET_INFO *cs, const char *b, const char *e)
{
- int res= my_valid_mbcharlen_utf8mb4(cs, (const uchar*)b, (const uchar*)e);
+ int res= my_charlen_utf8mb4(cs, (const uchar*) b, (const uchar*) e);
return (res > 1) ? res : 0;
}
@@ -5542,10 +7828,10 @@ my_mbcharlen_utf8mb4(CHARSET_INFO *cs __attribute__((unused)), uint c)
static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler=
{
NULL, /* init */
- my_strnncoll_utf8mb4,
- my_strnncollsp_utf8mb4,
+ my_strnncoll_utf8mb4_general_ci,
+ my_strnncollsp_utf8mb4_general_ci,
my_strnxfrm_unicode,
- my_strnxfrmlen_utf8mb4,
+ my_strnxfrmlen_unicode,
my_like_range_mb,
my_wildcmp_utf8mb4,
my_strcasecmp_utf8mb4,
@@ -5558,8 +7844,8 @@ static MY_COLLATION_HANDLER my_collation_utf8mb4_general_ci_handler=
static MY_COLLATION_HANDLER my_collation_utf8mb4_bin_handler =
{
NULL, /* init */
- my_strnncoll_mb_bin,
- my_strnncollsp_mb_bin,
+ my_strnncoll_utf8mb4_bin,
+ my_strnncollsp_utf8mb4_bin,
my_strnxfrm_unicode_full_bin,
my_strnxfrmlen_unicode_full_bin,
my_like_range_mb,
@@ -5591,7 +7877,7 @@ MY_CHARSET_HANDLER my_charset_utf8mb4_handler=
my_snprintf_8bit,
my_long10_to_str_8bit,
my_longlong10_to_str_8bit,
- my_fill_8bit,
+ my_fill_utf8,
my_strntol_8bit,
my_strntoul_8bit,
my_strntoll_8bit,
@@ -5599,7 +7885,11 @@ MY_CHARSET_HANDLER my_charset_utf8mb4_handler=
my_strntod_8bit,
my_strtoll10_8bit,
my_strntoull10rnd_8bit,
- my_scan_8bit
+ my_scan_8bit,
+ my_charlen_utf8mb4,
+ my_well_formed_char_length_utf8mb4,
+ my_copy_fix_mb,
+ my_wc_mb_utf8mb4,
};
@@ -5616,11 +7906,10 @@ struct charset_info_st my_charset_utf8mb4_general_ci=
to_lower_utf8mb4, /* to_lower */
to_upper_utf8mb4, /* to_upper */
to_upper_utf8mb4, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -5632,6 +7921,7 @@ struct charset_info_st my_charset_utf8mb4_general_ci=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_utf8mb4_general_ci_handler
};
@@ -5650,11 +7940,10 @@ struct charset_info_st my_charset_utf8mb4_bin=
to_lower_utf8mb4, /* to_lower */
to_upper_utf8mb4, /* to_upper */
NULL, /* sort_order */
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
NULL, /* tab_to_uni */
NULL, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default,/* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
1, /* strxfrm_multiply */
@@ -5666,6 +7955,7 @@ struct charset_info_st my_charset_utf8mb4_bin=
0xFFFF, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 1, /* levels_for_order */
&my_charset_utf8mb4_handler,
&my_collation_utf8mb4_bin_handler
};
diff --git a/strings/ctype-win1250ch.c b/strings/ctype-win1250ch.c
index a85320cd55c..0a6352b19af 100644
--- a/strings/ctype-win1250ch.c
+++ b/strings/ctype-win1250ch.c
@@ -488,9 +488,11 @@ int my_strnncollsp_win1250ch(CHARSET_INFO * cs,
}
-static size_t my_strnxfrm_win1250ch(CHARSET_INFO * cs __attribute__((unused)),
- uchar *dest, size_t len,
- const uchar *src, size_t srclen)
+static size_t
+my_strnxfrm_win1250ch(CHARSET_INFO *cs __attribute__((unused)),
+ uchar *dest, size_t len,
+ uint nweights_arg __attribute__((unused)),
+ const uchar *src, size_t srclen, uint flags)
{
int value;
const uchar *p;
@@ -498,15 +500,23 @@ static size_t my_strnxfrm_win1250ch(CHARSET_INFO * cs __attribute__((unused)),
size_t totlen = 0;
p = src;
- do {
+ if (!(flags & 0x0F)) /* All levels by default */
+ flags|= 0x0F;
+
+ while (totlen < len)
+ {
NEXT_CMP_VALUE(src, p, pass, value, (int)srclen);
- if (totlen < len)
- dest[totlen] = value;
- totlen++;
- } while (value) ;
- if (len > totlen)
- bfill(dest + totlen, len - totlen, ' ');
- return len;
+ if (!value)
+ break;
+ if ((1 << pass) & flags)
+ dest[totlen++] = value;
+ }
+ if ((flags & MY_STRXFRM_PAD_TO_MAXLEN) && len > totlen)
+ {
+ memset(dest + totlen, 0x00, len - totlen);
+ totlen= len;
+ }
+ return totlen;
}
#undef IS_END
@@ -680,7 +690,8 @@ static MY_COLLATION_HANDLER my_collation_czech_ci_handler =
struct charset_info_st my_charset_cp1250_czech_ci =
{
34,0,0, /* number */
- MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT, /* state */
+ MY_CS_COMPILED|MY_CS_STRNXFRM|MY_CS_CSSORT|
+ MY_CS_STRNXFRM_BAD_NWEIGHTS|MY_CS_NON1TO1, /* state */
"cp1250", /* cs name */
"cp1250_czech_cs", /* name */
"", /* comment */
@@ -689,11 +700,10 @@ struct charset_info_st my_charset_cp1250_czech_ci =
to_lower_win1250ch,
to_upper_win1250ch,
sort_order_win1250ch,
- NULL, /* contractions */
- NULL, /* sort_order_big*/
+ NULL, /* uca */
tab_cp1250_uni, /* tab_to_uni */
idx_uni_cp1250, /* tab_from_uni */
- my_unicase_default, /* caseinfo */
+ &my_unicase_default, /* caseinfo */
NULL, /* state_map */
NULL, /* ident_map */
2, /* strxfrm_multiply */
@@ -705,6 +715,7 @@ struct charset_info_st my_charset_cp1250_czech_ci =
0, /* max_sort_char */
' ', /* pad char */
0, /* escape_with_backslash_is_dangerous */
+ 2, /* levels_for_order */
&my_charset_8bit_handler,
&my_collation_czech_ci_handler
};
diff --git a/strings/ctype.c b/strings/ctype.c
index b99f87819e3..d68010e0015 100644
--- a/strings/ctype.c
+++ b/strings/ctype.c
@@ -36,6 +36,18 @@
*/
+
+/*
+ Avoid using my_snprintf
+ We cannot use my_snprintf() here, because ctype.o is
+ used to build conf_to_src, which must require minimun
+ dependency.
+*/
+
+#undef my_snprinf
+#define my_snprintf "We cannot use my_snprintf in this file"
+
+
int (*my_string_stack_guard)(int)= NULL;
static char *mstr(char *str,const char *src,size_t l1,size_t l2)
@@ -69,11 +81,75 @@ struct my_cs_file_section_st
#define _CS_PRIMARY_ID 15
#define _CS_BINARY_ID 16
#define _CS_CSDESCRIPT 17
-#define _CS_RESET 18
-#define _CS_DIFF1 19
-#define _CS_DIFF2 20
-#define _CS_DIFF3 21
-#define _CS_IDENTICAL 22
+
+
+/* Special purpose commands */
+#define _CS_UCA_VERSION 100
+#define _CS_CL_SUPPRESS_CONTRACTIONS 101
+#define _CS_CL_OPTIMIZE 102
+#define _CS_CL_SHIFT_AFTER_METHOD 103
+
+
+/* Collation Settings */
+#define _CS_ST_SETTINGS 200
+#define _CS_ST_STRENGTH 201
+#define _CS_ST_ALTERNATE 202
+#define _CS_ST_BACKWARDS 203
+#define _CS_ST_NORMALIZATION 204
+#define _CS_ST_CASE_LEVEL 205
+#define _CS_ST_CASE_FIRST 206
+#define _CS_ST_HIRAGANA_QUATERNARY 207
+#define _CS_ST_NUMERIC 208
+#define _CS_ST_VARIABLE_TOP 209
+#define _CS_ST_MATCH_BOUNDARIES 210
+#define _CS_ST_MATCH_STYLE 211
+
+
+/* Rules */
+#define _CS_RULES 300
+#define _CS_RESET 301
+#define _CS_DIFF1 302
+#define _CS_DIFF2 303
+#define _CS_DIFF3 304
+#define _CS_DIFF4 305
+#define _CS_IDENTICAL 306
+
+/* Rules: Expansions */
+#define _CS_EXP_X 320
+#define _CS_EXP_EXTEND 321
+#define _CS_EXP_DIFF1 322
+#define _CS_EXP_DIFF2 323
+#define _CS_EXP_DIFF3 324
+#define _CS_EXP_DIFF4 325
+#define _CS_EXP_IDENTICAL 326
+
+/* Rules: Abbreviating Ordering Specifications */
+#define _CS_A_DIFF1 351
+#define _CS_A_DIFF2 352
+#define _CS_A_DIFF3 353
+#define _CS_A_DIFF4 354
+#define _CS_A_IDENTICAL 355
+
+/* Rules: previous context */
+#define _CS_CONTEXT 370
+
+/* Rules: Placing Characters Before Others*/
+#define _CS_RESET_BEFORE 380
+
+/* Rules: Logical Reset Positions */
+#define _CS_RESET_FIRST_PRIMARY_IGNORABLE 401
+#define _CS_RESET_LAST_PRIMARY_IGNORABLE 402
+#define _CS_RESET_FIRST_SECONDARY_IGNORABLE 403
+#define _CS_RESET_LAST_SECONDARY_IGNORABLE 404
+#define _CS_RESET_FIRST_TERTIARY_IGNORABLE 405
+#define _CS_RESET_LAST_TERTIARY_IGNORABLE 406
+#define _CS_RESET_FIRST_TRAILING 407
+#define _CS_RESET_LAST_TRAILING 408
+#define _CS_RESET_FIRST_VARIABLE 409
+#define _CS_RESET_LAST_VARIABLE 410
+#define _CS_RESET_FIRST_NON_IGNORABLE 411
+#define _CS_RESET_LAST_NON_IGNORABLE 412
+
static const struct my_cs_file_section_st sec[] =
@@ -83,6 +159,8 @@ static const struct my_cs_file_section_st sec[] =
{_CS_MISC, "xml/encoding"},
{_CS_MISC, "charsets"},
{_CS_MISC, "charsets/max-id"},
+ {_CS_MISC, "charsets/copyright"},
+ {_CS_MISC, "charsets/description"},
{_CS_CHARSET, "charsets/charset"},
{_CS_PRIMARY_ID, "charsets/charset/primary-id"},
{_CS_BINARY_ID, "charsets/charset/binary-id"},
@@ -104,11 +182,72 @@ static const struct my_cs_file_section_st sec[] =
{_CS_ORDER, "charsets/charset/collation/order"},
{_CS_FLAG, "charsets/charset/collation/flag"},
{_CS_COLLMAP, "charsets/charset/collation/map"},
- {_CS_RESET, "charsets/charset/collation/rules/reset"},
- {_CS_DIFF1, "charsets/charset/collation/rules/p"},
- {_CS_DIFF2, "charsets/charset/collation/rules/s"},
- {_CS_DIFF3, "charsets/charset/collation/rules/t"},
- {_CS_IDENTICAL, "charsets/charset/collation/rules/i"},
+
+ /* Special purpose commands */
+ {_CS_UCA_VERSION, "charsets/charset/collation/version"},
+ {_CS_CL_SUPPRESS_CONTRACTIONS, "charsets/charset/collation/suppress_contractions"},
+ {_CS_CL_OPTIMIZE, "charsets/charset/collation/optimize"},
+ {_CS_CL_SHIFT_AFTER_METHOD, "charsets/charset/collation/shift-after-method"},
+
+ /* Collation Settings */
+ {_CS_ST_SETTINGS, "charsets/charset/collation/settings"},
+ {_CS_ST_STRENGTH, "charsets/charset/collation/settings/strength"},
+ {_CS_ST_ALTERNATE, "charsets/charset/collation/settings/alternate"},
+ {_CS_ST_BACKWARDS, "charsets/charset/collation/settings/backwards"},
+ {_CS_ST_NORMALIZATION, "charsets/charset/collation/settings/normalization"},
+ {_CS_ST_CASE_LEVEL, "charsets/charset/collation/settings/caseLevel"},
+ {_CS_ST_CASE_FIRST, "charsets/charset/collation/settings/caseFirst"},
+ {_CS_ST_HIRAGANA_QUATERNARY, "charsets/charset/collation/settings/hiraganaQuaternary"},
+ {_CS_ST_NUMERIC, "charsets/charset/collation/settings/numeric"},
+ {_CS_ST_VARIABLE_TOP, "charsets/charset/collation/settings/variableTop"},
+ {_CS_ST_MATCH_BOUNDARIES, "charsets/charset/collation/settings/match-boundaries"},
+ {_CS_ST_MATCH_STYLE, "charsets/charset/collation/settings/match-style"},
+
+ /* Rules */
+ {_CS_RULES, "charsets/charset/collation/rules"},
+ {_CS_RESET, "charsets/charset/collation/rules/reset"},
+ {_CS_DIFF1, "charsets/charset/collation/rules/p"},
+ {_CS_DIFF2, "charsets/charset/collation/rules/s"},
+ {_CS_DIFF3, "charsets/charset/collation/rules/t"},
+ {_CS_DIFF4, "charsets/charset/collation/rules/q"},
+ {_CS_IDENTICAL, "charsets/charset/collation/rules/i"},
+
+ /* Rules: expansions */
+ {_CS_EXP_X, "charsets/charset/collation/rules/x"},
+ {_CS_EXP_EXTEND, "charsets/charset/collation/rules/x/extend"},
+ {_CS_EXP_DIFF1, "charsets/charset/collation/rules/x/p"},
+ {_CS_EXP_DIFF2, "charsets/charset/collation/rules/x/s"},
+ {_CS_EXP_DIFF3, "charsets/charset/collation/rules/x/t"},
+ {_CS_EXP_DIFF4, "charsets/charset/collation/rules/x/q"},
+ {_CS_EXP_IDENTICAL, "charsets/charset/collation/rules/x/i"},
+
+ /* Rules: previous context */
+ {_CS_CONTEXT, "charsets/charset/collation/rules/x/context"},
+
+ /* Rules: Abbreviating Ordering Specifications */
+ {_CS_A_DIFF1, "charsets/charset/collation/rules/pc"},
+ {_CS_A_DIFF2, "charsets/charset/collation/rules/sc"},
+ {_CS_A_DIFF3, "charsets/charset/collation/rules/tc"},
+ {_CS_A_DIFF4, "charsets/charset/collation/rules/qc"},
+ {_CS_A_IDENTICAL, "charsets/charset/collation/rules/ic"},
+
+ /* Rules: Placing Characters Before Others*/
+ {_CS_RESET_BEFORE, "charsets/charset/collation/rules/reset/before"},
+
+ /* Rules: Logical Reset Positions */
+ {_CS_RESET_FIRST_NON_IGNORABLE, "charsets/charset/collation/rules/reset/first_non_ignorable"},
+ {_CS_RESET_LAST_NON_IGNORABLE, "charsets/charset/collation/rules/reset/last_non_ignorable"},
+ {_CS_RESET_FIRST_PRIMARY_IGNORABLE, "charsets/charset/collation/rules/reset/first_primary_ignorable"},
+ {_CS_RESET_LAST_PRIMARY_IGNORABLE, "charsets/charset/collation/rules/reset/last_primary_ignorable"},
+ {_CS_RESET_FIRST_SECONDARY_IGNORABLE, "charsets/charset/collation/rules/reset/first_secondary_ignorable"},
+ {_CS_RESET_LAST_SECONDARY_IGNORABLE, "charsets/charset/collation/rules/reset/last_secondary_ignorable"},
+ {_CS_RESET_FIRST_TERTIARY_IGNORABLE, "charsets/charset/collation/rules/reset/first_tertiary_ignorable"},
+ {_CS_RESET_LAST_TERTIARY_IGNORABLE, "charsets/charset/collation/rules/reset/last_tertiary_ignorable"},
+ {_CS_RESET_FIRST_TRAILING, "charsets/charset/collation/rules/reset/first_trailing"},
+ {_CS_RESET_LAST_TRAILING, "charsets/charset/collation/rules/reset/last_trailing"},
+ {_CS_RESET_FIRST_VARIABLE, "charsets/charset/collation/rules/reset/first_variable"},
+ {_CS_RESET_LAST_VARIABLE, "charsets/charset/collation/rules/reset/last_variable"},
+
{0, NULL}
};
@@ -118,14 +257,16 @@ static const struct my_cs_file_section_st
const struct my_cs_file_section_st *s;
for (s=sec; s->str; s++)
{
- if (!strncmp(attr,s->str,len))
+ if (!strncmp(attr, s->str, len) && s->str[len] == 0)
return s;
}
return NULL;
}
#define MY_CS_CSDESCR_SIZE 64
-#define MY_CS_TAILORING_SIZE 1024
+#define MY_CS_TAILORING_SIZE (32*1024)
+#define MY_CS_UCA_VERSION_SIZE 64
+#define MY_CS_CONTEXT_SIZE 64
typedef struct my_cs_file_info
{
@@ -137,13 +278,60 @@ typedef struct my_cs_file_info
uchar sort_order[MY_CS_SORT_ORDER_TABLE_SIZE];
uint16 tab_to_uni[MY_CS_TO_UNI_TABLE_SIZE];
char comment[MY_CS_CSDESCR_SIZE];
- char tailoring[MY_CS_TAILORING_SIZE];
+ char *tailoring;
size_t tailoring_length;
+ size_t tailoring_alloced_length;
+ char context[MY_CS_CONTEXT_SIZE];
struct charset_info_st cs;
- int (*add_collation)(struct charset_info_st *cs);
-} MY_CHARSET_LOADER;
+ MY_CHARSET_LOADER *loader;
+} MY_CHARSET_FILE;
+
+
+static void
+my_charset_file_reset_charset(MY_CHARSET_FILE *i)
+{
+ memset(&i->cs, 0, sizeof(i->cs));
+}
+
+
+static void
+my_charset_file_reset_collation(MY_CHARSET_FILE *i)
+{
+ i->tailoring_length= 0;
+ i->context[0]= '\0';
+}
+
+
+static void
+my_charset_file_init(MY_CHARSET_FILE *i)
+{
+ my_charset_file_reset_charset(i);
+ my_charset_file_reset_collation(i);
+ i->tailoring= NULL;
+ i->tailoring_alloced_length= 0;
+}
+static void
+my_charset_file_free(MY_CHARSET_FILE *i)
+{
+ i->loader->free(i->tailoring);
+}
+
+
+static int
+my_charset_file_tailoring_realloc(MY_CHARSET_FILE *i, size_t newlen)
+{
+ if (i->tailoring_alloced_length > newlen ||
+ (i->tailoring= i->loader->realloc(i->tailoring,
+ (i->tailoring_alloced_length=
+ (newlen + 32*1024)))))
+ {
+ return MY_XML_OK;
+ }
+ return MY_XML_ERROR;
+}
+
static int fill_uchar(uchar *a,uint size,const char *str, size_t len)
{
@@ -180,17 +368,119 @@ static int fill_uint16(uint16 *a,uint size,const char *str, size_t len)
}
+
+
+static int
+tailoring_append(MY_XML_PARSER *st,
+ const char *fmt, size_t len, const char *attr)
+{
+ struct my_cs_file_info *i= (struct my_cs_file_info *) st->user_data;
+ size_t newlen= i->tailoring_length + len + 64; /* 64 for format */
+ if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen))
+ {
+ char *dst= i->tailoring + i->tailoring_length;
+ sprintf(dst, fmt, (int) len, attr);
+ i->tailoring_length+= strlen(dst);
+ return MY_XML_OK;
+ }
+ return MY_XML_ERROR;
+}
+
+
+static int
+tailoring_append2(MY_XML_PARSER *st,
+ const char *fmt,
+ size_t len1, const char *attr1,
+ size_t len2, const char *attr2)
+{
+ struct my_cs_file_info *i= (struct my_cs_file_info *) st->user_data;
+ size_t newlen= i->tailoring_length + len1 + len2 + 64; /* 64 for format */
+ if (MY_XML_OK == my_charset_file_tailoring_realloc(i, newlen))
+ {
+ char *dst= i->tailoring + i->tailoring_length;
+ sprintf(dst, fmt, (int) len1, attr1, (int) len2, attr2);
+ i->tailoring_length+= strlen(dst);
+ return MY_XML_OK;
+ }
+ return MY_XML_ERROR;
+}
+
+
+static size_t
+scan_one_character(const char *s, const char *e, my_wc_t *wc)
+{
+ CHARSET_INFO *cs= &my_charset_utf8_general_ci;
+ if (s >= e)
+ return 0;
+
+ /* Escape sequence: \uXXXX */
+ if (s[0] == '\\' && s + 2 < e && s[1] == 'u' && my_isxdigit(cs, s[2]))
+ {
+ size_t len= 3; /* We have at least one digit */
+ for (s+= 3; s < e && my_isxdigit(cs, s[0]); s++, len++)
+ {
+ }
+ wc[0]= 0;
+ return len;
+ }
+ else if ((int8) s[0] > 0) /* 7-bit character */
+ {
+ wc[0]= 0;
+ return 1;
+ }
+ else /* Non-escaped character */
+ {
+ int rc= cs->cset->mb_wc(cs, wc, (uchar *) s, (uchar *) e);
+ if (rc > 0)
+ return (size_t) rc;
+ }
+ return 0;
+}
+
+
+static int
+tailoring_append_abbreviation(MY_XML_PARSER *st,
+ const char *fmt, size_t len, const char *attr)
+{
+ size_t clen;
+ const char *attrend= attr + len;
+ my_wc_t wc;
+
+ for ( ; (clen= scan_one_character(attr, attrend, &wc)) > 0; attr+= clen)
+ {
+ DBUG_ASSERT(attr < attrend);
+ if (tailoring_append(st, fmt, clen, attr) != MY_XML_OK)
+ return MY_XML_ERROR;
+ }
+ return MY_XML_OK;
+}
+
+
static int cs_enter(MY_XML_PARSER *st,const char *attr, size_t len)
{
struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data;
const struct my_cs_file_section_st *s= cs_file_sec(attr,len);
+ int state= s ? s->state : 0;
- if ( s && (s->state == _CS_CHARSET))
- bzero(&i->cs,sizeof(i->cs));
-
- if (s && (s->state == _CS_COLLATION))
- i->tailoring_length= 0;
+ switch (state) {
+ case 0:
+ i->loader->reporter(WARNING_LEVEL, "Unknown LDML tag: '%.*s'", len, attr);
+ break;
+
+ case _CS_CHARSET:
+ my_charset_file_reset_charset(i);
+ break;
+
+ case _CS_COLLATION:
+ my_charset_file_reset_collation(i);
+ break;
+
+ case _CS_RESET:
+ return tailoring_append(st, " &", 0, NULL);
+ default:
+ break;
+ }
return MY_XML_OK;
}
@@ -204,8 +494,60 @@ static int cs_leave(MY_XML_PARSER *st,const char *attr, size_t len)
switch(state){
case _CS_COLLATION:
- rc= i->add_collation ? i->add_collation(&i->cs) : MY_XML_OK;
+ if (i->tailoring_length)
+ i->cs.tailoring= i->tailoring;
+ rc= i->loader->add_collation ? i->loader->add_collation(&i->cs) : MY_XML_OK;
+ break;
+
+ /* Rules: Logical Reset Positions */
+ case _CS_RESET_FIRST_NON_IGNORABLE:
+ rc= tailoring_append(st, "[first non-ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_LAST_NON_IGNORABLE:
+ rc= tailoring_append(st, "[last non-ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_FIRST_PRIMARY_IGNORABLE:
+ rc= tailoring_append(st, "[first primary ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_LAST_PRIMARY_IGNORABLE:
+ rc= tailoring_append(st, "[last primary ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_FIRST_SECONDARY_IGNORABLE:
+ rc= tailoring_append(st, "[first secondary ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_LAST_SECONDARY_IGNORABLE:
+ rc= tailoring_append(st, "[last secondary ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_FIRST_TERTIARY_IGNORABLE:
+ rc= tailoring_append(st, "[first tertiary ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_LAST_TERTIARY_IGNORABLE:
+ rc= tailoring_append(st, "[last tertiary ignorable]", 0, NULL);
+ break;
+
+ case _CS_RESET_FIRST_TRAILING:
+ rc= tailoring_append(st, "[first trailing]", 0, NULL);
+ break;
+
+ case _CS_RESET_LAST_TRAILING:
+ rc= tailoring_append(st, "[last trailing]", 0, NULL);
+ break;
+
+ case _CS_RESET_FIRST_VARIABLE:
+ rc= tailoring_append(st, "[first variable]", 0, NULL);
break;
+
+ case _CS_RESET_LAST_VARIABLE:
+ rc= tailoring_append(st, "[last variable]", 0, NULL);
+ break;
+
default:
rc=MY_XML_OK;
}
@@ -213,14 +555,40 @@ static int cs_leave(MY_XML_PARSER *st,const char *attr, size_t len)
}
+static const char *diff_fmt[5]=
+{
+ "<%.*s",
+ "<<%.*s",
+ "<<<%.*s",
+ "<<<<%.*s",
+ "=%.*s"
+};
+
+
+static const char *context_diff_fmt[5]=
+{
+ "<%.*s|%.*s",
+ "<<%.*s|%.*s",
+ "<<<%.*s|%.*s",
+ "<<<<%.*s|%.*s",
+ "=%.*s|%.*s"
+};
+
+
static int cs_value(MY_XML_PARSER *st,const char *attr, size_t len)
{
struct my_cs_file_info *i= (struct my_cs_file_info *)st->user_data;
const struct my_cs_file_section_st *s;
- int state= (int)((s= cs_file_sec(st->attr, strlen(st->attr))) ? s->state :
- 0);
-
+ int state= (int)((s= cs_file_sec(st->attr.start,
+ st->attr.end - st->attr.start)) ?
+ s->state : 0);
+ int rc= MY_XML_OK;
+
switch (state) {
+ case _CS_MISC:
+ case _CS_FAMILY:
+ case _CS_ORDER:
+ break;
case _CS_ID:
i->cs.number= strtol(attr,(char**)NULL,10);
break;
@@ -267,68 +635,285 @@ static int cs_value(MY_XML_PARSER *st,const char *attr, size_t len)
fill_uchar(i->ctype,MY_CS_CTYPE_TABLE_SIZE,attr,len);
i->cs.ctype=i->ctype;
break;
+
+ /* Special purpose commands */
+ case _CS_UCA_VERSION:
+ rc= tailoring_append(st, "[version %.*s]", len, attr);
+ break;
+
+ case _CS_CL_SUPPRESS_CONTRACTIONS:
+ rc= tailoring_append(st, "[suppress contractions %.*s]", len, attr);
+ break;
+
+ case _CS_CL_OPTIMIZE:
+ rc= tailoring_append(st, "[optimize %.*s]", len, attr);
+ break;
+
+ case _CS_CL_SHIFT_AFTER_METHOD:
+ rc= tailoring_append(st, "[shift-after-method %.*s]", len, attr);
+ break;
+
+ /* Collation Settings */
+ case _CS_ST_STRENGTH:
+ /* 1, 2, 3, 4, 5, or primary, secondary, tertiary, quaternary, identical */
+ rc= tailoring_append(st, "[strength %.*s]", len, attr);
+ break;
+
+ case _CS_ST_ALTERNATE:
+ /* non-ignorable, shifted */
+ rc= tailoring_append(st, "[alternate %.*s]", len, attr);
+ break;
+
+ case _CS_ST_BACKWARDS:
+ /* on, off, 2 */
+ rc= tailoring_append(st, "[backwards %.*s]", len, attr);
+ break;
+
+ case _CS_ST_NORMALIZATION:
+ /*
+ TODO for WL#896: check collations for normalization: vi.xml
+ We want precomposed characters work well at this point.
+ */
+ /* on, off */
+ rc= tailoring_append(st, "[normalization %.*s]", len, attr);
+ break;
+
+ case _CS_ST_CASE_LEVEL:
+ /* on, off */
+ rc= tailoring_append(st, "[caseLevel %.*s]", len, attr);
+ break;
+
+ case _CS_ST_CASE_FIRST:
+ /* upper, lower, off */
+ rc= tailoring_append(st, "[caseFirst %.*s]", len, attr);
+ break;
+
+ case _CS_ST_HIRAGANA_QUATERNARY:
+ /* on, off */
+ rc= tailoring_append(st, "[hiraganaQ %.*s]", len, attr);
+ break;
+
+ case _CS_ST_NUMERIC:
+ /* on, off */
+ rc= tailoring_append(st, "[numeric %.*s]", len, attr);
+ break;
+
+ case _CS_ST_VARIABLE_TOP:
+ /* TODO for WL#896: check value format */
+ rc= tailoring_append(st, "[variableTop %.*s]", len, attr);
+ break;
+
+ case _CS_ST_MATCH_BOUNDARIES:
+ /* none, whole-character, whole-word */
+ rc= tailoring_append(st, "[match-boundaries %.*s]", len, attr);
+ break;
+
+ case _CS_ST_MATCH_STYLE:
+ /* minimal, medial, maximal */
+ rc= tailoring_append(st, "[match-style %.*s]", len, attr);
+ break;
+
+
+ /* Rules */
case _CS_RESET:
+ rc= tailoring_append(st, "%.*s", len, attr);
+ break;
+
case _CS_DIFF1:
case _CS_DIFF2:
case _CS_DIFF3:
+ case _CS_DIFF4:
case _CS_IDENTICAL:
+ rc= tailoring_append(st, diff_fmt[state - _CS_DIFF1], len, attr);
+ break;
+
+
+ /* Rules: Expansion */
+ case _CS_EXP_EXTEND:
+ rc= tailoring_append(st, " / %.*s", len, attr);
+ break;
+
+ case _CS_EXP_DIFF1:
+ case _CS_EXP_DIFF2:
+ case _CS_EXP_DIFF3:
+ case _CS_EXP_DIFF4:
+ case _CS_EXP_IDENTICAL:
+ if (i->context[0])
{
- /*
- Convert collation description from
- Locale Data Markup Language (LDML)
- into ICU Collation Customization expression.
- */
- char arg[16];
- const char *cmd[]= {"&","<","<<","<<<","="};
- i->cs.tailoring= i->tailoring;
- mstr(arg,attr,len,sizeof(arg)-1);
- if (i->tailoring_length + 20 < sizeof(i->tailoring))
- {
- char *dst= i->tailoring_length + i->tailoring;
- i->tailoring_length+= sprintf(dst," %s %s",cmd[state-_CS_RESET],arg);
- }
+ rc= tailoring_append2(st, context_diff_fmt[state - _CS_EXP_DIFF1],
+ strlen(i->context), i->context, len, attr);
+ i->context[0]= 0;
+ }
+ else
+ rc= tailoring_append(st, diff_fmt[state - _CS_EXP_DIFF1], len, attr);
+ break;
+
+ /* Rules: Context */
+ case _CS_CONTEXT:
+ if (len < sizeof(i->context))
+ {
+ memcpy(i->context, attr, len);
+ i->context[len]= '\0';
}
+ break;
+
+ /* Rules: Abbreviating Ordering Specifications */
+ case _CS_A_DIFF1:
+ case _CS_A_DIFF2:
+ case _CS_A_DIFF3:
+ case _CS_A_DIFF4:
+ case _CS_A_IDENTICAL:
+ rc= tailoring_append_abbreviation(st, diff_fmt[state - _CS_A_DIFF1], len, attr);
+ break;
+
+ /* Rules: Placing Characters Before Others */
+ case _CS_RESET_BEFORE:
+ /*
+ TODO for WL#896: Add this check into text customization parser:
+ It is an error if the strength of the before relation is not identical
+ to the relation after the reset. We'll need this for WL#896.
+ */
+ rc= tailoring_append(st, "[before %.*s]", len, attr);
+ break;
+
+
+ default:
+ break;
}
- return MY_XML_OK;
+
+ return rc;
}
-my_bool my_parse_charset_xml(const char *buf, size_t len,
- int (*add_collation)(struct charset_info_st *cs))
+my_bool
+my_parse_charset_xml(MY_CHARSET_LOADER *loader, const char *buf, size_t len)
{
MY_XML_PARSER p;
- struct my_cs_file_info i;
+ struct my_cs_file_info info;
my_bool rc;
+ my_charset_file_init(&info);
my_xml_parser_create(&p);
my_xml_set_enter_handler(&p,cs_enter);
my_xml_set_value_handler(&p,cs_value);
my_xml_set_leave_handler(&p,cs_leave);
- i.add_collation= add_collation;
- my_xml_set_user_data(&p,(void*)&i);
+ info.loader= loader;
+ my_xml_set_user_data(&p, (void *) &info);
rc= (my_xml_parse(&p,buf,len) == MY_XML_OK) ? FALSE : TRUE;
my_xml_parser_free(&p);
+ my_charset_file_free(&info);
+ if (rc != MY_XML_OK)
+ {
+ const char *errstr= my_xml_error_string(&p);
+ if (sizeof(loader->error) > 32 + strlen(errstr))
+ {
+ /* We cannot use my_snprintf() here. See previous comment. */
+ sprintf(loader->error, "at line %d pos %d: %s",
+ my_xml_error_lineno(&p)+1,
+ (int) my_xml_error_pos(&p),
+ my_xml_error_string(&p));
+ }
+ }
return rc;
}
+uint
+my_string_repertoire_8bit(CHARSET_INFO *cs, const char *str, ulong length)
+{
+ const char *strend;
+ if ((cs->state & MY_CS_NONASCII) && length > 0)
+ return MY_REPERTOIRE_UNICODE30;
+ for (strend= str + length; str < strend; str++)
+ {
+ if (((uchar) *str) > 0x7F)
+ return MY_REPERTOIRE_UNICODE30;
+ }
+ return MY_REPERTOIRE_ASCII;
+}
+
+
+static void
+my_string_metadata_init(MY_STRING_METADATA *metadata)
+{
+ metadata->repertoire= MY_REPERTOIRE_ASCII;
+ metadata->char_length= 0;
+}
+
+
+/**
+ This should probably eventually go as a virtual function into
+ MY_CHARSET_HANDLER or MY_COLLATION_HANDLER.
+*/
+static void
+my_string_metadata_get_mb(MY_STRING_METADATA *metadata,
+ CHARSET_INFO *cs, const char *str, ulong length)
+{
+ const char *strend= str + length;
+ for (my_string_metadata_init(metadata) ;
+ str < strend;
+ metadata->char_length++)
+ {
+ my_wc_t wc;
+ int mblen= cs->cset->mb_wc(cs, &wc, (const uchar *) str,
+ (const uchar *) strend);
+ if (mblen > 0) /* Assigned character */
+ {
+ if (wc > 0x7F)
+ metadata->repertoire|= MY_REPERTOIRE_EXTENDED;
+ str+= mblen;
+ }
+ else if (mblen == MY_CS_ILSEQ) /* Bad byte sequence */
+ {
+ metadata->repertoire|= MY_REPERTOIRE_EXTENDED;
+ str++;
+ }
+ else if (mblen > MY_CS_TOOSMALL) /* Unassigned character */
+ {
+ metadata->repertoire|= MY_REPERTOIRE_EXTENDED;
+ str+= (-mblen);
+ }
+ else /* Incomplete character, premature end-of-line */
+ {
+ metadata->repertoire|= MY_REPERTOIRE_EXTENDED; /* Just in case */
+ break;
+ }
+ }
+}
+
+
+/**
+ Collect string metadata: length in characters and repertoire.
+*/
+void
+my_string_metadata_get(MY_STRING_METADATA *metadata,
+ CHARSET_INFO *cs, const char *str, size_t length)
+{
+ if (cs->mbmaxlen == 1 && !(cs->state & MY_CS_NONASCII))
+ {
+ metadata->char_length= length;
+ metadata->repertoire= my_string_repertoire_8bit(cs, str, length);
+ }
+ else
+ {
+ my_string_metadata_get_mb(metadata, cs, str, length);
+ }
+}
+
+
/*
Check repertoire: detect pure ascii strings
*/
uint
my_string_repertoire(CHARSET_INFO *cs, const char *str, ulong length)
{
- const char *strend= str + length;
- if (cs->mbminlen == 1)
+ if (cs->mbminlen == 1 && !(cs->state & MY_CS_NONASCII))
{
- for ( ; str < strend; str++)
- {
- if (((uchar) *str) > 0x7F)
- return MY_REPERTOIRE_UNICODE30;
- }
+ return my_string_repertoire_8bit(cs, str, length);
}
else
{
+ const char *strend= str + length;
my_wc_t wc;
int chlen;
for (;
@@ -428,3 +1013,228 @@ my_charset_is_ascii_compatible(CHARSET_INFO *cs)
}
return 1;
}
+
+
+/*
+ Convert a string between two character sets.
+ 'to' must be large enough to store (form_length * to_cs->mbmaxlen) bytes.
+
+ @param to[OUT] Store result here
+ @param to_length Size of "to" buffer
+ @param to_cs Character set of result string
+ @param from Copy from here
+ @param from_length Length of the "from" string
+ @param from_cs Character set of the "from" string
+ @param errors[OUT] Number of conversion errors
+
+ @return Number of bytes copied to 'to' string
+*/
+
+uint32
+my_convert_using_func(char *to, uint32 to_length,
+ CHARSET_INFO *to_cs, my_charset_conv_wc_mb wc_mb,
+ const char *from, uint32 from_length,
+ CHARSET_INFO *from_cs, my_charset_conv_mb_wc mb_wc,
+ uint *errors)
+{
+ int cnvres;
+ my_wc_t wc;
+ const uchar *from_end= (const uchar*) from + from_length;
+ char *to_start= to;
+ uchar *to_end= (uchar*) to + to_length;
+ uint error_count= 0;
+
+ while (1)
+ {
+ if ((cnvres= (*mb_wc)(from_cs, &wc, (uchar*) from, from_end)) > 0)
+ from+= cnvres;
+ else if (cnvres == MY_CS_ILSEQ)
+ {
+ error_count++;
+ from++;
+ wc= '?';
+ }
+ else if (cnvres > MY_CS_TOOSMALL)
+ {
+ /*
+ A correct multibyte sequence detected
+ But it doesn't have Unicode mapping.
+ */
+ error_count++;
+ from+= (-cnvres);
+ wc= '?';
+ }
+ else
+ {
+ if ((uchar *) from >= from_end)
+ break; /* End of line */
+ /* Incomplete byte sequence */
+ error_count++;
+ from++;
+ wc= '?';
+ }
+
+outp:
+ if ((cnvres= (*wc_mb)(to_cs, wc, (uchar*) to, to_end)) > 0)
+ to+= cnvres;
+ else if (cnvres == MY_CS_ILUNI && wc != '?')
+ {
+ error_count++;
+ wc= '?';
+ goto outp;
+ }
+ else
+ break;
+ }
+ *errors= error_count;
+ return (uint32) (to - to_start);
+}
+
+
+/*
+ Convert a string between two character sets.
+ Optimized for quick copying of ASCII characters in the range 0x00..0x7F.
+ 'to' must be large enough to store (form_length * to_cs->mbmaxlen) bytes.
+
+ @param to[OUT] Store result here
+ @param to_length Size of "to" buffer
+ @param to_cs Character set of result string
+ @param from Copy from here
+ @param from_length Length of the "from" string
+ @param from_cs Character set of the "from" string
+ @param errors[OUT] Number of conversion errors
+
+ @return Number of bytes copied to 'to' string
+*/
+
+uint32
+my_convert(char *to, uint32 to_length, CHARSET_INFO *to_cs,
+ const char *from, uint32 from_length,
+ CHARSET_INFO *from_cs, uint *errors)
+{
+ uint32 length, length2;
+ /*
+ If any of the character sets is not ASCII compatible,
+ immediately switch to slow mb_wc->wc_mb method.
+ */
+ if ((to_cs->state | from_cs->state) & MY_CS_NONASCII)
+ return my_convert_using_func(to, to_length,
+ to_cs, to_cs->cset->wc_mb,
+ from, from_length,
+ from_cs, from_cs->cset->mb_wc,
+ errors);
+
+ length= length2= MY_MIN(to_length, from_length);
+
+#if defined(__i386__) || defined(__x86_64__)
+ /*
+ Special loop for i386, it allows to refer to a
+ non-aligned memory block as UINT32, which makes
+ it possible to copy four bytes at once. This
+ gives about 10% performance improvement comparing
+ to byte-by-byte loop.
+ */
+ for ( ; length >= 4; length-= 4, from+= 4, to+= 4)
+ {
+ if ((*(uint32*)from) & 0x80808080)
+ break;
+ *((uint32*) to)= *((const uint32*) from);
+ }
+#endif /* __i386__ */
+
+ for (; ; *to++= *from++, length--)
+ {
+ if (!length)
+ {
+ *errors= 0;
+ return length2;
+ }
+ if (*((unsigned char*) from) > 0x7F) /* A non-ASCII character */
+ {
+ uint32 copied_length= length2 - length;
+ to_length-= copied_length;
+ from_length-= copied_length;
+ return copied_length + my_convert_using_func(to, to_length, to_cs,
+ to_cs->cset->wc_mb,
+ from, from_length, from_cs,
+ from_cs->cset->mb_wc,
+ errors);
+ }
+ }
+
+ DBUG_ASSERT(FALSE); // Should never get to here
+ return 0; // Make compiler happy
+}
+
+
+size_t
+my_convert_fix(CHARSET_INFO *to_cs, char *to, size_t to_length,
+ CHARSET_INFO *from_cs, const char *from, size_t from_length,
+ size_t nchars, MY_STRCONV_STATUS *status)
+{
+ int cnvres;
+ my_wc_t wc;
+ my_charset_conv_mb_wc mb_wc= from_cs->cset->mb_wc;
+ my_charset_conv_wc_mb wc_mb= to_cs->cset->wc_mb;
+ const uchar *from_end= (const uchar*) from + from_length;
+ uchar *to_end= (uchar*) to + to_length;
+ char *to_start= to;
+
+ DBUG_ASSERT(to_cs != &my_charset_bin);
+ DBUG_ASSERT(from_cs != &my_charset_bin);
+
+ status->m_native_copy_status.m_well_formed_error_pos= NULL;
+ status->m_cannot_convert_error_pos= NULL;
+
+ for ( ; nchars; nchars--)
+ {
+ const char *from_prev= from;
+ if ((cnvres= (*mb_wc)(from_cs, &wc, (uchar*) from, from_end)) > 0)
+ from+= cnvres;
+ else if (cnvres == MY_CS_ILSEQ)
+ {
+ if (!status->m_native_copy_status.m_well_formed_error_pos)
+ status->m_native_copy_status.m_well_formed_error_pos= from;
+ from++;
+ wc= '?';
+ }
+ else if (cnvres > MY_CS_TOOSMALL)
+ {
+ /*
+ A correct multibyte sequence detected
+ But it doesn't have Unicode mapping.
+ */
+ if (!status->m_cannot_convert_error_pos)
+ status->m_cannot_convert_error_pos= from;
+ from+= (-cnvres);
+ wc= '?';
+ }
+ else
+ {
+ if ((uchar *) from >= from_end)
+ break; // End of line
+ // Incomplete byte sequence
+ if (!status->m_native_copy_status.m_well_formed_error_pos)
+ status->m_native_copy_status.m_well_formed_error_pos= from;
+ from++;
+ wc= '?';
+ }
+outp:
+ if ((cnvres= (*wc_mb)(to_cs, wc, (uchar*) to, to_end)) > 0)
+ to+= cnvres;
+ else if (cnvres == MY_CS_ILUNI && wc != '?')
+ {
+ if (!status->m_cannot_convert_error_pos)
+ status->m_cannot_convert_error_pos= from_prev;
+ wc= '?';
+ goto outp;
+ }
+ else
+ {
+ from= from_prev;
+ break;
+ }
+ }
+ status->m_native_copy_status.m_source_end_pos= from;
+ return to - to_start;
+}
diff --git a/strings/decimal.c b/strings/decimal.c
index 5b82ad2b3b2..56d09e8f303 100644
--- a/strings/decimal.c
+++ b/strings/decimal.c
@@ -357,7 +357,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len,
if (!(intg_len= fixed_precision ? fixed_intg : intg))
intg_len= 1;
frac_len= fixed_precision ? fixed_decimals : frac;
- len= from->sign + intg_len + test(frac) + frac_len;
+ len= from->sign + intg_len + MY_TEST(frac) + frac_len;
if (fixed_precision)
{
if (frac > fixed_decimals)
@@ -384,7 +384,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len,
else
frac-=j;
frac_len= frac;
- len= from->sign + intg_len + test(frac) + frac;
+ len= from->sign + intg_len + MY_TEST(frac) + frac_len;
}
*to_len=len;
s[len]=0;
@@ -401,7 +401,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len,
for (; frac>0; frac-=DIG_PER_DEC1)
{
dec1 x=*buf++;
- for (i=min(frac, DIG_PER_DEC1); i; i--)
+ for (i=MY_MIN(frac, DIG_PER_DEC1); i; i--)
{
dec1 y=x/DIG_MASK;
*s1++='0'+(uchar)y;
@@ -424,7 +424,7 @@ int decimal2string(const decimal_t *from, char *to, int *to_len,
for (buf=buf0+ROUND_UP(intg); intg>0; intg-=DIG_PER_DEC1)
{
dec1 x=*--buf;
- for (i=min(intg, DIG_PER_DEC1); i; i--)
+ for (i=MY_MIN(intg, DIG_PER_DEC1); i; i--)
{
dec1 y=x/10;
*--s='0'+(uchar)(x-y*10);
@@ -1043,7 +1043,7 @@ int decimal2ulonglong(const decimal_t *from, ulonglong *to)
if (from->sign)
{
- *to=ULL(0);
+ *to= 0;
return E_DEC_OVERFLOW;
}
@@ -1524,8 +1524,8 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale,
if (to != from)
{
- dec1 *p0= buf0+intg0+max(frac1, frac0);
- dec1 *p1= buf1+intg0+max(frac1, frac0);
+ dec1 *p0= buf0+intg0+MY_MAX(frac1, frac0);
+ dec1 *p1= buf1+intg0+MY_MAX(frac1, frac0);
DBUG_ASSERT(p0 - buf0 <= len);
DBUG_ASSERT(p1 - buf1 <= len);
@@ -1536,7 +1536,7 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale,
buf0=to->buf;
buf1=to->buf;
to->sign=from->sign;
- to->intg=min(intg0, len)*DIG_PER_DEC1;
+ to->intg=MY_MIN(intg0, len)*DIG_PER_DEC1;
}
if (frac0 > frac1)
@@ -1605,24 +1605,6 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale,
x+=10;
*buf1=powers10[pos]*(x-y);
}
- /*
- In case we're rounding e.g. 1.5e9 to 2.0e9, the decimal_digit_t's inside
- the buffer are as follows.
-
- Before <1, 5e8>
- After <2, 5e8>
-
- Hence we need to set the 2nd field to 0.
- The same holds if we round 1.5e-9 to 2e-9.
- */
- if (frac0 < frac1)
- {
- dec1 *buf= to->buf + ((scale == 0 && intg0 == 0) ? 1 : intg0 + frac0);
- dec1 *end= to->buf + len;
-
- while (buf < end)
- *buf++=0;
- }
if (*buf1 >= DIG_BASE)
{
carry=1;
@@ -1638,12 +1620,13 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale,
scale=frac0*DIG_PER_DEC1;
error=E_DEC_TRUNCATED; /* XXX */
}
- for (buf1=to->buf+intg0+max(frac0,0); buf1 > to->buf; buf1--)
+ for (buf1=to->buf+intg0+MY_MAX(frac0,0); buf1 > to->buf; buf1--)
{
buf1[0]=buf1[-1];
}
*buf1=1;
to->intg++;
+ intg0++;
}
}
else
@@ -1657,7 +1640,7 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale,
/* making 'zero' with the proper scale */
dec1 *p0= to->buf + frac0 + 1;
to->intg=1;
- to->frac= max(scale, 0);
+ to->frac= MY_MAX(scale, 0);
to->sign= 0;
for (buf1= to->buf; buf1<p0; buf1++)
*buf1= 0;
@@ -1665,6 +1648,24 @@ decimal_round(const decimal_t *from, decimal_t *to, int scale,
}
}
}
+ /*
+ In case we're rounding e.g. 1.5e9 to 2.0e9, the decimal_digit_t's inside
+ the buffer are as follows.
+
+ Before <1, 5e8>
+ After <2, 5e8>
+
+ Hence we need to set the 2nd field to 0.
+ The same holds if we round 1.5e-9 to 2e-9.
+ */
+ if (frac0 < frac1)
+ {
+ dec1 *buf= to->buf + ((scale == 0 && intg0 == 0) ? 1 : intg0 + frac0);
+ dec1 *end= to->buf + len;
+
+ while (buf < end)
+ *buf++=0;
+ }
/* Here we check 999.9 -> 1000 case when we need to increase intg */
first_dig= to->intg % DIG_PER_DEC1;
@@ -1706,11 +1707,11 @@ int decimal_result_size(decimal_t *from1, decimal_t *from2, char op, int param)
{
switch (op) {
case '-':
- return ROUND_UP(max(from1->intg, from2->intg)) +
- ROUND_UP(max(from1->frac, from2->frac));
+ return ROUND_UP(MY_MAX(from1->intg, from2->intg)) +
+ ROUND_UP(MY_MAX(from1->frac, from2->frac));
case '+':
- return ROUND_UP(max(from1->intg, from2->intg)+1) +
- ROUND_UP(max(from1->frac, from2->frac));
+ return ROUND_UP(MY_MAX(from1->intg, from2->intg)+1) +
+ ROUND_UP(MY_MAX(from1->frac, from2->frac));
case '*':
return ROUND_UP(from1->intg+from2->intg)+
ROUND_UP(from1->frac)+ROUND_UP(from2->frac);
@@ -1725,7 +1726,7 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
{
int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg),
frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac),
- frac0=max(frac1, frac2), intg0=max(intg1, intg2), error;
+ frac0=MY_MAX(frac1, frac2), intg0=MY_MAX(intg1, intg2), error;
dec1 *buf1, *buf2, *buf0, *stop, *stop2, x, carry;
sanity(to);
@@ -1750,7 +1751,7 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
buf0=to->buf+intg0+frac0;
to->sign=from1->sign;
- to->frac=max(from1->frac, from2->frac);
+ to->frac=MY_MAX(from1->frac, from2->frac);
to->intg=intg0*DIG_PER_DEC1;
if (unlikely(error))
{
@@ -1761,7 +1762,7 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
set_if_smaller(intg2, intg0);
}
- /* part 1 - max(frac) ... min (frac) */
+ /* part 1 - MY_MAX(frac) ... min (frac) */
if (frac1 > frac2)
{
buf1=from1->buf+intg1+frac1;
@@ -1779,14 +1780,14 @@ static int do_add(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
while (buf1 > stop)
*--buf0=*--buf1;
- /* part 2 - min(frac) ... min(intg) */
+ /* part 2 - MY_MIN(frac) ... MY_MIN(intg) */
carry=0;
while (buf1 > stop2)
{
ADD(*--buf0, *--buf1, *--buf2, carry);
}
- /* part 3 - min(intg) ... max(intg) */
+ /* part 3 - MY_MIN(intg) ... MY_MAX(intg) */
buf1= intg1 > intg2 ? ((stop=from1->buf)+intg1-intg2) :
((stop=from2->buf)+intg2-intg1) ;
while (buf1 > stop)
@@ -1807,7 +1808,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
{
int intg1=ROUND_UP(from1->intg), intg2=ROUND_UP(from2->intg),
frac1=ROUND_UP(from1->frac), frac2=ROUND_UP(from2->frac);
- int frac0=max(frac1, frac2), error;
+ int frac0=MY_MAX(frac1, frac2), error;
dec1 *buf1, *buf2, *buf0, *stop1, *stop2, *start1, *start2;
my_bool carry=0;
@@ -1883,7 +1884,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
FIX_INTG_FRAC_ERROR(to->len, intg1, frac0, error);
buf0=to->buf+intg1+frac0;
- to->frac=max(from1->frac, from2->frac);
+ to->frac=MY_MAX(from1->frac, from2->frac);
to->intg=intg1*DIG_PER_DEC1;
if (unlikely(error))
{
@@ -1894,7 +1895,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
}
carry=0;
- /* part 1 - max(frac) ... min (frac) */
+ /* part 1 - MY_MAX(frac) ... min (frac) */
if (frac1 > frac2)
{
buf1=start1+intg1+frac1;
@@ -1918,7 +1919,7 @@ static int do_sub(const decimal_t *from1, const decimal_t *from2, decimal_t *to)
}
}
- /* part 2 - min(frac) ... intg2 */
+ /* part 2 - MY_MIN(frac) ... intg2 */
while (buf2 > start2)
{
SUB(*--buf0, *--buf1, *--buf2, carry);
@@ -2184,11 +2185,11 @@ static int do_div_mod(const decimal_t *from1, const decimal_t *from2,
{
/* we're calculating N1 % N2.
The result will have
- frac=max(frac1, frac2), as for subtraction
+ frac=MY_MAX(frac1, frac2), as for subtraction
intg=intg2
*/
to->sign=from1->sign;
- to->frac=max(from1->frac, from2->frac);
+ to->frac=MY_MAX(from1->frac, from2->frac);
frac0=0;
}
else
@@ -2321,7 +2322,7 @@ static int do_div_mod(const decimal_t *from1, const decimal_t *from2,
/*
now the result is in tmp1, it has
intg=prec1-frac1
- frac=max(frac1, frac2)=to->frac
+ frac=MY_MAX(frac1, frac2)=to->frac
*/
if (dcarry)
*--start1=dcarry;
@@ -2359,7 +2360,7 @@ static int do_div_mod(const decimal_t *from1, const decimal_t *from2,
}
DBUG_ASSERT(intg0 <= ROUND_UP(from2->intg));
stop1=start1+frac0+intg0;
- to->intg=min(intg0*DIG_PER_DEC1, from2->intg);
+ to->intg=MY_MIN(intg0*DIG_PER_DEC1, from2->intg);
}
if (unlikely(intg0+frac0 > to->len))
{
diff --git a/strings/dtoa.c b/strings/dtoa.c
index ef2f072d59b..d11c5e346c5 100644
--- a/strings/dtoa.c
+++ b/strings/dtoa.c
@@ -1,4 +1,5 @@
/* Copyright (c) 2007, 2012, Oracle and/or its affiliates. All rights reserved.
+ Copyright (c) 2017, MariaDB Corporation.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@@ -132,7 +133,7 @@ size_t my_fcvt(double x, int precision, char *to, my_bool *error)
if (len <= decpt)
*dst++= '.';
- for (i= precision - max(0, (len - decpt)); i > 0; i--)
+ for (i= precision - MY_MAX(0, (len - decpt)); i > 0; i--)
*dst++= '0';
}
@@ -221,7 +222,7 @@ size_t my_gcvt(double x, my_gcvt_arg_type type, int width, char *to,
if (x < 0.)
width--;
- res= dtoa(x, 4, type == MY_GCVT_ARG_DOUBLE ? width : min(width, FLT_DIG),
+ res= dtoa(x, 4, type == MY_GCVT_ARG_DOUBLE ? width : MY_MIN(width, FLT_DIG),
&decpt, &sign, &end, buf, sizeof(buf));
if (decpt == DTOA_OVERFLOW)
{
@@ -1410,7 +1411,7 @@ static double my_strtod_int(const char *s00, char **se, int *error, char *buf, s
else if (nd < 16)
z= 10*z + c - '0';
nd0= nd;
- if (s < end - 1 && c == '.')
+ if (s < end && c == '.')
{
++s;
if (!nd)
@@ -2181,7 +2182,7 @@ static char *dtoa(double dd, int mode, int ndigits, int *decpt, int *sign,
1 ==> like 0, but with Steele & White stopping rule;
e.g. with IEEE P754 arithmetic , mode 0 gives
1e23 whereas mode 1 gives 9.999999999999999e22.
- 2 ==> max(1,ndigits) significant digits. This gives a
+ 2 ==> MY_MAX(1,ndigits) significant digits. This gives a
return value similar to that of ecvt, except
that trailing zeros are suppressed.
3 ==> through ndigits past the decimal point. This
diff --git a/strings/my_strtoll10.c b/strings/my_strtoll10.c
index 01c3697dcdf..c6ba5666dde 100644
--- a/strings/my_strtoll10.c
+++ b/strings/my_strtoll10.c
@@ -1,5 +1,5 @@
/* Copyright (c) 2003 TXT DataKonsult Ab
- Copyright (c) 2009-2011, Monty Program Ab
+ Copyright (c) 2009, 2013, Monty Program Ab.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
@@ -29,11 +29,11 @@
#include "strings_def.h"
#include <my_sys.h> /* Needed for MY_ERRNO_ERANGE */
-#define MAX_NEGATIVE_NUMBER ((ulonglong) LL(0x8000000000000000))
+#define MAX_NEGATIVE_NUMBER ((ulonglong) 0x8000000000000000ULL)
#define INIT_CNT 9
-#define LFACTOR ULL(1000000000)
-#define LFACTOR1 ULL(10000000000)
-#define LFACTOR2 ULL(100000000000)
+#define LFACTOR 1000000000ULL
+#define LFACTOR1 10000000000ULL
+#define LFACTOR2 100000000000ULL
static unsigned long lfactor[9]=
{
diff --git a/strings/my_vsnprintf.c b/strings/my_vsnprintf.c
index 18b92a1ef92..c31ae91921d 100644
--- a/strings/my_vsnprintf.c
+++ b/strings/my_vsnprintf.c
@@ -17,10 +17,14 @@
#include "strings_def.h"
#include <m_ctype.h>
#include <stdarg.h>
+#include <my_sys.h>
+#include <my_base.h>
+#include <my_handler_errors.h>
#define MAX_ARGS 32 /* max positional args count*/
#define MAX_PRINT_INFO 32 /* max print position count */
+#define MAX_WIDTH 65535
#define LENGTH_ARG 1
#define WIDTH_ARG 2
@@ -65,6 +69,7 @@ struct print_info
static const char *get_length(const char *fmt, size_t *length, uint *pre_zero)
{
+
for (; my_isdigit(&my_charset_latin1, *fmt); fmt++)
{
*length= *length * 10 + (uint)(*fmt - '0');
@@ -75,23 +80,28 @@ static const char *get_length(const char *fmt, size_t *length, uint *pre_zero)
}
-/**
- Calculates print width or index of positional argument
+/*
+ Get argument for '*' parameter
@param fmt processed string
- @param width print width or index of positional argument
+ @param args_arr Arguments to printf
+ @param arg_count Number of arguments to printf
+ @param length returns length of argument
+ @param flag returns flags with PREZERO_ARG set if necessary
- @retval
- string position right after width digits
+ @return new fmt
*/
-static const char *get_width(const char *fmt, size_t *width)
+static const char *get_length_arg(const char *fmt, ARGS_INFO *args_arr,
+ uint *arg_count, size_t *length, uint *flags)
{
- for (; my_isdigit(&my_charset_latin1, *fmt); fmt++)
- {
- *width= *width * 10 + (uint)(*fmt - '0');
- }
- return fmt;
+ fmt= get_length(fmt+1, length, flags);
+ *arg_count= MY_MAX(*arg_count, (uint) *length);
+ (*length)--;
+ DBUG_ASSERT(*fmt == '$' && *length < MAX_ARGS);
+ args_arr[*length].arg_type= 'd';
+ args_arr[*length].have_longlong= 0;
+ return fmt+1;
}
/**
@@ -123,6 +133,8 @@ static const char *check_longlong(const char *fmt, uint *have_longlong)
fmt++;
*have_longlong= (sizeof(size_t) == sizeof(longlong));
}
+ else if (*fmt == 'p')
+ *have_longlong= (sizeof(void *) == sizeof(longlong));
return fmt;
}
@@ -141,7 +153,7 @@ static const char *check_longlong(const char *fmt, uint *have_longlong)
position in buffer which points on the end of escaped string
*/
-static char *backtick_string(CHARSET_INFO *cs, char *to, char *end,
+static char *backtick_string(CHARSET_INFO *cs, char *to, const char *end,
char *par, size_t par_len, char quote_char)
{
uint char_len;
@@ -184,7 +196,7 @@ err:
Prints string argument
*/
-static char *process_str_arg(CHARSET_INFO *cs, char *to, char *end,
+static char *process_str_arg(CHARSET_INFO *cs, char *to, const char *end,
size_t width, char *par, uint print_type)
{
int well_formed_error;
@@ -227,11 +239,11 @@ static char *process_bin_arg(char *to, char *end, size_t width, char *par)
static char *process_dbl_arg(char *to, char *end, size_t width,
double par, char arg_type)
{
- if (width == SIZE_T_MAX)
+ if (width == MAX_WIDTH)
width= FLT_DIG; /* width not set, use default */
else if (width >= NOT_FIXED_DEC)
width= NOT_FIXED_DEC - 1; /* max.precision for my_fcvt() */
- width= min(width, (size_t)(end-to) - 1);
+ width= MY_MIN(width, (size_t)(end-to) - 1);
if (arg_type == 'f')
to+= my_fcvt(par, (int)width , to, NULL);
@@ -245,7 +257,7 @@ static char *process_dbl_arg(char *to, char *end, size_t width,
Prints integer argument
*/
-static char *process_int_arg(char *to, char *end, size_t length,
+static char *process_int_arg(char *to, const char *end, size_t length,
longlong par, char arg_type, uint print_type)
{
size_t res_length, to_length;
@@ -280,7 +292,7 @@ static char *process_int_arg(char *to, char *end, size_t length,
/* If %#d syntax was used, we have to pre-zero/pre-space the string */
if (store_start == buff)
{
- length= min(length, to_length);
+ length= MY_MIN(length, to_length);
if (res_length < length)
{
size_t diff= (length- res_length);
@@ -338,44 +350,31 @@ start:
/* Get print length */
if (*fmt == '*')
{
- fmt++;
- fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags);
- print_arr[idx].length--;
- DBUG_ASSERT(*fmt == '$' && print_arr[idx].length < MAX_ARGS);
- args_arr[print_arr[idx].length].arg_type= 'd';
- args_arr[print_arr[idx].length].have_longlong= 0;
+ fmt= get_length_arg(fmt, args_arr, &arg_count, &print_arr[idx].length,
+ &print_arr[idx].flags);
print_arr[idx].flags|= LENGTH_ARG;
- arg_count= max(arg_count, print_arr[idx].length + 1);
- fmt++;
}
else
fmt= get_length(fmt, &print_arr[idx].length, &print_arr[idx].flags);
if (*fmt == '.')
{
+ uint unused_flags= 0;
fmt++;
/* Get print width */
if (*fmt == '*')
{
- fmt++;
- fmt= get_width(fmt, &print_arr[idx].width);
- print_arr[idx].width--;
- DBUG_ASSERT(*fmt == '$' && print_arr[idx].width < MAX_ARGS);
- args_arr[print_arr[idx].width].arg_type= 'd';
- args_arr[print_arr[idx].width].have_longlong= 0;
+ fmt= get_length_arg(fmt, args_arr, &arg_count, &print_arr[idx].width,
+ &unused_flags);
print_arr[idx].flags|= WIDTH_ARG;
- arg_count= max(arg_count, print_arr[idx].width + 1);
- fmt++;
}
else
- fmt= get_width(fmt, &print_arr[idx].width);
+ fmt= get_length(fmt, &print_arr[idx].width, &unused_flags);
}
else
- print_arr[idx].width= SIZE_T_MAX;
+ print_arr[idx].width= MAX_WIDTH;
fmt= check_longlong(fmt, &args_arr[arg_index].have_longlong);
- if (*fmt == 'p')
- args_arr[arg_index].have_longlong= (sizeof(void *) == sizeof(longlong));
args_arr[arg_index].arg_type= print_arr[idx].arg_type= *fmt;
print_arr[idx].arg_idx= arg_index;
@@ -414,6 +413,7 @@ start:
else
args_arr[i].longlong_arg= va_arg(ap, uint);
break;
+ case 'M':
case 'c':
args_arr[i].longlong_arg= va_arg(ap, int);
break;
@@ -474,17 +474,36 @@ start:
? (size_t)args_arr[print_arr[i].length].longlong_arg
: print_arr[i].length;
- if (args_arr[print_arr[i].arg_idx].have_longlong)
- larg = args_arr[print_arr[i].arg_idx].longlong_arg;
- else if (print_arr[i].arg_type == 'd' || print_arr[i].arg_type == 'i' )
- larg = (int) args_arr[print_arr[i].arg_idx].longlong_arg;
- else
- larg= (uint) args_arr[print_arr[i].arg_idx].longlong_arg;
-
+ larg = args_arr[print_arr[i].arg_idx].longlong_arg;
to= process_int_arg(to, end, length, larg, print_arr[i].arg_type,
print_arr[i].flags);
break;
}
+ case 'M':
+ {
+ longlong larg;
+ const char *real_end;
+
+ width= (print_arr[i].flags & WIDTH_ARG)
+ ? (size_t)args_arr[print_arr[i].width].longlong_arg
+ : print_arr[i].width;
+
+ real_end= MY_MIN(to + width, end);
+
+ larg = args_arr[print_arr[i].arg_idx].longlong_arg;
+ to= process_int_arg(to, real_end, 0, larg, 'd', print_arr[i].flags);
+ if (real_end - to >= 3)
+ {
+ char errmsg_buff[MYSYS_STRERROR_SIZE];
+ *to++= ' ';
+ *to++= '"';
+ my_strerror(errmsg_buff, sizeof(errmsg_buff), larg);
+ to= process_str_arg(cs, to, real_end, width, errmsg_buff,
+ print_arr[i].flags);
+ if (real_end > to) *to++= '"';
+ }
+ break;
+ }
default:
break;
}
@@ -492,7 +511,8 @@ start:
if (to == end)
break;
- length= min(end - to , print_arr[i].end - print_arr[i].begin);
+ /* Copy data after the % format expression until next % */
+ length= MY_MIN(end - to , print_arr[i].end - print_arr[i].begin);
if (to + length < end)
length++;
to= strnmov(to, print_arr[i].begin, length);
@@ -503,16 +523,17 @@ start:
}
else
{
+ uint unused_flags= 0;
/* Process next positional argument*/
DBUG_ASSERT(*fmt == '%');
print_arr[idx].end= fmt - 1;
idx++;
fmt++;
arg_index= 0;
- fmt= get_width(fmt, &arg_index);
+ fmt= get_length(fmt, &arg_index, &unused_flags);
DBUG_ASSERT(*fmt == '$');
fmt++;
- arg_count= max(arg_count, arg_index);
+ arg_count= MY_MAX(arg_count, arg_index);
goto start;
}
@@ -587,6 +608,7 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n,
if (*fmt == '.')
{
+ uint unused_flags= 0;
fmt++;
if (*fmt == '*')
{
@@ -594,10 +616,10 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n,
width= va_arg(ap, int);
}
else
- fmt= get_width(fmt, &width);
+ fmt= get_length(fmt, &width, &unused_flags);
}
else
- width= SIZE_T_MAX;
+ width= MAX_WIDTH;
fmt= check_longlong(fmt, &have_longlong);
@@ -624,8 +646,6 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n,
{
/* Integer parameter */
longlong larg;
- if (*fmt == 'p')
- have_longlong= (sizeof(void *) == sizeof(longlong));
if (have_longlong)
larg = va_arg(ap,longlong);
@@ -646,9 +666,26 @@ size_t my_vsnprintf_ex(CHARSET_INFO *cs, char *to, size_t n,
*to++= (char) larg;
continue;
}
+ else if (*fmt == 'M')
+ {
+ int larg= va_arg(ap, int);
+ const char *real_end= MY_MIN(to + width, end);
+
+ to= process_int_arg(to, real_end, 0, larg, 'd', print_type);
+ if (real_end - to >= 3)
+ {
+ char errmsg_buff[MYSYS_STRERROR_SIZE];
+ *to++= ' ';
+ *to++= '"';
+ my_strerror(errmsg_buff, sizeof(errmsg_buff), larg);
+ to= process_str_arg(cs, to, real_end, width, errmsg_buff, print_type);
+ if (real_end > to) *to++= '"';
+ }
+ continue;
+ }
/* We come here on '%%', unknown code or too long parameter */
- if (to == end)
+ if (to >= end)
break;
*to++='%'; /* % used as % or unknown code */
}
@@ -698,7 +735,7 @@ int my_vfprintf(FILE *stream, const char* format, va_list args)
char cvtbuf[1024];
int alloc= 0;
char *p= cvtbuf;
- size_t cur_len= sizeof(cvtbuf);
+ size_t cur_len= sizeof(cvtbuf), actual;
int ret;
/*
@@ -709,7 +746,7 @@ int my_vfprintf(FILE *stream, const char* format, va_list args)
for (;;)
{
size_t new_len;
- size_t actual= my_vsnprintf(p, cur_len, format, args);
+ actual= my_vsnprintf(p, cur_len, format, args);
if (actual < cur_len - 1)
break;
/*
@@ -718,20 +755,22 @@ int my_vfprintf(FILE *stream, const char* format, va_list args)
and try again.
*/
if (alloc)
- (*my_str_free)(p);
+ my_free(p);
else
alloc= 1;
new_len= cur_len*2;
if (new_len < cur_len)
return 0; /* Overflow */
cur_len= new_len;
- p= (*my_str_malloc)(cur_len);
+ p= my_malloc(cur_len, MYF(MY_FAE));
if (!p)
return 0;
}
- ret= fprintf(stream, "%s", p);
+ ret= (int) actual;
+ if (fputs(p, stream) < 0)
+ ret= -1;
if (alloc)
- (*my_str_free)(p);
+ my_free(p);
return ret;
}
@@ -744,3 +783,67 @@ int my_fprintf(FILE *stream, const char* format, ...)
va_end(args);
return result;
}
+
+
+/*
+ Return system error text for given error number
+
+ @param buf Buffer (of size MYSYS_STRERROR_SIZE)
+ @param len Length of buffer
+ @param nr Error number
+*/
+
+void my_strerror(char *buf, size_t len, int nr)
+{
+ char *msg= NULL;
+
+ buf[0]= '\0'; /* failsafe */
+
+ if (nr <= 0)
+ {
+ strmake(buf, (nr == 0 ?
+ "Internal error/check (Not system error)" :
+ "Internal error < 0 (Not system error)"),
+ len-1);
+ return;
+ }
+
+ /*
+ These (handler-) error messages are shared by perror, as required
+ by the principle of least surprise.
+ */
+ if ((nr >= HA_ERR_FIRST) && (nr <= HA_ERR_LAST))
+ {
+ msg= (char *) handler_error_messages[nr - HA_ERR_FIRST];
+ strmake(buf, msg, len - 1);
+ }
+ else
+ {
+ /*
+ On Windows, do things the Windows way. On a system that supports both
+ the GNU and the XSI variant, use whichever was configured (GNU); if
+ this choice is not advertised, use the default (POSIX/XSI). Testing
+ for __GNUC__ is not sufficient to determine whether this choice exists.
+ */
+#if defined(__WIN__)
+ strerror_s(buf, len, nr);
+#elif ((defined _POSIX_C_SOURCE && (_POSIX_C_SOURCE >= 200112L)) || \
+ (defined _XOPEN_SOURCE && (_XOPEN_SOURCE >= 600))) && \
+ ! defined _GNU_SOURCE
+ strerror_r(nr, buf, len); /* I can build with or without GNU */
+#elif defined(__GLIBC__) && defined (_GNU_SOURCE)
+ char *r= strerror_r(nr, buf, len);
+ if (r != buf) /* Want to help, GNU? */
+ strmake(buf, r, len - 1); /* Then don't. */
+#else
+ strerror_r(nr, buf, len);
+#endif
+ }
+
+ /*
+ strerror() return values are implementation-dependent, so let's
+ be pragmatic.
+ */
+ if (!buf[0])
+ strmake(buf, "unknown error", len - 1);
+}
diff --git a/strings/str2int.c b/strings/str2int.c
index 64d4e169891..fe6cd6b793e 100644
--- a/strings/str2int.c
+++ b/strings/str2int.c
@@ -45,7 +45,7 @@
easy task. Coping with integer overflow and the asymmetric range of
twos complement machines is anything but easy.
- So that users of atoi and atol can check whether an error occured,
+ So that users of atoi and atol can check whether an error occurred,
I have taken a wholly unprecedented step: errno is CLEARED if this
call has no problems.
*/
@@ -94,7 +94,7 @@ char *str2int(register const char *src, register int radix, long int lower,
machines all, if +|n| is representable, so is -|n|, but on
twos complement machines the converse is not true. So the
"maximum" representable number has a negative representative.
- Limit is set to min(-|lower|,-|upper|); this is the "largest"
+ Limit is set to MY_MIN(-|lower|,-|upper|); this is the "largest"
number we are concerned with. */
/* Calculate Limit using Scale as a scratch variable */
diff --git a/strings/str_alloc.c b/strings/str_alloc.c
deleted file mode 100644
index 330e597b6f5..00000000000
--- a/strings/str_alloc.c
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright (c) 2005, 2006 MySQL AB
- Copyright (c) 2009-2011, Monty Program Ab
- Use is subject to license terms.
- Copyright (c) 2009-2011, Monty Program Ab
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; version 2 of the License.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA */
-
-#include "strings_def.h"
-
-static void *my_str_malloc_default(size_t size)
-{
- void *ret= malloc(size);
- if (!ret)
- exit(1);
- return ret;
-}
-
-static void my_str_free_default(void *ptr)
-{
- free(ptr);
-}
-
-void *(*my_str_malloc)(size_t)= &my_str_malloc_default;
-void (*my_str_free)(void *)= &my_str_free_default;
diff --git a/strings/strcoll.ic b/strings/strcoll.ic
new file mode 100644
index 00000000000..b0556cfac43
--- /dev/null
+++ b/strings/strcoll.ic
@@ -0,0 +1,275 @@
+/*
+ Copyright (c) 2015, MariaDB Foundation
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 of the License.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335 USA
+*/
+
+
+#ifndef MY_FUNCTION_NAME
+#error MY_FUNCTION_NAME is not defined
+#endif
+
+
+/*
+ The weight for automatically padded spaces when comparing strings with
+ the PAD SPACE property.
+ Should normally be equal to the weight of a regular space.
+*/
+#ifndef WEIGHT_PAD_SPACE
+#define WEIGHT_PAD_SPACE (' ')
+#endif
+
+
+/*
+ Weight of an illegal byte, must follow these rules:
+ 1. Must be greater than weight of any normal character in the collation.
+ 2. Two different bad bytes must have different weights and must be
+ compared in their binary order.
+
+ Depends on mbmaxlen of the character set, as well as how the collation
+ sorts various single-byte and multi-byte character blocks.
+
+ The macro below is the default definition, it is suitable for mbmaxlen=2
+ character sets that sort all multi-byte characters after all single-byte
+ characters: big5, euckr, gb2312, gbk.
+
+ All mbmaxlen>2 character sets must provide their own definitions.
+ All collations that have a more complex order (than just MB1 followed by MB2)
+ must also provide their own definitions (see definitions for
+ cp932_japanese_ci and sjis_japanese_ci as examples of a more complex order).
+*/
+#ifndef WEIGHT_ILSEQ
+#define WEIGHT_ILSEQ(x) (0xFF00 + (x))
+#endif
+
+
+/**
+ Scan a valid character, or a bad byte, or an auto-padded space
+ from a string and calculate the weight of the scanned sequence.
+
+ @param [OUT] weight - the weight is returned here
+ @param str - the string
+ @param end - the end of the string
+ @return - the number of bytes scanned
+
+ The including source file must define the following macros:
+ IS_MB1_CHAR(b0) - for character sets that have MB1 characters
+ IS_MB1_MB2HEAD_GAP(b0) - optional, for better performance
+ IS_MB2_CHAR(b0,b1) - for character sets that have MB2 characters
+ IS_MB3_CHAR(b0,b1,b2) - for character sets that have MB3 characters
+ IS_MB4_CHAR(b0,b1,b2,b3) - for character sets with have MB4 characters
+ WEIGHT_PAD_SPACE
+ WEIGHT_MB1(b0) - for character sets that have MB1 characters
+ WEIGHT_MB2(b0,b1) - for character sets that have MB2 characters
+ WEIGHT_MB3(b0,b1,b2) - for character sets that have MB3 characters
+ WEIGHT_MB4(b0,b1,b2,b3) - for character sets that have MB4 characters
+ WEIGHT_ILSEQ(x)
+*/
+static inline uint
+MY_FUNCTION_NAME(scan_weight)(int *weight, const uchar *str, const uchar *end)
+{
+ if (str >= end)
+ {
+ *weight= WEIGHT_PAD_SPACE;
+ return 0;
+ }
+
+#ifdef IS_MB1_CHAR
+ if (IS_MB1_CHAR(*str))
+ {
+ *weight= WEIGHT_MB1(*str); /* A valid single byte character*/
+ return 1;
+ }
+#endif
+
+#ifdef IS_MB1_MBHEAD_UNUSED_GAP
+ /*
+ Quickly filter out unused bytes that are neither MB1 nor MBHEAD.
+ E.g. [0x80..0xC1] in utf8. This allows using simplified conditions
+ in IS_MB2_CHAR(), IS_MB3_CHAR(), etc.
+ */
+ if (IS_MB1_MBHEAD_UNUSED_GAP(*str))
+ goto bad;
+#endif
+
+#ifdef IS_MB2_CHAR
+ if (str + 2 > end) /* The string ended unexpectedly */
+ goto bad; /* Treat as a bad byte */
+
+ if (IS_MB2_CHAR(str[0], str[1]))
+ {
+ *weight= WEIGHT_MB2(str[0], str[1]);
+ return 2; /* A valid two-byte character */
+ }
+#endif
+
+#ifdef IS_MB3_CHAR
+ if (str + 3 > end) /* Incomplete three-byte character */
+ goto bad;
+
+ if (IS_MB3_CHAR(str[0], str[1], str[2]))
+ {
+ *weight= WEIGHT_MB3(str[0], str[1], str[2]);
+ return 3; /* A valid three-byte character */
+ }
+#endif
+
+#ifdef IS_MB4_CHAR
+ if (str + 4 > end) /* Incomplete four-byte character */
+ goto bad;
+
+ if (IS_MB4_CHAR(str[0], str[1], str[2], str[3]))
+ {
+ *weight= WEIGHT_MB4(str[0], str[1], str[2], str[3]);
+ return 4; /* A valid four-byte character */
+ }
+
+#endif
+
+bad:
+ *weight= WEIGHT_ILSEQ(str[0]); /* Bad byte */
+ return 1;
+}
+
+
+/**
+ Compare two strings according to the collation,
+ without handling the PAD SPACE property.
+
+ Note, cs->coll->strnncoll() is usually used to compare identifiers.
+ Perhaps we should eventually (in 10.2?) create a new collation
+ my_charset_utf8_general_ci_no_pad and have only one comparison function
+ in MY_COLLATION_HANDLER.
+
+ @param cs - the character set and collation
+ @param a - the left string
+ @param a_length - the length of the left string
+ @param b - the right string
+ @param b_length - the length of the right string
+ @param b_is_prefix - if the caller wants to check if "b" is a prefix of "a"
+ @return - the comparison result
+*/
+static int
+MY_FUNCTION_NAME(strnncoll)(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *a, size_t a_length,
+ const uchar *b, size_t b_length,
+ my_bool b_is_prefix)
+{
+ const uchar *a_end= a + a_length;
+ const uchar *b_end= b + b_length;
+ for ( ; ; )
+ {
+ int a_weight, b_weight, res;
+ uint a_wlen= MY_FUNCTION_NAME(scan_weight)(&a_weight, a, a_end);
+ uint b_wlen= MY_FUNCTION_NAME(scan_weight)(&b_weight, b, b_end);
+ /*
+ a_wlen b_wlen Comment
+ ------ ------ -------
+ 0 0 Strings ended simultaneously, "a" and "b" are equal.
+ 0 >0 "a" is a prefix of "b", so "a" is smaller.
+ >0 0 "b" is a prefix of "a", check b_is_prefix.
+ >0 >0 Two weights were scanned, check weight difference.
+ */
+ if (!a_wlen)
+ return b_wlen ? -b_weight : 0;
+
+ if (!b_wlen)
+ return b_is_prefix ? 0 : a_weight;
+
+ if ((res= (a_weight - b_weight)))
+ return res;
+ /*
+ None of the strings has ended yet.
+ */
+ DBUG_ASSERT(a < a_end);
+ DBUG_ASSERT(b < b_end);
+ a+= a_wlen;
+ b+= b_wlen;
+ }
+ DBUG_ASSERT(0);
+ return 0;
+}
+
+
+/**
+ Compare two strings according to the collation, with PAD SPACE handling.
+
+ @param cs - the character set and collation
+ @param a - the left string
+ @param a_length - the length of the left string
+ @param b - the right string
+ @param b_length - the length of the right string
+ @param diff_if_only_endspace_difference - not used in the code.
+ TODO: this should be eventually removed (in 10.2?)
+ @return - the comparison result
+*/
+
+static int
+MY_FUNCTION_NAME(strnncollsp)(CHARSET_INFO *cs __attribute__((unused)),
+ const uchar *a, size_t a_length,
+ const uchar *b, size_t b_length,
+ my_bool diff_if_only_endspace_difference
+ __attribute__((unused)))
+{
+ const uchar *a_end= a + a_length;
+ const uchar *b_end= b + b_length;
+ for ( ; ; )
+ {
+ int a_weight, b_weight, res;
+ uint a_wlen= MY_FUNCTION_NAME(scan_weight)(&a_weight, a, a_end);
+ uint b_wlen= MY_FUNCTION_NAME(scan_weight)(&b_weight, b, b_end);
+ if ((res= (a_weight - b_weight)))
+ {
+ /*
+ Got two different weights. Each weight can be generated by either of:
+ - a real character
+ - a bad byte sequence or an incomplete byte sequence
+ - an auto-generated trailing space (PAD SPACE)
+ It does not matter how exactly each weight was generated.
+ Just return the weight difference.
+ */
+ return res;
+ }
+ if (!a_wlen && !b_wlen)
+ {
+ /*
+ Got two auto-generated trailing spaces, i.e.
+ both strings have now ended, so they are equal.
+ */
+ DBUG_ASSERT(a == a_end);
+ DBUG_ASSERT(b == b_end);
+ return 0;
+ }
+ /*
+ At least one of the strings has not ended yet, continue comparison.
+ */
+ DBUG_ASSERT(a < a_end || b < b_end);
+ a+= a_wlen;
+ b+= b_wlen;
+ }
+ DBUG_ASSERT(0);
+ return 0;
+}
+
+/*
+ We usually include this file at least two times from the same source file,
+ for the _ci and the _bin collations. Prepare for the second inclusion.
+*/
+#undef MY_FUNCTION_NAME
+#undef WEIGHT_ILSEQ
+#undef WEIGHT_MB1
+#undef WEIGHT_MB2
+#undef WEIGHT_MB3
+#undef WEIGHT_MB4
+#undef WEIGHT_PAD_SPACE
diff --git a/strings/strings_def.h b/strings/strings_def.h
index 29800eddf05..e137c796045 100644
--- a/strings/strings_def.h
+++ b/strings/strings_def.h
@@ -100,4 +100,13 @@ static inline const uchar *skip_trailing_space(const uchar *ptr,size_t len)
end--;
return (end);
}
+
+/* Macros for hashing characters */
+
+#define MY_HASH_ADD(A, B, value) \
+ do { A^= (((A & 63)+B)*((value)))+ (A << 8); B+=3; } while(0)
+
+#define MY_HASH_ADD_16(A, B, value) \
+ do { MY_HASH_ADD(A, B, ((value) & 0xFF)) ; MY_HASH_ADD(A, B, ((value >>8 ))); } while(0)
+
#endif
diff --git a/strings/strmov.c b/strings/strmov.c
index b38d5db5d6e..0f594185688 100644
--- a/strings/strmov.c
+++ b/strings/strmov.c
@@ -40,6 +40,7 @@
char *strmov(register char *dst, register const char *src)
{
+ DBUG_ASSERT(src + strlen(src) < dst || dst + strlen(src) < src);
while ((*dst++ = *src++)) ;
return dst-1;
}
diff --git a/strings/uca-dump.c b/strings/uca-dump.c
index 59de9df39fd..837dd7f3c30 100644
--- a/strings/uca-dump.c
+++ b/strings/uca-dump.c
@@ -35,19 +35,29 @@ struct uca_item_st
#define MY_UCA_CMASK 63
#define MY_UCA_PSHIFT 6
#else
-#define MY_UCA_NPAGES 256
+#define MY_UCA_NPAGES 4352 /* 0x110000 characters / 0x100 chars per page */
#define MY_UCA_NCHARS 256
#define MY_UCA_CMASK 255
#define MY_UCA_PSHIFT 8
#endif
-static char *pname[]= {"", "2", "3"};
+#define MAX_ALLOWED_CODE 0x10FFFF
+
+/* Name that goes into all array names */
+static const char *global_name_prefix= "uca520";
+
+/* Name prefix that goes into page weight array names after global_name_prefix */
+static char *pname_prefix[]= {"_p", "_p", "_p"};
+
+/* Name suffix that goes into page weight array names after page number */
+static char *pname_suffix[]= {"", "_w2", "_w3"};
+
int main(int ac, char **av)
{
char str[256];
char *weights[64];
- struct uca_item_st uca[64*1024];
+ static struct uca_item_st uca[MAX_ALLOWED_CODE+1];
size_t code, w;
int pageloaded[MY_UCA_NPAGES];
@@ -63,7 +73,7 @@ int main(int ac, char **av)
code= strtol(str,NULL,16);
- if (str[0]=='#' || (code > 0xFFFF))
+ if (str[0]=='#' || (code > MAX_ALLOWED_CODE))
continue;
if ((comment=strchr(str,'#')))
{
@@ -129,7 +139,7 @@ int main(int ac, char **av)
/* Now set implicit weights */
- for (code=0; code <= 0xFFFF; code++)
+ for (code=0; code <= MAX_ALLOWED_CODE; code++)
{
size_t base, aaaa, bbbb;
@@ -173,7 +183,7 @@ int main(int ac, char **av)
printf("#define MY_UCA_NCHARS %d\n",MY_UCA_NCHARS);
printf("#define MY_UCA_CMASK %d\n",MY_UCA_CMASK);
printf("#define MY_UCA_PSHIFT %d\n",MY_UCA_PSHIFT);
-
+
for (w=0; w<3; w++)
{
size_t page;
@@ -186,6 +196,7 @@ int main(int ac, char **av)
size_t nchars= 0;
size_t mchars;
size_t ndefs= 0;
+ size_t code_line_start= page * MY_UCA_NCHARS;
pagemaxlen[page]= 0;
@@ -256,8 +267,9 @@ int main(int ac, char **av)
*/
- printf("uint16 page%03Xdata%s[]= { /* %04X (%d weights per char) */\n",
- page, pname[w], page*MY_UCA_NCHARS, maxnum);
+ printf("static const uint16 %s%s%03X%s[]= { /* %04X (%d weights per char) */\n",
+ global_name_prefix, pname_prefix[w], (int) page, pname_suffix[w],
+ (int) page*MY_UCA_NCHARS, (int) maxnum);
for (offs=0; offs < MY_UCA_NCHARS; offs++)
{
@@ -293,11 +305,14 @@ int main(int ac, char **av)
printf("0x%04X", tmp);
if ((offs+1 != MY_UCA_NCHARS) || (i+1!=maxnum))
printf(",");
+ else
+ printf(" ");
nchars++;
}
if (nchars >=mchars)
{
- printf("\n");
+ printf(" /* %04X */\n", (int) code_line_start);
+ code_line_start= code + 1;
nchars=0;
}
else
@@ -308,7 +323,8 @@ int main(int ac, char **av)
printf("};\n\n");
}
- printf("uchar uca_length%s[%d]={\n", pname[w], MY_UCA_NPAGES);
+ printf("const uchar %s_length%s[%d]={\n",
+ global_name_prefix, pname_suffix[w], MY_UCA_NPAGES);
for (page=0; page < MY_UCA_NPAGES; page++)
{
printf("%d%s%s",pagemaxlen[page],page<MY_UCA_NPAGES-1?",":"",(page+1) % 16 ? "":"\n");
@@ -316,7 +332,8 @@ int main(int ac, char **av)
printf("};\n");
- printf("uint16 *uca_weight%s[%d]={\n", pname[w], MY_UCA_NPAGES);
+ printf("static const uint16 *%s_weight%s[%d]={\n",
+ global_name_prefix, pname_suffix[w], MY_UCA_NPAGES);
for (page=0; page < MY_UCA_NPAGES; page++)
{
const char *comma= page < MY_UCA_NPAGES-1 ? "," : "";
@@ -324,7 +341,9 @@ int main(int ac, char **av)
if (!pagemaxlen[page])
printf("NULL %s%s%s", w ? " ": "", comma , nline);
else
- printf("page%03Xdata%s%s%s", page, pname[w], comma, nline);
+ printf("%s%s%03X%s%s%s",
+ global_name_prefix, pname_prefix[w], (int) page, pname_suffix[w],
+ comma, nline);
}
printf("};\n");
}
diff --git a/strings/xml.c b/strings/xml.c
index 80e94e596be..0178ea2574e 100644
--- a/strings/xml.c
+++ b/strings/xml.c
@@ -15,7 +15,9 @@
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1335 USA */
#include "strings_def.h"
+#include "m_string.h"
#include "my_xml.h"
+#include "my_sys.h"
#define MY_XML_UNKNOWN 'U'
@@ -207,25 +209,71 @@ static int my_xml_value(MY_XML_PARSER *st, const char *str, size_t len)
}
-static int my_xml_enter(MY_XML_PARSER *st, const char *str, size_t len)
+/**
+ Ensure the attr buffer is wide enough to hold the new value
+
+ Expand and/or allocate dynamic buffer as needed to hold the concatenated
+ path and the terminating zero.
+
+ @attr st the parser instance
+ @attr len the length of the attribute to be added
+ @return state
+ @retval 1 failed
+ @retval 0 success
+*/
+static int my_xml_attr_ensure_space(MY_XML_PARSER *st, size_t len)
{
- if ((size_t) (st->attrend-st->attr+len+1) > sizeof(st->attr))
+ size_t ofs= st->attr.end - st->attr.start;
+ len++; // Add terminating zero.
+ if (ofs + len > st->attr.buffer_size)
{
- sprintf(st->errstr,"To deep XML");
- return MY_XML_ERROR;
+ st->attr.buffer_size= (SIZE_T_MAX - len) / 2 > st->attr.buffer_size ?
+ st->attr.buffer_size * 2 + len : SIZE_T_MAX;
+
+ if (!st->attr.buffer)
+ {
+ st->attr.buffer= (char *) my_malloc(st->attr.buffer_size, MYF(0));
+ if (st->attr.buffer)
+ memcpy(st->attr.buffer, st->attr.static_buffer, ofs + 1 /*term. zero */);
+ }
+ else
+ st->attr.buffer= (char *) my_realloc(st->attr.buffer,
+ st->attr.buffer_size, MYF(0));
+ st->attr.start= st->attr.buffer;
+ st->attr.end= st->attr.start + ofs;
+
+ return st->attr.buffer ? MY_XML_OK : MY_XML_ERROR;
}
- if (st->attrend > st->attr)
+ return MY_XML_OK;
+}
+
+
+/** rewind the attr buffer to initial state */
+static void my_xml_attr_rewind(MY_XML_PARSER *p)
+{
+ /* keep the buffer already allocated */
+ p->attr.end= p->attr.start;
+}
+
+
+static int my_xml_enter(MY_XML_PARSER *st, const char *str, size_t len)
+{
+ if (my_xml_attr_ensure_space(st, len + 1 /* the separator char */))
+ return MY_XML_ERROR;
+
+ if (st->attr.end > st->attr.start)
{
- st->attrend[0]= '/';
- st->attrend++;
+ st->attr.end[0]= '/';
+ st->attr.end++;
}
- memcpy(st->attrend,str,len);
- st->attrend+=len;
- st->attrend[0]='\0';
+ memcpy(st->attr.end, str, len);
+ st->attr.end+= len;
+ st->attr.end[0]= '\0';
if (st->flags & MY_XML_FLAG_RELATIVE_NAMES)
return st->enter ? st->enter(st, str, len) : MY_XML_OK;
else
- return st->enter ? st->enter(st,st->attr,st->attrend-st->attr) : MY_XML_OK;
+ return st->enter ?
+ st->enter(st, st->attr.start, st->attr.end - st->attr.start) : MY_XML_OK;
}
@@ -246,10 +294,10 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, size_t slen)
int rc;
/* Find previous '/' or beginning */
- for (e=p->attrend; (e>p->attr) && (e[0] != '/') ; e--);
- glen = (size_t) ((e[0] == '/') ? (p->attrend-e-1) : p->attrend-e);
+ for (e= p->attr.end; (e > p->attr.start) && (e[0] != '/') ; e--);
+ glen= (size_t) ((e[0] == '/') ? (p->attr.end - e - 1) : p->attr.end - e);
tag= e[0] == '/' ? e + 1 : e;
-
+
if (str && (slen != glen || memcmp(str, tag, slen)))
{
mstr(s,str,sizeof(s)-1,slen);
@@ -266,11 +314,12 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, size_t slen)
if (p->flags & MY_XML_FLAG_RELATIVE_NAMES)
rc= p->leave_xml ? p->leave_xml(p, str, slen) : MY_XML_OK;
else
- rc= (p->leave_xml ? p->leave_xml(p,p->attr,p->attrend-p->attr) :
+ rc= (p->leave_xml ?
+ p->leave_xml(p, p->attr.start, p->attr.end - p->attr.start) :
MY_XML_OK);
*e='\0';
- p->attrend=e;
+ p->attr.end= e;
return rc;
}
@@ -278,7 +327,9 @@ static int my_xml_leave(MY_XML_PARSER *p, const char *str, size_t slen)
int my_xml_parse(MY_XML_PARSER *p,const char *str, size_t len)
{
- p->attrend=p->attr;
+
+ my_xml_attr_rewind(p);
+
p->beg=str;
p->cur=str;
p->end=str+len;
@@ -433,7 +484,7 @@ gt:
}
}
- if (p->attr[0])
+ if (p->attr.start[0])
{
sprintf(p->errstr,"unexpected END-OF-INPUT");
return MY_XML_ERROR;
@@ -444,12 +495,22 @@ gt:
void my_xml_parser_create(MY_XML_PARSER *p)
{
- bzero((void*)p,sizeof(p[0]));
+ memset(p, 0, sizeof(p[0]));
+ /*
+ Use static buffer while it's sufficient.
+ */
+ p->attr.start= p->attr.end= p->attr.static_buffer;
+ p->attr.buffer_size= sizeof(p->attr.static_buffer);
}
-void my_xml_parser_free(MY_XML_PARSER *p __attribute__((unused)))
+void my_xml_parser_free(MY_XML_PARSER *p)
{
+ if (p->attr.buffer)
+ {
+ my_free(p->attr.buffer);
+ p->attr.buffer= NULL;
+ }
}