Browse Source

Plan 9 from Bell Labs 2013-04-25

David du Colombier 7 years ago
parent
commit
47d488b865

+ 0 - 2
sys/man/1/sort

@@ -256,7 +256,5 @@ The result can make a sub-field not sort
 less than a longer field.
 .PP
 Some of the options, e.g.
-.B -i
-and
 .BR -M ,
 are hopelessly provincial.

+ 7 - 1
sys/man/2/isalpharune

@@ -1,6 +1,6 @@
 .TH ISALPHARUNE 2
 .SH NAME
-isalpharune, islowerrune, isspacerune, istitlerune, isupperrune, isdigitrune, tolowerrune, totitlerune, toupperrune \- Unicode character classes and cases
+isalpharune, isbaserune, islowerrune, isspacerune, istitlerune, isupperrune, isdigitrune, tobaserune, tolowerrune, totitlerune, toupperrune \- Unicode character classes and cases
 .SH SYNOPSIS
 .B #include <u.h>
 .br
@@ -10,6 +10,9 @@ isalpharune, islowerrune, isspacerune, istitlerune, isupperrune, isdigitrune, to
 int isalpharune(Rune c)
 .PP
 .B
+int isbaserune(Rune c)
+.PP
+.B
 int islowerrune(Rune c)
 .PP
 .B
@@ -25,6 +28,9 @@ int isupperrune(Rune c)
 int isdigitrune(Rune c)
 .PP
 .B
+Rune tobaserune(Rune c)
+.PP
+.B
 Rune tolowerrune(Rune c)
 .PP
 .B

+ 9 - 2
sys/man/6/keyboard

@@ -69,7 +69,7 @@ The arrow key ↑ scrolls backward.
 .PP
 Characters in Plan 9 are runes (see
 .IR utf (6)).
-Any 16-bit rune can be typed using a compose key followed by several
+Any rune can be typed using a compose key followed by several
 other keys.
 The compose key is also generally near the lower right of the main key area:
 the
@@ -89,8 +89,15 @@ and exactly four hexadecimal characters (digits and
 .L a
 to
 .LR f )
-to type a single rune with the value represented by
+to type a single two-byte rune with the value represented by
 the typed number.
+Type a lower case
+.L x
+and exactly
+.I UTFmax*2
+hexadecimal characters to type a single
+.I UTFmax
+bytes rune.
 There are shorthands for many characters, comprising
 the compose key followed by a two- or three-character sequence.
 There are several rules guiding the design of the sequences, as

+ 1 - 1
sys/man/7/dict

@@ -55,7 +55,7 @@ Patterns are matched against an index of headwords and variants,
 to form a `match set'.
 By default, both patterns and the index are folded:
 upper case characters are mapped into their lower case equivalents,
-and Latin accented characters are mapped into their non-accented
+and accented characters are mapped into their base
 equivalents.
 In interactive mode, there is always a `current match set'
 and a `current entry' within the match set.

+ 11 - 5
sys/src/ape/lib/ap/plan9/frexp.c

@@ -6,6 +6,7 @@
 #define	MASK	0x7ffL
 #define	SHIFT	20
 #define	BIAS	1022L
+#define	SIG	52
 
 typedef	union
 {
@@ -25,13 +26,18 @@ typedef	union
 double
 frexp(double d, int *ep)
 {
-	Cheat x;
+	Cheat x, a;
 
-	if(d == 0) {
-		*ep = 0;
-		return 0;
-	}
+	*ep = 0;
+	/* order matters: only isNaN can operate on NaN */
+	if(isNaN(d) || isInf(d, 0) || d == 0)
+		return d;
 	x.d = d;
+	a.d = fabs(d);
+	if((a.ms >> SHIFT) == 0){	/* normalize subnormal numbers */
+		x.d = (double)(1ULL<<SIG) * d;
+		*ep = -SIG;
+	}
 	*ep = ((x.ms >> SHIFT) & MASK) - BIAS;
 	x.ms &= ~(MASK << SHIFT);
 	x.ms |= BIAS << SHIFT;

+ 7 - 37
sys/src/cmd/dict/utils.c

@@ -230,34 +230,6 @@ Rune *multitab[Nmulti] = {
 [MES-MULTI]	L"  ",
 };
 
-#define	risupper(r)	(L'A' <= (r) && (r) <= L'Z')
-#define	rislatin1(r)	(0xC0 <= (r) && (r) <= 0xFF)
-#define	rtolower(r)	((r)-'A'+'a')
-
-static Rune latin_fold_tab[] =
-{
-/*	Table to fold latin 1 characters to ASCII equivalents
-			based at Rune value 0xc0
-
-	 À    Á    Â    Ã    Ä    Å    Æ    Ç
-	 È    É    Ê    Ë    Ì    Í    Î    Ï
-	 Ð    Ñ    Ò    Ó    Ô    Õ    Ö    ×
-	 Ø    Ù    Ú    Û    Ü    Ý    Þ    ß
-	 à    á    â    ã    ä    å    æ    ç
-	 è    é    ê    ë    ì    í    î    ï
-	 ð    ñ    ò    ó    ô    õ    ö    ÷
-	 ø    ù    ú    û    ü    ý    þ    ÿ
-*/
-	'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c',
-	'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i',
-	'd', 'n', 'o', 'o', 'o', 'o', 'o',  0 ,
-	'o', 'u', 'u', 'u', 'u', 'y',  0 ,  0 ,
-	'a', 'a', 'a', 'a', 'a', 'a', 'a', 'c',
-	'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i',
-	'd', 'n', 'o', 'o', 'o', 'o', 'o',  0 ,
-	'o', 'u', 'u', 'u', 'u', 'y',  0 , 'y',
-};
-
 static Rune 	*ttabstack[20];
 static int	ntt;
 
@@ -426,7 +398,7 @@ outnl(int ind)
 /*
  * Fold the runes in null-terminated rp.
  * Use the sort(1) definition of folding (uppercase to lowercase,
- * latin1-accented characters to corresponding unaccented chars)
+ * accented characters to corresponding unaccented chars)
  */
 void
 fold(Rune *rp)
@@ -434,10 +406,9 @@ fold(Rune *rp)
 	Rune r;
 
 	while((r = *rp) != 0) {
-		if (rislatin1(r) && latin_fold_tab[r-0xc0])
-				r = latin_fold_tab[r-0xc0];
-		if(risupper(r))
-			r = rtolower(r);
+		r = tobaserune(r);
+		if(isupperrune(r))
+			r = tolowerrune(r);
 		*rp++ = r;
 	}
 }
@@ -455,10 +426,9 @@ foldre(char *new, char *old)
 
 	while(*old) {
 		old += chartorune(&r, old);
-		if (rislatin1(r) && latin_fold_tab[r-0xc0])
-				r = latin_fold_tab[r-0xc0];
-		if(risupper(r))
-			r = rtolower(r);
+		r = tobaserune(r);
+		if(isupperrune(r))
+			r = tolowerrune(r);
 		new += runetochar(new, &r);
 	}
 	*new = 0;

+ 21 - 57
sys/src/cmd/sort.c

@@ -71,7 +71,7 @@ struct	Field
 	int	end2;
 
 	long	flags;
-	uchar	mapto[256];
+	uchar	mapto[1+0xffff];	/* this is not Runemax to keep this table small */
 
 	void	(*dokey)(Key*, uchar*, uchar*, Field*);
 };
@@ -95,7 +95,6 @@ struct args
 	long	mline;			/* max lines per file */
 } args;
 
-extern	int	latinmap[];
 extern	Rune*	month[12];
 
 void	buildkey(Line*);
@@ -1293,15 +1292,26 @@ dokey_dfi(Key *k, uchar *lp, uchar *lpe, Field *f)
 		/*
 		 * for characters out of range,
 		 * the table does not do Rflag.
-		 * ignore is based on mapto[255]
+		 * ignore is based on mapto[nelem(f->mapto)]
 		 */
 		if(c != 0 && c < nelem(f->mapto)) {
 			c = f->mapto[c];
 			if(c == 0)
 				continue;
-		} else
+		} else {
 			if(f->mapto[nelem(f->mapto)-1] == 0)
 				continue;
+			/*
+			 * consider building maps as necessary
+			 */
+			if(f->flags & Fflag)
+				c = tolowerrune(tobaserune(c));
+			if(f->flags & Dflag && !isalpharune(c) &&
+			    !isdigitrune(c) && !isspacerune(c))
+				continue;
+			if((f->flags & Wflag) && isspacerune(c))
+				continue;
+		}
 
 		/*
 		 * put it in the key
@@ -1430,7 +1440,8 @@ buildkey(Line *l)
 	k->klen = cl;
 
 	if(args.vflag) {
-		write(2, l->line, l->llen);
+		if(write(2, l->line, l->llen) != l->llen)
+			exits("write");
 		for(i=0; i<k->klen; i++) {
 			fprint(2, " %.2x", k->key[i]);
 			if(k->key[i] == 0x00 || k->key[i] == 0xff)
@@ -1466,7 +1477,7 @@ makemapm(Field *f)
 void
 makemapd(Field *f)
 {
-	int i, j, c;
+	int i, c;
 
 	for(i=0; i<nelem(f->mapto); i++) {
 		c = i;
@@ -1480,24 +1491,12 @@ makemapd(Field *f)
 			if(!(c == ' ' || c == '\t' ||
 			    (c >= 'a' && c <= 'z') ||
 			    (c >= 'A' && c <= 'Z') ||
-			    (c >= '0' && c <= '9'))) {
-				for(j=0; latinmap[j]; j+=3)
-					if(c == latinmap[j+0] ||
-					   c == latinmap[j+1])
-						break;
-				if(latinmap[j] == 0)
+			    (c >= '0' && c <= '9'))){
+				if(!isupperrune(c = toupperrune(c)))
 					c = -1;
 			}
-		if((f->flags & Fflag) && c >= 0) {
-			if(c >= 'a' && c <= 'z')
-				c += 'A' - 'a';
-			for(j=0; latinmap[j]; j+=3)
-				if(c == latinmap[j+0] ||
-				   c == latinmap[j+1]) {
-					c = latinmap[j+2];
-					break;
-				}
-		}
+		if((f->flags & Fflag) && c >= 0)
+			c = toupperrune(tobaserune(c));
 		if((f->flags & Rflag) && c >= 0 && i > 0 && i < Runeself)
 			c = ~c & 0xff;
 		if(c < 0)
@@ -1513,41 +1512,6 @@ makemapd(Field *f)
 	}
 }
 
-int	latinmap[] =
-{
-/*	lcase	ucase	fold	*/
-	L'à',	L'À',	L'A',	
-	L'á',	L'Á',	L'A',	
-	L'â',	L'Â',	L'A',	
-	L'ä',	L'Ä',	L'A',	
-	L'ã',	L'Ã',	L'A',	
-	L'å',	L'Å',	L'A',	
-	L'è',	L'È',	L'E',	
-	L'é',	L'É',	L'E',	
-	L'ê',	L'Ê',	L'E',	
-	L'ë',	L'Ë',	L'E',	
-	L'ì',	L'Ì',	L'I',	
-	L'í',	L'Í',	L'I',	
-	L'î',	L'Î',	L'I',	
-	L'ï',	L'Ï',	L'I',	
-	L'ò',	L'Ò',	L'O',	
-	L'ó',	L'Ó',	L'O',	
-	L'ô',	L'Ô',	L'O',	
-	L'ö',	L'Ö',	L'O',	
-	L'õ',	L'Õ',	L'O',	
-	L'ø',	L'Ø',	L'O',	
-	L'ù',	L'Ù',	L'U',	
-	L'ú',	L'Ú',	L'U',	
-	L'û',	L'Û',	L'U',	
-	L'ü',	L'Ü',	L'U',	
-	L'æ',	L'Æ',	L'A',	
-	L'ð',	L'Ð',	L'D',	
-	L'ñ',	L'Ñ',	L'N',	
-	L'ý',	L'Ý',	L'Y',	
-	L'ç',	L'Ç',	L'C',	
-	0,
-};
-
 Rune*	month[12] =
 {
 	L"JAN",

+ 11 - 5
sys/src/libbio/bgetrune.c

@@ -7,7 +7,7 @@ Bgetrune(Biobufhdr *bp)
 {
 	int c, i;
 	Rune rune;
-	char str[4];
+	char str[UTFmax];
 
 	c = Bgetc(bp);
 	if(c < Runeself) {		/* one char */
@@ -15,19 +15,25 @@ Bgetrune(Biobufhdr *bp)
 		return c;
 	}
 	str[0] = c;
+	bp->runesize = 0;
 
 	for(i=1;;) {
 		c = Bgetc(bp);
 		if(c < 0)
 			return c;
+		if (i >= sizeof str)
+			return Runeerror;
 		str[i++] = c;
 
 		if(fullrune(str, i)) {
+			/* utf is long enough to be a rune, but could be bad. */
 			bp->runesize = chartorune(&rune, str);
-			while(i > bp->runesize) {
-				Bungetc(bp);
-				i--;
-			}
+			if (rune == Runeerror)
+				bp->runesize = 0;	/* push back nothing */
+			else
+				/* push back bytes unconsumed by chartorune */
+				for(; i > bp->runesize; i--)
+					Bungetc(bp);
 			return rune;
 		}
 	}

+ 1 - 1
sys/src/libbio/bputrune.c

@@ -6,7 +6,7 @@ int
 Bputrune(Biobufhdr *bp, long c)
 {
 	Rune rune;
-	char str[4];
+	char str[UTFmax];
 	int n;
 
 	rune = c;

+ 2 - 2
sys/src/libc/9sys/ctime.c

@@ -106,8 +106,8 @@ gmtime(long tim)
 	/*
 	 * break initial number into days
 	 */
-	hms = tim % 86400L;
-	day = tim / 86400L;
+	hms = (ulong)tim % 86400L;
+	day = (ulong)tim / 86400L;
 	if(hms < 0) {
 		hms += 86400L;
 		day -= 1;

+ 12 - 6
sys/src/libc/port/frexp.c

@@ -9,18 +9,24 @@
 #define	MASK	0x7ffL
 #define	SHIFT	20
 #define	BIAS	1022L
+#define	SIG	52
 
 double
 frexp(double d, int *ep)
 {
-	FPdbleword x;
+	FPdbleword x, a;
 
-	if(d == 0) {
-		*ep = 0;
-		return 0;
-	}
+	*ep = 0;
+	/* order matters: only isNaN can operate on NaN */
+	if(isNaN(d) || isInf(d, 0) || d == 0)
+		return d;
 	x.x = d;
-	*ep = ((x.hi >> SHIFT) & MASK) - BIAS;
+	a.x = fabs(d);
+	if((a.hi >> SHIFT) == 0){	/* normalize subnormal numbers */
+		x.x = (double)(1ULL<<SIG) * d;
+		*ep = -SIG;
+	}
+	*ep += ((x.hi >> SHIFT) & MASK) - BIAS;
 	x.hi &= ~(MASK << SHIFT);
 	x.hi |= BIAS << SHIFT;
 	return x.x;

+ 2 - 0
sys/src/libc/port/mkfile

@@ -60,6 +60,8 @@ CFILES=\
 	rand.c\
 	readn.c\
 	rune.c\
+	runebase.c\
+	runebsearch.c\
 	runestrcat.c\
 	runestrchr.c\
 	runestrcmp.c\

+ 1960 - 0
sys/src/libc/port/runebase.c

@@ -0,0 +1,1960 @@
+#include <u.h>
+#include <libc.h>
+
+Rune*_runebsearch(Rune c, Rune *t, int n, int ne);
+
+static Rune	_base2[] =
+{
+	0x00c0,	0x0041,	/* À A */
+	0x00c1,	0x0041,	/* Á A */
+	0x00c2,	0x0041,	/* Â A */
+	0x00c3,	0x0041,	/* Ã A */
+	0x00c4,	0x0041,	/* Ä A */
+	0x00c5,	0x0041,	/* Å A */
+	0x00c7,	0x0043,	/* Ç C */
+	0x00c8,	0x0045,	/* È E */
+	0x00c9,	0x0045,	/* É E */
+	0x00ca,	0x0045,	/* Ê E */
+	0x00cb,	0x0045,	/* Ë E */
+	0x00cc,	0x0049,	/* Ì I */
+	0x00cd,	0x0049,	/* Í I */
+	0x00ce,	0x0049,	/* Î I */
+	0x00cf,	0x0049,	/* Ï I */
+	0x00d1,	0x004e,	/* Ñ N */
+	0x00d2,	0x004f,	/* Ò O */
+	0x00d3,	0x004f,	/* Ó O */
+	0x00d4,	0x004f,	/* Ô O */
+	0x00d5,	0x004f,	/* Õ O */
+	0x00d6,	0x004f,	/* Ö O */
+	0x00d9,	0x0055,	/* Ù U */
+	0x00da,	0x0055,	/* Ú U */
+	0x00db,	0x0055,	/* Û U */
+	0x00dc,	0x0055,	/* Ü U */
+	0x00dd,	0x0059,	/* Ý Y */
+	0x00e0,	0x0061,	/* à a */
+	0x00e1,	0x0061,	/* á a */
+	0x00e2,	0x0061,	/* â a */
+	0x00e3,	0x0061,	/* ã a */
+	0x00e4,	0x0061,	/* ä a */
+	0x00e5,	0x0061,	/* å a */
+	0x00e7,	0x0063,	/* ç c */
+	0x00e8,	0x0065,	/* è e */
+	0x00e9,	0x0065,	/* é e */
+	0x00ea,	0x0065,	/* ê e */
+	0x00eb,	0x0065,	/* ë e */
+	0x00ec,	0x0069,	/* ì i */
+	0x00ed,	0x0069,	/* í i */
+	0x00ee,	0x0069,	/* î i */
+	0x00ef,	0x0069,	/* ï i */
+	0x00f1,	0x006e,	/* ñ n */
+	0x00f2,	0x006f,	/* ò o */
+	0x00f3,	0x006f,	/* ó o */
+	0x00f4,	0x006f,	/* ô o */
+	0x00f5,	0x006f,	/* õ o */
+	0x00f6,	0x006f,	/* ö o */
+	0x00f9,	0x0075,	/* ù u */
+	0x00fa,	0x0075,	/* ú u */
+	0x00fb,	0x0075,	/* û u */
+	0x00fc,	0x0075,	/* ü u */
+	0x00fd,	0x0079,	/* ý y */
+	0x00ff,	0x0079,	/* ÿ y */
+	0x0100,	0x0041,	/* Ā A */
+	0x0101,	0x0061,	/* ā a */
+	0x0102,	0x0041,	/* Ă A */
+	0x0103,	0x0061,	/* ă a */
+	0x0104,	0x0041,	/* Ą A */
+	0x0105,	0x0061,	/* ą a */
+	0x0106,	0x0043,	/* Ć C */
+	0x0107,	0x0063,	/* ć c */
+	0x0108,	0x0043,	/* Ĉ C */
+	0x0109,	0x0063,	/* ĉ c */
+	0x010a,	0x0043,	/* Ċ C */
+	0x010b,	0x0063,	/* ċ c */
+	0x010c,	0x0043,	/* Č C */
+	0x010d,	0x0063,	/* č c */
+	0x010e,	0x0044,	/* Ď D */
+	0x010f,	0x0064,	/* ď d */
+	0x0112,	0x0045,	/* Ē E */
+	0x0113,	0x0065,	/* ē e */
+	0x0114,	0x0045,	/* Ĕ E */
+	0x0115,	0x0065,	/* ĕ e */
+	0x0116,	0x0045,	/* Ė E */
+	0x0117,	0x0065,	/* ė e */
+	0x0118,	0x0045,	/* Ę E */
+	0x0119,	0x0065,	/* ę e */
+	0x011a,	0x0045,	/* Ě E */
+	0x011b,	0x0065,	/* ě e */
+	0x011c,	0x0047,	/* Ĝ G */
+	0x011d,	0x0067,	/* ĝ g */
+	0x011e,	0x0047,	/* Ğ G */
+	0x011f,	0x0067,	/* ğ g */
+	0x0120,	0x0047,	/* Ġ G */
+	0x0121,	0x0067,	/* ġ g */
+	0x0122,	0x0047,	/* Ģ G */
+	0x0123,	0x0067,	/* ģ g */
+	0x0124,	0x0048,	/* Ĥ H */
+	0x0125,	0x0068,	/* ĥ h */
+	0x0128,	0x0049,	/* Ĩ I */
+	0x0129,	0x0069,	/* ĩ i */
+	0x012a,	0x0049,	/* Ī I */
+	0x012b,	0x0069,	/* ī i */
+	0x012c,	0x0049,	/* Ĭ I */
+	0x012d,	0x0069,	/* ĭ i */
+	0x012e,	0x0049,	/* Į I */
+	0x012f,	0x0069,	/* į i */
+	0x0130,	0x0049,	/* İ I */
+	0x0134,	0x004a,	/* Ĵ J */
+	0x0135,	0x006a,	/* ĵ j */
+	0x0136,	0x004b,	/* Ķ K */
+	0x0137,	0x006b,	/* ķ k */
+	0x0139,	0x004c,	/* Ĺ L */
+	0x013a,	0x006c,	/* ĺ l */
+	0x013b,	0x004c,	/* Ļ L */
+	0x013c,	0x006c,	/* ļ l */
+	0x013d,	0x004c,	/* Ľ L */
+	0x013e,	0x006c,	/* ľ l */
+	0x0143,	0x004e,	/* Ń N */
+	0x0144,	0x006e,	/* ń n */
+	0x0145,	0x004e,	/* Ņ N */
+	0x0146,	0x006e,	/* ņ n */
+	0x0147,	0x004e,	/* Ň N */
+	0x0148,	0x006e,	/* ň n */
+	0x014c,	0x004f,	/* Ō O */
+	0x014d,	0x006f,	/* ō o */
+	0x014e,	0x004f,	/* Ŏ O */
+	0x014f,	0x006f,	/* ŏ o */
+	0x0150,	0x004f,	/* Ő O */
+	0x0151,	0x006f,	/* ő o */
+	0x0154,	0x0052,	/* Ŕ R */
+	0x0155,	0x0072,	/* ŕ r */
+	0x0156,	0x0052,	/* Ŗ R */
+	0x0157,	0x0072,	/* ŗ r */
+	0x0158,	0x0052,	/* Ř R */
+	0x0159,	0x0072,	/* ř r */
+	0x015a,	0x0053,	/* Ś S */
+	0x015b,	0x0073,	/* ś s */
+	0x015c,	0x0053,	/* Ŝ S */
+	0x015d,	0x0073,	/* ŝ s */
+	0x015e,	0x0053,	/* Ş S */
+	0x015f,	0x0073,	/* ş s */
+	0x0160,	0x0053,	/* Š S */
+	0x0161,	0x0073,	/* š s */
+	0x0162,	0x0054,	/* Ţ T */
+	0x0163,	0x0074,	/* ţ t */
+	0x0164,	0x0054,	/* Ť T */
+	0x0165,	0x0074,	/* ť t */
+	0x0168,	0x0055,	/* Ũ U */
+	0x0169,	0x0075,	/* ũ u */
+	0x016a,	0x0055,	/* Ū U */
+	0x016b,	0x0075,	/* ū u */
+	0x016c,	0x0055,	/* Ŭ U */
+	0x016d,	0x0075,	/* ŭ u */
+	0x016e,	0x0055,	/* Ů U */
+	0x016f,	0x0075,	/* ů u */
+	0x0170,	0x0055,	/* Ű U */
+	0x0171,	0x0075,	/* ű u */
+	0x0172,	0x0055,	/* Ų U */
+	0x0173,	0x0075,	/* ų u */
+	0x0174,	0x0057,	/* Ŵ W */
+	0x0175,	0x0077,	/* ŵ w */
+	0x0176,	0x0059,	/* Ŷ Y */
+	0x0177,	0x0079,	/* ŷ y */
+	0x0178,	0x0059,	/* Ÿ Y */
+	0x0179,	0x005a,	/* Ź Z */
+	0x017a,	0x007a,	/* ź z */
+	0x017b,	0x005a,	/* Ż Z */
+	0x017c,	0x007a,	/* ż z */
+	0x017d,	0x005a,	/* Ž Z */
+	0x017e,	0x007a,	/* ž z */
+	0x01a0,	0x004f,	/* Ơ O */
+	0x01a1,	0x006f,	/* ơ o */
+	0x01af,	0x0055,	/* Ư U */
+	0x01b0,	0x0075,	/* ư u */
+	0x01cd,	0x0041,	/* Ǎ A */
+	0x01ce,	0x0061,	/* ǎ a */
+	0x01cf,	0x0049,	/* Ǐ I */
+	0x01d0,	0x0069,	/* ǐ i */
+	0x01d1,	0x004f,	/* Ǒ O */
+	0x01d2,	0x006f,	/* ǒ o */
+	0x01d3,	0x0055,	/* Ǔ U */
+	0x01d4,	0x0075,	/* ǔ u */
+	0x01d5,	0x0055,	/* Ǖ U */
+	0x01d6,	0x0075,	/* ǖ u */
+	0x01d7,	0x0055,	/* Ǘ U */
+	0x01d8,	0x0075,	/* ǘ u */
+	0x01d9,	0x0055,	/* Ǚ U */
+	0x01da,	0x0075,	/* ǚ u */
+	0x01db,	0x0055,	/* Ǜ U */
+	0x01dc,	0x0075,	/* ǜ u */
+	0x01de,	0x0041,	/* Ǟ A */
+	0x01df,	0x0061,	/* ǟ a */
+	0x01e0,	0x0041,	/* Ǡ A */
+	0x01e1,	0x0061,	/* ǡ a */
+	0x01e2,	0x00c6,	/* Ǣ Æ */
+	0x01e3,	0x00e6,	/* ǣ æ */
+	0x01e6,	0x0047,	/* Ǧ G */
+	0x01e7,	0x0067,	/* ǧ g */
+	0x01e8,	0x004b,	/* Ǩ K */
+	0x01e9,	0x006b,	/* ǩ k */
+	0x01ea,	0x004f,	/* Ǫ O */
+	0x01eb,	0x006f,	/* ǫ o */
+	0x01ec,	0x004f,	/* Ǭ O */
+	0x01ed,	0x006f,	/* ǭ o */
+	0x01ee,	0x01b7,	/* Ǯ Ʒ */
+	0x01ef,	0x0292,	/* ǯ ʒ */
+	0x01f0,	0x006a,	/* ǰ j */
+	0x01f4,	0x0047,	/* Ǵ G */
+	0x01f5,	0x0067,	/* ǵ g */
+	0x01f8,	0x004e,	/* Ǹ N */
+	0x01f9,	0x006e,	/* ǹ n */
+	0x01fa,	0x0041,	/* Ǻ A */
+	0x01fb,	0x0061,	/* ǻ a */
+	0x01fc,	0x00c6,	/* Ǽ Æ */
+	0x01fd,	0x00e6,	/* ǽ æ */
+	0x01fe,	0x00d8,	/* Ǿ Ø */
+	0x01ff,	0x00f8,	/* ǿ ø */
+	0x0200,	0x0041,	/* Ȁ A */
+	0x0201,	0x0061,	/* ȁ a */
+	0x0202,	0x0041,	/* Ȃ A */
+	0x0203,	0x0061,	/* ȃ a */
+	0x0204,	0x0045,	/* Ȅ E */
+	0x0205,	0x0065,	/* ȅ e */
+	0x0206,	0x0045,	/* Ȇ E */
+	0x0207,	0x0065,	/* ȇ e */
+	0x0208,	0x0049,	/* Ȉ I */
+	0x0209,	0x0069,	/* ȉ i */
+	0x020a,	0x0049,	/* Ȋ I */
+	0x020b,	0x0069,	/* ȋ i */
+	0x020c,	0x004f,	/* Ȍ O */
+	0x020d,	0x006f,	/* ȍ o */
+	0x020e,	0x004f,	/* Ȏ O */
+	0x020f,	0x006f,	/* ȏ o */
+	0x0210,	0x0052,	/* Ȑ R */
+	0x0211,	0x0072,	/* ȑ r */
+	0x0212,	0x0052,	/* Ȓ R */
+	0x0213,	0x0072,	/* ȓ r */
+	0x0214,	0x0055,	/* Ȕ U */
+	0x0215,	0x0075,	/* ȕ u */
+	0x0216,	0x0055,	/* Ȗ U */
+	0x0217,	0x0075,	/* ȗ u */
+	0x0218,	0x0053,	/* Ș S */
+	0x0219,	0x0073,	/* ș s */
+	0x021a,	0x0054,	/* Ț T */
+	0x021b,	0x0074,	/* ț t */
+	0x021e,	0x0048,	/* Ȟ H */
+	0x021f,	0x0068,	/* ȟ h */
+	0x0226,	0x0041,	/* Ȧ A */
+	0x0227,	0x0061,	/* ȧ a */
+	0x0228,	0x0045,	/* Ȩ E */
+	0x0229,	0x0065,	/* ȩ e */
+	0x022a,	0x004f,	/* Ȫ O */
+	0x022b,	0x006f,	/* ȫ o */
+	0x022c,	0x004f,	/* Ȭ O */
+	0x022d,	0x006f,	/* ȭ o */
+	0x022e,	0x004f,	/* Ȯ O */
+	0x022f,	0x006f,	/* ȯ o */
+	0x0230,	0x004f,	/* Ȱ O */
+	0x0231,	0x006f,	/* ȱ o */
+	0x0232,	0x0059,	/* Ȳ Y */
+	0x0233,	0x0079,	/* ȳ y */
+	0x0374,	0x02b9,	/* ʹ ʹ */
+	0x0386,	0x0391,	/* Ά Α */
+	0x0388,	0x0395,	/* Έ Ε */
+	0x0389,	0x0397,	/* Ή Η */
+	0x038a,	0x0399,	/* Ί Ι */
+	0x038c,	0x039f,	/* Ό Ο */
+	0x038e,	0x03a5,	/* Ύ Υ */
+	0x038f,	0x03a9,	/* Ώ Ω */
+	0x0390,	0x03b9,	/* ΐ ι */
+	0x03aa,	0x0399,	/* Ϊ Ι */
+	0x03ab,	0x03a5,	/* Ϋ Υ */
+	0x03ac,	0x03b1,	/* ά α */
+	0x03ad,	0x03b5,	/* έ ε */
+	0x03ae,	0x03b7,	/* ή η */
+	0x03af,	0x03b9,	/* ί ι */
+	0x03b0,	0x03c5,	/* ΰ υ */
+	0x03ca,	0x03b9,	/* ϊ ι */
+	0x03cb,	0x03c5,	/* ϋ υ */
+	0x03cc,	0x03bf,	/* ό ο */
+	0x03cd,	0x03c5,	/* ύ υ */
+	0x03ce,	0x03c9,	/* ώ ω */
+	0x03d3,	0x03d2,	/* ϓ ϒ */
+	0x03d4,	0x03d2,	/* ϔ ϒ */
+	0x0400,	0x0415,	/* Ѐ Е */
+	0x0401,	0x0415,	/* Ё Е */
+	0x0403,	0x0413,	/* Ѓ Г */
+	0x0407,	0x0406,	/* Ї І */
+	0x040c,	0x041a,	/* Ќ К */
+	0x040d,	0x0418,	/* Ѝ И */
+	0x040e,	0x0423,	/* Ў У */
+	0x0419,	0x0418,	/* Й И */
+	0x0439,	0x0438,	/* й и */
+	0x0450,	0x0435,	/* ѐ е */
+	0x0451,	0x0435,	/* ё е */
+	0x0453,	0x0433,	/* ѓ г */
+	0x0457,	0x0456,	/* ї і */
+	0x045c,	0x043a,	/* ќ к */
+	0x045d,	0x0438,	/* ѝ и */
+	0x045e,	0x0443,	/* ў у */
+	0x0476,	0x0474,	/* Ѷ Ѵ */
+	0x0477,	0x0475,	/* ѷ ѵ */
+	0x04c1,	0x0416,	/* Ӂ Ж */
+	0x04c2,	0x0436,	/* ӂ ж */
+	0x04d0,	0x0410,	/* Ӑ А */
+	0x04d1,	0x0430,	/* ӑ а */
+	0x04d2,	0x0410,	/* Ӓ А */
+	0x04d3,	0x0430,	/* ӓ а */
+	0x04d6,	0x0415,	/* Ӗ Е */
+	0x04d7,	0x0435,	/* ӗ е */
+	0x04da,	0x04d8,	/* Ӛ Ә */
+	0x04db,	0x04d9,	/* ӛ ә */
+	0x04dc,	0x0416,	/* Ӝ Ж */
+	0x04dd,	0x0436,	/* ӝ ж */
+	0x04de,	0x0417,	/* Ӟ З */
+	0x04df,	0x0437,	/* ӟ з */
+	0x04e2,	0x0418,	/* Ӣ И */
+	0x04e3,	0x0438,	/* ӣ и */
+	0x04e4,	0x0418,	/* Ӥ И */
+	0x04e5,	0x0438,	/* ӥ и */
+	0x04e6,	0x041e,	/* Ӧ О */
+	0x04e7,	0x043e,	/* ӧ о */
+	0x04ea,	0x04e8,	/* Ӫ Ө */
+	0x04eb,	0x04e9,	/* ӫ ө */
+	0x04ec,	0x042d,	/* Ӭ Э */
+	0x04ed,	0x044d,	/* ӭ э */
+	0x04ee,	0x0423,	/* Ӯ У */
+	0x04ef,	0x0443,	/* ӯ у */
+	0x04f0,	0x0423,	/* Ӱ У */
+	0x04f1,	0x0443,	/* ӱ у */
+	0x04f2,	0x0423,	/* Ӳ У */
+	0x04f3,	0x0443,	/* ӳ у */
+	0x04f4,	0x0427,	/* Ӵ Ч */
+	0x04f5,	0x0447,	/* ӵ ч */
+	0x04f8,	0x042b,	/* Ӹ Ы */
+	0x04f9,	0x044b,	/* ӹ ы */
+	0x0622,	0x0627,	/* آ ا */
+	0x0623,	0x0627,	/* أ ا */
+	0x0624,	0x0648,	/* ؤ و */
+	0x0625,	0x0627,	/* إ ا */
+	0x0626,	0x064a,	/* ئ ي */
+	0x06c0,	0x06d5,	/* ۀ ە */
+	0x06c2,	0x06c1,	/* ۂ ہ */
+	0x06d3,	0x06d2,	/* ۓ ے */
+	0x0929,	0x0928,	/* ऩ न */
+	0x0931,	0x0930,	/* ऱ र */
+	0x0934,	0x0933,	/* ऴ ळ */
+	0x0958,	0x0915,	/* क़ क */
+	0x0959,	0x0916,	/* ख़ ख */
+	0x095a,	0x0917,	/* ग़ ग */
+	0x095b,	0x091c,	/* ज़ ज */
+	0x095c,	0x0921,	/* ड़ ड */
+	0x095d,	0x0922,	/* ढ़ ढ */
+	0x095e,	0x092b,	/* फ़ फ */
+	0x095f,	0x092f,	/* य़ य */
+	0x09dc,	0x09a1,	/* ড় ড */
+	0x09dd,	0x09a2,	/* ঢ় ঢ */
+	0x09df,	0x09af,	/* য় য */
+	0x0a33,	0x0a32,	/* ਲ਼ ਲ */
+	0x0a36,	0x0a38,	/* ਸ਼ ਸ */
+	0x0a59,	0x0a16,	/* ਖ਼ ਖ */
+	0x0a5a,	0x0a17,	/* ਗ਼ ਗ */
+	0x0a5b,	0x0a1c,	/* ਜ਼ ਜ */
+	0x0a5e,	0x0a2b,	/* ਫ਼ ਫ */
+	0x0b5c,	0x0b21,	/* ଡ଼ ଡ */
+	0x0b5d,	0x0b22,	/* ଢ଼ ଢ */
+	0x0b94,	0x0b92,	/* ஔ ஒ */
+	0x0f43,	0x0f42,	/* གྷ ག */
+	0x0f4d,	0x0f4c,	/* ཌྷ ཌ */
+	0x0f52,	0x0f51,	/* དྷ ད */
+	0x0f57,	0x0f56,	/* བྷ བ */
+	0x0f5c,	0x0f5b,	/* ཛྷ ཛ */
+	0x0f69,	0x0f40,	/* ཀྵ ཀ */
+	0x1026,	0x1025,	/* ဦ ဥ */
+	0x1b06,	0x1b05,	/* ᬆ ᬅ */
+	0x1b08,	0x1b07,	/* ᬈ ᬇ */
+	0x1b0a,	0x1b09,	/* ᬊ ᬉ */
+	0x1b0c,	0x1b0b,	/* ᬌ ᬋ */
+	0x1b0e,	0x1b0d,	/* ᬎ ᬍ */
+	0x1b12,	0x1b11,	/* ᬒ ᬑ */
+	0x1e00,	0x0041,	/* Ḁ A */
+	0x1e01,	0x0061,	/* ḁ a */
+	0x1e02,	0x0042,	/* Ḃ B */
+	0x1e03,	0x0062,	/* ḃ b */
+	0x1e04,	0x0042,	/* Ḅ B */
+	0x1e05,	0x0062,	/* ḅ b */
+	0x1e06,	0x0042,	/* Ḇ B */
+	0x1e07,	0x0062,	/* ḇ b */
+	0x1e08,	0x0043,	/* Ḉ C */
+	0x1e09,	0x0063,	/* ḉ c */
+	0x1e0a,	0x0044,	/* Ḋ D */
+	0x1e0b,	0x0064,	/* ḋ d */
+	0x1e0c,	0x0044,	/* Ḍ D */
+	0x1e0d,	0x0064,	/* ḍ d */
+	0x1e0e,	0x0044,	/* Ḏ D */
+	0x1e0f,	0x0064,	/* ḏ d */
+	0x1e10,	0x0044,	/* Ḑ D */
+	0x1e11,	0x0064,	/* ḑ d */
+	0x1e12,	0x0044,	/* Ḓ D */
+	0x1e13,	0x0064,	/* ḓ d */
+	0x1e14,	0x0045,	/* Ḕ E */
+	0x1e15,	0x0065,	/* ḕ e */
+	0x1e16,	0x0045,	/* Ḗ E */
+	0x1e17,	0x0065,	/* ḗ e */
+	0x1e18,	0x0045,	/* Ḙ E */
+	0x1e19,	0x0065,	/* ḙ e */
+	0x1e1a,	0x0045,	/* Ḛ E */
+	0x1e1b,	0x0065,	/* ḛ e */
+	0x1e1c,	0x0045,	/* Ḝ E */
+	0x1e1d,	0x0065,	/* ḝ e */
+	0x1e1e,	0x0046,	/* Ḟ F */
+	0x1e1f,	0x0066,	/* ḟ f */
+	0x1e20,	0x0047,	/* Ḡ G */
+	0x1e21,	0x0067,	/* ḡ g */
+	0x1e22,	0x0048,	/* Ḣ H */
+	0x1e23,	0x0068,	/* ḣ h */
+	0x1e24,	0x0048,	/* Ḥ H */
+	0x1e25,	0x0068,	/* ḥ h */
+	0x1e26,	0x0048,	/* Ḧ H */
+	0x1e27,	0x0068,	/* ḧ h */
+	0x1e28,	0x0048,	/* Ḩ H */
+	0x1e29,	0x0068,	/* ḩ h */
+	0x1e2a,	0x0048,	/* Ḫ H */
+	0x1e2b,	0x0068,	/* ḫ h */
+	0x1e2c,	0x0049,	/* Ḭ I */
+	0x1e2d,	0x0069,	/* ḭ i */
+	0x1e2e,	0x0049,	/* Ḯ I */
+	0x1e2f,	0x0069,	/* ḯ i */
+	0x1e30,	0x004b,	/* Ḱ K */
+	0x1e31,	0x006b,	/* ḱ k */
+	0x1e32,	0x004b,	/* Ḳ K */
+	0x1e33,	0x006b,	/* ḳ k */
+	0x1e34,	0x004b,	/* Ḵ K */
+	0x1e35,	0x006b,	/* ḵ k */
+	0x1e36,	0x004c,	/* Ḷ L */
+	0x1e37,	0x006c,	/* ḷ l */
+	0x1e38,	0x004c,	/* Ḹ L */
+	0x1e39,	0x006c,	/* ḹ l */
+	0x1e3a,	0x004c,	/* Ḻ L */
+	0x1e3b,	0x006c,	/* ḻ l */
+	0x1e3c,	0x004c,	/* Ḽ L */
+	0x1e3d,	0x006c,	/* ḽ l */
+	0x1e3e,	0x004d,	/* Ḿ M */
+	0x1e3f,	0x006d,	/* ḿ m */
+	0x1e40,	0x004d,	/* Ṁ M */
+	0x1e41,	0x006d,	/* ṁ m */
+	0x1e42,	0x004d,	/* Ṃ M */
+	0x1e43,	0x006d,	/* ṃ m */
+	0x1e44,	0x004e,	/* Ṅ N */
+	0x1e45,	0x006e,	/* ṅ n */
+	0x1e46,	0x004e,	/* Ṇ N */
+	0x1e47,	0x006e,	/* ṇ n */
+	0x1e48,	0x004e,	/* Ṉ N */
+	0x1e49,	0x006e,	/* ṉ n */
+	0x1e4a,	0x004e,	/* Ṋ N */
+	0x1e4b,	0x006e,	/* ṋ n */
+	0x1e4c,	0x004f,	/* Ṍ O */
+	0x1e4d,	0x006f,	/* ṍ o */
+	0x1e4e,	0x004f,	/* Ṏ O */
+	0x1e4f,	0x006f,	/* ṏ o */
+	0x1e50,	0x004f,	/* Ṑ O */
+	0x1e51,	0x006f,	/* ṑ o */
+	0x1e52,	0x004f,	/* Ṓ O */
+	0x1e53,	0x006f,	/* ṓ o */
+	0x1e54,	0x0050,	/* Ṕ P */
+	0x1e55,	0x0070,	/* ṕ p */
+	0x1e56,	0x0050,	/* Ṗ P */
+	0x1e57,	0x0070,	/* ṗ p */
+	0x1e58,	0x0052,	/* Ṙ R */
+	0x1e59,	0x0072,	/* ṙ r */
+	0x1e5a,	0x0052,	/* Ṛ R */
+	0x1e5b,	0x0072,	/* ṛ r */
+	0x1e5c,	0x0052,	/* Ṝ R */
+	0x1e5d,	0x0072,	/* ṝ r */
+	0x1e5e,	0x0052,	/* Ṟ R */
+	0x1e5f,	0x0072,	/* ṟ r */
+	0x1e60,	0x0053,	/* Ṡ S */
+	0x1e61,	0x0073,	/* ṡ s */
+	0x1e62,	0x0053,	/* Ṣ S */
+	0x1e63,	0x0073,	/* ṣ s */
+	0x1e64,	0x0053,	/* Ṥ S */
+	0x1e65,	0x0073,	/* ṥ s */
+	0x1e66,	0x0053,	/* Ṧ S */
+	0x1e67,	0x0073,	/* ṧ s */
+	0x1e68,	0x0053,	/* Ṩ S */
+	0x1e69,	0x0073,	/* ṩ s */
+	0x1e6a,	0x0054,	/* Ṫ T */
+	0x1e6b,	0x0074,	/* ṫ t */
+	0x1e6c,	0x0054,	/* Ṭ T */
+	0x1e6d,	0x0074,	/* ṭ t */
+	0x1e6e,	0x0054,	/* Ṯ T */
+	0x1e6f,	0x0074,	/* ṯ t */
+	0x1e70,	0x0054,	/* Ṱ T */
+	0x1e71,	0x0074,	/* ṱ t */
+	0x1e72,	0x0055,	/* Ṳ U */
+	0x1e73,	0x0075,	/* ṳ u */
+	0x1e74,	0x0055,	/* Ṵ U */
+	0x1e75,	0x0075,	/* ṵ u */
+	0x1e76,	0x0055,	/* Ṷ U */
+	0x1e77,	0x0075,	/* ṷ u */
+	0x1e78,	0x0055,	/* Ṹ U */
+	0x1e79,	0x0075,	/* ṹ u */
+	0x1e7a,	0x0055,	/* Ṻ U */
+	0x1e7b,	0x0075,	/* ṻ u */
+	0x1e7c,	0x0056,	/* Ṽ V */
+	0x1e7d,	0x0076,	/* ṽ v */
+	0x1e7e,	0x0056,	/* Ṿ V */
+	0x1e7f,	0x0076,	/* ṿ v */
+	0x1e80,	0x0057,	/* Ẁ W */
+	0x1e81,	0x0077,	/* ẁ w */
+	0x1e82,	0x0057,	/* Ẃ W */
+	0x1e83,	0x0077,	/* ẃ w */
+	0x1e84,	0x0057,	/* Ẅ W */
+	0x1e85,	0x0077,	/* ẅ w */
+	0x1e86,	0x0057,	/* Ẇ W */
+	0x1e87,	0x0077,	/* ẇ w */
+	0x1e88,	0x0057,	/* Ẉ W */
+	0x1e89,	0x0077,	/* ẉ w */
+	0x1e8a,	0x0058,	/* Ẋ X */
+	0x1e8b,	0x0078,	/* ẋ x */
+	0x1e8c,	0x0058,	/* Ẍ X */
+	0x1e8d,	0x0078,	/* ẍ x */
+	0x1e8e,	0x0059,	/* Ẏ Y */
+	0x1e8f,	0x0079,	/* ẏ y */
+	0x1e90,	0x005a,	/* Ẑ Z */
+	0x1e91,	0x007a,	/* ẑ z */
+	0x1e92,	0x005a,	/* Ẓ Z */
+	0x1e93,	0x007a,	/* ẓ z */
+	0x1e94,	0x005a,	/* Ẕ Z */
+	0x1e95,	0x007a,	/* ẕ z */
+	0x1e96,	0x0068,	/* ẖ h */
+	0x1e97,	0x0074,	/* ẗ t */
+	0x1e98,	0x0077,	/* ẘ w */
+	0x1e99,	0x0079,	/* ẙ y */
+	0x1e9b,	0x017f,	/* ẛ ſ */
+	0x1ea0,	0x0041,	/* Ạ A */
+	0x1ea1,	0x0061,	/* ạ a */
+	0x1ea2,	0x0041,	/* Ả A */
+	0x1ea3,	0x0061,	/* ả a */
+	0x1ea4,	0x0041,	/* Ấ A */
+	0x1ea5,	0x0061,	/* ấ a */
+	0x1ea6,	0x0041,	/* Ầ A */
+	0x1ea7,	0x0061,	/* ầ a */
+	0x1ea8,	0x0041,	/* Ẩ A */
+	0x1ea9,	0x0061,	/* ẩ a */
+	0x1eaa,	0x0041,	/* Ẫ A */
+	0x1eab,	0x0061,	/* ẫ a */
+	0x1eac,	0x0041,	/* Ậ A */
+	0x1ead,	0x0061,	/* ậ a */
+	0x1eae,	0x0041,	/* Ắ A */
+	0x1eaf,	0x0061,	/* ắ a */
+	0x1eb0,	0x0041,	/* Ằ A */
+	0x1eb1,	0x0061,	/* ằ a */
+	0x1eb2,	0x0041,	/* Ẳ A */
+	0x1eb3,	0x0061,	/* ẳ a */
+	0x1eb4,	0x0041,	/* Ẵ A */
+	0x1eb5,	0x0061,	/* ẵ a */
+	0x1eb6,	0x0041,	/* Ặ A */
+	0x1eb7,	0x0061,	/* ặ a */
+	0x1eb8,	0x0045,	/* Ẹ E */
+	0x1eb9,	0x0065,	/* ẹ e */
+	0x1eba,	0x0045,	/* Ẻ E */
+	0x1ebb,	0x0065,	/* ẻ e */
+	0x1ebc,	0x0045,	/* Ẽ E */
+	0x1ebd,	0x0065,	/* ẽ e */
+	0x1ebe,	0x0045,	/* Ế E */
+	0x1ebf,	0x0065,	/* ế e */
+	0x1ec0,	0x0045,	/* Ề E */
+	0x1ec1,	0x0065,	/* ề e */
+	0x1ec2,	0x0045,	/* Ể E */
+	0x1ec3,	0x0065,	/* ể e */
+	0x1ec4,	0x0045,	/* Ễ E */
+	0x1ec5,	0x0065,	/* ễ e */
+	0x1ec6,	0x0045,	/* Ệ E */
+	0x1ec7,	0x0065,	/* ệ e */
+	0x1ec8,	0x0049,	/* Ỉ I */
+	0x1ec9,	0x0069,	/* ỉ i */
+	0x1eca,	0x0049,	/* Ị I */
+	0x1ecb,	0x0069,	/* ị i */
+	0x1ecc,	0x004f,	/* Ọ O */
+	0x1ecd,	0x006f,	/* ọ o */
+	0x1ece,	0x004f,	/* Ỏ O */
+	0x1ecf,	0x006f,	/* ỏ o */
+	0x1ed0,	0x004f,	/* Ố O */
+	0x1ed1,	0x006f,	/* ố o */
+	0x1ed2,	0x004f,	/* Ồ O */
+	0x1ed3,	0x006f,	/* ồ o */
+	0x1ed4,	0x004f,	/* Ổ O */
+	0x1ed5,	0x006f,	/* ổ o */
+	0x1ed6,	0x004f,	/* Ỗ O */
+	0x1ed7,	0x006f,	/* ỗ o */
+	0x1ed8,	0x004f,	/* Ộ O */
+	0x1ed9,	0x006f,	/* ộ o */
+	0x1eda,	0x004f,	/* Ớ O */
+	0x1edb,	0x006f,	/* ớ o */
+	0x1edc,	0x004f,	/* Ờ O */
+	0x1edd,	0x006f,	/* ờ o */
+	0x1ede,	0x004f,	/* Ở O */
+	0x1edf,	0x006f,	/* ở o */
+	0x1ee0,	0x004f,	/* Ỡ O */
+	0x1ee1,	0x006f,	/* ỡ o */
+	0x1ee2,	0x004f,	/* Ợ O */
+	0x1ee3,	0x006f,	/* ợ o */
+	0x1ee4,	0x0055,	/* Ụ U */
+	0x1ee5,	0x0075,	/* ụ u */
+	0x1ee6,	0x0055,	/* Ủ U */
+	0x1ee7,	0x0075,	/* ủ u */
+	0x1ee8,	0x0055,	/* Ứ U */
+	0x1ee9,	0x0075,	/* ứ u */
+	0x1eea,	0x0055,	/* Ừ U */
+	0x1eeb,	0x0075,	/* ừ u */
+	0x1eec,	0x0055,	/* Ử U */
+	0x1eed,	0x0075,	/* ử u */
+	0x1eee,	0x0055,	/* Ữ U */
+	0x1eef,	0x0075,	/* ữ u */
+	0x1ef0,	0x0055,	/* Ự U */
+	0x1ef1,	0x0075,	/* ự u */
+	0x1ef2,	0x0059,	/* Ỳ Y */
+	0x1ef3,	0x0079,	/* ỳ y */
+	0x1ef4,	0x0059,	/* Ỵ Y */
+	0x1ef5,	0x0079,	/* ỵ y */
+	0x1ef6,	0x0059,	/* Ỷ Y */
+	0x1ef7,	0x0079,	/* ỷ y */
+	0x1ef8,	0x0059,	/* Ỹ Y */
+	0x1ef9,	0x0079,	/* ỹ y */
+	0x1f00,	0x03b1,	/* ἀ α */
+	0x1f01,	0x03b1,	/* ἁ α */
+	0x1f02,	0x03b1,	/* ἂ α */
+	0x1f03,	0x03b1,	/* ἃ α */
+	0x1f04,	0x03b1,	/* ἄ α */
+	0x1f05,	0x03b1,	/* ἅ α */
+	0x1f06,	0x03b1,	/* ἆ α */
+	0x1f07,	0x03b1,	/* ἇ α */
+	0x1f08,	0x0391,	/* Ἀ Α */
+	0x1f09,	0x0391,	/* Ἁ Α */
+	0x1f0a,	0x0391,	/* Ἂ Α */
+	0x1f0b,	0x0391,	/* Ἃ Α */
+	0x1f0c,	0x0391,	/* Ἄ Α */
+	0x1f0d,	0x0391,	/* Ἅ Α */
+	0x1f0e,	0x0391,	/* Ἆ Α */
+	0x1f0f,	0x0391,	/* Ἇ Α */
+	0x1f10,	0x03b5,	/* ἐ ε */
+	0x1f11,	0x03b5,	/* ἑ ε */
+	0x1f12,	0x03b5,	/* ἒ ε */
+	0x1f13,	0x03b5,	/* ἓ ε */
+	0x1f14,	0x03b5,	/* ἔ ε */
+	0x1f15,	0x03b5,	/* ἕ ε */
+	0x1f18,	0x0395,	/* Ἐ Ε */
+	0x1f19,	0x0395,	/* Ἑ Ε */
+	0x1f1a,	0x0395,	/* Ἒ Ε */
+	0x1f1b,	0x0395,	/* Ἓ Ε */
+	0x1f1c,	0x0395,	/* Ἔ Ε */
+	0x1f1d,	0x0395,	/* Ἕ Ε */
+	0x1f20,	0x03b7,	/* ἠ η */
+	0x1f21,	0x03b7,	/* ἡ η */
+	0x1f22,	0x03b7,	/* ἢ η */
+	0x1f23,	0x03b7,	/* ἣ η */
+	0x1f24,	0x03b7,	/* ἤ η */
+	0x1f25,	0x03b7,	/* ἥ η */
+	0x1f26,	0x03b7,	/* ἦ η */
+	0x1f27,	0x03b7,	/* ἧ η */
+	0x1f28,	0x0397,	/* Ἠ Η */
+	0x1f29,	0x0397,	/* Ἡ Η */
+	0x1f2a,	0x0397,	/* Ἢ Η */
+	0x1f2b,	0x0397,	/* Ἣ Η */
+	0x1f2c,	0x0397,	/* Ἤ Η */
+	0x1f2d,	0x0397,	/* Ἥ Η */
+	0x1f2e,	0x0397,	/* Ἦ Η */
+	0x1f2f,	0x0397,	/* Ἧ Η */
+	0x1f30,	0x03b9,	/* ἰ ι */
+	0x1f31,	0x03b9,	/* ἱ ι */
+	0x1f32,	0x03b9,	/* ἲ ι */
+	0x1f33,	0x03b9,	/* ἳ ι */
+	0x1f34,	0x03b9,	/* ἴ ι */
+	0x1f35,	0x03b9,	/* ἵ ι */
+	0x1f36,	0x03b9,	/* ἶ ι */
+	0x1f37,	0x03b9,	/* ἷ ι */
+	0x1f38,	0x0399,	/* Ἰ Ι */
+	0x1f39,	0x0399,	/* Ἱ Ι */
+	0x1f3a,	0x0399,	/* Ἲ Ι */
+	0x1f3b,	0x0399,	/* Ἳ Ι */
+	0x1f3c,	0x0399,	/* Ἴ Ι */
+	0x1f3d,	0x0399,	/* Ἵ Ι */
+	0x1f3e,	0x0399,	/* Ἶ Ι */
+	0x1f3f,	0x0399,	/* Ἷ Ι */
+	0x1f40,	0x03bf,	/* ὀ ο */
+	0x1f41,	0x03bf,	/* ὁ ο */
+	0x1f42,	0x03bf,	/* ὂ ο */
+	0x1f43,	0x03bf,	/* ὃ ο */
+	0x1f44,	0x03bf,	/* ὄ ο */
+	0x1f45,	0x03bf,	/* ὅ ο */
+	0x1f48,	0x039f,	/* Ὀ Ο */
+	0x1f49,	0x039f,	/* Ὁ Ο */
+	0x1f4a,	0x039f,	/* Ὂ Ο */
+	0x1f4b,	0x039f,	/* Ὃ Ο */
+	0x1f4c,	0x039f,	/* Ὄ Ο */
+	0x1f4d,	0x039f,	/* Ὅ Ο */
+	0x1f50,	0x03c5,	/* ὐ υ */
+	0x1f51,	0x03c5,	/* ὑ υ */
+	0x1f52,	0x03c5,	/* ὒ υ */
+	0x1f53,	0x03c5,	/* ὓ υ */
+	0x1f54,	0x03c5,	/* ὔ υ */
+	0x1f55,	0x03c5,	/* ὕ υ */
+	0x1f56,	0x03c5,	/* ὖ υ */
+	0x1f57,	0x03c5,	/* ὗ υ */
+	0x1f59,	0x03a5,	/* Ὑ Υ */
+	0x1f5b,	0x03a5,	/* Ὓ Υ */
+	0x1f5d,	0x03a5,	/* Ὕ Υ */
+	0x1f5f,	0x03a5,	/* Ὗ Υ */
+	0x1f60,	0x03c9,	/* ὠ ω */
+	0x1f61,	0x03c9,	/* ὡ ω */
+	0x1f62,	0x03c9,	/* ὢ ω */
+	0x1f63,	0x03c9,	/* ὣ ω */
+	0x1f64,	0x03c9,	/* ὤ ω */
+	0x1f65,	0x03c9,	/* ὥ ω */
+	0x1f66,	0x03c9,	/* ὦ ω */
+	0x1f67,	0x03c9,	/* ὧ ω */
+	0x1f68,	0x03a9,	/* Ὠ Ω */
+	0x1f69,	0x03a9,	/* Ὡ Ω */
+	0x1f6a,	0x03a9,	/* Ὢ Ω */
+	0x1f6b,	0x03a9,	/* Ὣ Ω */
+	0x1f6c,	0x03a9,	/* Ὤ Ω */
+	0x1f6d,	0x03a9,	/* Ὥ Ω */
+	0x1f6e,	0x03a9,	/* Ὦ Ω */
+	0x1f6f,	0x03a9,	/* Ὧ Ω */
+	0x1f70,	0x03b1,	/* ὰ α */
+	0x1f71,	0x03b1,	/* ά α */
+	0x1f72,	0x03b5,	/* ὲ ε */
+	0x1f73,	0x03b5,	/* έ ε */
+	0x1f74,	0x03b7,	/* ὴ η */
+	0x1f75,	0x03b7,	/* ή η */
+	0x1f76,	0x03b9,	/* ὶ ι */
+	0x1f77,	0x03b9,	/* ί ι */
+	0x1f78,	0x03bf,	/* ὸ ο */
+	0x1f79,	0x03bf,	/* ό ο */
+	0x1f7a,	0x03c5,	/* ὺ υ */
+	0x1f7b,	0x03c5,	/* ύ υ */
+	0x1f7c,	0x03c9,	/* ὼ ω */
+	0x1f7d,	0x03c9,	/* ώ ω */
+	0x1f80,	0x03b1,	/* ᾀ α */
+	0x1f81,	0x03b1,	/* ᾁ α */
+	0x1f82,	0x03b1,	/* ᾂ α */
+	0x1f83,	0x03b1,	/* ᾃ α */
+	0x1f84,	0x03b1,	/* ᾄ α */
+	0x1f85,	0x03b1,	/* ᾅ α */
+	0x1f86,	0x03b1,	/* ᾆ α */
+	0x1f87,	0x03b1,	/* ᾇ α */
+	0x1f88,	0x0391,	/* ᾈ Α */
+	0x1f89,	0x0391,	/* ᾉ Α */
+	0x1f8a,	0x0391,	/* ᾊ Α */
+	0x1f8b,	0x0391,	/* ᾋ Α */
+	0x1f8c,	0x0391,	/* ᾌ Α */
+	0x1f8d,	0x0391,	/* ᾍ Α */
+	0x1f8e,	0x0391,	/* ᾎ Α */
+	0x1f8f,	0x0391,	/* ᾏ Α */
+	0x1f90,	0x03b7,	/* ᾐ η */
+	0x1f91,	0x03b7,	/* ᾑ η */
+	0x1f92,	0x03b7,	/* ᾒ η */
+	0x1f93,	0x03b7,	/* ᾓ η */
+	0x1f94,	0x03b7,	/* ᾔ η */
+	0x1f95,	0x03b7,	/* ᾕ η */
+	0x1f96,	0x03b7,	/* ᾖ η */
+	0x1f97,	0x03b7,	/* ᾗ η */
+	0x1f98,	0x0397,	/* ᾘ Η */
+	0x1f99,	0x0397,	/* ᾙ Η */
+	0x1f9a,	0x0397,	/* ᾚ Η */
+	0x1f9b,	0x0397,	/* ᾛ Η */
+	0x1f9c,	0x0397,	/* ᾜ Η */
+	0x1f9d,	0x0397,	/* ᾝ Η */
+	0x1f9e,	0x0397,	/* ᾞ Η */
+	0x1f9f,	0x0397,	/* ᾟ Η */
+	0x1fa0,	0x03c9,	/* ᾠ ω */
+	0x1fa1,	0x03c9,	/* ᾡ ω */
+	0x1fa2,	0x03c9,	/* ᾢ ω */
+	0x1fa3,	0x03c9,	/* ᾣ ω */
+	0x1fa4,	0x03c9,	/* ᾤ ω */
+	0x1fa5,	0x03c9,	/* ᾥ ω */
+	0x1fa6,	0x03c9,	/* ᾦ ω */
+	0x1fa7,	0x03c9,	/* ᾧ ω */
+	0x1fa8,	0x03a9,	/* ᾨ Ω */
+	0x1fa9,	0x03a9,	/* ᾩ Ω */
+	0x1faa,	0x03a9,	/* ᾪ Ω */
+	0x1fab,	0x03a9,	/* ᾫ Ω */
+	0x1fac,	0x03a9,	/* ᾬ Ω */
+	0x1fad,	0x03a9,	/* ᾭ Ω */
+	0x1fae,	0x03a9,	/* ᾮ Ω */
+	0x1faf,	0x03a9,	/* ᾯ Ω */
+	0x1fb0,	0x03b1,	/* ᾰ α */
+	0x1fb1,	0x03b1,	/* ᾱ α */
+	0x1fb2,	0x03b1,	/* ᾲ α */
+	0x1fb3,	0x03b1,	/* ᾳ α */
+	0x1fb4,	0x03b1,	/* ᾴ α */
+	0x1fb6,	0x03b1,	/* ᾶ α */
+	0x1fb7,	0x03b1,	/* ᾷ α */
+	0x1fb8,	0x0391,	/* Ᾰ Α */
+	0x1fb9,	0x0391,	/* Ᾱ Α */
+	0x1fba,	0x0391,	/* Ὰ Α */
+	0x1fbb,	0x0391,	/* Ά Α */
+	0x1fbc,	0x0391,	/* ᾼ Α */
+	0x1fbe,	0x03b9,	/* ι ι */
+	0x1fc2,	0x03b7,	/* ῂ η */
+	0x1fc3,	0x03b7,	/* ῃ η */
+	0x1fc4,	0x03b7,	/* ῄ η */
+	0x1fc6,	0x03b7,	/* ῆ η */
+	0x1fc7,	0x03b7,	/* ῇ η */
+	0x1fc8,	0x0395,	/* Ὲ Ε */
+	0x1fc9,	0x0395,	/* Έ Ε */
+	0x1fca,	0x0397,	/* Ὴ Η */
+	0x1fcb,	0x0397,	/* Ή Η */
+	0x1fcc,	0x0397,	/* ῌ Η */
+	0x1fd0,	0x03b9,	/* ῐ ι */
+	0x1fd1,	0x03b9,	/* ῑ ι */
+	0x1fd2,	0x03b9,	/* ῒ ι */
+	0x1fd3,	0x03b9,	/* ΐ ι */
+	0x1fd6,	0x03b9,	/* ῖ ι */
+	0x1fd7,	0x03b9,	/* ῗ ι */
+	0x1fd8,	0x0399,	/* Ῐ Ι */
+	0x1fd9,	0x0399,	/* Ῑ Ι */
+	0x1fda,	0x0399,	/* Ὶ Ι */
+	0x1fdb,	0x0399,	/* Ί Ι */
+	0x1fe0,	0x03c5,	/* ῠ υ */
+	0x1fe1,	0x03c5,	/* ῡ υ */
+	0x1fe2,	0x03c5,	/* ῢ υ */
+	0x1fe3,	0x03c5,	/* ΰ υ */
+	0x1fe4,	0x03c1,	/* ῤ ρ */
+	0x1fe5,	0x03c1,	/* ῥ ρ */
+	0x1fe6,	0x03c5,	/* ῦ υ */
+	0x1fe7,	0x03c5,	/* ῧ υ */
+	0x1fe8,	0x03a5,	/* Ῠ Υ */
+	0x1fe9,	0x03a5,	/* Ῡ Υ */
+	0x1fea,	0x03a5,	/* Ὺ Υ */
+	0x1feb,	0x03a5,	/* Ύ Υ */
+	0x1fec,	0x03a1,	/* Ῥ Ρ */
+	0x1ff2,	0x03c9,	/* ῲ ω */
+	0x1ff3,	0x03c9,	/* ῳ ω */
+	0x1ff4,	0x03c9,	/* ῴ ω */
+	0x1ff6,	0x03c9,	/* ῶ ω */
+	0x1ff7,	0x03c9,	/* ῷ ω */
+	0x1ff8,	0x039f,	/* Ὸ Ο */
+	0x1ff9,	0x039f,	/* Ό Ο */
+	0x1ffa,	0x03a9,	/* Ὼ Ω */
+	0x1ffb,	0x03a9,	/* Ώ Ω */
+	0x1ffc,	0x03a9,	/* ῼ Ω */
+	0x2126,	0x03a9,	/* Ω Ω */
+	0x212a,	0x004b,	/* K K */
+	0x212b,	0x0041,	/* Å A */
+	0x304c,	0x304b,	/* が か */
+	0x304e,	0x304d,	/* ぎ き */
+	0x3050,	0x304f,	/* ぐ く */
+	0x3052,	0x3051,	/* げ け */
+	0x3054,	0x3053,	/* ご こ */
+	0x3056,	0x3055,	/* ざ さ */
+	0x3058,	0x3057,	/* じ し */
+	0x305a,	0x3059,	/* ず す */
+	0x305c,	0x305b,	/* ぜ せ */
+	0x305e,	0x305d,	/* ぞ そ */
+	0x3060,	0x305f,	/* だ た */
+	0x3062,	0x3061,	/* ぢ ち */
+	0x3065,	0x3064,	/* づ つ */
+	0x3067,	0x3066,	/* で て */
+	0x3069,	0x3068,	/* ど と */
+	0x3070,	0x306f,	/* ば は */
+	0x3071,	0x306f,	/* ぱ は */
+	0x3073,	0x3072,	/* び ひ */
+	0x3074,	0x3072,	/* ぴ ひ */
+	0x3076,	0x3075,	/* ぶ ふ */
+	0x3077,	0x3075,	/* ぷ ふ */
+	0x3079,	0x3078,	/* べ へ */
+	0x307a,	0x3078,	/* ぺ へ */
+	0x307c,	0x307b,	/* ぼ ほ */
+	0x307d,	0x307b,	/* ぽ ほ */
+	0x3094,	0x3046,	/* ゔ う */
+	0x309e,	0x309d,	/* ゞ ゝ */
+	0x30ac,	0x30ab,	/* ガ カ */
+	0x30ae,	0x30ad,	/* ギ キ */
+	0x30b0,	0x30af,	/* グ ク */
+	0x30b2,	0x30b1,	/* ゲ ケ */
+	0x30b4,	0x30b3,	/* ゴ コ */
+	0x30b6,	0x30b5,	/* ザ サ */
+	0x30b8,	0x30b7,	/* ジ シ */
+	0x30ba,	0x30b9,	/* ズ ス */
+	0x30bc,	0x30bb,	/* ゼ セ */
+	0x30be,	0x30bd,	/* ゾ ソ */
+	0x30c0,	0x30bf,	/* ダ タ */
+	0x30c2,	0x30c1,	/* ヂ チ */
+	0x30c5,	0x30c4,	/* ヅ ツ */
+	0x30c7,	0x30c6,	/* デ テ */
+	0x30c9,	0x30c8,	/* ド ト */
+	0x30d0,	0x30cf,	/* バ ハ */
+	0x30d1,	0x30cf,	/* パ ハ */
+	0x30d3,	0x30d2,	/* ビ ヒ */
+	0x30d4,	0x30d2,	/* ピ ヒ */
+	0x30d6,	0x30d5,	/* ブ フ */
+	0x30d7,	0x30d5,	/* プ フ */
+	0x30d9,	0x30d8,	/* ベ ヘ */
+	0x30da,	0x30d8,	/* ペ ヘ */
+	0x30dc,	0x30db,	/* ボ ホ */
+	0x30dd,	0x30db,	/* ポ ホ */
+	0x30f4,	0x30a6,	/* ヴ ウ */
+	0x30f7,	0x30ef,	/* ヷ ワ */
+	0x30f8,	0x30f0,	/* ヸ ヰ */
+	0x30f9,	0x30f1,	/* ヹ ヱ */
+	0x30fa,	0x30f2,	/* ヺ ヲ */
+	0x30fe,	0x30fd,	/* ヾ ヽ */
+	0xf900,	0x8c48,	/* 豈 豈 */
+	0xf901,	0x66f4,	/* 更 更 */
+	0xf902,	0x8eca,	/* 車 車 */
+	0xf903,	0x8cc8,	/* 賈 賈 */
+	0xf904,	0x6ed1,	/* 滑 滑 */
+	0xf905,	0x4e32,	/* 串 串 */
+	0xf906,	0x53e5,	/* 句 句 */
+	0xf907,	0x9f9c,	/* 龜 龜 */
+	0xf908,	0x9f9c,	/* 龜 龜 */
+	0xf909,	0x5951,	/* 契 契 */
+	0xf90a,	0x91d1,	/* 金 金 */
+	0xf90b,	0x5587,	/* 喇 喇 */
+	0xf90c,	0x5948,	/* 奈 奈 */
+	0xf90d,	0x61f6,	/* 懶 懶 */
+	0xf90e,	0x7669,	/* 癩 癩 */
+	0xf90f,	0x7f85,	/* 羅 羅 */
+	0xf910,	0x863f,	/* 蘿 蘿 */
+	0xf911,	0x87ba,	/* 螺 螺 */
+	0xf912,	0x88f8,	/* 裸 裸 */
+	0xf913,	0x908f,	/* 邏 邏 */
+	0xf914,	0x6a02,	/* 樂 樂 */
+	0xf915,	0x6d1b,	/* 洛 洛 */
+	0xf916,	0x70d9,	/* 烙 烙 */
+	0xf917,	0x73de,	/* 珞 珞 */
+	0xf918,	0x843d,	/* 落 落 */
+	0xf919,	0x916a,	/* 酪 酪 */
+	0xf91a,	0x99f1,	/* 駱 駱 */
+	0xf91b,	0x4e82,	/* 亂 亂 */
+	0xf91c,	0x5375,	/* 卵 卵 */
+	0xf91d,	0x6b04,	/* 欄 欄 */
+	0xf91e,	0x721b,	/* 爛 爛 */
+	0xf91f,	0x862d,	/* 蘭 蘭 */
+	0xf920,	0x9e1e,	/* 鸞 鸞 */
+	0xf921,	0x5d50,	/* 嵐 嵐 */
+	0xf922,	0x6feb,	/* 濫 濫 */
+	0xf923,	0x85cd,	/* 藍 藍 */
+	0xf924,	0x8964,	/* 襤 襤 */
+	0xf925,	0x62c9,	/* 拉 拉 */
+	0xf926,	0x81d8,	/* 臘 臘 */
+	0xf927,	0x881f,	/* 蠟 蠟 */
+	0xf928,	0x5eca,	/* 廊 廊 */
+	0xf929,	0x6717,	/* 朗 朗 */
+	0xf92a,	0x6d6a,	/* 浪 浪 */
+	0xf92b,	0x72fc,	/* 狼 狼 */
+	0xf92c,	0x90ce,	/* 郎 郎 */
+	0xf92d,	0x4f86,	/* 來 來 */
+	0xf92e,	0x51b7,	/* 冷 冷 */
+	0xf92f,	0x52de,	/* 勞 勞 */
+	0xf930,	0x64c4,	/* 擄 擄 */
+	0xf931,	0x6ad3,	/* 櫓 櫓 */
+	0xf932,	0x7210,	/* 爐 爐 */
+	0xf933,	0x76e7,	/* 盧 盧 */
+	0xf934,	0x8001,	/* 老 老 */
+	0xf935,	0x8606,	/* 蘆 蘆 */
+	0xf936,	0x865c,	/* 虜 虜 */
+	0xf937,	0x8def,	/* 路 路 */
+	0xf938,	0x9732,	/* 露 露 */
+	0xf939,	0x9b6f,	/* 魯 魯 */
+	0xf93a,	0x9dfa,	/* 鷺 鷺 */
+	0xf93b,	0x788c,	/* 碌 碌 */
+	0xf93c,	0x797f,	/* 祿 祿 */
+	0xf93d,	0x7da0,	/* 綠 綠 */
+	0xf93e,	0x83c9,	/* 菉 菉 */
+	0xf93f,	0x9304,	/* 錄 錄 */
+	0xf940,	0x9e7f,	/* 鹿 鹿 */
+	0xf941,	0x8ad6,	/* 論 論 */
+	0xf942,	0x58df,	/* 壟 壟 */
+	0xf943,	0x5f04,	/* 弄 弄 */
+	0xf944,	0x7c60,	/* 籠 籠 */
+	0xf945,	0x807e,	/* 聾 聾 */
+	0xf946,	0x7262,	/* 牢 牢 */
+	0xf947,	0x78ca,	/* 磊 磊 */
+	0xf948,	0x8cc2,	/* 賂 賂 */
+	0xf949,	0x96f7,	/* 雷 雷 */
+	0xf94a,	0x58d8,	/* 壘 壘 */
+	0xf94b,	0x5c62,	/* 屢 屢 */
+	0xf94c,	0x6a13,	/* 樓 樓 */
+	0xf94d,	0x6dda,	/* 淚 淚 */
+	0xf94e,	0x6f0f,	/* 漏 漏 */
+	0xf94f,	0x7d2f,	/* 累 累 */
+	0xf950,	0x7e37,	/* 縷 縷 */
+	0xf951,	0x964b,	/* 陋 陋 */
+	0xf952,	0x52d2,	/* 勒 勒 */
+	0xf953,	0x808b,	/* 肋 肋 */
+	0xf954,	0x51dc,	/* 凜 凜 */
+	0xf955,	0x51cc,	/* 凌 凌 */
+	0xf956,	0x7a1c,	/* 稜 稜 */
+	0xf957,	0x7dbe,	/* 綾 綾 */
+	0xf958,	0x83f1,	/* 菱 菱 */
+	0xf959,	0x9675,	/* 陵 陵 */
+	0xf95a,	0x8b80,	/* 讀 讀 */
+	0xf95b,	0x62cf,	/* 拏 拏 */
+	0xf95c,	0x6a02,	/* 樂 樂 */
+	0xf95d,	0x8afe,	/* 諾 諾 */
+	0xf95e,	0x4e39,	/* 丹 丹 */
+	0xf95f,	0x5be7,	/* 寧 寧 */
+	0xf960,	0x6012,	/* 怒 怒 */
+	0xf961,	0x7387,	/* 率 率 */
+	0xf962,	0x7570,	/* 異 異 */
+	0xf963,	0x5317,	/* 北 北 */
+	0xf964,	0x78fb,	/* 磻 磻 */
+	0xf965,	0x4fbf,	/* 便 便 */
+	0xf966,	0x5fa9,	/* 復 復 */
+	0xf967,	0x4e0d,	/* 不 不 */
+	0xf968,	0x6ccc,	/* 泌 泌 */
+	0xf969,	0x6578,	/* 數 數 */
+	0xf96a,	0x7d22,	/* 索 索 */
+	0xf96b,	0x53c3,	/* 參 參 */
+	0xf96c,	0x585e,	/* 塞 塞 */
+	0xf96d,	0x7701,	/* 省 省 */
+	0xf96e,	0x8449,	/* 葉 葉 */
+	0xf96f,	0x8aaa,	/* 說 說 */
+	0xf970,	0x6bba,	/* 殺 殺 */
+	0xf971,	0x8fb0,	/* 辰 辰 */
+	0xf972,	0x6c88,	/* 沈 沈 */
+	0xf973,	0x62fe,	/* 拾 拾 */
+	0xf974,	0x82e5,	/* 若 若 */
+	0xf975,	0x63a0,	/* 掠 掠 */
+	0xf976,	0x7565,	/* 略 略 */
+	0xf977,	0x4eae,	/* 亮 亮 */
+	0xf978,	0x5169,	/* 兩 兩 */
+	0xf979,	0x51c9,	/* 凉 凉 */
+	0xf97a,	0x6881,	/* 梁 梁 */
+	0xf97b,	0x7ce7,	/* 糧 糧 */
+	0xf97c,	0x826f,	/* 良 良 */
+	0xf97d,	0x8ad2,	/* 諒 諒 */
+	0xf97e,	0x91cf,	/* 量 量 */
+	0xf97f,	0x52f5,	/* 勵 勵 */
+	0xf980,	0x5442,	/* 呂 呂 */
+	0xf981,	0x5973,	/* 女 女 */
+	0xf982,	0x5eec,	/* 廬 廬 */
+	0xf983,	0x65c5,	/* 旅 旅 */
+	0xf984,	0x6ffe,	/* 濾 濾 */
+	0xf985,	0x792a,	/* 礪 礪 */
+	0xf986,	0x95ad,	/* 閭 閭 */
+	0xf987,	0x9a6a,	/* 驪 驪 */
+	0xf988,	0x9e97,	/* 麗 麗 */
+	0xf989,	0x9ece,	/* 黎 黎 */
+	0xf98a,	0x529b,	/* 力 力 */
+	0xf98b,	0x66c6,	/* 曆 曆 */
+	0xf98c,	0x6b77,	/* 歷 歷 */
+	0xf98d,	0x8f62,	/* 轢 轢 */
+	0xf98e,	0x5e74,	/* 年 年 */
+	0xf98f,	0x6190,	/* 憐 憐 */
+	0xf990,	0x6200,	/* 戀 戀 */
+	0xf991,	0x649a,	/* 撚 撚 */
+	0xf992,	0x6f23,	/* 漣 漣 */
+	0xf993,	0x7149,	/* 煉 煉 */
+	0xf994,	0x7489,	/* 璉 璉 */
+	0xf995,	0x79ca,	/* 秊 秊 */
+	0xf996,	0x7df4,	/* 練 練 */
+	0xf997,	0x806f,	/* 聯 聯 */
+	0xf998,	0x8f26,	/* 輦 輦 */
+	0xf999,	0x84ee,	/* 蓮 蓮 */
+	0xf99a,	0x9023,	/* 連 連 */
+	0xf99b,	0x934a,	/* 鍊 鍊 */
+	0xf99c,	0x5217,	/* 列 列 */
+	0xf99d,	0x52a3,	/* 劣 劣 */
+	0xf99e,	0x54bd,	/* 咽 咽 */
+	0xf99f,	0x70c8,	/* 烈 烈 */
+	0xf9a0,	0x88c2,	/* 裂 裂 */
+	0xf9a1,	0x8aaa,	/* 說 說 */
+	0xf9a2,	0x5ec9,	/* 廉 廉 */
+	0xf9a3,	0x5ff5,	/* 念 念 */
+	0xf9a4,	0x637b,	/* 捻 捻 */
+	0xf9a5,	0x6bae,	/* 殮 殮 */
+	0xf9a6,	0x7c3e,	/* 簾 簾 */
+	0xf9a7,	0x7375,	/* 獵 獵 */
+	0xf9a8,	0x4ee4,	/* 令 令 */
+	0xf9a9,	0x56f9,	/* 囹 囹 */
+	0xf9aa,	0x5be7,	/* 寧 寧 */
+	0xf9ab,	0x5dba,	/* 嶺 嶺 */
+	0xf9ac,	0x601c,	/* 怜 怜 */
+	0xf9ad,	0x73b2,	/* 玲 玲 */
+	0xf9ae,	0x7469,	/* 瑩 瑩 */
+	0xf9af,	0x7f9a,	/* 羚 羚 */
+	0xf9b0,	0x8046,	/* 聆 聆 */
+	0xf9b1,	0x9234,	/* 鈴 鈴 */
+	0xf9b2,	0x96f6,	/* 零 零 */
+	0xf9b3,	0x9748,	/* 靈 靈 */
+	0xf9b4,	0x9818,	/* 領 領 */
+	0xf9b5,	0x4f8b,	/* 例 例 */
+	0xf9b6,	0x79ae,	/* 禮 禮 */
+	0xf9b7,	0x91b4,	/* 醴 醴 */
+	0xf9b8,	0x96b8,	/* 隸 隸 */
+	0xf9b9,	0x60e1,	/* 惡 惡 */
+	0xf9ba,	0x4e86,	/* 了 了 */
+	0xf9bb,	0x50da,	/* 僚 僚 */
+	0xf9bc,	0x5bee,	/* 寮 寮 */
+	0xf9bd,	0x5c3f,	/* 尿 尿 */
+	0xf9be,	0x6599,	/* 料 料 */
+	0xf9bf,	0x6a02,	/* 樂 樂 */
+	0xf9c0,	0x71ce,	/* 燎 燎 */
+	0xf9c1,	0x7642,	/* 療 療 */
+	0xf9c2,	0x84fc,	/* 蓼 蓼 */
+	0xf9c3,	0x907c,	/* 遼 遼 */
+	0xf9c4,	0x9f8d,	/* 龍 龍 */
+	0xf9c5,	0x6688,	/* 暈 暈 */
+	0xf9c6,	0x962e,	/* 阮 阮 */
+	0xf9c7,	0x5289,	/* 劉 劉 */
+	0xf9c8,	0x677b,	/* 杻 杻 */
+	0xf9c9,	0x67f3,	/* 柳 柳 */
+	0xf9ca,	0x6d41,	/* 流 流 */
+	0xf9cb,	0x6e9c,	/* 溜 溜 */
+	0xf9cc,	0x7409,	/* 琉 琉 */
+	0xf9cd,	0x7559,	/* 留 留 */
+	0xf9ce,	0x786b,	/* 硫 硫 */
+	0xf9cf,	0x7d10,	/* 紐 紐 */
+	0xf9d0,	0x985e,	/* 類 類 */
+	0xf9d1,	0x516d,	/* 六 六 */
+	0xf9d2,	0x622e,	/* 戮 戮 */
+	0xf9d3,	0x9678,	/* 陸 陸 */
+	0xf9d4,	0x502b,	/* 倫 倫 */
+	0xf9d5,	0x5d19,	/* 崙 崙 */
+	0xf9d6,	0x6dea,	/* 淪 淪 */
+	0xf9d7,	0x8f2a,	/* 輪 輪 */
+	0xf9d8,	0x5f8b,	/* 律 律 */
+	0xf9d9,	0x6144,	/* 慄 慄 */
+	0xf9da,	0x6817,	/* 栗 栗 */
+	0xf9db,	0x7387,	/* 率 率 */
+	0xf9dc,	0x9686,	/* 隆 隆 */
+	0xf9dd,	0x5229,	/* 利 利 */
+	0xf9de,	0x540f,	/* 吏 吏 */
+	0xf9df,	0x5c65,	/* 履 履 */
+	0xf9e0,	0x6613,	/* 易 易 */
+	0xf9e1,	0x674e,	/* 李 李 */
+	0xf9e2,	0x68a8,	/* 梨 梨 */
+	0xf9e3,	0x6ce5,	/* 泥 泥 */
+	0xf9e4,	0x7406,	/* 理 理 */
+	0xf9e5,	0x75e2,	/* 痢 痢 */
+	0xf9e6,	0x7f79,	/* 罹 罹 */
+	0xf9e7,	0x88cf,	/* 裏 裏 */
+	0xf9e8,	0x88e1,	/* 裡 裡 */
+	0xf9e9,	0x91cc,	/* 里 里 */
+	0xf9ea,	0x96e2,	/* 離 離 */
+	0xf9eb,	0x533f,	/* 匿 匿 */
+	0xf9ec,	0x6eba,	/* 溺 溺 */
+	0xf9ed,	0x541d,	/* 吝 吝 */
+	0xf9ee,	0x71d0,	/* 燐 燐 */
+	0xf9ef,	0x7498,	/* 璘 璘 */
+	0xf9f0,	0x85fa,	/* 藺 藺 */
+	0xf9f1,	0x96a3,	/* 隣 隣 */
+	0xf9f2,	0x9c57,	/* 鱗 鱗 */
+	0xf9f3,	0x9e9f,	/* 麟 麟 */
+	0xf9f4,	0x6797,	/* 林 林 */
+	0xf9f5,	0x6dcb,	/* 淋 淋 */
+	0xf9f6,	0x81e8,	/* 臨 臨 */
+	0xf9f7,	0x7acb,	/* 立 立 */
+	0xf9f8,	0x7b20,	/* 笠 笠 */
+	0xf9f9,	0x7c92,	/* 粒 粒 */
+	0xf9fa,	0x72c0,	/* 狀 狀 */
+	0xf9fb,	0x7099,	/* 炙 炙 */
+	0xf9fc,	0x8b58,	/* 識 識 */
+	0xf9fd,	0x4ec0,	/* 什 什 */
+	0xf9fe,	0x8336,	/* 茶 茶 */
+	0xf9ff,	0x523a,	/* 刺 刺 */
+	0xfa00,	0x5207,	/* 切 切 */
+	0xfa01,	0x5ea6,	/* 度 度 */
+	0xfa02,	0x62d3,	/* 拓 拓 */
+	0xfa03,	0x7cd6,	/* 糖 糖 */
+	0xfa04,	0x5b85,	/* 宅 宅 */
+	0xfa05,	0x6d1e,	/* 洞 洞 */
+	0xfa06,	0x66b4,	/* 暴 暴 */
+	0xfa07,	0x8f3b,	/* 輻 輻 */
+	0xfa08,	0x884c,	/* 行 行 */
+	0xfa09,	0x964d,	/* 降 降 */
+	0xfa0a,	0x898b,	/* 見 見 */
+	0xfa0b,	0x5ed3,	/* 廓 廓 */
+	0xfa0c,	0x5140,	/* 兀 兀 */
+	0xfa0d,	0x55c0,	/* 嗀 嗀 */
+	0xfa10,	0x585a,	/* 塚 塚 */
+	0xfa12,	0x6674,	/* 晴 晴 */
+	0xfa15,	0x51de,	/* 凞 凞 */
+	0xfa16,	0x732a,	/* 猪 猪 */
+	0xfa17,	0x76ca,	/* 益 益 */
+	0xfa18,	0x793c,	/* 礼 礼 */
+	0xfa19,	0x795e,	/* 神 神 */
+	0xfa1a,	0x7965,	/* 祥 祥 */
+	0xfa1b,	0x798f,	/* 福 福 */
+	0xfa1c,	0x9756,	/* 靖 靖 */
+	0xfa1d,	0x7cbe,	/* 精 精 */
+	0xfa1e,	0x7fbd,	/* 羽 羽 */
+	0xfa20,	0x8612,	/* 蘒 蘒 */
+	0xfa22,	0x8af8,	/* 諸 諸 */
+	0xfa25,	0x9038,	/* 逸 逸 */
+	0xfa26,	0x90fd,	/* 都 都 */
+	0xfa2a,	0x98ef,	/* 飯 飯 */
+	0xfa2b,	0x98fc,	/* 飼 飼 */
+	0xfa2c,	0x9928,	/* 館 館 */
+	0xfa2d,	0x9db4,	/* 鶴 鶴 */
+	0xfa2e,	0x90de,	/* 郞 郞 */
+	0xfa2f,	0x96b7,	/* 隷 隷 */
+	0xfa30,	0x4fae,	/* 侮 侮 */
+	0xfa31,	0x50e7,	/* 僧 僧 */
+	0xfa32,	0x514d,	/* 免 免 */
+	0xfa33,	0x52c9,	/* 勉 勉 */
+	0xfa34,	0x52e4,	/* 勤 勤 */
+	0xfa35,	0x5351,	/* 卑 卑 */
+	0xfa36,	0x559d,	/* 喝 喝 */
+	0xfa37,	0x5606,	/* 嘆 嘆 */
+	0xfa38,	0x5668,	/* 器 器 */
+	0xfa39,	0x5840,	/* 塀 塀 */
+	0xfa3a,	0x58a8,	/* 墨 墨 */
+	0xfa3b,	0x5c64,	/* 層 層 */
+	0xfa3c,	0x5c6e,	/* 屮 屮 */
+	0xfa3d,	0x6094,	/* 悔 悔 */
+	0xfa3e,	0x6168,	/* 慨 慨 */
+	0xfa3f,	0x618e,	/* 憎 憎 */
+	0xfa40,	0x61f2,	/* 懲 懲 */
+	0xfa41,	0x654f,	/* 敏 敏 */
+	0xfa42,	0x65e2,	/* 既 既 */
+	0xfa43,	0x6691,	/* 暑 暑 */
+	0xfa44,	0x6885,	/* 梅 梅 */
+	0xfa45,	0x6d77,	/* 海 海 */
+	0xfa46,	0x6e1a,	/* 渚 渚 */
+	0xfa47,	0x6f22,	/* 漢 漢 */
+	0xfa48,	0x716e,	/* 煮 煮 */
+	0xfa49,	0x722b,	/* 爫 爫 */
+	0xfa4a,	0x7422,	/* 琢 琢 */
+	0xfa4b,	0x7891,	/* 碑 碑 */
+	0xfa4c,	0x793e,	/* 社 社 */
+	0xfa4d,	0x7949,	/* 祉 祉 */
+	0xfa4e,	0x7948,	/* 祈 祈 */
+	0xfa4f,	0x7950,	/* 祐 祐 */
+	0xfa50,	0x7956,	/* 祖 祖 */
+	0xfa51,	0x795d,	/* 祝 祝 */
+	0xfa52,	0x798d,	/* 禍 禍 */
+	0xfa53,	0x798e,	/* 禎 禎 */
+	0xfa54,	0x7a40,	/* 穀 穀 */
+	0xfa55,	0x7a81,	/* 突 突 */
+	0xfa56,	0x7bc0,	/* 節 節 */
+	0xfa57,	0x7df4,	/* 練 練 */
+	0xfa58,	0x7e09,	/* 縉 縉 */
+	0xfa59,	0x7e41,	/* 繁 繁 */
+	0xfa5a,	0x7f72,	/* 署 署 */
+	0xfa5b,	0x8005,	/* 者 者 */
+	0xfa5c,	0x81ed,	/* 臭 臭 */
+	0xfa5d,	0x8279,	/* 艹 艹 */
+	0xfa5e,	0x8279,	/* 艹 艹 */
+	0xfa5f,	0x8457,	/* 著 著 */
+	0xfa60,	0x8910,	/* 褐 褐 */
+	0xfa61,	0x8996,	/* 視 視 */
+	0xfa62,	0x8b01,	/* 謁 謁 */
+	0xfa63,	0x8b39,	/* 謹 謹 */
+	0xfa64,	0x8cd3,	/* 賓 賓 */
+	0xfa65,	0x8d08,	/* 贈 贈 */
+	0xfa66,	0x8fb6,	/* 辶 辶 */
+	0xfa67,	0x9038,	/* 逸 逸 */
+	0xfa68,	0x96e3,	/* 難 難 */
+	0xfa69,	0x97ff,	/* 響 響 */
+	0xfa6a,	0x983b,	/* 頻 頻 */
+	0xfa6b,	0x6075,	/* 恵 恵 */
+#ifdef UNICODE4
+	0xfa6c,	0x242ee,	/* 𤋮 ���� */
+	0xfa6d,	0x8218,	/* 舘 舘 */
+	0xfa70,	0x4e26,	/* 並 並 */
+	0xfa71,	0x51b5,	/* 况 况 */
+	0xfa72,	0x5168,	/* 全 全 */
+	0xfa73,	0x4f80,	/* 侀 侀 */
+	0xfa74,	0x5145,	/* 充 充 */
+	0xfa75,	0x5180,	/* 冀 冀 */
+	0xfa76,	0x52c7,	/* 勇 勇 */
+	0xfa77,	0x52fa,	/* 勺 勺 */
+	0xfa78,	0x559d,	/* 喝 喝 */
+	0xfa79,	0x5555,	/* 啕 啕 */
+	0xfa7a,	0x5599,	/* 喙 喙 */
+	0xfa7b,	0x55e2,	/* 嗢 嗢 */
+	0xfa7c,	0x585a,	/* 塚 塚 */
+	0xfa7d,	0x58b3,	/* 墳 墳 */
+	0xfa7e,	0x5944,	/* 奄 奄 */
+	0xfa7f,	0x5954,	/* 奔 奔 */
+	0xfa80,	0x5a62,	/* 婢 婢 */
+	0xfa81,	0x5b28,	/* 嬨 嬨 */
+	0xfa82,	0x5ed2,	/* 廒 廒 */
+	0xfa83,	0x5ed9,	/* 廙 廙 */
+	0xfa84,	0x5f69,	/* 彩 彩 */
+	0xfa85,	0x5fad,	/* 徭 徭 */
+	0xfa86,	0x60d8,	/* 惘 惘 */
+	0xfa87,	0x614e,	/* 慎 慎 */
+	0xfa88,	0x6108,	/* 愈 愈 */
+	0xfa89,	0x618e,	/* 憎 憎 */
+	0xfa8a,	0x6160,	/* 慠 慠 */
+	0xfa8b,	0x61f2,	/* 懲 懲 */
+	0xfa8c,	0x6234,	/* 戴 戴 */
+	0xfa8d,	0x63c4,	/* 揄 揄 */
+	0xfa8e,	0x641c,	/* 搜 搜 */
+	0xfa8f,	0x6452,	/* 摒 摒 */
+	0xfa90,	0x6556,	/* 敖 敖 */
+	0xfa91,	0x6674,	/* 晴 晴 */
+	0xfa92,	0x6717,	/* 朗 朗 */
+	0xfa93,	0x671b,	/* 望 望 */
+	0xfa94,	0x6756,	/* 杖 杖 */
+	0xfa95,	0x6b79,	/* 歹 歹 */
+	0xfa96,	0x6bba,	/* 殺 殺 */
+	0xfa97,	0x6d41,	/* 流 流 */
+	0xfa98,	0x6edb,	/* 滛 滛 */
+	0xfa99,	0x6ecb,	/* 滋 滋 */
+	0xfa9a,	0x6f22,	/* 漢 漢 */
+	0xfa9b,	0x701e,	/* 瀞 瀞 */
+	0xfa9c,	0x716e,	/* 煮 煮 */
+	0xfa9d,	0x77a7,	/* 瞧 瞧 */
+	0xfa9e,	0x7235,	/* 爵 爵 */
+	0xfa9f,	0x72af,	/* 犯 犯 */
+	0xfaa0,	0x732a,	/* 猪 猪 */
+	0xfaa1,	0x7471,	/* 瑱 瑱 */
+	0xfaa2,	0x7506,	/* 甆 甆 */
+	0xfaa3,	0x753b,	/* 画 画 */
+	0xfaa4,	0x761d,	/* 瘝 瘝 */
+	0xfaa5,	0x761f,	/* 瘟 瘟 */
+	0xfaa6,	0x76ca,	/* 益 益 */
+	0xfaa7,	0x76db,	/* 盛 盛 */
+	0xfaa8,	0x76f4,	/* 直 直 */
+	0xfaa9,	0x774a,	/* 睊 睊 */
+	0xfaaa,	0x7740,	/* 着 着 */
+	0xfaab,	0x78cc,	/* 磌 磌 */
+	0xfaac,	0x7ab1,	/* 窱 窱 */
+	0xfaad,	0x7bc0,	/* 節 節 */
+	0xfaae,	0x7c7b,	/* 类 类 */
+	0xfaaf,	0x7d5b,	/* 絛 絛 */
+	0xfab0,	0x7df4,	/* 練 練 */
+	0xfab1,	0x7f3e,	/* 缾 缾 */
+	0xfab2,	0x8005,	/* 者 者 */
+	0xfab3,	0x8352,	/* 荒 荒 */
+	0xfab4,	0x83ef,	/* 華 華 */
+	0xfab5,	0x8779,	/* 蝹 蝹 */
+	0xfab6,	0x8941,	/* 襁 襁 */
+	0xfab7,	0x8986,	/* 覆 覆 */
+	0xfab8,	0x8996,	/* 視 視 */
+	0xfab9,	0x8abf,	/* 調 調 */
+	0xfaba,	0x8af8,	/* 諸 諸 */
+	0xfabb,	0x8acb,	/* 請 請 */
+	0xfabc,	0x8b01,	/* 謁 謁 */
+	0xfabd,	0x8afe,	/* 諾 諾 */
+	0xfabe,	0x8aed,	/* 諭 諭 */
+	0xfabf,	0x8b39,	/* 謹 謹 */
+	0xfac0,	0x8b8a,	/* 變 變 */
+	0xfac1,	0x8d08,	/* 贈 贈 */
+	0xfac2,	0x8f38,	/* 輸 輸 */
+	0xfac3,	0x9072,	/* 遲 遲 */
+	0xfac4,	0x9199,	/* 醙 醙 */
+	0xfac5,	0x9276,	/* 鉶 鉶 */
+	0xfac6,	0x967c,	/* 陼 陼 */
+	0xfac7,	0x96e3,	/* 難 難 */
+	0xfac8,	0x9756,	/* 靖 靖 */
+	0xfac9,	0x97db,	/* 韛 韛 */
+	0xfaca,	0x97ff,	/* 響 響 */
+	0xfacb,	0x980b,	/* 頋 頋 */
+	0xfacc,	0x983b,	/* 頻 頻 */
+	0xfacd,	0x9b12,	/* 鬒 鬒 */
+	0xface,	0x9f9c,	/* 龜 龜 */
+	0xfacf,	0x2284a,	/* 𢡊 ���� */
+	0xfad0,	0x22844,	/* 𢡄 ���� */
+	0xfad1,	0x233d5,	/* 𣏕 ���� */
+	0xfad2,	0x3b9d,	/* 㮝 㮝 */
+	0xfad3,	0x4018,	/* 䀘 䀘 */
+	0xfad4,	0x4039,	/* 䀹 䀹 */
+	0xfad5,	0x25249,	/* 𥉉 ���� */
+	0xfad6,	0x25cd0,	/* 𥳐 ���� */
+	0xfad7,	0x27ed3,	/* 𧻓 ���� */
+	0xfad8,	0x9f43,	/* 齃 齃 */
+	0xfad9,	0x9f8e,	/* 龎 龎 */
+	0xfb1d,	0x05d9,	/* יִ י */
+	0xfb1f,	0x05f2,	/* ײַ ײ */
+	0xfb2a,	0x05e9,	/* שׁ ש */
+	0xfb2b,	0x05e9,	/* שׂ ש */
+	0xfb2c,	0x05e9,	/* שּׁ ש */
+	0xfb2d,	0x05e9,	/* שּׂ ש */
+	0xfb2e,	0x05d0,	/* אַ א */
+	0xfb2f,	0x05d0,	/* אָ א */
+	0xfb30,	0x05d0,	/* אּ א */
+	0xfb31,	0x05d1,	/* בּ ב */
+	0xfb32,	0x05d2,	/* גּ ג */
+	0xfb33,	0x05d3,	/* דּ ד */
+	0xfb34,	0x05d4,	/* הּ ה */
+	0xfb35,	0x05d5,	/* וּ ו */
+	0xfb36,	0x05d6,	/* זּ ז */
+	0xfb38,	0x05d8,	/* טּ ט */
+	0xfb39,	0x05d9,	/* יּ י */
+	0xfb3a,	0x05da,	/* ךּ ך */
+	0xfb3b,	0x05db,	/* כּ כ */
+	0xfb3c,	0x05dc,	/* לּ ל */
+	0xfb3e,	0x05de,	/* מּ מ */
+	0xfb40,	0x05e0,	/* נּ נ */
+	0xfb41,	0x05e1,	/* סּ ס */
+	0xfb43,	0x05e3,	/* ףּ ף */
+	0xfb44,	0x05e4,	/* פּ פ */
+	0xfb46,	0x05e6,	/* צּ צ */
+	0xfb47,	0x05e7,	/* קּ ק */
+	0xfb48,	0x05e8,	/* רּ ר */
+	0xfb49,	0x05e9,	/* שּ ש */
+	0xfb4a,	0x05ea,	/* תּ ת */
+	0xfb4b,	0x05d5,	/* וֹ ו */
+	0xfb4c,	0x05d1,	/* בֿ ב */
+	0xfb4d,	0x05db,	/* כֿ כ */
+	0xfb4e,	0x05e4,	/* פֿ פ */
+	0x1109a,	0x11099,	/* ���� ���� */
+	0x1109c,	0x1109b,	/* ���� ���� */
+	0x110ab,	0x110a5,	/* ���� ���� */
+	0x2f800,	0x4e3d,	/* ���� 丽 */
+	0x2f801,	0x4e38,	/* ���� 丸 */
+	0x2f802,	0x4e41,	/* ���� 乁 */
+	0x2f803,	0x20122,	/* ���� ���� */
+	0x2f804,	0x4f60,	/* ���� 你 */
+	0x2f805,	0x4fae,	/* ���� 侮 */
+	0x2f806,	0x4fbb,	/* ���� 侻 */
+	0x2f807,	0x5002,	/* ���� 倂 */
+	0x2f808,	0x507a,	/* ���� 偺 */
+	0x2f809,	0x5099,	/* ���� 備 */
+	0x2f80a,	0x50e7,	/* ���� 僧 */
+	0x2f80b,	0x50cf,	/* ���� 像 */
+	0x2f80c,	0x349e,	/* ���� 㒞 */
+	0x2f80d,	0x2063a,	/* ���� ���� */
+	0x2f80e,	0x514d,	/* ���� 免 */
+	0x2f80f,	0x5154,	/* ���� 兔 */
+	0x2f810,	0x5164,	/* ���� 兤 */
+	0x2f811,	0x5177,	/* ���� 具 */
+	0x2f812,	0x2051c,	/* ���� ���� */
+	0x2f813,	0x34b9,	/* ���� 㒹 */
+	0x2f814,	0x5167,	/* ���� 內 */
+	0x2f815,	0x518d,	/* ���� 再 */
+	0x2f816,	0x2054b,	/* ���� ���� */
+	0x2f817,	0x5197,	/* ���� 冗 */
+	0x2f818,	0x51a4,	/* ���� 冤 */
+	0x2f819,	0x4ecc,	/* ���� 仌 */
+	0x2f81a,	0x51ac,	/* ���� 冬 */
+	0x2f81b,	0x51b5,	/* ���� 况 */
+	0x2f81c,	0x291df,	/* ���� ���� */
+	0x2f81d,	0x51f5,	/* ���� 凵 */
+	0x2f81e,	0x5203,	/* ���� 刃 */
+	0x2f81f,	0x34df,	/* ���� 㓟 */
+	0x2f820,	0x523b,	/* ���� 刻 */
+	0x2f821,	0x5246,	/* ���� 剆 */
+	0x2f822,	0x5272,	/* ���� 割 */
+	0x2f823,	0x5277,	/* ���� 剷 */
+	0x2f824,	0x3515,	/* ���� 㔕 */
+	0x2f825,	0x52c7,	/* ���� 勇 */
+	0x2f826,	0x52c9,	/* ���� 勉 */
+	0x2f827,	0x52e4,	/* ���� 勤 */
+	0x2f828,	0x52fa,	/* ���� 勺 */
+	0x2f829,	0x5305,	/* ���� 包 */
+	0x2f82a,	0x5306,	/* ���� 匆 */
+	0x2f82b,	0x5317,	/* ���� 北 */
+	0x2f82c,	0x5349,	/* ���� 卉 */
+	0x2f82d,	0x5351,	/* ���� 卑 */
+	0x2f82e,	0x535a,	/* ���� 博 */
+	0x2f82f,	0x5373,	/* ���� 即 */
+	0x2f830,	0x537d,	/* ���� 卽 */
+	0x2f831,	0x537f,	/* ���� 卿 */
+	0x2f832,	0x537f,	/* ���� 卿 */
+	0x2f833,	0x537f,	/* ���� 卿 */
+	0x2f834,	0x20a2c,	/* ���� ���� */
+	0x2f835,	0x7070,	/* ���� 灰 */
+	0x2f836,	0x53ca,	/* ���� 及 */
+	0x2f837,	0x53df,	/* ���� 叟 */
+	0x2f838,	0x20b63,	/* ���� ���� */
+	0x2f839,	0x53eb,	/* ���� 叫 */
+	0x2f83a,	0x53f1,	/* ���� 叱 */
+	0x2f83b,	0x5406,	/* ���� 吆 */
+	0x2f83c,	0x549e,	/* ���� 咞 */
+	0x2f83d,	0x5438,	/* ���� 吸 */
+	0x2f83e,	0x5448,	/* ���� 呈 */
+	0x2f83f,	0x5468,	/* ���� 周 */
+	0x2f840,	0x54a2,	/* ���� 咢 */
+	0x2f841,	0x54f6,	/* ���� 哶 */
+	0x2f842,	0x5510,	/* ���� 唐 */
+	0x2f843,	0x5553,	/* ���� 啓 */
+	0x2f844,	0x5563,	/* ���� 啣 */
+	0x2f845,	0x5584,	/* ���� 善 */
+	0x2f846,	0x5584,	/* ���� 善 */
+	0x2f847,	0x5599,	/* ���� 喙 */
+	0x2f848,	0x55ab,	/* ���� 喫 */
+	0x2f849,	0x55b3,	/* ���� 喳 */
+	0x2f84a,	0x55c2,	/* ���� 嗂 */
+	0x2f84b,	0x5716,	/* ���� 圖 */
+	0x2f84c,	0x5606,	/* ���� 嘆 */
+	0x2f84d,	0x5717,	/* ���� 圗 */
+	0x2f84e,	0x5651,	/* ���� 噑 */
+	0x2f84f,	0x5674,	/* ���� 噴 */
+	0x2f850,	0x5207,	/* ���� 切 */
+	0x2f851,	0x58ee,	/* ���� 壮 */
+	0x2f852,	0x57ce,	/* ���� 城 */
+	0x2f853,	0x57f4,	/* ���� 埴 */
+	0x2f854,	0x580d,	/* ���� 堍 */
+	0x2f855,	0x578b,	/* ���� 型 */
+	0x2f856,	0x5832,	/* ���� 堲 */
+	0x2f857,	0x5831,	/* ���� 報 */
+	0x2f858,	0x58ac,	/* ���� 墬 */
+	0x2f859,	0x214e4,	/* ���� ���� */
+	0x2f85a,	0x58f2,	/* ���� 売 */
+	0x2f85b,	0x58f7,	/* ���� 壷 */
+	0x2f85c,	0x5906,	/* ���� 夆 */
+	0x2f85d,	0x591a,	/* ���� 多 */
+	0x2f85e,	0x5922,	/* ���� 夢 */
+	0x2f85f,	0x5962,	/* ���� 奢 */
+	0x2f860,	0x216a8,	/* ���� ���� */
+	0x2f861,	0x216ea,	/* ���� ���� */
+	0x2f862,	0x59ec,	/* ���� 姬 */
+	0x2f863,	0x5a1b,	/* ���� 娛 */
+	0x2f864,	0x5a27,	/* ���� 娧 */
+	0x2f865,	0x59d8,	/* ���� 姘 */
+	0x2f866,	0x5a66,	/* ���� 婦 */
+	0x2f867,	0x36ee,	/* ���� 㛮 */
+	0x2f868,	0x36fc,	/* ���� 㛼 */
+	0x2f869,	0x5b08,	/* ���� 嬈 */
+	0x2f86a,	0x5b3e,	/* ���� 嬾 */
+	0x2f86b,	0x5b3e,	/* ���� 嬾 */
+	0x2f86c,	0x219c8,	/* ���� ���� */
+	0x2f86d,	0x5bc3,	/* ���� 寃 */
+	0x2f86e,	0x5bd8,	/* ���� 寘 */
+	0x2f86f,	0x5be7,	/* ���� 寧 */
+	0x2f870,	0x5bf3,	/* ���� 寳 */
+	0x2f871,	0x21b18,	/* ���� ���� */
+	0x2f872,	0x5bff,	/* ���� 寿 */
+	0x2f873,	0x5c06,	/* ���� 将 */
+	0x2f874,	0x5f53,	/* ���� 当 */
+	0x2f875,	0x5c22,	/* ���� 尢 */
+	0x2f876,	0x3781,	/* ���� 㞁 */
+	0x2f877,	0x5c60,	/* ���� 屠 */
+	0x2f878,	0x5c6e,	/* ���� 屮 */
+	0x2f879,	0x5cc0,	/* ���� 峀 */
+	0x2f87a,	0x5c8d,	/* ���� 岍 */
+	0x2f87b,	0x21de4,	/* ���� ���� */
+	0x2f87c,	0x5d43,	/* ���� 嵃 */
+	0x2f87d,	0x21de6,	/* ���� ���� */
+	0x2f87e,	0x5d6e,	/* ���� 嵮 */
+	0x2f87f,	0x5d6b,	/* ���� 嵫 */
+	0x2f880,	0x5d7c,	/* ���� 嵼 */
+	0x2f881,	0x5de1,	/* ���� 巡 */
+	0x2f882,	0x5de2,	/* ���� 巢 */
+	0x2f883,	0x382f,	/* ���� 㠯 */
+	0x2f884,	0x5dfd,	/* ���� 巽 */
+	0x2f885,	0x5e28,	/* ���� 帨 */
+	0x2f886,	0x5e3d,	/* ���� 帽 */
+	0x2f887,	0x5e69,	/* ���� 幩 */
+	0x2f888,	0x3862,	/* ���� 㡢 */
+	0x2f889,	0x22183,	/* ���� ���� */
+	0x2f88a,	0x387c,	/* ���� 㡼 */
+	0x2f88b,	0x5eb0,	/* ���� 庰 */
+	0x2f88c,	0x5eb3,	/* ���� 庳 */
+	0x2f88d,	0x5eb6,	/* ���� 庶 */
+	0x2f88e,	0x5eca,	/* ���� 廊 */
+	0x2f88f,	0x2a392,	/* ���� ���� */
+	0x2f890,	0x5efe,	/* ���� 廾 */
+	0x2f891,	0x22331,	/* ���� ���� */
+	0x2f892,	0x22331,	/* ���� ���� */
+	0x2f893,	0x8201,	/* ���� 舁 */
+	0x2f894,	0x5f22,	/* ���� 弢 */
+	0x2f895,	0x5f22,	/* ���� 弢 */
+	0x2f896,	0x38c7,	/* ���� 㣇 */
+	0x2f897,	0x232b8,	/* ���� ���� */
+	0x2f898,	0x261da,	/* ���� ���� */
+	0x2f899,	0x5f62,	/* ���� 形 */
+	0x2f89a,	0x5f6b,	/* ���� 彫 */
+	0x2f89b,	0x38e3,	/* ���� 㣣 */
+	0x2f89c,	0x5f9a,	/* ���� 徚 */
+	0x2f89d,	0x5fcd,	/* ���� 忍 */
+	0x2f89e,	0x5fd7,	/* ���� 志 */
+	0x2f89f,	0x5ff9,	/* ���� 忹 */
+	0x2f8a0,	0x6081,	/* ���� 悁 */
+	0x2f8a1,	0x393a,	/* ���� 㤺 */
+	0x2f8a2,	0x391c,	/* ���� 㤜 */
+	0x2f8a3,	0x6094,	/* ���� 悔 */
+	0x2f8a4,	0x226d4,	/* ���� ���� */
+	0x2f8a5,	0x60c7,	/* ���� 惇 */
+	0x2f8a6,	0x6148,	/* ���� 慈 */
+	0x2f8a7,	0x614c,	/* ���� 慌 */
+	0x2f8a8,	0x614e,	/* ���� 慎 */
+	0x2f8a9,	0x614c,	/* ���� 慌 */
+	0x2f8aa,	0x617a,	/* ���� 慺 */
+	0x2f8ab,	0x618e,	/* ���� 憎 */
+	0x2f8ac,	0x61b2,	/* ���� 憲 */
+	0x2f8ad,	0x61a4,	/* ���� 憤 */
+	0x2f8ae,	0x61af,	/* ���� 憯 */
+	0x2f8af,	0x61de,	/* ���� 懞 */
+	0x2f8b0,	0x61f2,	/* ���� 懲 */
+	0x2f8b1,	0x61f6,	/* ���� 懶 */
+	0x2f8b2,	0x6210,	/* ���� 成 */
+	0x2f8b3,	0x621b,	/* ���� 戛 */
+	0x2f8b4,	0x625d,	/* ���� 扝 */
+	0x2f8b5,	0x62b1,	/* ���� 抱 */
+	0x2f8b6,	0x62d4,	/* ���� 拔 */
+	0x2f8b7,	0x6350,	/* ���� 捐 */
+	0x2f8b8,	0x22b0c,	/* ���� ���� */
+	0x2f8b9,	0x633d,	/* ���� 挽 */
+	0x2f8ba,	0x62fc,	/* ���� 拼 */
+	0x2f8bb,	0x6368,	/* ���� 捨 */
+	0x2f8bc,	0x6383,	/* ���� 掃 */
+	0x2f8bd,	0x63e4,	/* ���� 揤 */
+	0x2f8be,	0x22bf1,	/* ���� ���� */
+	0x2f8bf,	0x6422,	/* ���� 搢 */
+	0x2f8c0,	0x63c5,	/* ���� 揅 */
+	0x2f8c1,	0x63a9,	/* ���� 掩 */
+	0x2f8c2,	0x3a2e,	/* ���� 㨮 */
+	0x2f8c3,	0x6469,	/* ���� 摩 */
+	0x2f8c4,	0x647e,	/* ���� 摾 */
+	0x2f8c5,	0x649d,	/* ���� 撝 */
+	0x2f8c6,	0x6477,	/* ���� 摷 */
+	0x2f8c7,	0x3a6c,	/* ���� 㩬 */
+	0x2f8c8,	0x654f,	/* ���� 敏 */
+	0x2f8c9,	0x656c,	/* ���� 敬 */
+	0x2f8ca,	0x2300a,	/* ���� ���� */
+	0x2f8cb,	0x65e3,	/* ���� 旣 */
+	0x2f8cc,	0x66f8,	/* ���� 書 */
+	0x2f8cd,	0x6649,	/* ���� 晉 */
+	0x2f8ce,	0x3b19,	/* ���� 㬙 */
+	0x2f8cf,	0x6691,	/* ���� 暑 */
+	0x2f8d0,	0x3b08,	/* ���� 㬈 */
+	0x2f8d1,	0x3ae4,	/* ���� 㫤 */
+	0x2f8d2,	0x5192,	/* ���� 冒 */
+	0x2f8d3,	0x5195,	/* ���� 冕 */
+	0x2f8d4,	0x6700,	/* ���� 最 */
+	0x2f8d5,	0x669c,	/* ���� 暜 */
+	0x2f8d6,	0x80ad,	/* ���� 肭 */
+	0x2f8d7,	0x43d9,	/* ���� 䏙 */
+	0x2f8d8,	0x6717,	/* ���� 朗 */
+	0x2f8d9,	0x671b,	/* ���� 望 */
+	0x2f8da,	0x6721,	/* ���� 朡 */
+	0x2f8db,	0x675e,	/* ���� 杞 */
+	0x2f8dc,	0x6753,	/* ���� 杓 */
+	0x2f8dd,	0x233c3,	/* ���� ���� */
+	0x2f8de,	0x3b49,	/* ���� 㭉 */
+	0x2f8df,	0x67fa,	/* ���� 柺 */
+	0x2f8e0,	0x6785,	/* ���� 枅 */
+	0x2f8e1,	0x6852,	/* ���� 桒 */
+	0x2f8e2,	0x6885,	/* ���� 梅 */
+	0x2f8e3,	0x2346d,	/* ���� ���� */
+	0x2f8e4,	0x688e,	/* ���� 梎 */
+	0x2f8e5,	0x681f,	/* ���� 栟 */
+	0x2f8e6,	0x6914,	/* ���� 椔 */
+	0x2f8e7,	0x3b9d,	/* ���� 㮝 */
+	0x2f8e8,	0x6942,	/* ���� 楂 */
+	0x2f8e9,	0x69a3,	/* ���� 榣 */
+	0x2f8ea,	0x69ea,	/* ���� 槪 */
+	0x2f8eb,	0x6aa8,	/* ���� 檨 */
+	0x2f8ec,	0x236a3,	/* ���� ���� */
+	0x2f8ed,	0x6adb,	/* ���� 櫛 */
+	0x2f8ee,	0x3c18,	/* ���� 㰘 */
+	0x2f8ef,	0x6b21,	/* ���� 次 */
+	0x2f8f0,	0x238a7,	/* ���� ���� */
+	0x2f8f1,	0x6b54,	/* ���� 歔 */
+	0x2f8f2,	0x3c4e,	/* ���� 㱎 */
+	0x2f8f3,	0x6b72,	/* ���� 歲 */
+	0x2f8f4,	0x6b9f,	/* ���� 殟 */
+	0x2f8f5,	0x6bba,	/* ���� 殺 */
+	0x2f8f6,	0x6bbb,	/* ���� 殻 */
+	0x2f8f7,	0x23a8d,	/* ���� ���� */
+	0x2f8f8,	0x21d0b,	/* ���� ���� */
+	0x2f8f9,	0x23afa,	/* ���� ���� */
+	0x2f8fa,	0x6c4e,	/* ���� 汎 */
+	0x2f8fb,	0x23cbc,	/* ���� ���� */
+	0x2f8fc,	0x6cbf,	/* ���� 沿 */
+	0x2f8fd,	0x6ccd,	/* ���� 泍 */
+	0x2f8fe,	0x6c67,	/* ���� 汧 */
+	0x2f8ff,	0x6d16,	/* ���� 洖 */
+	0x2f900,	0x6d3e,	/* ���� 派 */
+	0x2f901,	0x6d77,	/* ���� 海 */
+	0x2f902,	0x6d41,	/* ���� 流 */
+	0x2f903,	0x6d69,	/* ���� 浩 */
+	0x2f904,	0x6d78,	/* ���� 浸 */
+	0x2f905,	0x6d85,	/* ���� 涅 */
+	0x2f906,	0x23d1e,	/* ���� ���� */
+	0x2f907,	0x6d34,	/* ���� 洴 */
+	0x2f908,	0x6e2f,	/* ���� 港 */
+	0x2f909,	0x6e6e,	/* ���� 湮 */
+	0x2f90a,	0x3d33,	/* ���� 㴳 */
+	0x2f90b,	0x6ecb,	/* ���� 滋 */
+	0x2f90c,	0x6ec7,	/* ���� 滇 */
+	0x2f90d,	0x23ed1,	/* ���� ���� */
+	0x2f90e,	0x6df9,	/* ���� 淹 */
+	0x2f90f,	0x6f6e,	/* ���� 潮 */
+	0x2f910,	0x23f5e,	/* ���� ���� */
+	0x2f911,	0x23f8e,	/* ���� ���� */
+	0x2f912,	0x6fc6,	/* ���� 濆 */
+	0x2f913,	0x7039,	/* ���� 瀹 */
+	0x2f914,	0x701e,	/* ���� 瀞 */
+	0x2f915,	0x701b,	/* ���� 瀛 */
+	0x2f916,	0x3d96,	/* ���� 㶖 */
+	0x2f917,	0x704a,	/* ���� 灊 */
+	0x2f918,	0x707d,	/* ���� 災 */
+	0x2f919,	0x7077,	/* ���� 灷 */
+	0x2f91a,	0x70ad,	/* ���� 炭 */
+	0x2f91b,	0x20525,	/* ���� ���� */
+	0x2f91c,	0x7145,	/* ���� 煅 */
+	0x2f91d,	0x24263,	/* ���� ���� */
+	0x2f91e,	0x719c,	/* ���� 熜 */
+	0x2f91f,	0x243ab,	/* ���� ���� */
+	0x2f920,	0x7228,	/* ���� 爨 */
+	0x2f921,	0x7235,	/* ���� 爵 */
+	0x2f922,	0x7250,	/* ���� 牐 */
+	0x2f923,	0x24608,	/* ���� ���� */
+	0x2f924,	0x7280,	/* ���� 犀 */
+	0x2f925,	0x7295,	/* ���� 犕 */
+	0x2f926,	0x24735,	/* ���� ���� */
+	0x2f927,	0x24814,	/* ���� ���� */
+	0x2f928,	0x737a,	/* ���� 獺 */
+	0x2f929,	0x738b,	/* ���� 王 */
+	0x2f92a,	0x3eac,	/* ���� 㺬 */
+	0x2f92b,	0x73a5,	/* ���� 玥 */
+	0x2f92c,	0x3eb8,	/* ���� 㺸 */
+	0x2f92d,	0x3eb8,	/* ���� 㺸 */
+	0x2f92e,	0x7447,	/* ���� 瑇 */
+	0x2f92f,	0x745c,	/* ���� 瑜 */
+	0x2f930,	0x7471,	/* ���� 瑱 */
+	0x2f931,	0x7485,	/* ���� 璅 */
+	0x2f932,	0x74ca,	/* ���� 瓊 */
+	0x2f933,	0x3f1b,	/* ���� 㼛 */
+	0x2f934,	0x7524,	/* ���� 甤 */
+	0x2f935,	0x24c36,	/* ���� ���� */
+	0x2f936,	0x753e,	/* ���� 甾 */
+	0x2f937,	0x24c92,	/* ���� ���� */
+	0x2f938,	0x7570,	/* ���� 異 */
+	0x2f939,	0x2219f,	/* ���� ���� */
+	0x2f93a,	0x7610,	/* ���� 瘐 */
+	0x2f93b,	0x24fa1,	/* ���� ���� */
+	0x2f93c,	0x24fb8,	/* ���� ���� */
+	0x2f93d,	0x25044,	/* ���� ���� */
+	0x2f93e,	0x3ffc,	/* ���� 㿼 */
+	0x2f93f,	0x4008,	/* ���� 䀈 */
+	0x2f940,	0x76f4,	/* ���� 直 */
+	0x2f941,	0x250f3,	/* ���� ���� */
+	0x2f942,	0x250f2,	/* ���� ���� */
+	0x2f943,	0x25119,	/* ���� ���� */
+	0x2f944,	0x25133,	/* ���� ���� */
+	0x2f945,	0x771e,	/* ���� 眞 */
+	0x2f946,	0x771f,	/* ���� 真 */
+	0x2f947,	0x771f,	/* ���� 真 */
+	0x2f948,	0x774a,	/* ���� 睊 */
+	0x2f949,	0x4039,	/* ���� 䀹 */
+	0x2f94a,	0x778b,	/* ���� 瞋 */
+	0x2f94b,	0x4046,	/* ���� 䁆 */
+	0x2f94c,	0x4096,	/* ���� 䂖 */
+	0x2f94d,	0x2541d,	/* ���� ���� */
+	0x2f94e,	0x784e,	/* ���� 硎 */
+	0x2f94f,	0x788c,	/* ���� 碌 */
+	0x2f950,	0x78cc,	/* ���� 磌 */
+	0x2f951,	0x40e3,	/* ���� 䃣 */
+	0x2f952,	0x25626,	/* ���� ���� */
+	0x2f953,	0x7956,	/* ���� 祖 */
+	0x2f954,	0x2569a,	/* ���� ���� */
+	0x2f955,	0x256c5,	/* ���� ���� */
+	0x2f956,	0x798f,	/* ���� 福 */
+	0x2f957,	0x79eb,	/* ���� 秫 */
+	0x2f958,	0x412f,	/* ���� 䄯 */
+	0x2f959,	0x7a40,	/* ���� 穀 */
+	0x2f95a,	0x7a4a,	/* ���� 穊 */
+	0x2f95b,	0x7a4f,	/* ���� 穏 */
+	0x2f95c,	0x2597c,	/* ���� ���� */
+	0x2f95d,	0x25aa7,	/* ���� ���� */
+	0x2f95e,	0x25aa7,	/* ���� ���� */
+	0x2f95f,	0x7aee,	/* ���� 竮 */
+	0x2f960,	0x4202,	/* ���� 䈂 */
+	0x2f961,	0x25bab,	/* ���� ���� */
+	0x2f962,	0x7bc6,	/* ���� 篆 */
+	0x2f963,	0x7bc9,	/* ���� 築 */
+	0x2f964,	0x4227,	/* ���� 䈧 */
+	0x2f965,	0x25c80,	/* ���� ���� */
+	0x2f966,	0x7cd2,	/* ���� 糒 */
+	0x2f967,	0x42a0,	/* ���� 䊠 */
+	0x2f968,	0x7ce8,	/* ���� 糨 */
+	0x2f969,	0x7ce3,	/* ���� 糣 */
+	0x2f96a,	0x7d00,	/* ���� 紀 */
+	0x2f96b,	0x25f86,	/* ���� ���� */
+	0x2f96c,	0x7d63,	/* ���� 絣 */
+	0x2f96d,	0x4301,	/* ���� 䌁 */
+	0x2f96e,	0x7dc7,	/* ���� 緇 */
+	0x2f96f,	0x7e02,	/* ���� 縂 */
+	0x2f970,	0x7e45,	/* ���� 繅 */
+	0x2f971,	0x4334,	/* ���� 䌴 */
+	0x2f972,	0x26228,	/* ���� ���� */
+	0x2f973,	0x26247,	/* ���� ���� */
+	0x2f974,	0x4359,	/* ���� 䍙 */
+	0x2f975,	0x262d9,	/* ���� ���� */
+	0x2f976,	0x7f7a,	/* ���� 罺 */
+	0x2f977,	0x2633e,	/* ���� ���� */
+	0x2f978,	0x7f95,	/* ���� 羕 */
+	0x2f979,	0x7ffa,	/* ���� 翺 */
+	0x2f97a,	0x8005,	/* ���� 者 */
+	0x2f97b,	0x264da,	/* ���� ���� */
+	0x2f97c,	0x26523,	/* ���� ���� */
+	0x2f97d,	0x8060,	/* ���� 聠 */
+	0x2f97e,	0x265a8,	/* ���� ���� */
+	0x2f97f,	0x8070,	/* ���� 聰 */
+	0x2f980,	0x2335f,	/* ���� ���� */
+	0x2f981,	0x43d5,	/* ���� 䏕 */
+	0x2f982,	0x80b2,	/* ���� 育 */
+	0x2f983,	0x8103,	/* ���� 脃 */
+	0x2f984,	0x440b,	/* ���� 䐋 */
+	0x2f985,	0x813e,	/* ���� 脾 */
+	0x2f986,	0x5ab5,	/* ���� 媵 */
+	0x2f987,	0x267a7,	/* ���� ���� */
+	0x2f988,	0x267b5,	/* ���� ���� */
+	0x2f989,	0x23393,	/* ���� ���� */
+	0x2f98a,	0x2339c,	/* ���� ���� */
+	0x2f98b,	0x8201,	/* ���� 舁 */
+	0x2f98c,	0x8204,	/* ���� 舄 */
+	0x2f98d,	0x8f9e,	/* ���� 辞 */
+	0x2f98e,	0x446b,	/* ���� 䑫 */
+	0x2f98f,	0x8291,	/* ���� 芑 */
+	0x2f990,	0x828b,	/* ���� 芋 */
+	0x2f991,	0x829d,	/* ���� 芝 */
+	0x2f992,	0x52b3,	/* ���� 劳 */
+	0x2f993,	0x82b1,	/* ���� 花 */
+	0x2f994,	0x82b3,	/* ���� 芳 */
+	0x2f995,	0x82bd,	/* ���� 芽 */
+	0x2f996,	0x82e6,	/* ���� 苦 */
+	0x2f997,	0x26b3c,	/* ���� ���� */
+	0x2f998,	0x82e5,	/* ���� 若 */
+	0x2f999,	0x831d,	/* ���� 茝 */
+	0x2f99a,	0x8363,	/* ���� 荣 */
+	0x2f99b,	0x83ad,	/* ���� 莭 */
+	0x2f99c,	0x8323,	/* ���� 茣 */
+	0x2f99d,	0x83bd,	/* ���� 莽 */
+	0x2f99e,	0x83e7,	/* ���� 菧 */
+	0x2f99f,	0x8457,	/* ���� 著 */
+	0x2f9a0,	0x8353,	/* ���� 荓 */
+	0x2f9a1,	0x83ca,	/* ���� 菊 */
+	0x2f9a2,	0x83cc,	/* ���� 菌 */
+	0x2f9a3,	0x83dc,	/* ���� 菜 */
+	0x2f9a4,	0x26c36,	/* ���� ���� */
+	0x2f9a5,	0x26d6b,	/* ���� ���� */
+	0x2f9a6,	0x26cd5,	/* ���� ���� */
+	0x2f9a7,	0x452b,	/* ���� 䔫 */
+	0x2f9a8,	0x84f1,	/* ���� 蓱 */
+	0x2f9a9,	0x84f3,	/* ���� 蓳 */
+	0x2f9aa,	0x8516,	/* ���� 蔖 */
+	0x2f9ab,	0x273ca,	/* ���� ���� */
+	0x2f9ac,	0x8564,	/* ���� 蕤 */
+	0x2f9ad,	0x26f2c,	/* ���� ���� */
+	0x2f9ae,	0x455d,	/* ���� 䕝 */
+	0x2f9af,	0x4561,	/* ���� 䕡 */
+	0x2f9b0,	0x26fb1,	/* ���� ���� */
+	0x2f9b1,	0x270d2,	/* ���� ���� */
+	0x2f9b2,	0x456b,	/* ���� 䕫 */
+	0x2f9b3,	0x8650,	/* ���� 虐 */
+	0x2f9b4,	0x865c,	/* ���� 虜 */
+	0x2f9b5,	0x8667,	/* ���� 虧 */
+	0x2f9b6,	0x8669,	/* ���� 虩 */
+	0x2f9b7,	0x86a9,	/* ���� 蚩 */
+	0x2f9b8,	0x8688,	/* ���� 蚈 */
+	0x2f9b9,	0x870e,	/* ���� 蜎 */
+	0x2f9ba,	0x86e2,	/* ���� 蛢 */
+	0x2f9bb,	0x8779,	/* ���� 蝹 */
+	0x2f9bc,	0x8728,	/* ���� 蜨 */
+	0x2f9bd,	0x876b,	/* ���� 蝫 */
+	0x2f9be,	0x8786,	/* ���� 螆 */
+	0x2f9bf,	0x45d7,	/* ���� 䗗 */
+	0x2f9c0,	0x87e1,	/* ���� 蟡 */
+	0x2f9c1,	0x8801,	/* ���� 蠁 */
+	0x2f9c2,	0x45f9,	/* ���� 䗹 */
+	0x2f9c3,	0x8860,	/* ���� 衠 */
+	0x2f9c4,	0x8863,	/* ���� 衣 */
+	0x2f9c5,	0x27667,	/* ���� ���� */
+	0x2f9c6,	0x88d7,	/* ���� 裗 */
+	0x2f9c7,	0x88de,	/* ���� 裞 */
+	0x2f9c8,	0x4635,	/* ���� 䘵 */
+	0x2f9c9,	0x88fa,	/* ���� 裺 */
+	0x2f9ca,	0x34bb,	/* ���� 㒻 */
+	0x2f9cb,	0x278ae,	/* ���� ���� */
+	0x2f9cc,	0x27966,	/* ���� ���� */
+	0x2f9cd,	0x46be,	/* ���� 䚾 */
+	0x2f9ce,	0x46c7,	/* ���� 䛇 */
+	0x2f9cf,	0x8aa0,	/* ���� 誠 */
+	0x2f9d0,	0x8aed,	/* ���� 諭 */
+	0x2f9d1,	0x8b8a,	/* ���� 變 */
+	0x2f9d2,	0x8c55,	/* ���� 豕 */
+	0x2f9d3,	0x27ca8,	/* ���� ���� */
+	0x2f9d4,	0x8cab,	/* ���� 貫 */
+	0x2f9d5,	0x8cc1,	/* ���� 賁 */
+	0x2f9d6,	0x8d1b,	/* ���� 贛 */
+	0x2f9d7,	0x8d77,	/* ���� 起 */
+	0x2f9d8,	0x27f2f,	/* ���� ���� */
+	0x2f9d9,	0x20804,	/* ���� ���� */
+	0x2f9da,	0x8dcb,	/* ���� 跋 */
+	0x2f9db,	0x8dbc,	/* ���� 趼 */
+	0x2f9dc,	0x8df0,	/* ���� 跰 */
+	0x2f9dd,	0x208de,	/* ���� ���� */
+	0x2f9de,	0x8ed4,	/* ���� 軔 */
+	0x2f9df,	0x8f38,	/* ���� 輸 */
+	0x2f9e0,	0x285d2,	/* ���� ���� */
+	0x2f9e1,	0x285ed,	/* ���� ���� */
+	0x2f9e2,	0x9094,	/* ���� 邔 */
+	0x2f9e3,	0x90f1,	/* ���� 郱 */
+	0x2f9e4,	0x9111,	/* ���� 鄑 */
+	0x2f9e5,	0x2872e,	/* ���� ���� */
+	0x2f9e6,	0x911b,	/* ���� 鄛 */
+	0x2f9e7,	0x9238,	/* ���� 鈸 */
+	0x2f9e8,	0x92d7,	/* ���� 鋗 */
+	0x2f9e9,	0x92d8,	/* ���� 鋘 */
+	0x2f9ea,	0x927c,	/* ���� 鉼 */
+	0x2f9eb,	0x93f9,	/* ���� 鏹 */
+	0x2f9ec,	0x9415,	/* ���� 鐕 */
+	0x2f9ed,	0x28bfa,	/* ���� ���� */
+	0x2f9ee,	0x958b,	/* ���� 開 */
+	0x2f9ef,	0x4995,	/* ���� 䦕 */
+	0x2f9f0,	0x95b7,	/* ���� 閷 */
+	0x2f9f1,	0x28d77,	/* ���� ���� */
+	0x2f9f2,	0x49e6,	/* ���� 䧦 */
+	0x2f9f3,	0x96c3,	/* ���� 雃 */
+	0x2f9f4,	0x5db2,	/* ���� 嶲 */
+	0x2f9f5,	0x9723,	/* ���� 霣 */
+	0x2f9f6,	0x29145,	/* ���� ���� */
+	0x2f9f7,	0x2921a,	/* ���� ���� */
+	0x2f9f8,	0x4a6e,	/* ���� 䩮 */
+	0x2f9f9,	0x4a76,	/* ���� 䩶 */
+	0x2f9fa,	0x97e0,	/* ���� 韠 */
+	0x2f9fb,	0x2940a,	/* ���� ���� */
+	0x2f9fc,	0x4ab2,	/* ���� 䪲 */
+	0x2f9fd,	0x29496,	/* ���� ���� */
+	0x2f9fe,	0x980b,	/* ���� 頋 */
+	0x2f9ff,	0x980b,	/* ���� 頋 */
+	0x2fa00,	0x9829,	/* ���� 頩 */
+	0x2fa01,	0x295b6,	/* ���� ���� */
+	0x2fa02,	0x98e2,	/* ���� 飢 */
+	0x2fa03,	0x4b33,	/* ���� 䬳 */
+	0x2fa04,	0x9929,	/* ���� 餩 */
+	0x2fa05,	0x99a7,	/* ���� 馧 */
+	0x2fa06,	0x99c2,	/* ���� 駂 */
+	0x2fa07,	0x99fe,	/* ���� 駾 */
+	0x2fa08,	0x4bce,	/* ���� 䯎 */
+	0x2fa09,	0x29b30,	/* ���� ���� */
+	0x2fa0a,	0x9b12,	/* ���� 鬒 */
+	0x2fa0b,	0x9c40,	/* ���� 鱀 */
+	0x2fa0c,	0x9cfd,	/* ���� 鳽 */
+	0x2fa0d,	0x4cce,	/* ���� 䳎 */
+	0x2fa0e,	0x4ced,	/* ���� 䳭 */
+	0x2fa0f,	0x9d67,	/* ���� 鵧 */
+	0x2fa10,	0x2a0ce,	/* ���� ���� */
+	0x2fa11,	0x4cf8,	/* ���� 䳸 */
+	0x2fa12,	0x2a105,	/* ���� ���� */
+	0x2fa13,	0x2a20e,	/* ���� ���� */
+	0x2fa14,	0x2a291,	/* ���� ���� */
+	0x2fa15,	0x9ebb,	/* ���� 麻 */
+	0x2fa16,	0x4d56,	/* ���� 䵖 */
+	0x2fa17,	0x9ef9,	/* ���� 黹 */
+	0x2fa18,	0x9efe,	/* ���� 黾 */
+	0x2fa19,	0x9f05,	/* ���� 鼅 */
+	0x2fa1a,	0x9f0f,	/* ���� 鼏 */
+	0x2fa1b,	0x9f16,	/* ���� 鼖 */
+	0x2fa1c,	0x9f3b,	/* ���� 鼻 */
+#endif
+};
+
+Rune
+tobaserune(Rune c)
+{
+	Rune *p;
+
+	p = _runebsearch(c, _base2, nelem(_base2)/2, 2);
+	if(p && c == p[0])
+		c = p[1];
+	return c;
+}
+
+int
+isbaserune(Rune c)
+{
+	return tobaserune(c) == c;
+}

+ 22 - 0
sys/src/libc/port/runebsearch.c

@@ -0,0 +1,22 @@
+#include <u.h>
+#include <libc.h>
+
+Rune*
+_runebsearch(Rune c, Rune *t, int n, int ne)
+{
+	Rune *p;
+	int m;
+
+	while(n > 1) {
+		m = n/2;
+		p = t + m*ne;
+		if(c >= p[0]) {
+			t = p;
+			n = n-m;
+		} else
+			n = m;
+	}
+	if(n && c >= t[0])
+		return t;
+	return 0;
+}

+ 1 - 1
sys/src/libdraw/buildfont.c

@@ -70,7 +70,7 @@ buildfont(Display *d, char *buf, char *name)
 		}
 		max = strtol(s, &s, 0);
 		s = skip(s);
-		if(*s==0 || min>=65536 || max>=65536 || min>max){
+		if(*s==0 || min>=Runemax || max>=Runemax || min>max){
 			werrstr("illegal subfont range");
     Err3:
 			freefont(fnt);

+ 1 - 0
sys/src/libmach/0.c

@@ -4,6 +4,7 @@
  * currently no compiler - not related to 0c
  */
 #include <u.h>
+#include <libc.h>
 #include <bio.h>
 #include "mips2ureg.h"
 #include <mach.h>

+ 1 - 0
sys/src/libmach/68020.c

@@ -3,6 +3,7 @@
  */
 #include <u.h>
 #include "68020/ureg.h"
+#include <libc.h>
 #include <bio.h>
 #include <mach.h>
 

+ 1 - 0
sys/src/libmach/alpha.c

@@ -2,6 +2,7 @@
  * alpha definition
  */
 #include <u.h>
+#include <libc.h>
 #include <bio.h>
 #include "alpha/ureg.h"
 #include <mach.h>

+ 1 - 0
sys/src/libmach/k.c

@@ -2,6 +2,7 @@
  * sparc definition
  */
 #include <u.h>
+#include <libc.h>
 #include <bio.h>
 #include "/sparc/include/ureg.h"
 #include <mach.h>

+ 1 - 0
sys/src/libmach/q.c

@@ -3,6 +3,7 @@
  *	forsyth@terzarima.net
  */
 #include <u.h>
+#include <libc.h>
 #include <bio.h>
 #include "/power/include/ureg.h"
 #include <mach.h>

+ 1 - 0
sys/src/libmach/sparc64.c

@@ -2,6 +2,7 @@
  * sparc64 definition
  */
 #include <u.h>
+#include <libc.h>
 #include <bio.h>
 #include "sparc64/ureg.h"
 #include <mach.h>

+ 1 - 0
sys/src/libmach/v.c

@@ -2,6 +2,7 @@
  * mips definition
  */
 #include <u.h>
+#include <libc.h>
 #include <bio.h>
 #include "/mips/include/ureg.h"
 #include <mach.h>

+ 5 - 1
sys/src/libmach/vcodas.c

@@ -493,9 +493,13 @@ cop0(Instr *i)
 			m = "rfe";
 			break;
 	
-		case 32:
+		case 24:
 			m = "eret";
 			break;
+	
+		case 32:
+			m = "wait";
+			break;
 		}
 		if (m) {
 			format(m, i, 0);

+ 8 - 2
sys/src/libmach/vdb.c

@@ -415,7 +415,9 @@ static void
 sll(Opcode *o, Instr *i)
 {
 	if (i->w0 == 0)
-		bprint(i, "NOOP");
+		bprint(i, "NOOP");		/* unofficial nop */
+	else if (i->w0 == 0xc0)			/* 0xc0: SLL $3,R0 */
+		bprint(i, "EHB");
 	else if (i->rd == i->rt)
 		format(o->mnemonic, i, "$%a,R%d");
 	else
@@ -962,9 +964,13 @@ cop0(Instr *i)
 			m = "RFE";
 			break;
 	
-		case 32:
+		case 24:
 			m = "ERET";
 			break;
+
+		case 32:
+			m = "WAIT";
+			break;
 		}
 		if (m) {
 			format(m, i, 0);