]> git.wh0rd.org - fontconfig.git/commitdiff
Update iso639-2 language coverage info, fix Georgian orthography to
authorKeith Packard <keithp@keithp.com>
Mon, 8 Jul 2002 07:31:53 +0000 (07:31 +0000)
committerKeith Packard <keithp@keithp.com>
Mon, 8 Jul 2002 07:31:53 +0000 (07:31 +0000)
    eliminate Mingrelian and Svan glyphs, use coverage for inclusion and
    OS/2 for Han exclusion, restructure fclang.c to use fclang.h from
    fc-lang dir

fc-lang/Imakefile
fc-lang/fclang.h [new file with mode: 0644]
fc-lang/fclang.tmpl.c [deleted file]
fc-lang/fclang.tmpl.h [new file with mode: 0644]
fc-lang/iso639-2
fc-lang/ka.orth
fc-lang/zh_mo.orth [new file with mode: 0644]
fc-lang/zh_sg.orth [new file with mode: 0644]
src/fcfreetype.c
src/fcint.h
src/fclang.c

index 083199193ed2f67699a17b0c2ab03c65b2dc6248..9ae4a273eb7e8c935e0fdf203c9d5dabfca5f2ea 100644 (file)
@@ -1,4 +1,4 @@
-XCOMM $XFree86: xc/lib/fontconfig/fc-lang/Imakefile,v 1.3 2002/07/07 19:18:51 keithp Exp $
+XCOMM $XFree86: xc/lib/fontconfig/fc-lang/Imakefile,v 1.4 2002/07/07 19:30:52 keithp Exp $
 
 #ifdef UseInstalled
 /* building outside the tree, use private defines */
@@ -13,8 +13,8 @@ LOCAL_LIBRARIES=FontconfigClientLibs
 SRCS=fc-lang.c
 OBJS=fc-lang.o
 
-TARG=fclang.c
-TMPL=fclang.tmpl.c
+TARG=fclang.h
+TMPL=fclang.tmpl.h
 
 #
 # Basic ISO 639-1 two letter language names
@@ -26,7 +26,7 @@ ORTH1=ab.orth ar.orth az.orth ba.orth be.orth bg.orth bn.orth bo.orth br.orth\
       mk.orth ml.orth mn.orth mo.orth mt.orth nl.orth no.orth oc.orth or.orth\
       pl.orth pt.orth rm.orth ro.orth ru.orth sh.orth si.orth sk.orth sl.orth\
       sq.orth sr.orth sv.orth ta.orth te.orth th.orth tl.orth tr.orth uk.orth\
-      vo.orth wa.orth yi.orth zh_cn.orth zh_tw.orth
+      vo.orth wa.orth yi.orth zh_cn.orth zh_mo.orth zh_sg.orth zh_tw.orth
 
 #
 # ISO 639-2 adds many more three letter language names
diff --git a/fc-lang/fclang.h b/fc-lang/fclang.h
new file mode 100644 (file)
index 0000000..01c199f
--- /dev/null
@@ -0,0 +1,2624 @@
+/*
+ * $XFree86: xc/lib/fontconfig/fc-lang/fclang.tmpl.h,v 1.1 2002/07/06 23:21:36 keithp Exp $
+ *
+ * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/* total size: 662 unique leaves: 436 */
+
+static const FcCharLeaf        leaves[436] = {
+    { { /* 0 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x08000800, 0x00000000, 0x00000000,
+    } },
+    { { /* 1 */
+    0xffff8002, 0xffffffff, 0x8002ffff, 0x00000000,
+    0xc0000000, 0xf0fc33c0, 0x03000000, 0x00000000,
+    } },
+    { { /* 2 */
+    0x88001000, 0x07fffffe, 0x0007ffff, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 3 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x10400090, 0x10400090,
+    } },
+    { { /* 4 */
+    0xc0000000, 0x00030000, 0xc0000000, 0x00000000,
+    0x00008000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 5 */
+    0x00000000, 0x00000000, 0x02000000, 0x00000000,
+    0x00000000, 0x10000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 6 */
+    0xffff0100, 0xffffffff, 0x0100ffff, 0x00000000,
+    0x300c0000, 0x0f00c000, 0x03000000, 0x00000300,
+    } },
+    { { /* 7 */
+    0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000,
+    0x030c0000, 0x0000cc0f, 0x03000000, 0x00000300,
+    } },
+    { { /* 8 */
+    0xffff4042, 0xffffffff, 0x4042ffff, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 9 */
+    0xffff0001, 0xffffd7ff, 0x2001d7ff, 0x00000c0c,
+    0x00000000, 0x00002000, 0x00000000, 0x00000000,
+    } },
+    { { /* 10 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xfff99fee, 0xd3c5fdff, 0xb080399f, 0x07ffffcf,
+    } },
+    { { /* 11 */
+    0xffffffff, 0xffffffff, 0xfffffeff, 0xfffe07ff,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 12 */
+    0x00000000, 0x00000080, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000800, 0x12020404, 0x12020404,
+    } },
+    { { /* 13 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00800000, 0x140ca381, 0x140ca381,
+    } },
+    { { /* 14 */
+    0x00000000, 0x80000000, 0x00000001, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 15 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000800, 0x0a12cf45, 0x8a12cf45,
+    } },
+    { { /* 16 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x34482212, 0x34482212,
+    } },
+    { { /* 17 */
+    0x0c00f000, 0x00000000, 0x03000180, 0x6000c033,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 18 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000800, 0x75592ff7, 0x75592ff7,
+    } },
+    { { /* 19 */
+    0x00000000, 0x00000000, 0x000c0000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0xfc000000,
+    } },
+    { { /* 20 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000800, 0x90400010, 0x10400010,
+    } },
+    { { /* 21 */
+    0x00000000, 0x00000000, 0x00000000, 0x44300000,
+    0xffffd7f0, 0xfffffffb, 0xfc807fff, 0x00000003,
+    } },
+    { { /* 22 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x8fd38f81, 0x00520000,
+    } },
+    { { /* 23 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 24 */
+    0x30000300, 0x00300030, 0x30000000, 0x00003000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 25 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x80000002, 0x140a2202, 0x140a2202,
+    } },
+    { { /* 26 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x10600010, 0x10600010,
+    } },
+    { { /* 27 */
+    0x00000000, 0x00000000, 0x00000000, 0x60000003,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 28 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x10020000, 0x10020000,
+    } },
+    { { /* 29 */
+    0x00000000, 0x00000000, 0x00300000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 30 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000000, 0x10600070, 0x10600070,
+    } },
+    { { /* 31 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x35492072, 0x35492072,
+    } },
+    { { /* 32 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x060c3383, 0x060c3383,
+    } },
+    { { /* 33 */
+    0x00000c00, 0x00000003, 0x00000000, 0x80000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 34 */
+    0x00000000, 0x00000000, 0x00000000, 0x10000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 35 */
+    0xc0000c0c, 0x00000000, 0x00c00003, 0x00000c03,
+    0x08000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 36 */
+    0x00000000, 0x00000000, 0x00000400, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 37 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x020c1381, 0x020c1381,
+    } },
+    { { /* 38 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x88000802, 0x140a2202, 0x140a2202,
+    } },
+    { { /* 39 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xfffbafee, 0xf3edfdff, 0x00013bbf, 0x0000ffc1,
+    } },
+    { { /* 40 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0xffff0000, 0x000007ff,
+    } },
+    { { /* 41 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x02041101, 0x02041101,
+    } },
+    { { /* 42 */
+    0x000330c0, 0x00000000, 0x00000000, 0x60000003,
+    0x00000000, 0x00000000, 0x00001ff0, 0x003e0000,
+    } },
+    { { /* 43 */
+    0x00ffffff, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 44 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x14482203, 0x14482203,
+    } },
+    { { /* 45 */
+    0x00000000, 0x00000000, 0x00030000, 0x00030000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 46 */
+    0x00000000, 0xfffe0000, 0xfc7fffff, 0xfffffffe,
+    0x0000067f, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 47 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x75092a72, 0x75092272,
+    } },
+    { { /* 48 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x060cb301, 0x060cb300,
+    } },
+    { { /* 49 */
+    0x000000e7, 0x00000000, 0xfffffffe, 0xffffffff,
+    0x780fffff, 0xfffffffe, 0xffffffff, 0x787fffff,
+    } },
+    { { /* 50 */
+    0x43f36f8b, 0x9b462442, 0xe3e0e82c, 0x400a0004,
+    0xdb365f65, 0x04497977, 0xe3f0ecd7, 0x08c56038,
+    } },
+    { { /* 51 */
+    0x3403e602, 0x35518000, 0x7eabe0c8, 0x98698200,
+    0x2942a948, 0x8060e803, 0xad93441c, 0x4568c03a,
+    } },
+    { { /* 52 */
+    0x8656aa60, 0x02403f7a, 0x14618388, 0x21741020,
+    0x07022021, 0x40bc3000, 0x4462a624, 0x0a2060a8,
+    } },
+    { { /* 53 */
+    0x85740217, 0x9c840402, 0x14157bfb, 0x11e27f24,
+    0x02efb665, 0x20ff1f75, 0x38403a70, 0x676326c3,
+    } },
+    { { /* 54 */
+    0x20924dd9, 0x0fc946b0, 0x4850bc98, 0xa03f8638,
+    0x88162388, 0x52323e09, 0xe3a422aa, 0xc72c00dd,
+    } },
+    { { /* 55 */
+    0x26e1a166, 0x8f0a840b, 0x559e27eb, 0x89bbc241,
+    0x85400014, 0x08496361, 0x8ad07f0c, 0x05cfff3e,
+    } },
+    { { /* 56 */
+    0xa803ff1a, 0x7b407a41, 0x80024745, 0x38eb0500,
+    0x0005d851, 0x710c9934, 0x01000397, 0x24046366,
+    } },
+    { { /* 57 */
+    0x005180d0, 0x430ac000, 0x30c89071, 0x58000008,
+    0xf7000e99, 0x00415f80, 0x941000b0, 0x62800018,
+    } },
+    { { /* 58 */
+    0x09d00240, 0x01568200, 0x08015004, 0x05101d10,
+    0x001084c1, 0x10504025, 0x4d8a410f, 0xa60d4009,
+    } },
+    { { /* 59 */
+    0x914cab19, 0x098121c0, 0x0003c485, 0x80000652,
+    0x00080b04, 0x0009041d, 0x905c4849, 0x16900009,
+    } },
+    { { /* 60 */
+    0x22200c65, 0x24338412, 0x47960c03, 0x42250a04,
+    0x90880028, 0x4f084900, 0xd3aa14a2, 0x3e87d830,
+    } },
+    { { /* 61 */
+    0x1f618604, 0x41867ea4, 0x05b3c390, 0x211857a5,
+    0x2a48241e, 0x4a041128, 0x161b0a40, 0x88400d60,
+    } },
+    { { /* 62 */
+    0x9502020a, 0x10608221, 0x04000243, 0x80001444,
+    0x0c040000, 0x70000000, 0x00c11a06, 0x0c00024a,
+    } },
+    { { /* 63 */
+    0x00401a00, 0x40451404, 0xbdb30029, 0x052b0a78,
+    0xbfa0bba9, 0x8379407c, 0xe81d12fc, 0xc5694bf6,
+    } },
+    { { /* 64 */
+    0x044aeff6, 0xff022115, 0x402bed63, 0x0242d033,
+    0x00131000, 0x59ca1b02, 0x020000a0, 0x2c41a703,
+    } },
+    { { /* 65 */
+    0x8ff24880, 0x00000204, 0x10055800, 0x00489200,
+    0x20011894, 0x34805004, 0x684c3200, 0x68be49ea,
+    } },
+    { { /* 66 */
+    0x2e42184c, 0x21c9a820, 0x80b050b9, 0xff7c001e,
+    0x14e0849a, 0x01e028c1, 0xac49870e, 0xdddb130f,
+    } },
+    { { /* 67 */
+    0x89fbbe1a, 0x51a2a2e0, 0x32ca5502, 0x928b3e46,
+    0x438f1dbf, 0x32186703, 0x33c03028, 0xa9230811,
+    } },
+    { { /* 68 */
+    0x3a65c000, 0x04028fe3, 0x86252c4e, 0x00a1bf3d,
+    0x8cd43a1a, 0x317c06c9, 0x950a00e0, 0x0edb018b,
+    } },
+    { { /* 69 */
+    0x8c20e34b, 0xf0101182, 0xa7287d94, 0x40fbc9ac,
+    0x06534484, 0x44445a90, 0x00013fc8, 0xf5d40048,
+    } },
+    { { /* 70 */
+    0xec577701, 0x891dc442, 0x49286b83, 0xd2424109,
+    0x59fe061d, 0x3a221800, 0x3b9fb7e4, 0xc0eaf003,
+    } },
+    { { /* 71 */
+    0x82021386, 0xe4008980, 0x10a1b200, 0x0cc44b80,
+    0x8944d309, 0x48341faf, 0x0c458259, 0x0450420a,
+    } },
+    { { /* 72 */
+    0x10c8a040, 0x44503140, 0x01004004, 0x05408280,
+    0x442c0108, 0x1a056a30, 0x051420a6, 0x645690cf,
+    } },
+    { { /* 73 */
+    0x31000021, 0xcbf09c18, 0x63e2a120, 0x01b5104c,
+    0x9a83538c, 0x3281b8b2, 0x0a84987a, 0x0c0233e7,
+    } },
+    { { /* 74 */
+    0x9018d4cc, 0x9070a1a1, 0xe0048a1e, 0x0451c3d4,
+    0x21c2439a, 0x53104844, 0x36400292, 0xf3bd0241,
+    } },
+    { { /* 75 */
+    0xe8f0ab09, 0xa5d27dc0, 0xd24bc242, 0xd0afa43f,
+    0x34a11aa0, 0x03d88247, 0x651bc452, 0xc83ad294,
+    } },
+    { { /* 76 */
+    0x40c8001c, 0x33140e06, 0xb21b614f, 0xc0d00088,
+    0xa898a02a, 0x166ba1c5, 0x85b42e50, 0x0604c08b,
+    } },
+    { { /* 77 */
+    0x1e04f933, 0xa251056e, 0x76380400, 0x73b8ec07,
+    0x18324406, 0xc8164081, 0x63097c8a, 0xaa042980,
+    } },
+    { { /* 78 */
+    0xca9c1c24, 0x27604e0e, 0x83000990, 0x81040046,
+    0x10816011, 0x0908540d, 0xcc0a000e, 0x0c000500,
+    } },
+    { { /* 79 */
+    0xa0440430, 0x6784008b, 0x8a195288, 0x8b18865e,
+    0x41602e59, 0x9cbe8c10, 0x891c6861, 0x00089800,
+    } },
+    { { /* 80 */
+    0x089a8100, 0x41900018, 0xe4a14007, 0x640d0505,
+    0x0e4d310e, 0xff0a4806, 0x2aa81632, 0x000b852e,
+    } },
+    { { /* 81 */
+    0xca841800, 0x696c0e20, 0x16000032, 0x03905658,
+    0x1a285120, 0x11248000, 0x432618e1, 0x0eaa5d52,
+    } },
+    { { /* 82 */
+    0xae280fa0, 0x4500fa7b, 0x89406408, 0xc044c880,
+    0xb1419005, 0x24c48424, 0x603a1a34, 0xc1949000,
+    } },
+    { { /* 83 */
+    0x003a8246, 0xc106180d, 0x99100022, 0x1511e050,
+    0x00824057, 0x020a041a, 0x8930004f, 0x444ad813,
+    } },
+    { { /* 84 */
+    0xed228a02, 0x400510c0, 0x01021000, 0x31018808,
+    0x02044600, 0x0708f000, 0xa2008900, 0x22020000,
+    } },
+    { { /* 85 */
+    0x16100200, 0x10400042, 0x02605200, 0x200052f4,
+    0x82308510, 0x42021100, 0x80b54308, 0x9a2070e1,
+    } },
+    { { /* 86 */
+    0x08012040, 0xfc653500, 0xab0419c1, 0x62140286,
+    0x00440087, 0x02449085, 0x0a85405c, 0x33803207,
+    } },
+    { { /* 87 */
+    0xb8c00400, 0xc0d0ce20, 0x0080c030, 0x0d250508,
+    0x00400a90, 0x080c0200, 0x40006505, 0x41026421,
+    } },
+    { { /* 88 */
+    0x00000268, 0x847c0024, 0xde200002, 0x40498619,
+    0x40000808, 0x20010084, 0x10108400, 0x01c742cd,
+    } },
+    { { /* 89 */
+    0xd52a7038, 0x1d8f1968, 0x3e12be50, 0x81d92ef5,
+    0x2412cec4, 0x732e0828, 0x4b3424ac, 0xd41d020c,
+    } },
+    { { /* 90 */
+    0x80002a02, 0x08110097, 0x114411c4, 0x7d451786,
+    0x064949d9, 0x87914000, 0xd8c4254c, 0x491444ba,
+    } },
+    { { /* 91 */
+    0xc8001b92, 0x15800271, 0x0c000081, 0xc200096a,
+    0x40024800, 0xba493021, 0x1c802080, 0x1008e2ac,
+    } },
+    { { /* 92 */
+    0x00341004, 0x841400e1, 0x20000020, 0x10149800,
+    0x04aa70c2, 0x54208688, 0x04130c62, 0x20109180,
+    } },
+    { { /* 93 */
+    0x02064082, 0x54001c40, 0xe4e90383, 0x84802125,
+    0x2000e433, 0xe60944c0, 0x81260a03, 0x080112da,
+    } },
+    { { /* 94 */
+    0x97906901, 0xf8864001, 0x0081e24d, 0xa6510a0e,
+    0x81ec011a, 0x8441c600, 0xb62cadb8, 0x8741a46f,
+    } },
+    { { /* 95 */
+    0x4b028d54, 0x02681161, 0x2057bb60, 0x043350a0,
+    0xb7b4a8c0, 0x01122402, 0x20009ad3, 0x00c82271,
+    } },
+    { { /* 96 */
+    0x809e2081, 0xe1800c8a, 0x8151b009, 0x40281031,
+    0x89a52a0e, 0x620e69b6, 0xd1444425, 0x4d548085,
+    } },
+    { { /* 97 */
+    0x1fb12c75, 0x862dd807, 0x4841d87c, 0x226e414e,
+    0x9e088200, 0xed37f80c, 0x75268c80, 0x08149313,
+    } },
+    { { /* 98 */
+    0xc8040e32, 0x6ea6484e, 0x66702c4a, 0xba0126c0,
+    0x185dd30c, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 99 */
+    0x00000000, 0x05400000, 0x81337020, 0x03a54f81,
+    0x641055ec, 0x2344c318, 0x00341462, 0x1a090a43,
+    } },
+    { { /* 100 */
+    0x13a5187b, 0xa8480102, 0xc5440440, 0xe2dd8106,
+    0x2d481af0, 0x0416b626, 0x6e405058, 0x31128032,
+    } },
+    { { /* 101 */
+    0x0c0007e4, 0x420a8208, 0x803b4840, 0x87134860,
+    0x3428850d, 0xe5290319, 0x870a2345, 0x5c1825a9,
+    } },
+    { { /* 102 */
+    0xd9c577a6, 0x03e85e00, 0xa7000081, 0x41c6cd54,
+    0xa2042800, 0x2b0ab860, 0xda9e0020, 0x0e1a08ea,
+    } },
+    { { /* 103 */
+    0x11c0427c, 0x03768908, 0x01058621, 0x18a80000,
+    0xc44846a0, 0x20220d05, 0x91485422, 0x28978a01,
+    } },
+    { { /* 104 */
+    0x00087898, 0x31221605, 0x08804240, 0x06a2fa4e,
+    0x92110814, 0x9b042002, 0x06432e52, 0x90105000,
+    } },
+    { { /* 105 */
+    0x85ba0041, 0x20203042, 0x05a04f0b, 0x40802708,
+    0x1a930591, 0x0600df50, 0x3021a202, 0x4e800630,
+    } },
+    { { /* 106 */
+    0x04c80cc4, 0x8001a004, 0xd4316000, 0x0a020880,
+    0x00281c00, 0x00418e18, 0xca106ad0, 0x4b00f210,
+    } },
+    { { /* 107 */
+    0x1506274d, 0x88900220, 0x82a85a00, 0x81504549,
+    0x80002004, 0x2c088804, 0x000508d1, 0x4ac48001,
+    } },
+    { { /* 108 */
+    0x0062e020, 0x0a42008e, 0x6a8c3055, 0xe0a5090e,
+    0x42c42906, 0x80b34814, 0xb330803e, 0x731c0102,
+    } },
+    { { /* 109 */
+    0x600d1494, 0x09400c20, 0xc040301a, 0xc094a451,
+    0x05c88dca, 0xa40c96c2, 0x34040001, 0x011000c8,
+    } },
+    { { /* 110 */
+    0xa9c9550d, 0x1c5a2428, 0x48370142, 0x100f7a4d,
+    0x452a32b4, 0x9205317b, 0x5c44b894, 0x458a68d7,
+    } },
+    { { /* 111 */
+    0x2ed15097, 0x42081943, 0x9d40d202, 0x20979840,
+    0x064d5409, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 112 */
+    0x00000000, 0x84800000, 0x04215542, 0x17001c06,
+    0x61107624, 0xb9ddff87, 0x5c0a659f, 0x3c00245d,
+    } },
+    { { /* 113 */
+    0x0059adb0, 0x00000000, 0x00000000, 0x009b28d0,
+    0x02000422, 0x44080108, 0xac409804, 0x90288d0a,
+    } },
+    { { /* 114 */
+    0xe0018700, 0x00310400, 0x82211794, 0x10540019,
+    0x021a2cb2, 0x40039c02, 0x88043d60, 0x7900080c,
+    } },
+    { { /* 115 */
+    0xba3c1628, 0xcb088640, 0x90807274, 0x0000001e,
+    0xd8000000, 0x9c87e188, 0x04124034, 0x2791ae64,
+    } },
+    { { /* 116 */
+    0xe6fbe86b, 0x5366408f, 0x537feea6, 0xb5e4e32b,
+    0x0002869f, 0x01228548, 0x08004402, 0x20a02116,
+    } },
+    { { /* 117 */
+    0x02040004, 0x00052000, 0x01547e00, 0x01ac162c,
+    0x10852a84, 0x05308c14, 0xb943fbc3, 0x906000ca,
+    } },
+    { { /* 118 */
+    0x40326000, 0x80901200, 0x4c810b30, 0x40020054,
+    0x1d6a0029, 0x02802000, 0x00048000, 0x150c2610,
+    } },
+    { { /* 119 */
+    0x07018040, 0x0c24d94d, 0x18502810, 0x50205001,
+    0x04d01000, 0x02017080, 0x21c30108, 0x00000132,
+    } },
+    { { /* 120 */
+    0x07190088, 0x05600802, 0x4c0e0012, 0xf0a10405,
+    0x00000002, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 121 */
+    0x00000000, 0x00000000, 0x00000000, 0x00800000,
+    0x035a8e8d, 0x5a0421bd, 0x11703488, 0x00000026,
+    } },
+    { { /* 122 */
+    0x10000000, 0x8804c502, 0xf801b815, 0x25ed147c,
+    0x1bb0ed60, 0x1bd70589, 0x1a627af3, 0x0ac50d0c,
+    } },
+    { { /* 123 */
+    0x524ae5d1, 0x63050490, 0x52440354, 0x16122b57,
+    0x1101a872, 0x00182949, 0x10080948, 0x886c6000,
+    } },
+    { { /* 124 */
+    0x058f916e, 0x39903012, 0x4930f840, 0x001b8880,
+    0x00000000, 0x00428500, 0x98000058, 0x7014ea04,
+    } },
+    { { /* 125 */
+    0x611d1628, 0x60005113, 0x00a71a24, 0x00000000,
+    0x03c00000, 0x10187120, 0xa9270172, 0x89066004,
+    } },
+    { { /* 126 */
+    0x020cc022, 0x40810900, 0x8ca0202d, 0x00000e34,
+    0x00000000, 0x11012100, 0xc11a8011, 0x0892ec4c,
+    } },
+    { { /* 127 */
+    0x85000040, 0x1806c7ac, 0x0512e03e, 0x00108000,
+    0x80ce4008, 0x02106d01, 0x08568641, 0x0027011e,
+    } },
+    { { /* 128 */
+    0x083d3750, 0x4e05e032, 0x048401c0, 0x01400081,
+    0x00000000, 0x00000000, 0x00000000, 0x00591aa0,
+    } },
+    { { /* 129 */
+    0x882443c8, 0xc8001d48, 0x72030152, 0x04049013,
+    0x04008280, 0x0d148a10, 0x02088056, 0x2704a040,
+    } },
+    { { /* 130 */
+    0x4c000000, 0x00000000, 0x00000000, 0xa3200000,
+    0xa0ae1902, 0xdf002660, 0x7b15f010, 0x3ad08121,
+    } },
+    { { /* 131 */
+    0x00284180, 0x48001003, 0x8014cc00, 0x00c414cf,
+    0x30202000, 0x00000001, 0x00000000, 0x00000000,
+    } },
+    { { /* 132 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000020,
+    } },
+    { { /* 133 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000200, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 134 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xffffffff, 0xffff003f, 0x087fffff,
+    } },
+    { { /* 135 */
+    0xffff0042, 0xffffffff, 0x0042ffff, 0x00000000,
+    0x0c0c0000, 0x0c00000c, 0x03000000, 0x00000300,
+    } },
+    { { /* 136 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000800, 0x0d10646e, 0x0d10646e,
+    } },
+    { { /* 137 */
+    0x00000000, 0x01000300, 0x00000000, 0x00000300,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 138 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xffffffff, 0xffffffff, 0x1fffffff, 0x000003ff,
+    } },
+    { { /* 139 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xfffddfec, 0xc3effdff, 0x40603ddf, 0x0000ffc3,
+    } },
+    { { /* 140 */
+    0x00000007, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 141 */
+    0x00000000, 0xfffe0000, 0xffffffff, 0xffffffff,
+    0x00007fff, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 142 */
+    0x1fffffff, 0x00000000, 0x00000000, 0x8fffffff,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 143 */
+    0x43722f8b, 0x0b042000, 0xe340e82c, 0x40c82800,
+    0x49375944, 0x04407976, 0xa3f02c93, 0x08c50038,
+    } },
+    { { /* 144 */
+    0x0003ee02, 0x35508000, 0x1e23e1c8, 0xc4498200,
+    0x2942ad5a, 0x8060c000, 0xa49a461c, 0x052ac003,
+    } },
+    { { /* 145 */
+    0xd6462a44, 0x08003dda, 0x14208388, 0x01700020,
+    0x03022021, 0x40ac3000, 0x44628620, 0x8a0020a0,
+    } },
+    { { /* 146 */
+    0x80040253, 0x14840402, 0x10047bfb, 0x11e27fa4,
+    0x00a42441, 0x20c01421, 0x70003a50, 0x27430002,
+    } },
+    { { /* 147 */
+    0x208245c9, 0x0fc14630, 0x28503c88, 0xa0248602,
+    0x88062388, 0x40000e19, 0xeb6422aa, 0xcd28001c,
+    } },
+    { { /* 148 */
+    0x02e1a120, 0x8200840b, 0x549e279b, 0xa0b38141,
+    0x85080010, 0x08002061, 0x08d02f08, 0x010fbe3e,
+    } },
+    { { /* 149 */
+    0xa803f718, 0x5b080a41, 0x00020504, 0x382a0500,
+    0x00015041, 0x21081910, 0x00000313, 0x04046122,
+    } },
+    { { /* 150 */
+    0x100140d0, 0x40228000, 0x40488050, 0x10000008,
+    0x370006d1, 0x00005e80, 0x941000a0, 0x60000018,
+    } },
+    { { /* 151 */
+    0x00900240, 0x00548000, 0x00080000, 0x00100900,
+    0x00000040, 0x10105020, 0x4c022400, 0x06010001,
+    } },
+    { { /* 152 */
+    0x814c2918, 0x08012100, 0x00036485, 0x10214452,
+    0x00080904, 0x0000000d, 0x80004988, 0x16910001,
+    } },
+    { { /* 153 */
+    0x40000765, 0x04338492, 0x45928c00, 0x52200016,
+    0xd0080228, 0x4c084300, 0xc32a40a2, 0x2e009810,
+    } },
+    { { /* 154 */
+    0x16708000, 0x40826e84, 0x04b3c390, 0x21187c85,
+    0x02c8041c, 0x4a001120, 0x361b0a48, 0x89005540,
+    } },
+    { { /* 155 */
+    0x9902000a, 0x10400221, 0x04000242, 0x00000044,
+    0x0c040000, 0x00000010, 0x00001216, 0x00000242,
+    } },
+    { { /* 156 */
+    0x00401a20, 0x00000400, 0xb5b30009, 0x15230a18,
+    0x1fe89ba0, 0x8379507c, 0xc09d10fd, 0x0560dbf6,
+    } },
+    { { /* 157 */
+    0x0242ef92, 0xdf020110, 0x08226961, 0x02029035,
+    0x00030000, 0x45aa1a02, 0x02000001, 0x28518101,
+    } },
+    { { /* 158 */
+    0x02d26080, 0x00000280, 0x00011800, 0x00009200,
+    0x20000880, 0x35000405, 0x60442000, 0x609e49e6,
+    } },
+    { { /* 159 */
+    0x2a42104c, 0xa1482820, 0x802010b1, 0x7b9c000e,
+    0x14a08490, 0x41e028c1, 0x8c490704, 0x0cc8100d,
+    } },
+    { { /* 160 */
+    0x89ba8412, 0x142202c0, 0x0ac05500, 0x92833ec4,
+    0x43871ca3, 0x22a04703, 0x03c03028, 0xa0200801,
+    } },
+    { { /* 161 */
+    0x30448000, 0x000085a3, 0x2225200e, 0x0001b73c,
+    0x8c503220, 0x315d0099, 0x940200a0, 0x0e4b0003,
+    } },
+    { { /* 162 */
+    0x8c20e342, 0xd0910080, 0xa3281d94, 0x60c1499c,
+    0x07134406, 0x44445a90, 0x00000f88, 0x95c40040,
+    } },
+    { { /* 163 */
+    0x84477581, 0xc0534402, 0x01082b83, 0x92424000,
+    0x09a60611, 0x32220800, 0x1bddb384, 0xc08af000,
+    } },
+    { { /* 164 */
+    0x00020282, 0x6c008800, 0x00219200, 0x8c844180,
+    0x09441308, 0x000007a7, 0x0c418051, 0x00d06002,
+    } },
+    { { /* 165 */
+    0x10d0a000, 0x44003004, 0x01000000, 0x07008201,
+    0x440e0100, 0x08056830, 0x051464b2, 0x441410e6,
+    } },
+    { { /* 166 */
+    0x21000011, 0xcbc09c08, 0x40c2e120, 0x41b4304c,
+    0x9a8310ac, 0x328198b2, 0x00849822, 0xbc123369,
+    } },
+    { { /* 167 */
+    0xc03bd6c0, 0x0c53a1a1, 0xea008a1e, 0x05d8cbf0,
+    0x21c34390, 0x4a1c4805, 0x324002d0, 0xd79d0041,
+    } },
+    { { /* 168 */
+    0xe8b02b09, 0x24527dc0, 0xd04bc240, 0xc8aba000,
+    0x34a98a80, 0x41c98000, 0x241f8010, 0x487b9200,
+    } },
+    { { /* 169 */
+    0x00cc0000, 0x33008406, 0x001b410f, 0x80402000,
+    0xa0988022, 0x006ba186, 0x85a42a30, 0x06044181,
+    } },
+    { { /* 170 */
+    0x00046021, 0xa0010080, 0x46b80400, 0x03a0e90f,
+    0x18200000, 0x081040a0, 0x0001380a, 0xa8000500,
+    } },
+    { { /* 171 */
+    0xc28a0404, 0x2720000a, 0x830c0910, 0x00000802,
+    0x10806211, 0x0808000c, 0x0c08000c, 0x08400000,
+    } },
+    { { /* 172 */
+    0x00441410, 0x6404000b, 0x800150c0, 0x8984047e,
+    0x41400658, 0x94a4c000, 0x09dca862, 0x00001800,
+    } },
+    { { /* 173 */
+    0x000a8100, 0x41900008, 0xe4a14007, 0x64452501,
+    0x0e7d11ee, 0xfb084800, 0x08a81616, 0x0009c92e,
+    } },
+    { { /* 174 */
+    0x4a821800, 0x6b6406a0, 0x16000002, 0x83905648,
+    0x002a73a0, 0x00248000, 0x470288f9, 0x0faa4d02,
+    } },
+    { { /* 175 */
+    0x8e800000, 0x7554b87b, 0xd9402418, 0x040cc880,
+    0xb0410000, 0x04428c24, 0x001a5a34, 0xc1108000,
+    } },
+    { { /* 176 */
+    0x00328046, 0x8106180d, 0xcd920002, 0x74016014,
+    0x00916112, 0x420ac098, 0x8420040f, 0x40029a13,
+    } },
+    { { /* 177 */
+    0xfd228a62, 0x40808188, 0x21031000, 0x31010808,
+    0x07044420, 0x0388b812, 0xa3008900, 0x22020000,
+    } },
+    { { /* 178 */
+    0x46001210, 0x00410042, 0x52415680, 0x200052f0,
+    0x82148610, 0x46021004, 0x8035430a, 0xd80060e0,
+    } },
+    { { /* 179 */
+    0x08010041, 0x6c653400, 0xab0411c1, 0x22040286,
+    0x00000003, 0x00009084, 0x02814015, 0x33000202,
+    } },
+    { { /* 180 */
+    0x38400400, 0xc0c00e20, 0x00850030, 0x0d250500,
+    0x81d04ad0, 0x020c2280, 0x6240b605, 0x62802679,
+    } },
+    { { /* 181 */
+    0x080802ea, 0x8579dd67, 0xdea0081b, 0x40008735,
+    0xd1000a8c, 0xa22505aa, 0x15108440, 0x0080404d,
+    } },
+    { { /* 182 */
+    0x8d220012, 0x058f1968, 0x3a1a9080, 0x85618464,
+    0x2002ccc0, 0x732e0820, 0x0b3420a4, 0x14150004,
+    } },
+    { { /* 183 */
+    0x82002001, 0x08000057, 0x00445004, 0x79051212,
+    0x000940d0, 0x84004000, 0xd844054c, 0x5114409a,
+    } },
+    { { /* 184 */
+    0x40000b12, 0x15800201, 0x08002001, 0xc200084a,
+    0x40020800, 0x98093020, 0x18800000, 0x0008e22c,
+    } },
+    { { /* 185 */
+    0x00040004, 0x001410e0, 0x20008020, 0x10009800,
+    0x00827082, 0x1c000288, 0x00014c22, 0x08209100,
+    } },
+    { { /* 186 */
+    0x00404002, 0x44001c00, 0x7cc10383, 0x84002121,
+    0x0002e002, 0xe20a44c0, 0x81260e03, 0x080002d0,
+    } },
+    { { /* 187 */
+    0x96902921, 0xb8c24001, 0x00806241, 0xa6510a06,
+    0x812c0112, 0x0400c600, 0xa2800cb0, 0x8640a429,
+    } },
+    { { /* 188 */
+    0x4a028000, 0x02003041, 0x0057ba40, 0x20205001,
+    0x24b08880, 0x01122002, 0x000402d3, 0x00000211,
+    } },
+    { { /* 189 */
+    0x40040080, 0xe0000c82, 0x00003008, 0x00081011,
+    0x81a40208, 0x420e40a0, 0xc0400400, 0x48000081,
+    } },
+    { { /* 190 */
+    0x0f912df5, 0x0629d807, 0x4001007c, 0x824e4546,
+    0x1008c000, 0xed363005, 0x65400c80, 0x0810930b,
+    } },
+    { { /* 191 */
+    0xe8200600, 0x6082c80a, 0x403400ca, 0x12012e02,
+    0x19489004, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 192 */
+    0x00000000, 0x05400000, 0x00311000, 0x02a54c00,
+    0x44105520, 0x23040310, 0x80345422, 0x12010a03,
+    } },
+    { { /* 193 */
+    0x01a1126b, 0xa0482000, 0x45400448, 0xe08d8000,
+    0x28401af0, 0x04168626, 0x4c005018, 0x21120032,
+    } },
+    { { /* 194 */
+    0x0d0005e4, 0x42008a08, 0x00334800, 0x87030860,
+    0x34008501, 0xe4280109, 0x81002045, 0x5c1825a8,
+    } },
+    { { /* 195 */
+    0xd80435a0, 0x02e01c02, 0x020000a1, 0x4146c050,
+    0xa6046800, 0xbb8af260, 0xc8b60000, 0x600200e2,
+    } },
+    { { /* 196 */
+    0x0080023e, 0x03728900, 0x00068681, 0x08880000,
+    0x41404600, 0x20000e04, 0x10481622, 0x22178a00,
+    } },
+    { { /* 197 */
+    0x00007418, 0x21021200, 0x08800200, 0x0420984a,
+    0x12110000, 0x99040002, 0x04022a55, 0x10105000,
+    } },
+    { { /* 198 */
+    0x459a0000, 0xa000b02a, 0x0208420a, 0x00002708,
+    0x08128090, 0x04018740, 0x3020e202, 0x8c800630,
+    } },
+    { { /* 199 */
+    0x04c004c4, 0x80002000, 0xd8314000, 0x02000080,
+    0x00081400, 0x00000218, 0x8a100880, 0x40002010,
+    } },
+    { { /* 200 */
+    0x1500010d, 0x00000000, 0x80a04000, 0x01500140,
+    0x80002004, 0x04080004, 0x00000010, 0x4a049001,
+    } },
+    { { /* 201 */
+    0x80000020, 0x0842000c, 0x2a8c3041, 0xc085090e,
+    0x40c42906, 0x00100800, 0xb2308006, 0x21380102,
+    } },
+    { { /* 202 */
+    0x030d0080, 0x09400420, 0x80000012, 0x80040410,
+    0x004888ca, 0x24040602, 0x00040001, 0x01100008,
+    } },
+    { { /* 203 */
+    0xa9c8550d, 0x0c522428, 0x48310000, 0x022f624d,
+    0x412830a0, 0xd205057b, 0x1844a894, 0x45c26cc2,
+    } },
+    { { /* 204 */
+    0x2ed14017, 0x02081901, 0x1500c202, 0x20919040,
+    0x044d0401, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 205 */
+    0x00000000, 0x80800000, 0x04201542, 0x06000c02,
+    0x60001404, 0xb9d99f87, 0x540a059f, 0x3810245d,
+    } },
+    { { /* 206 */
+    0x004825b0, 0x00000000, 0x00000000, 0x00990850,
+    0x02000420, 0x44080108, 0x28009840, 0x0008810a,
+    } },
+    { { /* 207 */
+    0x40018400, 0x00210400, 0x82000794, 0x00500001,
+    0x00002482, 0x00001c00, 0x80043c01, 0x49000800,
+    } },
+    { { /* 208 */
+    0xf83c0228, 0xcb0886c0, 0xa0006230, 0x00000004,
+    0x18000000, 0x0007a148, 0x00124024, 0x22852c40,
+    } },
+    { { /* 209 */
+    0xe6b3a96f, 0x5126400f, 0x723b6c86, 0xb5a4e20b,
+    0x0222859f, 0x0123854c, 0x40000402, 0x20202102,
+    } },
+    { { /* 210 */
+    0x02240004, 0x00042080, 0x00047e00, 0x01a01604,
+    0x10042a80, 0x0032d800, 0x3183fa81, 0x00200488,
+    } },
+    { { /* 211 */
+    0x40872000, 0x84100000, 0x48800221, 0x00000074,
+    0x114a0029, 0x02c80000, 0x00049000, 0x11000410,
+    } },
+    { { /* 212 */
+    0xc5010010, 0x0000c957, 0x08102d00, 0x50204000,
+    0x04501000, 0x00013088, 0x40020008, 0x00400012,
+    } },
+    { { /* 213 */
+    0x01000010, 0x01200820, 0x08060010, 0xa0000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 214 */
+    0x00000000, 0x00000000, 0x00000000, 0x00800000,
+    0x011e8a09, 0x18022138, 0x10700480, 0x00000006,
+    } },
+    { { /* 215 */
+    0x10000000, 0x88044402, 0xf8013815, 0x21e9041c,
+    0x1b306c60, 0x08820588, 0x1a607af3, 0x0ac5870c,
+    } },
+    { { /* 216 */
+    0x524a00c1, 0x22050080, 0x50420114, 0x04902206,
+    0x0000a800, 0x00002901, 0x10080840, 0x88480000,
+    } },
+    { { /* 217 */
+    0x018f156f, 0x0b012000, 0x45107040, 0x000088a0,
+    0x00000000, 0x00028100, 0x98000090, 0x7010e006,
+    } },
+    { { /* 218 */
+    0x41091608, 0x00000101, 0x00963a20, 0x00000000,
+    0x22400000, 0x021a7120, 0xa2270002, 0x80022000,
+    } },
+    { { /* 219 */
+    0x0200c102, 0x00c10800, 0x8ca02029, 0x00000624,
+    0x00000000, 0x01000100, 0x01180000, 0x00004020,
+    } },
+    { { /* 220 */
+    0x04000000, 0x10020480, 0x0410803e, 0x00008000,
+    0x80024000, 0x00004800, 0x00400200, 0x00000110,
+    } },
+    { { /* 221 */
+    0x00252000, 0x08040020, 0x00800280, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x005802a0,
+    } },
+    { { /* 222 */
+    0x08000200, 0x08000140, 0x20020000, 0x00041003,
+    0x00000000, 0x00108200, 0x00800010, 0x07040000,
+    } },
+    { { /* 223 */
+    0x44000000, 0x00000000, 0x00000000, 0xa2200000,
+    0xa08c0000, 0x48300020, 0x59126008, 0x00100100,
+    } },
+    { { /* 224 */
+    0x00084180, 0x08000001, 0x80044c00, 0x00801482,
+    0x10212000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 225 */
+    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    } },
+    { { /* 226 */
+    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
+    0xffffffff, 0x0000000f, 0x00000000, 0x00000000,
+    } },
+    { { /* 227 */
+    0x00000fff, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 228 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000040,
+    } },
+    { { /* 229 */
+    0x000c0003, 0x00003c00, 0x0000f000, 0x00003c00,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 230 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xfef02596, 0x3bffecae, 0x33ff3f5f, 0x00000000,
+    } },
+    { { /* 231 */
+    0x000033f0, 0x0000c000, 0x00000000, 0x600c0c03,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 232 */
+    0x000c3003, 0x18c00c0c, 0x00c03060, 0x60000c03,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 233 */
+    0xfdffb729, 0x000001ff, 0xb7290000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 234 */
+    0xfffddfec, 0xc3fffdff, 0x00803dcf, 0x0000ffc3,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 235 */
+    0x03ff07ff, 0xffffffff, 0xffffffff, 0x00ffffff,
+    0xffffffff, 0x000003ff, 0x00000000, 0x00000000,
+    } },
+    { { /* 236 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x00004004, 0x00004004,
+    } },
+    { { /* 237 */
+    0x0000000c, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 238 */
+    0x0f000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 239 */
+    0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 240 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x0e1c7707, 0x0e1c7707,
+    } },
+    { { /* 241 */
+    0x00000c00, 0x000000c3, 0x00000000, 0x18000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 242 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x10000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 243 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x10408810, 0x10408810,
+    } },
+    { { /* 244 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000800, 0x115c0ff7, 0x115c0ff7,
+    } },
+    { { /* 245 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x000cab83, 0x0004ab83,
+    } },
+    { { /* 246 */
+    0xfff99fee, 0xf3cdfdff, 0xb0c0398f, 0x0001ffc3,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 247 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x00080000, 0x00080000,
+    } },
+    { { /* 248 */
+    0x030000f0, 0x00000000, 0x0c00001e, 0x1e000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 249 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000000, 0x1438268f, 0x1438268f,
+    } },
+    { { /* 250 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x02045301, 0x02045301,
+    } },
+    { { /* 251 */
+    0xffff0042, 0xffffffff, 0x0042ffff, 0x003c000c,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 252 */
+    0xfdff8f04, 0xfdff01ff, 0x8f0401ff, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 253 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x001c0000,
+    } },
+    { { /* 254 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x34582212, 0x34582212,
+    } },
+    { { /* 255 */
+    0x0000f000, 0x66000000, 0x00330180, 0x60030033,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 256 */
+    0x000330c0, 0x00000000, 0x00000000, 0x60000003,
+    0x00000000, 0x00000000, 0x00001b60, 0x003c0000,
+    } },
+    { { /* 257 */
+    0x00009e2c, 0x00000000, 0x9e2c0000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 258 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x00000880, 0x00000880,
+    } },
+    { { /* 259 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x08000000, 0x3fdfffff, 0x3f5fffff,
+    } },
+    { { /* 260 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0xd63dc7ec, 0xc3bfc718, 0x00803dc7, 0x0007ff80,
+    } },
+    { { /* 261 */
+    0xfffddfee, 0xc3effdff, 0x00603ddf, 0x0000ffc3,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 262 */
+    0xfffffffe, 0x87ffffff, 0x0fffffff, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 263 */
+    0x001fdfff, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 264 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00800000, 0x18400004, 0x18400084,
+    } },
+    { { /* 265 */
+    0xc0000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 266 */
+    0xffff00d2, 0xffffffff, 0x00d2ffff, 0x00000000,
+    0x00030000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 267 */
+    0x00000000, 0x00000000, 0x077dfffe, 0x077dfffe,
+    0x00000000, 0x00000000, 0x10400010, 0x10400010,
+    } },
+    { { /* 268 */
+    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
+    0x00000000, 0x00000000, 0x081047a4, 0x081047a4,
+    } },
+    { { /* 269 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000280, 0x00000000,
+    } },
+    { { /* 270 */
+    0x7f7b7f8b, 0xef553db4, 0xf35dfba8, 0x400b0243,
+    0x8d3efb40, 0x8c2c7bf7, 0xe3fa6eff, 0xa8ed1d3a,
+    } },
+    { { /* 271 */
+    0xcf83e602, 0x35558cf5, 0xffabe048, 0xd85992b9,
+    0x2892ab18, 0x8020d7e9, 0xf583c438, 0x450ae74a,
+    } },
+    { { /* 272 */
+    0x9714b000, 0x54007762, 0x1420d188, 0xc8c01020,
+    0x00002121, 0x0c0413a8, 0x04408000, 0x082870c0,
+    } },
+    { { /* 273 */
+    0x000408c0, 0x80000002, 0x14722b7b, 0x3bfb7924,
+    0x1ae43327, 0x38ef9835, 0x28029ad1, 0xbf69a813,
+    } },
+    { { /* 274 */
+    0x2fc665cf, 0xafc96b11, 0x5053340f, 0xa00486a2,
+    0xe8090106, 0xc00e3f0f, 0x81450a88, 0xc6010010,
+    } },
+    { { /* 275 */
+    0x26e1a161, 0xce00444b, 0xd4eec7aa, 0x85bbcadf,
+    0xa5203a74, 0x8840436c, 0x8bd23f06, 0x3befff79,
+    } },
+    { { /* 276 */
+    0xe8eff75a, 0x5b36fbcb, 0x1bfd0d49, 0x39ee0154,
+    0x2e75d855, 0xa91abfd8, 0xf6bff3d7, 0xb40c67e0,
+    } },
+    { { /* 277 */
+    0x081382c2, 0xd08bd49d, 0x1061065a, 0x59e074f2,
+    0xb3128f9f, 0x6aaa0080, 0xb05e3230, 0x60ac9d7a,
+    } },
+    { { /* 278 */
+    0xc900d303, 0x8a563098, 0x13907000, 0x18421f14,
+    0x0008c060, 0x10808008, 0xec900400, 0xe6332817,
+    } },
+    { { /* 279 */
+    0x90000758, 0x4e09f708, 0xfc83f485, 0x18c8af53,
+    0x080c187c, 0x01146adf, 0xa734c80c, 0x2710a011,
+    } },
+    { { /* 280 */
+    0x422228c5, 0x00210413, 0x41123010, 0x40001820,
+    0xc60c022b, 0x10000300, 0x00220022, 0x02495810,
+    } },
+    { { /* 281 */
+    0x9670a094, 0x1792eeb0, 0x05f2cb96, 0x23580025,
+    0x42cc25de, 0x4a04cf38, 0x359f0c40, 0x8a001128,
+    } },
+    { { /* 282 */
+    0x910a13fa, 0x10560229, 0x04200641, 0x84f00484,
+    0x0c040000, 0x412c0400, 0x11541206, 0x00020a4b,
+    } },
+    { { /* 283 */
+    0x00c00200, 0x00940000, 0xbfbb0001, 0x242b167c,
+    0x7fa89bbb, 0xe3790c7f, 0xe00d10f4, 0x9f014132,
+    } },
+    { { /* 284 */
+    0x35728652, 0xff1210b4, 0x4223cf27, 0x8602c06b,
+    0x1fd33106, 0xa1aa3a0c, 0x02040812, 0x08012572,
+    } },
+    { { /* 285 */
+    0x485040cc, 0x601062d0, 0x29001c80, 0x00109a00,
+    0x22000004, 0x00800000, 0x68002020, 0x609ecbe6,
+    } },
+    { { /* 286 */
+    0x3f73916e, 0x398260c0, 0x48301034, 0xbd5c0006,
+    0xd6fb8cd1, 0x43e820e1, 0x084e0600, 0xc4d00500,
+    } },
+    { { /* 287 */
+    0x89aa8d1f, 0x1602a6e1, 0x21ed0001, 0x1a8b3656,
+    0x13a51fb7, 0x30a06502, 0x23c7b278, 0xe9226c93,
+    } },
+    { { /* 288 */
+    0x3a74e47f, 0x98208fe3, 0x2625280e, 0xbf49bf9c,
+    0xac543218, 0x1916b949, 0xb5220c60, 0x0659fbc1,
+    } },
+    { { /* 289 */
+    0x8420e343, 0x800008d9, 0x20225500, 0x00a10184,
+    0x20104800, 0x40801380, 0x00160d04, 0x80200040,
+    } },
+    { { /* 290 */
+    0x8de7fd40, 0xe0985436, 0x091e7b8b, 0xd249fec8,
+    0x8dee0611, 0xba221937, 0x9fdd77f4, 0xf0daf3ec,
+    } },
+    { { /* 291 */
+    0xec424386, 0x26048d3f, 0xc021fa6c, 0x0cc2628e,
+    0x0145d785, 0x559977ad, 0x4045e250, 0xa154260b,
+    } },
+    { { /* 292 */
+    0x58199827, 0xa4103443, 0x411405f2, 0x07002280,
+    0x426600b4, 0x15a17210, 0x41856025, 0x00000054,
+    } },
+    { { /* 293 */
+    0x01040201, 0xcb70c820, 0x6a629320, 0x0095184c,
+    0x9a8b1880, 0x3201aab2, 0x00c4d87a, 0x04c3f3e5,
+    } },
+    { { /* 294 */
+    0xa238d44d, 0x5072a1a1, 0x84fc980a, 0x44d1c152,
+    0x20c21094, 0x42104180, 0x3a000000, 0xd29d0240,
+    } },
+    { { /* 295 */
+    0xa8b12f01, 0x2432bd40, 0xd04bd34d, 0xd0ada723,
+    0x75a10a92, 0x01e9adac, 0x771f801a, 0xa01b9225,
+    } },
+    { { /* 296 */
+    0x20cadfa1, 0x738c0602, 0x003b577f, 0x00d00bff,
+    0x0088806a, 0x0029a1c4, 0x05242a05, 0x16234009,
+    } },
+    { { /* 297 */
+    0x80056822, 0xa2112011, 0x64900004, 0x13824849,
+    0x193023d5, 0x08922980, 0x88115402, 0xa0042001,
+    } },
+    { { /* 298 */
+    0x81800400, 0x60228502, 0x0b010090, 0x12020022,
+    0x00834011, 0x00001a01, 0x00000000, 0x00000000,
+    } },
+    { { /* 299 */
+    0x00000000, 0x4684009f, 0x020012c8, 0x1a0004fc,
+    0x0c4c2ede, 0x80b80402, 0x0afca826, 0x22288c02,
+    } },
+    { { /* 300 */
+    0x8f7ba0e0, 0x2135c7d6, 0xf8b106c7, 0x62550713,
+    0x8a19936e, 0xfb0e6efa, 0x48f91630, 0x7debcd2f,
+    } },
+    { { /* 301 */
+    0x4e845892, 0x7a2e4ca0, 0x561eedea, 0x1190c649,
+    0xe83a5324, 0x8124cfdb, 0x634218f1, 0x1a8a5853,
+    } },
+    { { /* 302 */
+    0x24d37420, 0x0514aa3b, 0x89586018, 0xc0004800,
+    0x91018268, 0x2cd684a4, 0xc4ba8886, 0x02100377,
+    } },
+    { { /* 303 */
+    0x00388244, 0x404aae11, 0x510028c0, 0x15146044,
+    0x10007310, 0x02480082, 0x40060205, 0x0000c003,
+    } },
+    { { /* 304 */
+    0x0c020000, 0x02200008, 0x40009000, 0xd161b800,
+    0x32744621, 0x3b8af800, 0x8b00050f, 0x2280bbd0,
+    } },
+    { { /* 305 */
+    0x07690600, 0x00438040, 0x50005420, 0x250c41d0,
+    0x83108410, 0x02281101, 0x00304008, 0x020040a1,
+    } },
+    { { /* 306 */
+    0x20000040, 0xabe31500, 0xaa443180, 0xc624c2c6,
+    0x8004ac13, 0x03d1b000, 0x4285611e, 0x1d9ff303,
+    } },
+    { { /* 307 */
+    0x78e8440a, 0xc3925e26, 0x00852000, 0x4000b001,
+    0x88424a90, 0x0c8dca04, 0x4203a705, 0x000422a1,
+    } },
+    { { /* 308 */
+    0x0c018668, 0x10795564, 0xdea00002, 0x40c12000,
+    0x5001488b, 0x04000380, 0x50040000, 0x80d0c05d,
+    } },
+    { { /* 309 */
+    0x970aa010, 0x4dafbb20, 0x1e10d921, 0x83140460,
+    0xa6d68848, 0x733fd83b, 0x497427bc, 0x92130ddc,
+    } },
+    { { /* 310 */
+    0x8ba1142b, 0xd1392e75, 0x50503009, 0x69008808,
+    0x024a49d4, 0x80164010, 0x89d7e564, 0x5316c020,
+    } },
+    { { /* 311 */
+    0x86002b92, 0x15e0a345, 0x0c03008b, 0xe200196e,
+    0x80067031, 0xa82916a5, 0x18802000, 0xe1487aac,
+    } },
+    { { /* 312 */
+    0xb5d63207, 0x5f9132e8, 0x20e550a1, 0x10807c00,
+    0x9d8a7280, 0x421f00aa, 0x02310e22, 0x04941100,
+    } },
+    { { /* 313 */
+    0x40080022, 0x5c100010, 0xfcc80343, 0x0580a1a5,
+    0x04008433, 0x6e080080, 0x81262a4b, 0x2901aad8,
+    } },
+    { { /* 314 */
+    0x4490684d, 0xba880009, 0x00820040, 0x87d10000,
+    0xb1e6215b, 0x80083161, 0xc2400800, 0xa600a069,
+    } },
+    { { /* 315 */
+    0x4a328d58, 0x550a5d71, 0x2d579aa0, 0x4aa64005,
+    0x30b12021, 0x01123fc6, 0x260a10c2, 0x50824462,
+    } },
+    { { /* 316 */
+    0x80409880, 0x810004c0, 0x00002003, 0x38180000,
+    0xf1a60200, 0x720e4434, 0x92e035a2, 0x09008101,
+    } },
+    { { /* 317 */
+    0x00000400, 0x00008885, 0x00000000, 0x00804000,
+    0x00000000, 0x00004040, 0x00000000, 0x00000000,
+    } },
+    { { /* 318 */
+    0x00000000, 0x08000000, 0x00000082, 0x00000000,
+    0x88000004, 0xe7efbfff, 0xffbfffff, 0xfdffefef,
+    } },
+    { { /* 319 */
+    0xbffefbff, 0x057fffff, 0x85b30034, 0x42164706,
+    0xe4105402, 0xb3058092, 0x81305422, 0x180b4263,
+    } },
+    { { /* 320 */
+    0x13f5387b, 0xa9ea07e5, 0x05143c4c, 0x80020600,
+    0xbd481ad9, 0xf496ee37, 0x7ec0705f, 0x355fbfb2,
+    } },
+    { { /* 321 */
+    0x455fe644, 0x41469000, 0x063b1d40, 0xfe1362a1,
+    0x39028505, 0x0c080548, 0x0000144f, 0x58183488,
+    } },
+    { { /* 322 */
+    0xd8153077, 0x4bfbbd0e, 0x85008a90, 0xe61dc100,
+    0xb386ed14, 0x639bff72, 0xd9befd92, 0x0a92887b,
+    } },
+    { { /* 323 */
+    0x1cb2d3fe, 0x177ab980, 0xdc1782c9, 0x3980fffb,
+    0x590c4260, 0x37df0f01, 0xb15094a3, 0x23070623,
+    } },
+    { { /* 324 */
+    0x3102f85a, 0x310201f0, 0x1e820040, 0x056a3a0a,
+    0x12805b84, 0xa7148002, 0xa04b2612, 0x90011069,
+    } },
+    { { /* 325 */
+    0x848a1000, 0x3f801802, 0x42400708, 0x4e140110,
+    0x180080b0, 0x0281c510, 0x10298202, 0x88000210,
+    } },
+    { { /* 326 */
+    0x00420020, 0x11000280, 0x4413e000, 0xfe025804,
+    0x30283c07, 0x04739798, 0xcb13ced1, 0x431f6210,
+    } },
+    { { /* 327 */
+    0x55ac278d, 0xc892422e, 0x02885380, 0x78514039,
+    0x8088292c, 0x2428b900, 0x080e0c41, 0x42004421,
+    } },
+    { { /* 328 */
+    0x08680408, 0x12040006, 0x02903031, 0xe0855b3e,
+    0x10442936, 0x10822814, 0x83344266, 0x531b013c,
+    } },
+    { { /* 329 */
+    0x0e0d0404, 0x00510c22, 0xc0000012, 0x88000040,
+    0x0000004a, 0x00000000, 0x5447dff6, 0x00088868,
+    } },
+    { { /* 330 */
+    0x00000081, 0x40000000, 0x00000100, 0x02000000,
+    0x00080600, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 331 */
+    0x00000080, 0x00000040, 0x00000000, 0x00001040,
+    0x00000000, 0xf7fdefff, 0xfffeff7f, 0xfffffbff,
+    } },
+    { { /* 332 */
+    0xbffffdff, 0x00ffffff, 0x042012c2, 0x07080c06,
+    0x01101624, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 333 */
+    0xe0000000, 0xfffffffe, 0x7f79ffff, 0x00f928df,
+    0x80120c32, 0xd53a0008, 0xecc2d858, 0x2fa89d18,
+    } },
+    { { /* 334 */
+    0xe0109620, 0x2622d60c, 0x02060f97, 0x9055b240,
+    0x501180a2, 0x04049800, 0x00004000, 0x00000000,
+    } },
+    { { /* 335 */
+    0x00000000, 0x00000000, 0x00000000, 0xfffffbc0,
+    0xdffbeffe, 0x62430b08, 0xfb3b41b6, 0x23896f74,
+    } },
+    { { /* 336 */
+    0xecd7ae7f, 0x5960e047, 0x098fa096, 0xa030612c,
+    0x2aaa090d, 0x4f7bd44e, 0x388bc4b2, 0x6110a9c6,
+    } },
+    { { /* 337 */
+    0x42000014, 0x0202800c, 0x6485fe48, 0xe3f7d63e,
+    0x0c073aa0, 0x0430e40c, 0x1002f680, 0x00000000,
+    } },
+    { { /* 338 */
+    0x00000000, 0x00000000, 0x00000000, 0x00100000,
+    0x00004000, 0x00004000, 0x00000100, 0x00000000,
+    } },
+    { { /* 339 */
+    0x00000000, 0x40000000, 0x00000000, 0x00000400,
+    0x00008000, 0x00000000, 0x00400400, 0x00000000,
+    } },
+    { { /* 340 */
+    0x00000000, 0x40000000, 0x00000000, 0x00000800,
+    0xfebdffe0, 0xffffffff, 0xfbe77f7f, 0xf7ffffbf,
+    } },
+    { { /* 341 */
+    0xefffffff, 0xdff7ff7e, 0xfbdff6f7, 0x804fbffe,
+    0x00000000, 0x00000000, 0x00000000, 0x7fffef00,
+    } },
+    { { /* 342 */
+    0xb6f7ff7f, 0xb87e4406, 0x88313bf5, 0x00f41796,
+    0x1391a960, 0x72490080, 0x0024f2f3, 0x42c88701,
+    } },
+    { { /* 343 */
+    0x5048e3d3, 0x43052400, 0x4a4c0000, 0x10580227,
+    0x01162820, 0x0014a809, 0x00000000, 0x00683ec0,
+    } },
+    { { /* 344 */
+    0x00000000, 0x00000000, 0x00000000, 0xffe00000,
+    0xfddbb7ff, 0x000000f7, 0xc72e4000, 0x00000180,
+    } },
+    { { /* 345 */
+    0x00012000, 0x00004000, 0x00300000, 0xb4f7ffa8,
+    0x03ffadf3, 0x00000120, 0x00000000, 0x00000000,
+    } },
+    { { /* 346 */
+    0x00000000, 0x00000000, 0x00000000, 0xfffbf000,
+    0xfdcf9df7, 0x15c301bf, 0x810a1827, 0x0a00a842,
+    } },
+    { { /* 347 */
+    0x80088108, 0x18048008, 0x0012a3be, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 348 */
+    0x00000000, 0x00000000, 0x00000000, 0x90000000,
+    0xdc3769e6, 0x3dff6bff, 0xf3f9fcf8, 0x00000004,
+    } },
+    { { /* 349 */
+    0x80000000, 0xe7eebf6f, 0x5da2dffe, 0xc00b3fd8,
+    0xa00c0984, 0x69100040, 0xb912e210, 0x5a0086a5,
+    } },
+    { { /* 350 */
+    0x02896800, 0x6a809005, 0x00030010, 0x80000000,
+    0x8e001ff9, 0x00000001, 0x00000000, 0x00000000,
+    } },
+    { { /* 351 */
+    0x0000002f, 0x000003fe, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 352 */
+    0xc373ff8b, 0x1b0f6840, 0xf34ce9ac, 0xc0080200,
+    0xca3e795c, 0x06487976, 0xf7f02fdf, 0xa8ff033a,
+    } },
+    { { /* 353 */
+    0x233fef37, 0xfd59b004, 0xfffff3ca, 0xfff9de9f,
+    0x7df7abff, 0x8eecc000, 0xffdbeebf, 0x45fad003,
+    } },
+    { { /* 354 */
+    0xdffefae1, 0x10abbfef, 0xfcaaffeb, 0x24fdef3f,
+    0x7f7678ad, 0xedfff00c, 0x2cfacff6, 0xeb6bf7f9,
+    } },
+    { { /* 355 */
+    0x95bf1ffd, 0xbfbf6677, 0xfeb43bfb, 0x11e27bae,
+    0x41bea681, 0x72c31435, 0x71917d70, 0x276b0003,
+    } },
+    { { /* 356 */
+    0x70cf57cb, 0x0def4732, 0xfc747eda, 0xbdb4fe06,
+    0x8bca3f9f, 0x58007e49, 0xebec228f, 0xddbb8a5c,
+    } },
+    { { /* 357 */
+    0xb6e7ef60, 0xf293a40f, 0x549e37bb, 0x9bafd04b,
+    0xf7d4c414, 0x0a1430b0, 0x88d02f08, 0x192fff7e,
+    } },
+    { { /* 358 */
+    0xfb07ffda, 0x7beb7ff1, 0x0010c5ef, 0xfdff99ff,
+    0x056779d7, 0xfdcbffe7, 0x4040c3ff, 0xbd8e6ff7,
+    } },
+    { { /* 359 */
+    0x0497dffa, 0x5bfff4c0, 0xd0e7ed7b, 0xf8e0047e,
+    0xb73eff9f, 0x882e7dfe, 0xbe7ffffd, 0xf6c483fe,
+    } },
+    { { /* 360 */
+    0xb8fdf357, 0xef7dd680, 0x47885767, 0xc3dfff7d,
+    0x37a9f0ff, 0x70fc7de0, 0xec9a3f6f, 0x86814cb3,
+    } },
+    { { /* 361 */
+    0xdd5c3f9e, 0x4819f70d, 0x0007fea3, 0x38ffaf56,
+    0xefb8980d, 0xb760403d, 0x9035d8ce, 0x3fff72bf,
+    } },
+    { { /* 362 */
+    0x7a117ff7, 0xabfff7bb, 0x6fbeff00, 0xfe72a93c,
+    0xf11bcfef, 0xf40adb6b, 0xef7ec3e6, 0xf6109b9c,
+    } },
+    { { /* 363 */
+    0x16f4f048, 0x5182feb5, 0x15bbc7b1, 0xfbdf6e87,
+    0x63cde43f, 0x7e7ec1ff, 0x7d5ffdeb, 0xfcfe777b,
+    } },
+    { { /* 364 */
+    0xdbea960b, 0x53e86229, 0xfdef37df, 0xbd8136f5,
+    0xfcbddc18, 0xffffd2e4, 0xffe03fd7, 0xabf87f6f,
+    } },
+    { { /* 365 */
+    0x6ed99bae, 0xf115f5fb, 0xbdfb79a9, 0xadaf5a3c,
+    0x1facdbba, 0x837971fc, 0xc35f7cf7, 0x0567dfff,
+    } },
+    { { /* 366 */
+    0x8467ff9a, 0xdf8b1534, 0x3373f9f3, 0x5e1af7bd,
+    0xa03fbf40, 0x01ebffff, 0xcfdddfc0, 0xabd37500,
+    } },
+    { { /* 367 */
+    0xeed6f8c3, 0xb7ff43fd, 0x42275eaf, 0xf6869bac,
+    0xf6bc27d7, 0x35b7f787, 0xe176aacd, 0xe29f49e7,
+    } },
+    { { /* 368 */
+    0xaff2545c, 0x61d82b3f, 0xbbb8fc3b, 0x7b7dffcf,
+    0x1ce0bf95, 0x43ff7dfd, 0xfffe5ff6, 0xc4ced3ef,
+    } },
+    { { /* 369 */
+    0xadbc8db6, 0x11eb63dc, 0x23d0df59, 0xf3dbbeb4,
+    0xdbc71fe7, 0xfae4ff63, 0x63f7b22b, 0xadbaed3b,
+    } },
+    { { /* 370 */
+    0x7efffe01, 0x02bcfff7, 0xef3932ff, 0x8005fffc,
+    0xbcf577fb, 0xfff7010d, 0xbf3afffb, 0xdfff0057,
+    } },
+    { { /* 371 */
+    0xbd7def7b, 0xc8d4db88, 0xed7cfff3, 0x56ff5dee,
+    0xac5f7e0d, 0xd57fff96, 0xc1403fee, 0xffe76ff9,
+    } },
+    { { /* 372 */
+    0x8e77779b, 0xe45d6ebf, 0x5f1f6fcf, 0xfedfe07f,
+    0x01fed7db, 0xfb7bff00, 0x1fdfffd4, 0xfffff800,
+    } },
+    { { /* 373 */
+    0x007bfb8f, 0x7f5cbf00, 0x07f3ffff, 0x3de7eba0,
+    0xfbd7f7bf, 0x6003ffbf, 0xbfedfffd, 0x027fefbb,
+    } },
+    { { /* 374 */
+    0xddfdfe40, 0xe2f9fdff, 0xfb1f680b, 0xaffdfbe3,
+    0xf7ed9fa4, 0xf80f7a7d, 0x0fd5eebe, 0xfd9fbb5d,
+    } },
+    { { /* 375 */
+    0x3bf9f2db, 0xebccfe7f, 0x73fa876a, 0x9ffc95fc,
+    0xfaf7109f, 0xbbcdddb7, 0xeccdf87e, 0x3c3ff366,
+    } },
+    { { /* 376 */
+    0xb03ffffd, 0x067ee9f7, 0xfe0696ae, 0x5fd7d576,
+    0xa3f33fd1, 0x6fb7cf07, 0x7f449fd1, 0xd3dd7b59,
+    } },
+    { { /* 377 */
+    0xa9bdaf3b, 0xff3a7dcf, 0xf6ebfbe0, 0xffffb401,
+    0xb7bf7afa, 0x0ffdc000, 0xff1fff7f, 0x95fffefc,
+    } },
+    { { /* 378 */
+    0xb5dc0000, 0x3f3eef63, 0x001bfb7f, 0xfbf6e800,
+    0xb8df9eef, 0x003fff9f, 0xf5ff7bd0, 0x3fffdfdb,
+    } },
+    { { /* 379 */
+    0x00bffdf0, 0xbbbd8420, 0xffdedf37, 0x0ff3ff6d,
+    0x5efb604c, 0xfafbfffb, 0x0219fe5e, 0xf9de79f4,
+    } },
+    { { /* 380 */
+    0xebfaa7f7, 0xff3401eb, 0xef73ebd3, 0xc040afd7,
+    0xdcff72bb, 0x2fd8f17f, 0xfe0bb8ec, 0x1f0bdda3,
+    } },
+    { { /* 381 */
+    0x47cf8f1d, 0xffdeb12b, 0xda737fee, 0xcbc424ff,
+    0xcbf2f75d, 0xb4edecfd, 0x4dddbff9, 0xfb8d99dd,
+    } },
+    { { /* 382 */
+    0xaf7bbb7f, 0xc959ddfb, 0xfab5fc4f, 0x6d5fafe3,
+    0x3f7dffff, 0xffdb7800, 0x7effb6ff, 0x022ffbaf,
+    } },
+    { { /* 383 */
+    0xefc7ff9b, 0xffffffa5, 0xc7000007, 0xfff1f7ff,
+    0x01bf7ffd, 0xfdbcdc00, 0xffffbff5, 0x3effff7f,
+    } },
+    { { /* 384 */
+    0xbe000029, 0xff7ff9ff, 0xfd7e6efb, 0x039ecbff,
+    0xfbdde300, 0xf6dfccff, 0x117fffff, 0xfbf6f800,
+    } },
+    { { /* 385 */
+    0xd73ce7ef, 0xdfeffeef, 0xedbfc00b, 0xfdcdfedf,
+    0x40fd7bf5, 0xb75fffff, 0xf930ffdf, 0xdc97fbdf,
+    } },
+    { { /* 386 */
+    0xbff2fef3, 0xdfbf8fdf, 0xede6177f, 0x35530f7f,
+    0x877e447c, 0x45bbfa12, 0x779eede0, 0xbfd98017,
+    } },
+    { { /* 387 */
+    0xde897e55, 0x0447c16f, 0xf75d7ade, 0x290557ff,
+    0xfe9586f7, 0xf32f97b3, 0x9f75cfff, 0xfb1771f7,
+    } },
+    { { /* 388 */
+    0xee1934ee, 0xef6137cc, 0xef4c9fd6, 0xfbddd68f,
+    0x6def7b73, 0xa431d7fe, 0x97d75e7f, 0xffd80f5b,
+    } },
+    { { /* 389 */
+    0x7bce9d83, 0xdcff22ec, 0xef87763d, 0xfdeddfe7,
+    0xa0fc4fff, 0xdbfc3b77, 0x7fdc3ded, 0xf5706fa9,
+    } },
+    { { /* 390 */
+    0x2c403ffb, 0x847fff7f, 0xdeb7ec57, 0xf22fe69c,
+    0xd5b50feb, 0xede7afeb, 0xfff08c2f, 0xe8f0537f,
+    } },
+    { { /* 391 */
+    0xb5ffb99d, 0xe78fff66, 0xbe10d981, 0xe3c19c7c,
+    0x27339cd1, 0xff6d0cbc, 0xefb7fcb7, 0xffffa0df,
+    } },
+    { { /* 392 */
+    0xfe7bbf0b, 0x353fa3ff, 0x97cd13cc, 0xfb277637,
+    0x7e6ccfd6, 0xed31ec50, 0xfc1c677c, 0x5fbff6fa,
+    } },
+    { { /* 393 */
+    0xae2f0fba, 0x7ffea3ad, 0xde74fcf0, 0xf200ffef,
+    0xfea2fbbf, 0xbcff3daf, 0x5fb9f694, 0x3f8ff3ad,
+    } },
+    { { /* 394 */
+    0xa01ff26c, 0x01bfffef, 0x70057728, 0xda03ff35,
+    0xc7fad2f9, 0x5c1d3fbf, 0xec33ff3a, 0xfe9cb7af,
+    } },
+    { { /* 395 */
+    0x7a9f5236, 0xe722bffa, 0xfcff9ff7, 0xb61d2fbb,
+    0x1dfded06, 0xefdf7dd7, 0xf166eb23, 0x0dc07ed9,
+    } },
+    { { /* 396 */
+    0xdfbf3d3d, 0xba83c945, 0x9dd07dd1, 0xcf737b87,
+    0xc3f59ff3, 0xc5fedf0d, 0x83020cb3, 0xaec0e879,
+    } },
+    { { /* 397 */
+    0x6f0fc773, 0x093ffd7d, 0x0157fff1, 0x01ff62fb,
+    0x3bf3fdb4, 0x43b2b013, 0xff305ed3, 0xeb9f0fff,
+    } },
+    { { /* 398 */
+    0xf203feef, 0xfb893fef, 0x9e9937a9, 0xa72cdef9,
+    0xc1f63733, 0xfe3e812e, 0xf2f75d20, 0x69d7d585,
+    } },
+    { { /* 399 */
+    0xffffffff, 0xff6fdb07, 0xd97fc4ff, 0xbe0fefce,
+    0xf05ef17b, 0xffb7f6cf, 0xef845ef7, 0x0edfd7cb,
+    } },
+    { { /* 400 */
+    0xfcffff08, 0xffffee3f, 0xd7ff13ff, 0x7ffdaf0f,
+    0x1ffabdc7, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 401 */
+    0x00000000, 0xe7400000, 0xf933bd38, 0xfeed7feb,
+    0x7c767fe8, 0xffefb3f7, 0xd8b7feaf, 0xfbbfff6f,
+    } },
+    { { /* 402 */
+    0xdbf7f8fb, 0xe2f91752, 0x754785c8, 0xe3ef9090,
+    0x3f6d9ef4, 0x0536ee2e, 0x7ff3f7bc, 0x7f3fa07b,
+    } },
+    { { /* 403 */
+    0xeb600567, 0x6601babe, 0x583ffcd8, 0x87dfcaf7,
+    0xffa0bfcd, 0xfebf5bcd, 0xefa7b6fd, 0xdf9c77ef,
+    } },
+    { { /* 404 */
+    0xf8773fb7, 0xb7fc9d27, 0xdfefcab5, 0xf1b6fb5a,
+    0xef1fec39, 0x7ffbfbbf, 0xdafe000d, 0x4e7fbdfb,
+    } },
+    { { /* 405 */
+    0x5ac033ff, 0x9ffebff5, 0x005fffbf, 0xfdf80000,
+    0x6ffdffca, 0xa001cffd, 0xfbf2dfff, 0xff7fdfbf,
+    } },
+    { { /* 406 */
+    0x080ffeda, 0xbfffba08, 0xeed77afd, 0x67f9fbeb,
+    0xff93e044, 0x9f57df97, 0x08dffef7, 0xfedfdf80,
+    } },
+    { { /* 407 */
+    0xf7feffc5, 0x6803fffb, 0x6bfa67fb, 0x5fe27fff,
+    0xff73ffff, 0xe7fb87df, 0xf7a7ebfd, 0xefc7bf7e,
+    } },
+    { { /* 408 */
+    0xdf821ef3, 0xdf7e76ff, 0xda7d79c9, 0x1e9befbe,
+    0x77fb7ce0, 0xfffb87be, 0xffdb1bff, 0x4fe03f5c,
+    } },
+    { { /* 409 */
+    0x5f0e7fff, 0xddbf77ff, 0xfffff04f, 0x0ff8ffff,
+    0xfddfa3be, 0xfffdfc1c, 0xfb9e1f7d, 0xdedcbdff,
+    } },
+    { { /* 410 */
+    0xbafb3f6f, 0xfbefdf7f, 0x2eec7d1b, 0xf2f7af8e,
+    0xcfee7b0f, 0x77c61d96, 0xfff57e07, 0x7fdfd982,
+    } },
+    { { /* 411 */
+    0xc7ff5ee6, 0x79effeee, 0xffcf9a56, 0xde5efe5f,
+    0xf9e8896e, 0xe6c4f45e, 0xbe7c0001, 0xdddf3b7f,
+    } },
+    { { /* 412 */
+    0xe9efd59d, 0xde5334ac, 0x4bf7f573, 0x9eff7b4f,
+    0x476eb8fe, 0xff450dfb, 0xfbfeabfd, 0xddffe9d7,
+    } },
+    { { /* 413 */
+    0x7fffedf7, 0x7eebddfd, 0xb7ffcfe7, 0xef91bde9,
+    0xd77c5d75, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 414 */
+    0x00000000, 0xfa800000, 0xb4f1ffee, 0x2fefbf76,
+    0x77bfb677, 0xfffd9fbf, 0xf6ae95bf, 0x7f3b75ff,
+    } },
+    { { /* 415 */
+    0x0af9a7f5, 0x00000000, 0x00000000, 0x2bddfbd0,
+    0x9a7ff633, 0xd6fcfdab, 0xbfebf9e6, 0xf41fdfdf,
+    } },
+    { { /* 416 */
+    0xffffa6fd, 0xf37b4aff, 0xfef97fb7, 0x1d5cb6ff,
+    0xe5ff7ff6, 0x24041f7b, 0xf99ebe05, 0xdff2dbe3,
+    } },
+    { { /* 417 */
+    0xfdff6fef, 0xcbfcd679, 0xefffebfd, 0x0000001f,
+    0x98000000, 0x8017e148, 0x00fe6a74, 0xfdf16d7f,
+    } },
+    { { /* 418 */
+    0xfef3b87f, 0xf176e01f, 0x7b3fee96, 0xfffdeb8d,
+    0xcbb3adff, 0xe17f84ef, 0xbff04daa, 0xfe3fbf3f,
+    } },
+    { { /* 419 */
+    0xffd7ebff, 0xcf7fffdf, 0x85edfffb, 0x07bcd73f,
+    0xfe0faeff, 0x76bffdaf, 0x37bbfaef, 0xa3ba7fdc,
+    } },
+    { { /* 420 */
+    0x56f7b6ff, 0xe7df60f8, 0x4cdfff61, 0xff45b0fb,
+    0x3ffa7ded, 0x18fc1fff, 0xe3afffff, 0xdf83c7d3,
+    } },
+    { { /* 421 */
+    0xef7dfb57, 0x1378efff, 0x5ff7fec0, 0x5ee334bb,
+    0xeff6f70d, 0x00bfd7fe, 0xf7f7f59d, 0xffe051de,
+    } },
+    { { /* 422 */
+    0x037ffec9, 0xbfef5f01, 0x60a79ff1, 0xf1ffef1d,
+    0x0000000f, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 423 */
+    0x00000000, 0x00000000, 0x00000000, 0x3c800000,
+    0xd91ffb4d, 0xfee37b3a, 0xdc7f3fe9, 0x0000003f,
+    } },
+    { { /* 424 */
+    0x50000000, 0xbe07f51f, 0xf91bfc1d, 0x71ffbc1e,
+    0x5bbe6ff9, 0x9b1b5796, 0xfffc7fff, 0xafe7872e,
+    } },
+    { { /* 425 */
+    0xf34febf5, 0xe725dffd, 0x5d440bdc, 0xfddd5747,
+    0x7790ed3f, 0x8ac87d7f, 0xf3f9fafa, 0xef4b202a,
+    } },
+    { { /* 426 */
+    0x79cff5ff, 0x0ba5abd3, 0xfb8ff77a, 0x001f8ebd,
+    0x00000000, 0xfd4ef300, 0x88001a57, 0x7654aeac,
+    } },
+    { { /* 427 */
+    0xcdff17ad, 0xf42fffb2, 0xdbff5baa, 0x00000002,
+    0x73c00000, 0x2e3ff9ea, 0xbbfffa8e, 0xffd376bc,
+    } },
+    { { /* 428 */
+    0x7e72eefe, 0xe7f77ebd, 0xcefdf77f, 0x00000ff5,
+    0x00000000, 0xdb9ba900, 0x917fa4c7, 0x7ecef8ca,
+    } },
+    { { /* 429 */
+    0xc7e77d7a, 0xdcaecbbd, 0x8f76fd7e, 0x7cf391d3,
+    0x4c2f01e5, 0xa360ed77, 0x5ef807db, 0x21811df7,
+    } },
+    { { /* 430 */
+    0x309c6be0, 0xfade3b3a, 0xc3f57f53, 0x07ba61cd,
+    0x00000000, 0x00000000, 0x00000000, 0xbefe26e0,
+    } },
+    { { /* 431 */
+    0xebb503f9, 0xe9cbe36d, 0xbfde9c2f, 0xabbf9f83,
+    0xffd51ff7, 0xdffeb7df, 0xffeffdae, 0xeffdfb7e,
+    } },
+    { { /* 432 */
+    0x6ebfaaff, 0x00000000, 0x00000000, 0xb6200000,
+    0xbe9e7fcd, 0x58f162b3, 0xfd7bf10d, 0xbefde9f1,
+    } },
+    { { /* 433 */
+    0x5f6dc6c3, 0x69ffff3d, 0xfbf4ffcf, 0x4ff7dcfb,
+    0x11372000, 0x00000015, 0x00000000, 0x00000000,
+    } },
+    { { /* 434 */
+    0x00003000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    } },
+    { { /* 435 */
+    0x00000000, 0x00000000, 0x00000000, 0x00000000,
+    0x00000000, 0xffffffff, 0xffffffff, 0x001fffff,
+    } },
+};
+
+#define L(n) ((FcCharLeaf *) &leaves[n])
+
+static const FcCharLeaf *leaves_ab[2] = {
+    L(  0), L(  1),
+};
+
+static const FcChar16 numbers_ab[2] = {
+    0x0000, 0x0004,
+};
+
+static const FcCharLeaf *leaves_ar[1] = {
+    L(  2),
+};
+
+static const FcChar16 numbers_ar[1] = {
+    0x0006,
+};
+
+static const FcCharLeaf *leaves_az[4] = {
+    L(  3), L(  4), L(  5), L(  6),
+};
+
+static const FcChar16 numbers_az[4] = {
+    0x0000, 0x0001, 0x0002, 0x0004,
+};
+
+static const FcCharLeaf *leaves_ba[2] = {
+    L(  0), L(  7),
+};
+
+static const FcChar16 numbers_ba[2] = {
+    0x0000, 0x0004,
+};
+
+static const FcCharLeaf *leaves_be[2] = {
+    L(  0), L(  8),
+};
+
+static const FcChar16 numbers_be[2] = {
+    0x0000, 0x0004,
+};
+
+static const FcCharLeaf *leaves_bg[1] = {
+    L(  9),
+};
+
+static const FcChar16 numbers_bg[1] = {
+    0x0004,
+};
+
+static const FcCharLeaf *leaves_bn[1] = {
+    L( 10),
+};
+
+static const FcChar16 numbers_bn[1] = {
+    0x0009,
+};
+
+static const FcCharLeaf *leaves_bo[1] = {
+    L( 11),
+};
+
+static const FcChar16 numbers_bo[1] = {
+    0x000f,
+};
+
+static const FcCharLeaf *leaves_br[1] = {
+    L( 12),
+};
+
+static const FcChar16 numbers_br[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_ca[2] = {
+    L( 13), L( 14),
+};
+
+static const FcChar16 numbers_ca[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_co[1] = {
+    L( 15),
+};
+
+static const FcChar16 numbers_co[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_cs[2] = {
+    L( 16), L( 17),
+};
+
+static const FcChar16 numbers_cs[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_da[2] = {
+    L( 18), L( 19),
+};
+
+static const FcChar16 numbers_da[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_de[1] = {
+    L( 20),
+};
+
+static const FcChar16 numbers_de[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_el[1] = {
+    L( 21),
+};
+
+static const FcChar16 numbers_el[1] = {
+    0x0003,
+};
+
+static const FcCharLeaf *leaves_en[1] = {
+    L( 22),
+};
+
+static const FcChar16 numbers_en[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_eo[2] = {
+    L( 23), L( 24),
+};
+
+static const FcChar16 numbers_eo[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_es[1] = {
+    L( 25),
+};
+
+static const FcChar16 numbers_es[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_et[2] = {
+    L( 26), L( 27),
+};
+
+static const FcChar16 numbers_et[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_eu[2] = {
+    L( 28), L( 29),
+};
+
+static const FcChar16 numbers_eu[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_fi[2] = {
+    L( 30), L( 27),
+};
+
+static const FcChar16 numbers_fi[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_fo[1] = {
+    L( 31),
+};
+
+static const FcChar16 numbers_fo[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_ga[5] = {
+    L( 32), L( 33), L( 34), L( 35), L( 36),
+};
+
+static const FcChar16 numbers_ga[5] = {
+    0x0000, 0x0001, 0x0002, 0x001e, 0x0020,
+};
+
+static const FcCharLeaf *leaves_gd[1] = {
+    L( 37),
+};
+
+static const FcChar16 numbers_gd[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_gl[1] = {
+    L( 38),
+};
+
+static const FcChar16 numbers_gl[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_gu[1] = {
+    L( 39),
+};
+
+static const FcChar16 numbers_gu[1] = {
+    0x000a,
+};
+
+static const FcCharLeaf *leaves_he[1] = {
+    L( 40),
+};
+
+static const FcChar16 numbers_he[1] = {
+    0x0005,
+};
+
+static const FcCharLeaf *leaves_hr[3] = {
+    L( 41), L( 42), L( 43),
+};
+
+static const FcChar16 numbers_hr[3] = {
+    0x0000, 0x0001, 0x0002,
+};
+
+static const FcCharLeaf *leaves_hu[2] = {
+    L( 44), L( 45),
+};
+
+static const FcChar16 numbers_hu[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_hy[1] = {
+    L( 46),
+};
+
+static const FcChar16 numbers_hy[1] = {
+    0x0005,
+};
+
+static const FcCharLeaf *leaves_is[1] = {
+    L( 47),
+};
+
+static const FcChar16 numbers_is[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_it[1] = {
+    L( 48),
+};
+
+static const FcChar16 numbers_it[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_ja[84] = {
+    L( 49), L( 50), L( 51), L( 52), L( 53), L( 54), L( 55), L( 56),
+    L( 57), L( 58), L( 59), L( 60), L( 61), L( 62), L( 63), L( 64),
+    L( 65), L( 66), L( 67), L( 68), L( 69), L( 70), L( 71), L( 72),
+    L( 73), L( 74), L( 75), L( 76), L( 77), L( 78), L( 79), L( 80),
+    L( 81), L( 82), L( 83), L( 84), L( 85), L( 86), L( 87), L( 88),
+    L( 89), L( 90), L( 91), L( 92), L( 93), L( 94), L( 95), L( 96),
+    L( 97), L( 98), L( 99), L(100), L(101), L(102), L(103), L(104),
+    L(105), L(106), L(107), L(108), L(109), L(110), L(111), L(112),
+    L(113), L(114), L(115), L(116), L(117), L(118), L(119), L(120),
+    L(121), L(122), L(123), L(124), L(125), L(126), L(127), L(128),
+    L(129), L(130), L(131), L(132),
+};
+
+static const FcChar16 numbers_ja[84] = {
+    0x0030, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
+    0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
+    0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
+    0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
+    0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
+    0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
+    0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
+    0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
+    0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
+    0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
+    0x009d, 0x009e, 0x009f, 0x00ff,
+};
+
+static const FcCharLeaf *leaves_ka[2] = {
+    L(133), L(134),
+};
+
+static const FcChar16 numbers_ka[2] = {
+    0x0005, 0x0010,
+};
+
+static const FcCharLeaf *leaves_kk[2] = {
+    L(  0), L(135),
+};
+
+static const FcChar16 numbers_kk[2] = {
+    0x0000, 0x0004,
+};
+
+static const FcCharLeaf *leaves_kl[2] = {
+    L(136), L(137),
+};
+
+static const FcChar16 numbers_kl[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_km[1] = {
+    L(138),
+};
+
+static const FcChar16 numbers_km[1] = {
+    0x0017,
+};
+
+static const FcCharLeaf *leaves_kn[1] = {
+    L(139),
+};
+
+static const FcChar16 numbers_kn[1] = {
+    0x000c,
+};
+
+static const FcCharLeaf *leaves_ko[132] = {
+    L(140), L(141), L(142), L(143), L(144), L(145), L(146), L(147),
+    L(148), L(149), L(150), L(151), L(152), L(153), L(154), L(155),
+    L(156), L(157), L(158), L(159), L(160), L(161), L(162), L(163),
+    L(164), L(165), L(166), L(167), L(168), L(169), L(170), L(171),
+    L(172), L(173), L(174), L(175), L(176), L(177), L(178), L(179),
+    L(180), L(181), L(182), L(183), L(184), L(185), L(186), L(187),
+    L(188), L(189), L(190), L(191), L(192), L(193), L(194), L(195),
+    L(196), L(197), L(198), L(199), L(200), L(201), L(202), L(203),
+    L(204), L(205), L(206), L(207), L(208), L(209), L(210), L(211),
+    L(212), L(213), L(214), L(215), L(216), L(217), L(218), L(219),
+    L(220), L(221), L(222), L(223), L(224), L(225), L(225), L(225),
+    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
+    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
+    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
+    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
+    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
+    L(226), L(225), L(227), L(228),
+};
+
+static const FcChar16 numbers_ko[132] = {
+    0x0030, 0x0031, 0x0032, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052,
+    0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a,
+    0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062,
+    0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a,
+    0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072,
+    0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a,
+    0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082,
+    0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a,
+    0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092,
+    0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a,
+    0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00ac, 0x00ad, 0x00ae,
+    0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6,
+    0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be,
+    0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6,
+    0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce,
+    0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6,
+    0x00d7, 0x00f9, 0x00fa, 0x00ff,
+};
+
+static const FcCharLeaf *leaves_la[2] = {
+    L( 23), L(229),
+};
+
+static const FcChar16 numbers_la[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_lo[1] = {
+    L(230),
+};
+
+static const FcChar16 numbers_lo[1] = {
+    0x000e,
+};
+
+static const FcCharLeaf *leaves_lt[2] = {
+    L( 23), L(231),
+};
+
+static const FcChar16 numbers_lt[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_lv[2] = {
+    L( 23), L(232),
+};
+
+static const FcChar16 numbers_lv[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_mk[1] = {
+    L(233),
+};
+
+static const FcChar16 numbers_mk[1] = {
+    0x0004,
+};
+
+static const FcCharLeaf *leaves_ml[1] = {
+    L(234),
+};
+
+static const FcChar16 numbers_ml[1] = {
+    0x000d,
+};
+
+static const FcCharLeaf *leaves_mn[1] = {
+    L(235),
+};
+
+static const FcChar16 numbers_mn[1] = {
+    0x0018,
+};
+
+static const FcCharLeaf *leaves_mo[4] = {
+    L(236), L(237), L(238), L(239),
+};
+
+static const FcChar16 numbers_mo[4] = {
+    0x0000, 0x0001, 0x0002, 0x0004,
+};
+
+static const FcCharLeaf *leaves_mt[3] = {
+    L(240), L(241), L(242),
+};
+
+static const FcChar16 numbers_mt[3] = {
+    0x0000, 0x0001, 0x0002,
+};
+
+static const FcCharLeaf *leaves_nl[1] = {
+    L(243),
+};
+
+static const FcChar16 numbers_nl[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_no[1] = {
+    L(244),
+};
+
+static const FcChar16 numbers_no[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_oc[1] = {
+    L(245),
+};
+
+static const FcChar16 numbers_oc[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_or[1] = {
+    L(246),
+};
+
+static const FcChar16 numbers_or[1] = {
+    0x000b,
+};
+
+static const FcCharLeaf *leaves_pl[2] = {
+    L(247), L(248),
+};
+
+static const FcChar16 numbers_pl[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_pt[1] = {
+    L(249),
+};
+
+static const FcChar16 numbers_pt[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_rm[1] = {
+    L(250),
+};
+
+static const FcChar16 numbers_rm[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_ro[3] = {
+    L(236), L(237), L(238),
+};
+
+static const FcChar16 numbers_ro[3] = {
+    0x0000, 0x0001, 0x0002,
+};
+
+static const FcCharLeaf *leaves_ru[2] = {
+    L(  0), L(251),
+};
+
+static const FcChar16 numbers_ru[2] = {
+    0x0000, 0x0004,
+};
+
+static const FcCharLeaf *leaves_sh[1] = {
+    L(252),
+};
+
+static const FcChar16 numbers_sh[1] = {
+    0x0004,
+};
+
+static const FcCharLeaf *leaves_si[1] = {
+    L(253),
+};
+
+static const FcChar16 numbers_si[1] = {
+    0x000d,
+};
+
+static const FcCharLeaf *leaves_sk[2] = {
+    L(254), L(255),
+};
+
+static const FcChar16 numbers_sk[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_sl[3] = {
+    L( 23), L(256), L(257),
+};
+
+static const FcChar16 numbers_sl[3] = {
+    0x0000, 0x0001, 0x0004,
+};
+
+static const FcCharLeaf *leaves_sq[1] = {
+    L(258),
+};
+
+static const FcChar16 numbers_sq[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_sv[1] = {
+    L(259),
+};
+
+static const FcChar16 numbers_sv[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_ta[1] = {
+    L(260),
+};
+
+static const FcChar16 numbers_ta[1] = {
+    0x000b,
+};
+
+static const FcCharLeaf *leaves_te[1] = {
+    L(261),
+};
+
+static const FcChar16 numbers_te[1] = {
+    0x000c,
+};
+
+static const FcCharLeaf *leaves_th[1] = {
+    L(262),
+};
+
+static const FcChar16 numbers_th[1] = {
+    0x000e,
+};
+
+static const FcCharLeaf *leaves_tl[1] = {
+    L(263),
+};
+
+static const FcChar16 numbers_tl[1] = {
+    0x0017,
+};
+
+static const FcCharLeaf *leaves_tr[2] = {
+    L(264), L(265),
+};
+
+static const FcChar16 numbers_tr[2] = {
+    0x0000, 0x0001,
+};
+
+static const FcCharLeaf *leaves_uk[2] = {
+    L(  0), L(266),
+};
+
+static const FcChar16 numbers_uk[2] = {
+    0x0000, 0x0004,
+};
+
+static const FcCharLeaf *leaves_vo[1] = {
+    L(267),
+};
+
+static const FcChar16 numbers_vo[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_wa[1] = {
+    L(268),
+};
+
+static const FcChar16 numbers_wa[1] = {
+    0x0000,
+};
+
+static const FcCharLeaf *leaves_zh_cn[82] = {
+    L(269), L(270), L(271), L(272), L(273), L(274), L(275), L(276),
+    L(277), L(278), L(279), L(280), L(281), L(282), L(283), L(284),
+    L(285), L(286), L(287), L(288), L(289), L(290), L(291), L(292),
+    L(293), L(294), L(295), L(296), L(297), L(298), L(299), L(300),
+    L(301), L(302), L(303), L(304), L(305), L(306), L(307), L(308),
+    L(309), L(310), L(311), L(312), L(313), L(314), L(315), L(316),
+    L(317), L(318), L(319), L(320), L(321), L(322), L(323), L(324),
+    L(325), L(326), L(327), L(328), L(329), L(330), L(331), L(332),
+    L(333), L(334), L(335), L(336), L(337), L(338), L(339), L(340),
+    L(341), L(342), L(343), L(344), L(345), L(346), L(347), L(348),
+    L(349), L(350),
+};
+
+static const FcChar16 numbers_zh_cn[82] = {
+    0x0002, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
+    0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
+    0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
+    0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
+    0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
+    0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
+    0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
+    0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
+    0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
+    0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
+    0x009e, 0x009f,
+};
+
+static const FcCharLeaf *leaves_zh_mo[84] = {
+    L(351), L(352), L(353), L(354), L(355), L(356), L(357), L(358),
+    L(359), L(360), L(361), L(362), L(363), L(364), L(365), L(366),
+    L(367), L(368), L(369), L(370), L(371), L(372), L(373), L(374),
+    L(375), L(376), L(377), L(378), L(379), L(380), L(381), L(382),
+    L(383), L(384), L(385), L(386), L(387), L(388), L(389), L(390),
+    L(391), L(392), L(393), L(394), L(395), L(396), L(397), L(398),
+    L(399), L(400), L(401), L(402), L(403), L(404), L(405), L(406),
+    L(407), L(408), L(409), L(410), L(411), L(412), L(413), L(414),
+    L(415), L(416), L(417), L(418), L(419), L(420), L(421), L(422),
+    L(423), L(424), L(425), L(426), L(427), L(428), L(429), L(430),
+    L(431), L(432), L(433), L(434),
+};
+
+static const FcChar16 numbers_zh_mo[84] = {
+    0x0030, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
+    0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
+    0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
+    0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
+    0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
+    0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
+    0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
+    0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
+    0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
+    0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
+    0x009d, 0x009e, 0x009f, 0x00fa,
+};
+
+static const FcCharLeaf *leaves_chr[1] = {
+    L(435),
+};
+
+static const FcChar16 numbers_chr[1] = {
+    0x0013,
+};
+
+#undef L
+
+static const FcLangCharSet  fcLangCharSets[] = {
+    { (FcChar8 *) "ab",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ab, (FcChar16 *) numbers_ab } },
+    { (FcChar8 *) "ar",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_ar, (FcChar16 *) numbers_ar } },
+    { (FcChar8 *) "az",
+      { 1, FcTrue, 4, (FcCharLeaf **) leaves_az, (FcChar16 *) numbers_az } },
+    { (FcChar8 *) "ba",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ba, (FcChar16 *) numbers_ba } },
+    { (FcChar8 *) "be",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_be, (FcChar16 *) numbers_be } },
+    { (FcChar8 *) "bg",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_bg, (FcChar16 *) numbers_bg } },
+    { (FcChar8 *) "bn",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_bn, (FcChar16 *) numbers_bn } },
+    { (FcChar8 *) "bo",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_bo, (FcChar16 *) numbers_bo } },
+    { (FcChar8 *) "br",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_br, (FcChar16 *) numbers_br } },
+    { (FcChar8 *) "ca",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ca, (FcChar16 *) numbers_ca } },
+    { (FcChar8 *) "co",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_co, (FcChar16 *) numbers_co } },
+    { (FcChar8 *) "cs",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_cs, (FcChar16 *) numbers_cs } },
+    { (FcChar8 *) "da",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_da, (FcChar16 *) numbers_da } },
+    { (FcChar8 *) "de",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_de, (FcChar16 *) numbers_de } },
+    { (FcChar8 *) "el",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_el, (FcChar16 *) numbers_el } },
+    { (FcChar8 *) "en",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_en, (FcChar16 *) numbers_en } },
+    { (FcChar8 *) "eo",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_eo, (FcChar16 *) numbers_eo } },
+    { (FcChar8 *) "es",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_es, (FcChar16 *) numbers_es } },
+    { (FcChar8 *) "et",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_et, (FcChar16 *) numbers_et } },
+    { (FcChar8 *) "eu",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_eu, (FcChar16 *) numbers_eu } },
+    { (FcChar8 *) "fi",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_fi, (FcChar16 *) numbers_fi } },
+    { (FcChar8 *) "fo",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_fo, (FcChar16 *) numbers_fo } },
+    { (FcChar8 *) "fr",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_co, (FcChar16 *) numbers_co } },
+    { (FcChar8 *) "fy",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_de, (FcChar16 *) numbers_de } },
+    { (FcChar8 *) "ga",
+      { 1, FcTrue, 5, (FcCharLeaf **) leaves_ga, (FcChar16 *) numbers_ga } },
+    { (FcChar8 *) "gd",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_gd, (FcChar16 *) numbers_gd } },
+    { (FcChar8 *) "gl",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_gl, (FcChar16 *) numbers_gl } },
+    { (FcChar8 *) "gu",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_gu, (FcChar16 *) numbers_gu } },
+    { (FcChar8 *) "he",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_he, (FcChar16 *) numbers_he } },
+    { (FcChar8 *) "hr",
+      { 1, FcTrue, 3, (FcCharLeaf **) leaves_hr, (FcChar16 *) numbers_hr } },
+    { (FcChar8 *) "hu",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_hu, (FcChar16 *) numbers_hu } },
+    { (FcChar8 *) "hy",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_hy, (FcChar16 *) numbers_hy } },
+    { (FcChar8 *) "is",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_is, (FcChar16 *) numbers_is } },
+    { (FcChar8 *) "it",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_it, (FcChar16 *) numbers_it } },
+    { (FcChar8 *) "ja",
+      { 1, FcTrue, 84, (FcCharLeaf **) leaves_ja, (FcChar16 *) numbers_ja } },
+    { (FcChar8 *) "ka",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ka, (FcChar16 *) numbers_ka } },
+    { (FcChar8 *) "kk",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_kk, (FcChar16 *) numbers_kk } },
+    { (FcChar8 *) "kl",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_kl, (FcChar16 *) numbers_kl } },
+    { (FcChar8 *) "km",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_km, (FcChar16 *) numbers_km } },
+    { (FcChar8 *) "kn",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_kn, (FcChar16 *) numbers_kn } },
+    { (FcChar8 *) "ko",
+      { 1, FcTrue, 132, (FcCharLeaf **) leaves_ko, (FcChar16 *) numbers_ko } },
+    { (FcChar8 *) "la",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_la, (FcChar16 *) numbers_la } },
+    { (FcChar8 *) "lo",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_lo, (FcChar16 *) numbers_lo } },
+    { (FcChar8 *) "lt",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_lt, (FcChar16 *) numbers_lt } },
+    { (FcChar8 *) "lv",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_lv, (FcChar16 *) numbers_lv } },
+    { (FcChar8 *) "mk",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_mk, (FcChar16 *) numbers_mk } },
+    { (FcChar8 *) "ml",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_ml, (FcChar16 *) numbers_ml } },
+    { (FcChar8 *) "mn",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_mn, (FcChar16 *) numbers_mn } },
+    { (FcChar8 *) "mo",
+      { 1, FcTrue, 4, (FcCharLeaf **) leaves_mo, (FcChar16 *) numbers_mo } },
+    { (FcChar8 *) "mt",
+      { 1, FcTrue, 3, (FcCharLeaf **) leaves_mt, (FcChar16 *) numbers_mt } },
+    { (FcChar8 *) "nl",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_nl, (FcChar16 *) numbers_nl } },
+    { (FcChar8 *) "no",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_no, (FcChar16 *) numbers_no } },
+    { (FcChar8 *) "oc",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_oc, (FcChar16 *) numbers_oc } },
+    { (FcChar8 *) "or",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_or, (FcChar16 *) numbers_or } },
+    { (FcChar8 *) "pl",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_pl, (FcChar16 *) numbers_pl } },
+    { (FcChar8 *) "pt",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_pt, (FcChar16 *) numbers_pt } },
+    { (FcChar8 *) "rm",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_rm, (FcChar16 *) numbers_rm } },
+    { (FcChar8 *) "ro",
+      { 1, FcTrue, 3, (FcCharLeaf **) leaves_ro, (FcChar16 *) numbers_ro } },
+    { (FcChar8 *) "ru",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ru, (FcChar16 *) numbers_ru } },
+    { (FcChar8 *) "sh",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sh, (FcChar16 *) numbers_sh } },
+    { (FcChar8 *) "si",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_si, (FcChar16 *) numbers_si } },
+    { (FcChar8 *) "sk",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_sk, (FcChar16 *) numbers_sk } },
+    { (FcChar8 *) "sl",
+      { 1, FcTrue, 3, (FcCharLeaf **) leaves_sl, (FcChar16 *) numbers_sl } },
+    { (FcChar8 *) "sq",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sq, (FcChar16 *) numbers_sq } },
+    { (FcChar8 *) "sr",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sh, (FcChar16 *) numbers_sh } },
+    { (FcChar8 *) "sv",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sv, (FcChar16 *) numbers_sv } },
+    { (FcChar8 *) "ta",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_ta, (FcChar16 *) numbers_ta } },
+    { (FcChar8 *) "te",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_te, (FcChar16 *) numbers_te } },
+    { (FcChar8 *) "th",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_th, (FcChar16 *) numbers_th } },
+    { (FcChar8 *) "tl",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_tl, (FcChar16 *) numbers_tl } },
+    { (FcChar8 *) "tr",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_tr, (FcChar16 *) numbers_tr } },
+    { (FcChar8 *) "uk",
+      { 1, FcTrue, 2, (FcCharLeaf **) leaves_uk, (FcChar16 *) numbers_uk } },
+    { (FcChar8 *) "vo",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_vo, (FcChar16 *) numbers_vo } },
+    { (FcChar8 *) "wa",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_wa, (FcChar16 *) numbers_wa } },
+    { (FcChar8 *) "yi",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_he, (FcChar16 *) numbers_he } },
+    { (FcChar8 *) "zh-cn",
+      { 1, FcTrue, 82, (FcCharLeaf **) leaves_zh_cn, (FcChar16 *) numbers_zh_cn } },
+    { (FcChar8 *) "zh-mo",
+      { 1, FcTrue, 84, (FcCharLeaf **) leaves_zh_mo, (FcChar16 *) numbers_zh_mo } },
+    { (FcChar8 *) "zh-sg",
+      { 1, FcTrue, 82, (FcCharLeaf **) leaves_zh_cn, (FcChar16 *) numbers_zh_cn } },
+    { (FcChar8 *) "zh-tw",
+      { 1, FcTrue, 84, (FcCharLeaf **) leaves_zh_mo, (FcChar16 *) numbers_zh_mo } },
+    { (FcChar8 *) "chr",
+      { 1, FcTrue, 1, (FcCharLeaf **) leaves_chr, (FcChar16 *) numbers_chr } },
+};
+
diff --git a/fc-lang/fclang.tmpl.c b/fc-lang/fclang.tmpl.c
deleted file mode 100644 (file)
index 9bd8430..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * $XFree86$
- *
- * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "fcint.h"
-
-typedef struct {
-    FcChar8    *lang;
-    FcCharSet  charset;
-} FcLangCharSet;
-
-@@@
-
-#define NUM_LANG_CHAR_SET      (sizeof (fcLangCharSets) / sizeof (fcLangCharSets[0]))
-                                                
-FcBool
-FcFreeTypeSetLang (FcPattern *pattern, FcCharSet *charset)
-{
-    int                i;
-    FcChar32   missing;
-
-    for (i = 0; i < NUM_LANG_CHAR_SET; i++)
-    {
-       missing = FcCharSetSubtractCount (&fcLangCharSets[i].charset, charset);
-        if (FcDebug() & FC_DBG_SCANV)
-           printf ("%s(%d) ", fcLangCharSets[i].lang, missing);
-       if (!missing && !FcFreeTypeHasLang (pattern, fcLangCharSets[i].lang))
-           if (!FcPatternAddString (pattern, FC_LANG, fcLangCharSets[i].lang))
-               return FcFalse;
-    }
-    if (FcDebug() & FC_DBG_SCANV)
-       printf ("\n");
-    return FcTrue;
-}
-
-
-FcLangResult
-FcLangCompare (const FcChar8 *s1, const FcChar8 *s2)
-{
-    const FcChar8   *orig_s1 = s1;
-    FcChar8        c1, c2;
-    FcLangResult    result;
-    /*
-     * Compare ISO 639 language codes
-     */
-    for (;;)
-    {
-       c1 = *s1++;
-       c2 = *s2++;
-       if (c1 == '\0' || c1 == '-')
-           break;
-       if (c2 == '\0' || c2 == '-')
-           break;
-       c1 = FcToLower (c1);
-       c2 = FcToLower (c2);
-       if (c1 != c2)
-           return FcLangDifferentLang;     /* mismatching lang code */
-    }
-    if (!c1 && !c2)
-       return FcLangEqual;
-    /*
-     * Make x-* mismatch as if the lang part didn't match
-     */
-    result = FcLangDifferentCountry;
-    if (orig_s1[0] == 'x' && (orig_s1[1] == '\0' || orig_s1[1] == '-'))
-       result = FcLangDifferentLang;
-    
-    if (c1 == '\0' || c2 == '\0')
-       return result;
-    /*
-     * Compare ISO 3166 country codes
-     */
-    for (;;)
-    {
-       c1 = *s1++;
-       c2 = *s2++;
-       if (!c1 || !c2)
-           break;
-       c1 = FcToLower (c1);
-       c2 = FcToLower (c2);
-       if (c1 != c2)
-           break;
-    }
-    if (c1 == c2)
-       return FcLangEqual;
-    else
-       return result;
-}
-
-const FcCharSet *
-FcCharSetForLang (const FcChar8 *lang)
-{
-    int                i;
-    int                country = -1;
-    for (i = 0; i < NUM_LANG_CHAR_SET; i++)
-    {
-       switch (FcLangCompare (lang, fcLangCharSets[i].lang)) {
-       case FcLangEqual:
-           return &fcLangCharSets[i].charset;
-       case FcLangDifferentCountry:
-           if (country == -1)
-               country = i;
-       default:
-           break;
-       }
-    }
-    if (country == -1)
-       return 0;
-    return &fcLangCharSets[i].charset;
-}
diff --git a/fc-lang/fclang.tmpl.h b/fc-lang/fclang.tmpl.h
new file mode 100644 (file)
index 0000000..a5a2d5a
--- /dev/null
@@ -0,0 +1,25 @@
+/*
+ * $XFree86: xc/lib/fontconfig/fc-lang/fclang.tmpl.h,v 1.1 2002/07/06 23:21:36 keithp Exp $
+ *
+ * Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and its
+ * documentation for any purpose is hereby granted without fee, provided that
+ * the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission.  Keith Packard makes no
+ * representations about the suitability of this software for any purpose.  It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+@@@
index 6a9ced84ac88420f9b3ef78c535ff5ccd2c7b268..b29a58e02d4d378e8d997783507d49837cfa6e83 100644 (file)
@@ -14,7 +14,7 @@ built.
     afr                af      Afrikaans                                       afrikaans
     aka                        Akan                                            akan
     akk                        Akkadian                                        akkadien
-    alb/sqi*   sq      Albanian                                        albanais
+*   alb/sqi*   sq      Albanian                                        albanais
     ale                        Aleut                                           aléoute
     alg                        Algonquian languages                            algonquines, langues
     amh                am      Amharic                                         amharique
@@ -22,7 +22,7 @@ built.
     apa                        Apache languages                                apache
 *   ara                ar      Arabic                                          arabe
     arc                        Aramaic                                         araméen
-    arm/hye*   hy      Armenian                                        arménien
+*   arm/hye*   hy      Armenian                                        arménien
     arn                        Araucanian                                      araucan
     arp                        Arapaho                                         arapaho
     art                        Artificial (Other)                              artificielles, autres langues
@@ -42,7 +42,7 @@ built.
     bal                        Baluchi                                         baloutchi
     bam                        Bambara                                         bambara
     ban                        Balinese                                        balinais
-    baq/eus*   eu      Basque                                          basque
+*   baq/eus*   eu      Basque                                          basque
     bas                        Basa                                            basa
     bat                        Baltic (Other)                                  baltiques, autres langues
     bej                        Beja                                            bedja
@@ -57,7 +57,7 @@ built.
     bis                bi      Bislama                                         bichlamar
     bla                        Siksika                                         blackfoot
     bnt                        Bantu (Other)                                   bantoues, autres langues
-    tib/bod*   bo      Tibetan                                         tibétain
+*   tib/bod*   bo      Tibetan                                         tibétain
     bos                bs      Bosnian                                         bosniaque
     bra                        Braj                                            braj
 *   bre                br      Breton                                          breton
@@ -73,12 +73,12 @@ built.
     cau                        Caucasian (Other)                               caucasiennes, autres langues
     ceb                        Cebuano                                         cebuano
     cel                        Celtic (Other)                                  celtiques, autres langues
-    cze/ces*   cs      Czech                                           tchèque
+*   cze/ces*   cs      Czech                                           tchèque
     cha                ch      Chamorro                                        chamorro
     chb                        Chibcha                                         chibcha
     che                ce      Chechen                                         tchétchène
     chg                        Chagatai                                        djaghataï
-    chi/zho*   zh      Chinese                                         chinois
+*   chi/zho*   zh      Chinese                                         chinois
     chk                        Chuukese                                        chuuk
     chm                        Mari                                            mari
     chn                        Chinook jargon                                  chinook, jargon
@@ -113,7 +113,7 @@ built.
     dra                        Dravidian (Other)                               dravidiennes, autres langues
     dua                        Duala                                           douala
     dum                        Dutch, Middle (ca.1050-1350)                    néerlandais moyen (ca. 1050-1350)
-    dut/nld*   nl      Dutch                                           néerlandais
+*   dut/nld*   nl      Dutch                                           néerlandais
     dyu                        Dyula                                           dioula
     dzo                dz      Dzongkha                                        dzongkha
     efi                        Efik                                            efik
@@ -146,8 +146,8 @@ built.
     gay                        Gayo                                            gayo
     gba                        Gbaya                                           gbaya
     gem                        Germanic (Other)                                germaniques, autres langues
-    geo/kat*   ka      Georgian                                        géorgien
-    ger/deu*   de      German                                          allemand
+*   geo/kat*   ka      Georgian                                        géorgien
+*   ger/deu*   de      German                                          allemand
     gez                        Geez                                            guèze
     gil                        Gilbertese                                      kiribati
 *   gla                gd      Gaelic; Scottish Gaelic                         gaélique; gaélique écossais
@@ -161,7 +161,7 @@ built.
     got                        Gothic                                          gothique
     grb                        Grebo                                           grebo
     grc                        Greek, Ancient (to 1453)                        grec ancien (jusqu'à 1453)
-    gre/ell*   el      Greek, Modern (1453-)                           grec moderne (après 1453)
+*   gre/ell*   el      Greek, Modern (1453-)                           grec moderne (après 1453)
     grn                gn      Guarani                                         guarani
 *   guj                gu      Gujarati                                        goudjrati
     gwi                        Gwich´in                                        gwich´in
@@ -195,7 +195,7 @@ built.
     ipk                ik      Inupiaq                                         inupiaq
     ira                        Iranian (Other)                                 iraniennes, autres langues
     iro                        Iroquoian languages                             iroquoises, langues (famille)
-    ice/isl*   is      Icelandic                                       islandais
+*   ice/isl*   is      Icelandic                                       islandais
 *   ita                it      Italian                                         italien
     jav                jv      Javanese                                        javanais
 *   jpn                ja      Japanese                                        japonais
@@ -271,7 +271,7 @@ built.
     mic                        Micmac                                          micmac
     min                        Minangkabau                                     minangkabau
     mis                        Miscellaneous languages                         diverses, langues
-    mac/mkd*   mk      Macedonian                                      macédonien
+*   mac/mkd*   mk      Macedonian                                      macédonien
     mkh                        Mon-Khmer (Other)                               môn-khmer, autres langues
     mlg                mg      Malagasy                                        malgache
 *   mlt                mt      Maltese                                         maltais
@@ -361,9 +361,9 @@ built.
     san                sa      Sanskrit                                        sanskrit
     sas                        Sasak                                           sasak
     sat                        Santali                                         santal
-    scc/srp*   sr      Serbian                                         serbe
+*   scc/srp*   sr      Serbian                                         serbe
     sco                        Scots                                           écossais
-    scr/hrv*   hr      Croatian                                        croate
+*   scr/hrv*   hr      Croatian                                        croate
     sel                        Selkup                                          selkoupe
     sem                        Semitic (Other)                                 sémitiques, autres langues
     sga                        Irish, Old (to 900)                             irlandais ancien (jusqu'à 900)
@@ -455,7 +455,7 @@ built.
     was                        Washo                                           washo
     wel/cym*   cy      Welsh                                           gallois
     wen                        Sorbian languages                               sorabes, langues
-    wln                wa      Walloon                                         wallon
+*   wln                wa      Walloon                                         wallon
     wol                wo      Wolof                                           wolof
     xho                xh      Xhosa                                           xhosa
     yao                        Yao                                             yao
index c53e51c258bc591ded7f49a304528329fa02cf8e..7bf47c12a48666b9098672be06815214439d48e4 100644 (file)
@@ -1,5 +1,5 @@
 #
-# $XFree86$
+# $XFree86: xc/lib/fontconfig/fc-lang/ka.orth,v 1.2 2002/07/06 23:59:16 keithp Exp $
 #
 # Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
 #
@@ -24,7 +24,8 @@
 # Georgian (KA)
 0589   # Armenian full stop (vertsaket)
 10a0-10c5
-10d0-10f8
+10d0-10f6
+#10f7-10f8     # additional letters for Mingrelian and Svan
 10fb
 #2018  # single quote
 #201a  # single quote
diff --git a/fc-lang/zh_mo.orth b/fc-lang/zh_mo.orth
new file mode 100644 (file)
index 0000000..d990922
--- /dev/null
@@ -0,0 +1,27 @@
+#
+# $XFree86$
+#
+# Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Chinese in Macau (ZH-MO)
+#
+# Just use Big5 as for ZH-TW
+include zh_tw.orth
diff --git a/fc-lang/zh_sg.orth b/fc-lang/zh_sg.orth
new file mode 100644 (file)
index 0000000..acf86b5
--- /dev/null
@@ -0,0 +1,27 @@
+#
+# $XFree86$
+#
+# Copyright © 2002 Keith Packard, member of The XFree86 Project, Inc.
+#
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission.  Keith Packard makes no
+# representations about the suitability of this software for any purpose.  It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Chinese in Singapore (ZH-SG)
+#
+# Just use GB2312 as for ZH-CH
+include zh_cn.orth
index 98c6f8297f563e381b6e17ddefe79a4892d97db6..a90be3362c7ddca3bc49699f2c40a38f4e1f3d51 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $XFree86: xc/lib/fontconfig/src/fcfreetype.c,v 1.5 2002/06/29 20:31:02 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/src/fcfreetype.c,v 1.6 2002/07/06 23:47:43 keithp Exp $
  *
  * Copyright © 2001 Keith Packard, member of The XFree86 Project, Inc.
  *
 #include <freetype/internal/ftobjs.h>
 #include <freetype/tttables.h>
 
-static const FcChar8   *fcLangLatin1[] = {
-    (FcChar8 *) "br",   /* Breton */
-    (FcChar8 *) "ca",   /* Catalan */
-    (FcChar8 *) "da",   /* Danish */
-    (FcChar8 *) "de",   /* German */
-    (FcChar8 *) "en",   /* English */
-    (FcChar8 *) "es",   /* Spanish */
-    (FcChar8 *) "eu",   /* Basque */
-    (FcChar8 *) "fi",   /* Finnish */
-    (FcChar8 *) "fo",   /* Faroese */
-    (FcChar8 *) "fr",   /* French */
-    (FcChar8 *) "ga",   /* Irish */
-    (FcChar8 *) "gd",   /* Scottish */
-    (FcChar8 *) "gl",   /* Galician */
-    (FcChar8 *) "is",   /* Islandic */
-    (FcChar8 *) "it",   /* Italian */
-    (FcChar8 *) "kl",   /* Greenlandic */
-    (FcChar8 *) "la",   /* Latin */
-    (FcChar8 *) "nl",   /* Dutch */
-    (FcChar8 *) "no",   /* Norwegian */
-    (FcChar8 *) "pt",   /* Portuguese */
-    (FcChar8 *) "rm",   /* Rhaeto-Romanic */
-    (FcChar8 *) "sq",   /* Albanian */
-    (FcChar8 *) "sv",   /* Swedish */
-    0
-};
-
-static const FcChar8   *fcLangLatin2[] = {
-    (FcChar8 *) "cs",   /* Czech */
-    (FcChar8 *) "de",   /* German */
-    (FcChar8 *) "en",   /* English */
-    (FcChar8 *) "fi",   /* Finnish */
-    (FcChar8 *) "hr",   /* Croatian */
-    (FcChar8 *) "hu",   /* Hungarian */
-    (FcChar8 *) "la",   /* Latin */
-    (FcChar8 *) "pl",   /* Polish */
-    (FcChar8 *) "ro",   /* Romanian */
-    (FcChar8 *) "sk",   /* Slovak */
-    (FcChar8 *) "sl",   /* Slovenian */
-    (FcChar8 *) "sq",   /* Albanian */
-    0
-};
-
-static const FcChar8   *fcLangCyrillic[] = {
-    (FcChar8 *) "az",   /* Azerbaijani */
-    (FcChar8 *) "ba",   /* Bashkir */
-    (FcChar8 *) "bg",   /* Bulgarian */
-    (FcChar8 *) "be",   /* Byelorussian */
-    (FcChar8 *) "kk",   /* Kazakh */
-    (FcChar8 *) "ky",   /* Kirghiz */
-    (FcChar8 *) "mk",   /* Macedonian */
-    (FcChar8 *) "mo",   /* Moldavian */
-    (FcChar8 *) "mn",   /* Mongolian */
-    (FcChar8 *) "ru",   /* Russian */
-    (FcChar8 *) "sr",   /* Serbian */
-    (FcChar8 *) "tg",   /* Tadzhik */
-    (FcChar8 *) "tt",   /* Tatar */
-    (FcChar8 *) "tk",   /* Turkmen */
-    (FcChar8 *) "uz",   /* Uzbek */
-    (FcChar8 *) "uk",   /* Ukrainian */
-    0,
-};
-
-static const FcChar8   *fcLangGreek[] = {
-    (FcChar8 *) "el",   /* Greek */
-    0
-};
-
-static const FcChar8   *fcLangTurkish[] = {
-    (FcChar8 *) "tr",   /* Turkish */
-    0
-};
-
-static const FcChar8   *fcLangHebrew[] = {
-    (FcChar8 *) "he",   /* Hebrew */
-    (FcChar8 *) "yi",   /* Yiddish */
-    0
-};
-
-static const FcChar8   *fcLangArabic[] = {
-    (FcChar8 *) "ar",   /* arabic */
-    0
-};
-
-static const FcChar8   *fcLangWindowsBaltic[] = {
-    (FcChar8 *) "da",   /* Danish */
-    (FcChar8 *) "de",   /* German */
-    (FcChar8 *) "en",   /* English */
-    (FcChar8 *) "et",   /* Estonian */
-    (FcChar8 *) "fi",   /* Finnish */
-    (FcChar8 *) "la",   /* Latin */
-    (FcChar8 *) "lt",   /* Lithuanian */
-    (FcChar8 *) "lv",   /* Latvian */
-    (FcChar8 *) "no",   /* Norwegian */
-    (FcChar8 *) "pl",   /* Polish */
-    (FcChar8 *) "sl",   /* Slovenian */
-    (FcChar8 *) "sv",   /* Swedish */
-    0
-};
-
-static const FcChar8   *fcLangVietnamese[] = {
-    (FcChar8 *) "vi",   /* Vietnamese */
-    0,
-};
-
-static const FcChar8   *fcLangThai[] = {
-    (FcChar8 *) "th",   /* Thai */
-    0,
-};
-
-static const FcChar8   *fcLangJapanese[] = {
-    (FcChar8 *) "ja",   /* Japanese */
-    0,
-};
-
-static const FcChar8   *fcLangSimplifiedChinese[] = {
-    (FcChar8 *) "zh-cn",    /* Chinese-China */
-    0,
-};
-
-static const FcChar8   *fcLangKorean[] = {
-    (FcChar8 *) "ko",   /* Korean */
-    0,
-};
-
-static const FcChar8   *fcLangTraditionalChinese[] = {
-    (FcChar8 *) "zh-tw",    /* Chinese-Taiwan */
-    0,
-};
-
-static const FcChar8   *fcLangEnglish[] = {
-    (FcChar8 *) "en",   /* English */
-    0,
-};
-
 /*
- * Elide some of the less useful bits
+ * Keep Han languages separated by eliminating languages
+ * that the codePageRange bits says aren't supported
  */
+
 static const struct {
     int                    bit;
-    const FcChar8   **lang;
+    const FcChar8   *lang;
 } FcCodePageRange[] = {
-    { 0,       fcLangLatin1 },
-    { 1,       fcLangLatin2 },
-    { 2,       fcLangCyrillic },
-    { 3,       fcLangGreek },
-    { 4,       fcLangTurkish },
-    { 5,       fcLangHebrew },
-    { 6,       fcLangArabic },
-    { 7,       fcLangWindowsBaltic },
-    { 8,       fcLangVietnamese },
-/* 9-15 reserved for Alternate ANSI */
-    { 16,      fcLangThai },
-    { 17,      fcLangJapanese },
-    { 18,      fcLangSimplifiedChinese },
-    { 19,      fcLangKorean },
-    { 20,      fcLangTraditionalChinese },
-    { 21,      fcLangKorean },
-/* 22-28 reserved for Alternate ANSI & OEM */
-/*    { 29,    fcLangMacintosh }, */
-/*    { 30,    fcLangOem }, */
-/*     { 31,   fcLangSymbol },*/
-/* 32-47 reserved for OEM */
-    { 48,      fcLangGreek },
-    { 49,      fcLangCyrillic },
-/*    { 50,    fcLangMsdosNordic }, */
-    { 51,      fcLangArabic },
-/*    { 52,    fcLangMSDOS_CANADIAN_FRENCH }, */
-    { 53,      fcLangHebrew },
-/*    { 54,    fcLangMSDOS_ICELANDIC }, */
-/*    { 55,    fcLangMSDOS_PORTUGUESE }, */
-    { 56,      fcLangTurkish },
-    { 57,      fcLangCyrillic },
-    { 58,      fcLangLatin2 },
-    { 59,      fcLangWindowsBaltic },
-    { 60,      fcLangGreek },
-    { 61,      fcLangArabic },
-    { 62,      fcLangLatin1 },
-    { 63,      fcLangEnglish },
+    { 17,      (const FcChar8 *) "ja" },
+    { 18,      (const FcChar8 *) "zh-tw" },
+    { 19,      (const FcChar8 *) "ko" },
+    { 20,      (const FcChar8 *) "zh-cn" },
 };
 
 #define NUM_CODE_PAGE_RANGE (sizeof FcCodePageRange / sizeof FcCodePageRange[0])
 
 FcBool
-FcFreeTypeHasLang (FcPattern *pattern, const FcChar8 *lang)
+FcFreeTypeIsExclusiveLang (const FcChar8  *lang)
 {
-    FcChar8    *old;
-    int                i;
+    int            i;
 
-    for (i = 0; FcPatternGetString (pattern, FC_LANG, i, &old) == FcResultMatch; i++)
-       if (!FcStrCmp (lang, old))
+    for (i = 0; i < NUM_CODE_PAGE_RANGE; i++)
+    {
+       if (FcLangCompare (lang, FcCodePageRange[i].lang) != FcLangDifferentLang)
            return FcTrue;
+    }
     return FcFalse;
 }
 
@@ -240,10 +75,7 @@ FcFreeTypeQuery (const FcChar8      *file,
     FT_Library     ftLibrary;
     const FcChar8   *family;
     TT_OS2         *os2;
-    FcChar32       codepoints;
-    FcChar8        *lang;
-    FcBool         hasLang = FcFalse;
-    
+    const FcChar8   *exclusiveLang = 0;
 
     if (FT_Init_FreeType (&ftLibrary))
        return 0;
@@ -335,16 +167,17 @@ FcFreeTypeQuery (const FcChar8    *file,
            }
            if (bits & (1 << bit))
            {
-               int             j;
-               const FcChar8   *lang;
-
-               for (j = 0; (lang = FcCodePageRange[i].lang[j]); j++)
-                   if (!FcFreeTypeHasLang (pat, lang))
-                   {
-                       if (!FcPatternAddString (pat, FC_LANG, lang))
-                           goto bail1;
-                       hasLang = FcTrue;
-                   }
+               /* 
+                * If the font advertises support for multiple
+                * "exclusive" languages, then include support
+                * for any language found to have coverage
+                */
+               if (exclusiveLang)
+               {
+                   exclusiveLang = 0;
+                   break;
+               }
+               exclusiveLang = FcCodePageRange[i].lang;
            }
        }
     }
@@ -356,12 +189,11 @@ FcFreeTypeQuery (const FcChar8    *file,
     if (!cs)
        goto bail1;
 
-    codepoints = FcCharSetCount (cs);
     /*
      * Skip over PCF fonts that have no encoded characters; they're
      * usually just Unicode fonts transcoded to some legacy encoding
      */
-    if (codepoints == 0)
+    if (FcCharSetCount (cs) == 0)
     {
        if (!strcmp(FT_MODULE_CLASS(&face->driver->root)->module_name, "pcf"))
            goto bail2;
@@ -370,18 +202,8 @@ FcFreeTypeQuery (const FcChar8     *file,
     if (!FcPatternAddCharSet (pat, FC_CHARSET, cs))
        goto bail2;
 
-    if (!hasLang)
-    {
-       if (!FcFreeTypeSetLang (pat, cs))
-           goto bail2;
-
-       /*
-        * Make sure it has a lang entry
-        */
-       if (FcPatternGetString (pat, FC_LANG, 0, &lang) != FcResultMatch)
-           if (!FcPatternAddString (pat, FC_LANG, (FcChar8 *) "x-unknown"))
-               goto bail2;
-    }
+    if (!FcFreeTypeSetLang (pat, cs, exclusiveLang))
+        goto bail2;
 
     /*
      * Drop our reference to the charset
index 00ee5f6f51a199b80d7477ce1531f4afc47a68d1..777b214e7fdd5e233af0a0fa8becb3f79c1acb6b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $XFree86: xc/lib/fontconfig/src/fcint.h,v 1.13 2002/06/03 08:31:15 keithp Exp $
+ * $XFree86: xc/lib/fontconfig/src/fcint.h,v 1.16 2002/07/06 23:47:44 keithp Exp $
  *
  * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
  *
@@ -398,6 +398,9 @@ int
 FcFontDebug (void);
     
 /* fcfreetype.c */
+FcBool
+FcFreeTypeIsExclusiveLang (const FcChar8  *lang);
+
 FcBool
 FcFreeTypeHasLang (FcPattern *pattern, const FcChar8 *lang);
 
@@ -470,7 +473,9 @@ FcMemFree (int kind, int size);
 
 /* fclang.c */
 FcBool
-FcFreeTypeSetLang (FcPattern *pattern, FcCharSet *charset);
+FcFreeTypeSetLang (FcPattern       *pattern, 
+                  FcCharSet        *charset, 
+                  const FcChar8    *exclusiveLang);
 
 FcLangResult
 FcLangCompare (const FcChar8 *s1, const FcChar8 *s2);
index e3fe09442af686e4628f7cfa5b49d3b0f58b0ecb..9795ec8c45e7e391f602e80f4ae8515c0caff291 100644 (file)
@@ -29,2620 +29,52 @@ typedef struct {
     FcCharSet  charset;
 } FcLangCharSet;
 
-/* total size: 496 unique leaves: 436 */
-
-static const FcCharLeaf        leaves[436] = {
-    { { /* 0 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x08000800, 0x00000000, 0x00000000,
-    } },
-    { { /* 1 */
-    0xffff8002, 0xffffffff, 0x8002ffff, 0x00000000,
-    0xc0000000, 0xf0fc33c0, 0x03000000, 0x00000000,
-    } },
-    { { /* 2 */
-    0x88001000, 0x07fffffe, 0x0007ffff, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 3 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x10400090, 0x10400090,
-    } },
-    { { /* 4 */
-    0xc0000000, 0x00030000, 0xc0000000, 0x00000000,
-    0x00008000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 5 */
-    0x00000000, 0x00000000, 0x02000000, 0x00000000,
-    0x00000000, 0x10000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 6 */
-    0xffff0100, 0xffffffff, 0x0100ffff, 0x00000000,
-    0x300c0000, 0x0f00c000, 0x03000000, 0x00000300,
-    } },
-    { { /* 7 */
-    0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000,
-    0x030c0000, 0x0000cc0f, 0x03000000, 0x00000300,
-    } },
-    { { /* 8 */
-    0xffff4042, 0xffffffff, 0x4042ffff, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 9 */
-    0xffff0001, 0xffffd7ff, 0x2001d7ff, 0x00000c0c,
-    0x00000000, 0x00002000, 0x00000000, 0x00000000,
-    } },
-    { { /* 10 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xfff99fee, 0xd3c5fdff, 0xb080399f, 0x07ffffcf,
-    } },
-    { { /* 11 */
-    0xffffffff, 0xffffffff, 0xfffffeff, 0xfffe07ff,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 12 */
-    0x00000000, 0x00000080, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000800, 0x12020404, 0x12020404,
-    } },
-    { { /* 13 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00800000, 0x140ca381, 0x140ca381,
-    } },
-    { { /* 14 */
-    0x00000000, 0x80000000, 0x00000001, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 15 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000800, 0x0a12cf45, 0x8a12cf45,
-    } },
-    { { /* 16 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x34482212, 0x34482212,
-    } },
-    { { /* 17 */
-    0x0c00f000, 0x00000000, 0x03000180, 0x6000c033,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 18 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000800, 0x75592ff7, 0x75592ff7,
-    } },
-    { { /* 19 */
-    0x00000000, 0x00000000, 0x000c0000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0xfc000000,
-    } },
-    { { /* 20 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000800, 0x90400010, 0x10400010,
-    } },
-    { { /* 21 */
-    0x00000000, 0x00000000, 0x00000000, 0x44300000,
-    0xffffd7f0, 0xfffffffb, 0xfc807fff, 0x00000003,
-    } },
-    { { /* 22 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x8fd38f81, 0x00520000,
-    } },
-    { { /* 23 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 24 */
-    0x30000300, 0x00300030, 0x30000000, 0x00003000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 25 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x80000002, 0x140a2202, 0x140a2202,
-    } },
-    { { /* 26 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x10600010, 0x10600010,
-    } },
-    { { /* 27 */
-    0x00000000, 0x00000000, 0x00000000, 0x60000003,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 28 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x10020000, 0x10020000,
-    } },
-    { { /* 29 */
-    0x00000000, 0x00000000, 0x00300000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 30 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000000, 0x10600070, 0x10600070,
-    } },
-    { { /* 31 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x35492072, 0x35492072,
-    } },
-    { { /* 32 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x060c3383, 0x060c3383,
-    } },
-    { { /* 33 */
-    0x00000c00, 0x00000003, 0x00000000, 0x80000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 34 */
-    0x00000000, 0x00000000, 0x00000000, 0x10000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 35 */
-    0xc0000c0c, 0x00000000, 0x00c00003, 0x00000c03,
-    0x08000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 36 */
-    0x00000000, 0x00000000, 0x00000400, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 37 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x020c1381, 0x020c1381,
-    } },
-    { { /* 38 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x88000802, 0x140a2202, 0x140a2202,
-    } },
-    { { /* 39 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xfffbafee, 0xf3edfdff, 0x00013bbf, 0x0000ffc1,
-    } },
-    { { /* 40 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0xffff0000, 0x000007ff,
-    } },
-    { { /* 41 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x02041101, 0x02041101,
-    } },
-    { { /* 42 */
-    0x000330c0, 0x00000000, 0x00000000, 0x60000003,
-    0x00000000, 0x00000000, 0x00001ff0, 0x003e0000,
-    } },
-    { { /* 43 */
-    0x00ffffff, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 44 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x14482203, 0x14482203,
-    } },
-    { { /* 45 */
-    0x00000000, 0x00000000, 0x00030000, 0x00030000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 46 */
-    0x00000000, 0xfffe0000, 0xfc7fffff, 0xfffffffe,
-    0x0000067f, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 47 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x75092a72, 0x75092272,
-    } },
-    { { /* 48 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x060cb301, 0x060cb300,
-    } },
-    { { /* 49 */
-    0x000000e7, 0x00000000, 0xfffffffe, 0xffffffff,
-    0x780fffff, 0xfffffffe, 0xffffffff, 0x787fffff,
-    } },
-    { { /* 50 */
-    0x43f36f8b, 0x9b462442, 0xe3e0e82c, 0x400a0004,
-    0xdb365f65, 0x04497977, 0xe3f0ecd7, 0x08c56038,
-    } },
-    { { /* 51 */
-    0x3403e602, 0x35518000, 0x7eabe0c8, 0x98698200,
-    0x2942a948, 0x8060e803, 0xad93441c, 0x4568c03a,
-    } },
-    { { /* 52 */
-    0x8656aa60, 0x02403f7a, 0x14618388, 0x21741020,
-    0x07022021, 0x40bc3000, 0x4462a624, 0x0a2060a8,
-    } },
-    { { /* 53 */
-    0x85740217, 0x9c840402, 0x14157bfb, 0x11e27f24,
-    0x02efb665, 0x20ff1f75, 0x38403a70, 0x676326c3,
-    } },
-    { { /* 54 */
-    0x20924dd9, 0x0fc946b0, 0x4850bc98, 0xa03f8638,
-    0x88162388, 0x52323e09, 0xe3a422aa, 0xc72c00dd,
-    } },
-    { { /* 55 */
-    0x26e1a166, 0x8f0a840b, 0x559e27eb, 0x89bbc241,
-    0x85400014, 0x08496361, 0x8ad07f0c, 0x05cfff3e,
-    } },
-    { { /* 56 */
-    0xa803ff1a, 0x7b407a41, 0x80024745, 0x38eb0500,
-    0x0005d851, 0x710c9934, 0x01000397, 0x24046366,
-    } },
-    { { /* 57 */
-    0x005180d0, 0x430ac000, 0x30c89071, 0x58000008,
-    0xf7000e99, 0x00415f80, 0x941000b0, 0x62800018,
-    } },
-    { { /* 58 */
-    0x09d00240, 0x01568200, 0x08015004, 0x05101d10,
-    0x001084c1, 0x10504025, 0x4d8a410f, 0xa60d4009,
-    } },
-    { { /* 59 */
-    0x914cab19, 0x098121c0, 0x0003c485, 0x80000652,
-    0x00080b04, 0x0009041d, 0x905c4849, 0x16900009,
-    } },
-    { { /* 60 */
-    0x22200c65, 0x24338412, 0x47960c03, 0x42250a04,
-    0x90880028, 0x4f084900, 0xd3aa14a2, 0x3e87d830,
-    } },
-    { { /* 61 */
-    0x1f618604, 0x41867ea4, 0x05b3c390, 0x211857a5,
-    0x2a48241e, 0x4a041128, 0x161b0a40, 0x88400d60,
-    } },
-    { { /* 62 */
-    0x9502020a, 0x10608221, 0x04000243, 0x80001444,
-    0x0c040000, 0x70000000, 0x00c11a06, 0x0c00024a,
-    } },
-    { { /* 63 */
-    0x00401a00, 0x40451404, 0xbdb30029, 0x052b0a78,
-    0xbfa0bba9, 0x8379407c, 0xe81d12fc, 0xc5694bf6,
-    } },
-    { { /* 64 */
-    0x044aeff6, 0xff022115, 0x402bed63, 0x0242d033,
-    0x00131000, 0x59ca1b02, 0x020000a0, 0x2c41a703,
-    } },
-    { { /* 65 */
-    0x8ff24880, 0x00000204, 0x10055800, 0x00489200,
-    0x20011894, 0x34805004, 0x684c3200, 0x68be49ea,
-    } },
-    { { /* 66 */
-    0x2e42184c, 0x21c9a820, 0x80b050b9, 0xff7c001e,
-    0x14e0849a, 0x01e028c1, 0xac49870e, 0xdddb130f,
-    } },
-    { { /* 67 */
-    0x89fbbe1a, 0x51a2a2e0, 0x32ca5502, 0x928b3e46,
-    0x438f1dbf, 0x32186703, 0x33c03028, 0xa9230811,
-    } },
-    { { /* 68 */
-    0x3a65c000, 0x04028fe3, 0x86252c4e, 0x00a1bf3d,
-    0x8cd43a1a, 0x317c06c9, 0x950a00e0, 0x0edb018b,
-    } },
-    { { /* 69 */
-    0x8c20e34b, 0xf0101182, 0xa7287d94, 0x40fbc9ac,
-    0x06534484, 0x44445a90, 0x00013fc8, 0xf5d40048,
-    } },
-    { { /* 70 */
-    0xec577701, 0x891dc442, 0x49286b83, 0xd2424109,
-    0x59fe061d, 0x3a221800, 0x3b9fb7e4, 0xc0eaf003,
-    } },
-    { { /* 71 */
-    0x82021386, 0xe4008980, 0x10a1b200, 0x0cc44b80,
-    0x8944d309, 0x48341faf, 0x0c458259, 0x0450420a,
-    } },
-    { { /* 72 */
-    0x10c8a040, 0x44503140, 0x01004004, 0x05408280,
-    0x442c0108, 0x1a056a30, 0x051420a6, 0x645690cf,
-    } },
-    { { /* 73 */
-    0x31000021, 0xcbf09c18, 0x63e2a120, 0x01b5104c,
-    0x9a83538c, 0x3281b8b2, 0x0a84987a, 0x0c0233e7,
-    } },
-    { { /* 74 */
-    0x9018d4cc, 0x9070a1a1, 0xe0048a1e, 0x0451c3d4,
-    0x21c2439a, 0x53104844, 0x36400292, 0xf3bd0241,
-    } },
-    { { /* 75 */
-    0xe8f0ab09, 0xa5d27dc0, 0xd24bc242, 0xd0afa43f,
-    0x34a11aa0, 0x03d88247, 0x651bc452, 0xc83ad294,
-    } },
-    { { /* 76 */
-    0x40c8001c, 0x33140e06, 0xb21b614f, 0xc0d00088,
-    0xa898a02a, 0x166ba1c5, 0x85b42e50, 0x0604c08b,
-    } },
-    { { /* 77 */
-    0x1e04f933, 0xa251056e, 0x76380400, 0x73b8ec07,
-    0x18324406, 0xc8164081, 0x63097c8a, 0xaa042980,
-    } },
-    { { /* 78 */
-    0xca9c1c24, 0x27604e0e, 0x83000990, 0x81040046,
-    0x10816011, 0x0908540d, 0xcc0a000e, 0x0c000500,
-    } },
-    { { /* 79 */
-    0xa0440430, 0x6784008b, 0x8a195288, 0x8b18865e,
-    0x41602e59, 0x9cbe8c10, 0x891c6861, 0x00089800,
-    } },
-    { { /* 80 */
-    0x089a8100, 0x41900018, 0xe4a14007, 0x640d0505,
-    0x0e4d310e, 0xff0a4806, 0x2aa81632, 0x000b852e,
-    } },
-    { { /* 81 */
-    0xca841800, 0x696c0e20, 0x16000032, 0x03905658,
-    0x1a285120, 0x11248000, 0x432618e1, 0x0eaa5d52,
-    } },
-    { { /* 82 */
-    0xae280fa0, 0x4500fa7b, 0x89406408, 0xc044c880,
-    0xb1419005, 0x24c48424, 0x603a1a34, 0xc1949000,
-    } },
-    { { /* 83 */
-    0x003a8246, 0xc106180d, 0x99100022, 0x1511e050,
-    0x00824057, 0x020a041a, 0x8930004f, 0x444ad813,
-    } },
-    { { /* 84 */
-    0xed228a02, 0x400510c0, 0x01021000, 0x31018808,
-    0x02044600, 0x0708f000, 0xa2008900, 0x22020000,
-    } },
-    { { /* 85 */
-    0x16100200, 0x10400042, 0x02605200, 0x200052f4,
-    0x82308510, 0x42021100, 0x80b54308, 0x9a2070e1,
-    } },
-    { { /* 86 */
-    0x08012040, 0xfc653500, 0xab0419c1, 0x62140286,
-    0x00440087, 0x02449085, 0x0a85405c, 0x33803207,
-    } },
-    { { /* 87 */
-    0xb8c00400, 0xc0d0ce20, 0x0080c030, 0x0d250508,
-    0x00400a90, 0x080c0200, 0x40006505, 0x41026421,
-    } },
-    { { /* 88 */
-    0x00000268, 0x847c0024, 0xde200002, 0x40498619,
-    0x40000808, 0x20010084, 0x10108400, 0x01c742cd,
-    } },
-    { { /* 89 */
-    0xd52a7038, 0x1d8f1968, 0x3e12be50, 0x81d92ef5,
-    0x2412cec4, 0x732e0828, 0x4b3424ac, 0xd41d020c,
-    } },
-    { { /* 90 */
-    0x80002a02, 0x08110097, 0x114411c4, 0x7d451786,
-    0x064949d9, 0x87914000, 0xd8c4254c, 0x491444ba,
-    } },
-    { { /* 91 */
-    0xc8001b92, 0x15800271, 0x0c000081, 0xc200096a,
-    0x40024800, 0xba493021, 0x1c802080, 0x1008e2ac,
-    } },
-    { { /* 92 */
-    0x00341004, 0x841400e1, 0x20000020, 0x10149800,
-    0x04aa70c2, 0x54208688, 0x04130c62, 0x20109180,
-    } },
-    { { /* 93 */
-    0x02064082, 0x54001c40, 0xe4e90383, 0x84802125,
-    0x2000e433, 0xe60944c0, 0x81260a03, 0x080112da,
-    } },
-    { { /* 94 */
-    0x97906901, 0xf8864001, 0x0081e24d, 0xa6510a0e,
-    0x81ec011a, 0x8441c600, 0xb62cadb8, 0x8741a46f,
-    } },
-    { { /* 95 */
-    0x4b028d54, 0x02681161, 0x2057bb60, 0x043350a0,
-    0xb7b4a8c0, 0x01122402, 0x20009ad3, 0x00c82271,
-    } },
-    { { /* 96 */
-    0x809e2081, 0xe1800c8a, 0x8151b009, 0x40281031,
-    0x89a52a0e, 0x620e69b6, 0xd1444425, 0x4d548085,
-    } },
-    { { /* 97 */
-    0x1fb12c75, 0x862dd807, 0x4841d87c, 0x226e414e,
-    0x9e088200, 0xed37f80c, 0x75268c80, 0x08149313,
-    } },
-    { { /* 98 */
-    0xc8040e32, 0x6ea6484e, 0x66702c4a, 0xba0126c0,
-    0x185dd30c, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 99 */
-    0x00000000, 0x05400000, 0x81337020, 0x03a54f81,
-    0x641055ec, 0x2344c318, 0x00341462, 0x1a090a43,
-    } },
-    { { /* 100 */
-    0x13a5187b, 0xa8480102, 0xc5440440, 0xe2dd8106,
-    0x2d481af0, 0x0416b626, 0x6e405058, 0x31128032,
-    } },
-    { { /* 101 */
-    0x0c0007e4, 0x420a8208, 0x803b4840, 0x87134860,
-    0x3428850d, 0xe5290319, 0x870a2345, 0x5c1825a9,
-    } },
-    { { /* 102 */
-    0xd9c577a6, 0x03e85e00, 0xa7000081, 0x41c6cd54,
-    0xa2042800, 0x2b0ab860, 0xda9e0020, 0x0e1a08ea,
-    } },
-    { { /* 103 */
-    0x11c0427c, 0x03768908, 0x01058621, 0x18a80000,
-    0xc44846a0, 0x20220d05, 0x91485422, 0x28978a01,
-    } },
-    { { /* 104 */
-    0x00087898, 0x31221605, 0x08804240, 0x06a2fa4e,
-    0x92110814, 0x9b042002, 0x06432e52, 0x90105000,
-    } },
-    { { /* 105 */
-    0x85ba0041, 0x20203042, 0x05a04f0b, 0x40802708,
-    0x1a930591, 0x0600df50, 0x3021a202, 0x4e800630,
-    } },
-    { { /* 106 */
-    0x04c80cc4, 0x8001a004, 0xd4316000, 0x0a020880,
-    0x00281c00, 0x00418e18, 0xca106ad0, 0x4b00f210,
-    } },
-    { { /* 107 */
-    0x1506274d, 0x88900220, 0x82a85a00, 0x81504549,
-    0x80002004, 0x2c088804, 0x000508d1, 0x4ac48001,
-    } },
-    { { /* 108 */
-    0x0062e020, 0x0a42008e, 0x6a8c3055, 0xe0a5090e,
-    0x42c42906, 0x80b34814, 0xb330803e, 0x731c0102,
-    } },
-    { { /* 109 */
-    0x600d1494, 0x09400c20, 0xc040301a, 0xc094a451,
-    0x05c88dca, 0xa40c96c2, 0x34040001, 0x011000c8,
-    } },
-    { { /* 110 */
-    0xa9c9550d, 0x1c5a2428, 0x48370142, 0x100f7a4d,
-    0x452a32b4, 0x9205317b, 0x5c44b894, 0x458a68d7,
-    } },
-    { { /* 111 */
-    0x2ed15097, 0x42081943, 0x9d40d202, 0x20979840,
-    0x064d5409, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 112 */
-    0x00000000, 0x84800000, 0x04215542, 0x17001c06,
-    0x61107624, 0xb9ddff87, 0x5c0a659f, 0x3c00245d,
-    } },
-    { { /* 113 */
-    0x0059adb0, 0x00000000, 0x00000000, 0x009b28d0,
-    0x02000422, 0x44080108, 0xac409804, 0x90288d0a,
-    } },
-    { { /* 114 */
-    0xe0018700, 0x00310400, 0x82211794, 0x10540019,
-    0x021a2cb2, 0x40039c02, 0x88043d60, 0x7900080c,
-    } },
-    { { /* 115 */
-    0xba3c1628, 0xcb088640, 0x90807274, 0x0000001e,
-    0xd8000000, 0x9c87e188, 0x04124034, 0x2791ae64,
-    } },
-    { { /* 116 */
-    0xe6fbe86b, 0x5366408f, 0x537feea6, 0xb5e4e32b,
-    0x0002869f, 0x01228548, 0x08004402, 0x20a02116,
-    } },
-    { { /* 117 */
-    0x02040004, 0x00052000, 0x01547e00, 0x01ac162c,
-    0x10852a84, 0x05308c14, 0xb943fbc3, 0x906000ca,
-    } },
-    { { /* 118 */
-    0x40326000, 0x80901200, 0x4c810b30, 0x40020054,
-    0x1d6a0029, 0x02802000, 0x00048000, 0x150c2610,
-    } },
-    { { /* 119 */
-    0x07018040, 0x0c24d94d, 0x18502810, 0x50205001,
-    0x04d01000, 0x02017080, 0x21c30108, 0x00000132,
-    } },
-    { { /* 120 */
-    0x07190088, 0x05600802, 0x4c0e0012, 0xf0a10405,
-    0x00000002, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 121 */
-    0x00000000, 0x00000000, 0x00000000, 0x00800000,
-    0x035a8e8d, 0x5a0421bd, 0x11703488, 0x00000026,
-    } },
-    { { /* 122 */
-    0x10000000, 0x8804c502, 0xf801b815, 0x25ed147c,
-    0x1bb0ed60, 0x1bd70589, 0x1a627af3, 0x0ac50d0c,
-    } },
-    { { /* 123 */
-    0x524ae5d1, 0x63050490, 0x52440354, 0x16122b57,
-    0x1101a872, 0x00182949, 0x10080948, 0x886c6000,
-    } },
-    { { /* 124 */
-    0x058f916e, 0x39903012, 0x4930f840, 0x001b8880,
-    0x00000000, 0x00428500, 0x98000058, 0x7014ea04,
-    } },
-    { { /* 125 */
-    0x611d1628, 0x60005113, 0x00a71a24, 0x00000000,
-    0x03c00000, 0x10187120, 0xa9270172, 0x89066004,
-    } },
-    { { /* 126 */
-    0x020cc022, 0x40810900, 0x8ca0202d, 0x00000e34,
-    0x00000000, 0x11012100, 0xc11a8011, 0x0892ec4c,
-    } },
-    { { /* 127 */
-    0x85000040, 0x1806c7ac, 0x0512e03e, 0x00108000,
-    0x80ce4008, 0x02106d01, 0x08568641, 0x0027011e,
-    } },
-    { { /* 128 */
-    0x083d3750, 0x4e05e032, 0x048401c0, 0x01400081,
-    0x00000000, 0x00000000, 0x00000000, 0x00591aa0,
-    } },
-    { { /* 129 */
-    0x882443c8, 0xc8001d48, 0x72030152, 0x04049013,
-    0x04008280, 0x0d148a10, 0x02088056, 0x2704a040,
-    } },
-    { { /* 130 */
-    0x4c000000, 0x00000000, 0x00000000, 0xa3200000,
-    0xa0ae1902, 0xdf002660, 0x7b15f010, 0x3ad08121,
-    } },
-    { { /* 131 */
-    0x00284180, 0x48001003, 0x8014cc00, 0x00c414cf,
-    0x30202000, 0x00000001, 0x00000000, 0x00000000,
-    } },
-    { { /* 132 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000020,
-    } },
-    { { /* 133 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000200, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 134 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xffffffff, 0xffff003f, 0x09ffffff,
-    } },
-    { { /* 135 */
-    0xffff0042, 0xffffffff, 0x0042ffff, 0x00000000,
-    0x0c0c0000, 0x0c00000c, 0x03000000, 0x00000300,
-    } },
-    { { /* 136 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000800, 0x0d10646e, 0x0d10646e,
-    } },
-    { { /* 137 */
-    0x00000000, 0x01000300, 0x00000000, 0x00000300,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 138 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xffffffff, 0xffffffff, 0x1fffffff, 0x000003ff,
-    } },
-    { { /* 139 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xfffddfec, 0xc3effdff, 0x40603ddf, 0x0000ffc3,
-    } },
-    { { /* 140 */
-    0x00000007, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 141 */
-    0x00000000, 0xfffe0000, 0xffffffff, 0xffffffff,
-    0x00007fff, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 142 */
-    0x1fffffff, 0x00000000, 0x00000000, 0x8fffffff,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 143 */
-    0x43722f8b, 0x0b042000, 0xe340e82c, 0x40c82800,
-    0x49375944, 0x04407976, 0xa3f02c93, 0x08c50038,
-    } },
-    { { /* 144 */
-    0x0003ee02, 0x35508000, 0x1e23e1c8, 0xc4498200,
-    0x2942ad5a, 0x8060c000, 0xa49a461c, 0x052ac003,
-    } },
-    { { /* 145 */
-    0xd6462a44, 0x08003dda, 0x14208388, 0x01700020,
-    0x03022021, 0x40ac3000, 0x44628620, 0x8a0020a0,
-    } },
-    { { /* 146 */
-    0x80040253, 0x14840402, 0x10047bfb, 0x11e27fa4,
-    0x00a42441, 0x20c01421, 0x70003a50, 0x27430002,
-    } },
-    { { /* 147 */
-    0x208245c9, 0x0fc14630, 0x28503c88, 0xa0248602,
-    0x88062388, 0x40000e19, 0xeb6422aa, 0xcd28001c,
-    } },
-    { { /* 148 */
-    0x02e1a120, 0x8200840b, 0x549e279b, 0xa0b38141,
-    0x85080010, 0x08002061, 0x08d02f08, 0x010fbe3e,
-    } },
-    { { /* 149 */
-    0xa803f718, 0x5b080a41, 0x00020504, 0x382a0500,
-    0x00015041, 0x21081910, 0x00000313, 0x04046122,
-    } },
-    { { /* 150 */
-    0x100140d0, 0x40228000, 0x40488050, 0x10000008,
-    0x370006d1, 0x00005e80, 0x941000a0, 0x60000018,
-    } },
-    { { /* 151 */
-    0x00900240, 0x00548000, 0x00080000, 0x00100900,
-    0x00000040, 0x10105020, 0x4c022400, 0x06010001,
-    } },
-    { { /* 152 */
-    0x814c2918, 0x08012100, 0x00036485, 0x10214452,
-    0x00080904, 0x0000000d, 0x80004988, 0x16910001,
-    } },
-    { { /* 153 */
-    0x40000765, 0x04338492, 0x45928c00, 0x52200016,
-    0xd0080228, 0x4c084300, 0xc32a40a2, 0x2e009810,
-    } },
-    { { /* 154 */
-    0x16708000, 0x40826e84, 0x04b3c390, 0x21187c85,
-    0x02c8041c, 0x4a001120, 0x361b0a48, 0x89005540,
-    } },
-    { { /* 155 */
-    0x9902000a, 0x10400221, 0x04000242, 0x00000044,
-    0x0c040000, 0x00000010, 0x00001216, 0x00000242,
-    } },
-    { { /* 156 */
-    0x00401a20, 0x00000400, 0xb5b30009, 0x15230a18,
-    0x1fe89ba0, 0x8379507c, 0xc09d10fd, 0x0560dbf6,
-    } },
-    { { /* 157 */
-    0x0242ef92, 0xdf020110, 0x08226961, 0x02029035,
-    0x00030000, 0x45aa1a02, 0x02000001, 0x28518101,
-    } },
-    { { /* 158 */
-    0x02d26080, 0x00000280, 0x00011800, 0x00009200,
-    0x20000880, 0x35000405, 0x60442000, 0x609e49e6,
-    } },
-    { { /* 159 */
-    0x2a42104c, 0xa1482820, 0x802010b1, 0x7b9c000e,
-    0x14a08490, 0x41e028c1, 0x8c490704, 0x0cc8100d,
-    } },
-    { { /* 160 */
-    0x89ba8412, 0x142202c0, 0x0ac05500, 0x92833ec4,
-    0x43871ca3, 0x22a04703, 0x03c03028, 0xa0200801,
-    } },
-    { { /* 161 */
-    0x30448000, 0x000085a3, 0x2225200e, 0x0001b73c,
-    0x8c503220, 0x315d0099, 0x940200a0, 0x0e4b0003,
-    } },
-    { { /* 162 */
-    0x8c20e342, 0xd0910080, 0xa3281d94, 0x60c1499c,
-    0x07134406, 0x44445a90, 0x00000f88, 0x95c40040,
-    } },
-    { { /* 163 */
-    0x84477581, 0xc0534402, 0x01082b83, 0x92424000,
-    0x09a60611, 0x32220800, 0x1bddb384, 0xc08af000,
-    } },
-    { { /* 164 */
-    0x00020282, 0x6c008800, 0x00219200, 0x8c844180,
-    0x09441308, 0x000007a7, 0x0c418051, 0x00d06002,
-    } },
-    { { /* 165 */
-    0x10d0a000, 0x44003004, 0x01000000, 0x07008201,
-    0x440e0100, 0x08056830, 0x051464b2, 0x441410e6,
-    } },
-    { { /* 166 */
-    0x21000011, 0xcbc09c08, 0x40c2e120, 0x41b4304c,
-    0x9a8310ac, 0x328198b2, 0x00849822, 0xbc123369,
-    } },
-    { { /* 167 */
-    0xc03bd6c0, 0x0c53a1a1, 0xea008a1e, 0x05d8cbf0,
-    0x21c34390, 0x4a1c4805, 0x324002d0, 0xd79d0041,
-    } },
-    { { /* 168 */
-    0xe8b02b09, 0x24527dc0, 0xd04bc240, 0xc8aba000,
-    0x34a98a80, 0x41c98000, 0x241f8010, 0x487b9200,
-    } },
-    { { /* 169 */
-    0x00cc0000, 0x33008406, 0x001b410f, 0x80402000,
-    0xa0988022, 0x006ba186, 0x85a42a30, 0x06044181,
-    } },
-    { { /* 170 */
-    0x00046021, 0xa0010080, 0x46b80400, 0x03a0e90f,
-    0x18200000, 0x081040a0, 0x0001380a, 0xa8000500,
-    } },
-    { { /* 171 */
-    0xc28a0404, 0x2720000a, 0x830c0910, 0x00000802,
-    0x10806211, 0x0808000c, 0x0c08000c, 0x08400000,
-    } },
-    { { /* 172 */
-    0x00441410, 0x6404000b, 0x800150c0, 0x8984047e,
-    0x41400658, 0x94a4c000, 0x09dca862, 0x00001800,
-    } },
-    { { /* 173 */
-    0x000a8100, 0x41900008, 0xe4a14007, 0x64452501,
-    0x0e7d11ee, 0xfb084800, 0x08a81616, 0x0009c92e,
-    } },
-    { { /* 174 */
-    0x4a821800, 0x6b6406a0, 0x16000002, 0x83905648,
-    0x002a73a0, 0x00248000, 0x470288f9, 0x0faa4d02,
-    } },
-    { { /* 175 */
-    0x8e800000, 0x7554b87b, 0xd9402418, 0x040cc880,
-    0xb0410000, 0x04428c24, 0x001a5a34, 0xc1108000,
-    } },
-    { { /* 176 */
-    0x00328046, 0x8106180d, 0xcd920002, 0x74016014,
-    0x00916112, 0x420ac098, 0x8420040f, 0x40029a13,
-    } },
-    { { /* 177 */
-    0xfd228a62, 0x40808188, 0x21031000, 0x31010808,
-    0x07044420, 0x0388b812, 0xa3008900, 0x22020000,
-    } },
-    { { /* 178 */
-    0x46001210, 0x00410042, 0x52415680, 0x200052f0,
-    0x82148610, 0x46021004, 0x8035430a, 0xd80060e0,
-    } },
-    { { /* 179 */
-    0x08010041, 0x6c653400, 0xab0411c1, 0x22040286,
-    0x00000003, 0x00009084, 0x02814015, 0x33000202,
-    } },
-    { { /* 180 */
-    0x38400400, 0xc0c00e20, 0x00850030, 0x0d250500,
-    0x81d04ad0, 0x020c2280, 0x6240b605, 0x62802679,
-    } },
-    { { /* 181 */
-    0x080802ea, 0x8579dd67, 0xdea0081b, 0x40008735,
-    0xd1000a8c, 0xa22505aa, 0x15108440, 0x0080404d,
-    } },
-    { { /* 182 */
-    0x8d220012, 0x058f1968, 0x3a1a9080, 0x85618464,
-    0x2002ccc0, 0x732e0820, 0x0b3420a4, 0x14150004,
-    } },
-    { { /* 183 */
-    0x82002001, 0x08000057, 0x00445004, 0x79051212,
-    0x000940d0, 0x84004000, 0xd844054c, 0x5114409a,
-    } },
-    { { /* 184 */
-    0x40000b12, 0x15800201, 0x08002001, 0xc200084a,
-    0x40020800, 0x98093020, 0x18800000, 0x0008e22c,
-    } },
-    { { /* 185 */
-    0x00040004, 0x001410e0, 0x20008020, 0x10009800,
-    0x00827082, 0x1c000288, 0x00014c22, 0x08209100,
-    } },
-    { { /* 186 */
-    0x00404002, 0x44001c00, 0x7cc10383, 0x84002121,
-    0x0002e002, 0xe20a44c0, 0x81260e03, 0x080002d0,
-    } },
-    { { /* 187 */
-    0x96902921, 0xb8c24001, 0x00806241, 0xa6510a06,
-    0x812c0112, 0x0400c600, 0xa2800cb0, 0x8640a429,
-    } },
-    { { /* 188 */
-    0x4a028000, 0x02003041, 0x0057ba40, 0x20205001,
-    0x24b08880, 0x01122002, 0x000402d3, 0x00000211,
-    } },
-    { { /* 189 */
-    0x40040080, 0xe0000c82, 0x00003008, 0x00081011,
-    0x81a40208, 0x420e40a0, 0xc0400400, 0x48000081,
-    } },
-    { { /* 190 */
-    0x0f912df5, 0x0629d807, 0x4001007c, 0x824e4546,
-    0x1008c000, 0xed363005, 0x65400c80, 0x0810930b,
-    } },
-    { { /* 191 */
-    0xe8200600, 0x6082c80a, 0x403400ca, 0x12012e02,
-    0x19489004, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 192 */
-    0x00000000, 0x05400000, 0x00311000, 0x02a54c00,
-    0x44105520, 0x23040310, 0x80345422, 0x12010a03,
-    } },
-    { { /* 193 */
-    0x01a1126b, 0xa0482000, 0x45400448, 0xe08d8000,
-    0x28401af0, 0x04168626, 0x4c005018, 0x21120032,
-    } },
-    { { /* 194 */
-    0x0d0005e4, 0x42008a08, 0x00334800, 0x87030860,
-    0x34008501, 0xe4280109, 0x81002045, 0x5c1825a8,
-    } },
-    { { /* 195 */
-    0xd80435a0, 0x02e01c02, 0x020000a1, 0x4146c050,
-    0xa6046800, 0xbb8af260, 0xc8b60000, 0x600200e2,
-    } },
-    { { /* 196 */
-    0x0080023e, 0x03728900, 0x00068681, 0x08880000,
-    0x41404600, 0x20000e04, 0x10481622, 0x22178a00,
-    } },
-    { { /* 197 */
-    0x00007418, 0x21021200, 0x08800200, 0x0420984a,
-    0x12110000, 0x99040002, 0x04022a55, 0x10105000,
-    } },
-    { { /* 198 */
-    0x459a0000, 0xa000b02a, 0x0208420a, 0x00002708,
-    0x08128090, 0x04018740, 0x3020e202, 0x8c800630,
-    } },
-    { { /* 199 */
-    0x04c004c4, 0x80002000, 0xd8314000, 0x02000080,
-    0x00081400, 0x00000218, 0x8a100880, 0x40002010,
-    } },
-    { { /* 200 */
-    0x1500010d, 0x00000000, 0x80a04000, 0x01500140,
-    0x80002004, 0x04080004, 0x00000010, 0x4a049001,
-    } },
-    { { /* 201 */
-    0x80000020, 0x0842000c, 0x2a8c3041, 0xc085090e,
-    0x40c42906, 0x00100800, 0xb2308006, 0x21380102,
-    } },
-    { { /* 202 */
-    0x030d0080, 0x09400420, 0x80000012, 0x80040410,
-    0x004888ca, 0x24040602, 0x00040001, 0x01100008,
-    } },
-    { { /* 203 */
-    0xa9c8550d, 0x0c522428, 0x48310000, 0x022f624d,
-    0x412830a0, 0xd205057b, 0x1844a894, 0x45c26cc2,
-    } },
-    { { /* 204 */
-    0x2ed14017, 0x02081901, 0x1500c202, 0x20919040,
-    0x044d0401, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 205 */
-    0x00000000, 0x80800000, 0x04201542, 0x06000c02,
-    0x60001404, 0xb9d99f87, 0x540a059f, 0x3810245d,
-    } },
-    { { /* 206 */
-    0x004825b0, 0x00000000, 0x00000000, 0x00990850,
-    0x02000420, 0x44080108, 0x28009840, 0x0008810a,
-    } },
-    { { /* 207 */
-    0x40018400, 0x00210400, 0x82000794, 0x00500001,
-    0x00002482, 0x00001c00, 0x80043c01, 0x49000800,
-    } },
-    { { /* 208 */
-    0xf83c0228, 0xcb0886c0, 0xa0006230, 0x00000004,
-    0x18000000, 0x0007a148, 0x00124024, 0x22852c40,
-    } },
-    { { /* 209 */
-    0xe6b3a96f, 0x5126400f, 0x723b6c86, 0xb5a4e20b,
-    0x0222859f, 0x0123854c, 0x40000402, 0x20202102,
-    } },
-    { { /* 210 */
-    0x02240004, 0x00042080, 0x00047e00, 0x01a01604,
-    0x10042a80, 0x0032d800, 0x3183fa81, 0x00200488,
-    } },
-    { { /* 211 */
-    0x40872000, 0x84100000, 0x48800221, 0x00000074,
-    0x114a0029, 0x02c80000, 0x00049000, 0x11000410,
-    } },
-    { { /* 212 */
-    0xc5010010, 0x0000c957, 0x08102d00, 0x50204000,
-    0x04501000, 0x00013088, 0x40020008, 0x00400012,
-    } },
-    { { /* 213 */
-    0x01000010, 0x01200820, 0x08060010, 0xa0000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 214 */
-    0x00000000, 0x00000000, 0x00000000, 0x00800000,
-    0x011e8a09, 0x18022138, 0x10700480, 0x00000006,
-    } },
-    { { /* 215 */
-    0x10000000, 0x88044402, 0xf8013815, 0x21e9041c,
-    0x1b306c60, 0x08820588, 0x1a607af3, 0x0ac5870c,
-    } },
-    { { /* 216 */
-    0x524a00c1, 0x22050080, 0x50420114, 0x04902206,
-    0x0000a800, 0x00002901, 0x10080840, 0x88480000,
-    } },
-    { { /* 217 */
-    0x018f156f, 0x0b012000, 0x45107040, 0x000088a0,
-    0x00000000, 0x00028100, 0x98000090, 0x7010e006,
-    } },
-    { { /* 218 */
-    0x41091608, 0x00000101, 0x00963a20, 0x00000000,
-    0x22400000, 0x021a7120, 0xa2270002, 0x80022000,
-    } },
-    { { /* 219 */
-    0x0200c102, 0x00c10800, 0x8ca02029, 0x00000624,
-    0x00000000, 0x01000100, 0x01180000, 0x00004020,
-    } },
-    { { /* 220 */
-    0x04000000, 0x10020480, 0x0410803e, 0x00008000,
-    0x80024000, 0x00004800, 0x00400200, 0x00000110,
-    } },
-    { { /* 221 */
-    0x00252000, 0x08040020, 0x00800280, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x005802a0,
-    } },
-    { { /* 222 */
-    0x08000200, 0x08000140, 0x20020000, 0x00041003,
-    0x00000000, 0x00108200, 0x00800010, 0x07040000,
-    } },
-    { { /* 223 */
-    0x44000000, 0x00000000, 0x00000000, 0xa2200000,
-    0xa08c0000, 0x48300020, 0x59126008, 0x00100100,
-    } },
-    { { /* 224 */
-    0x00084180, 0x08000001, 0x80044c00, 0x00801482,
-    0x10212000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 225 */
-    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    } },
-    { { /* 226 */
-    0xffffffff, 0xffffffff, 0xffffffff, 0xffffffff,
-    0xffffffff, 0x0000000f, 0x00000000, 0x00000000,
-    } },
-    { { /* 227 */
-    0x00000fff, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 228 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000040,
-    } },
-    { { /* 229 */
-    0x000c0003, 0x00003c00, 0x0000f000, 0x00003c00,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 230 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xfef02596, 0x3bffecae, 0x33ff3f5f, 0x00000000,
-    } },
-    { { /* 231 */
-    0x000033f0, 0x0000c000, 0x00000000, 0x600c0c03,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 232 */
-    0x000c3003, 0x18c00c0c, 0x00c03060, 0x60000c03,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 233 */
-    0xfdffb729, 0x000001ff, 0xb7290000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 234 */
-    0xfffddfec, 0xc3fffdff, 0x00803dcf, 0x0000ffc3,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 235 */
-    0x03ff07ff, 0xffffffff, 0xffffffff, 0x00ffffff,
-    0xffffffff, 0x000003ff, 0x00000000, 0x00000000,
-    } },
-    { { /* 236 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x00004004, 0x00004004,
-    } },
-    { { /* 237 */
-    0x0000000c, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 238 */
-    0x0f000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 239 */
-    0xffff0002, 0xffffffff, 0x0002ffff, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 240 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x0e1c7707, 0x0e1c7707,
-    } },
-    { { /* 241 */
-    0x00000c00, 0x000000c3, 0x00000000, 0x18000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 242 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x10000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 243 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x10408810, 0x10408810,
-    } },
-    { { /* 244 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000800, 0x115c0ff7, 0x115c0ff7,
-    } },
-    { { /* 245 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x000cab83, 0x0004ab83,
-    } },
-    { { /* 246 */
-    0xfff99fee, 0xf3cdfdff, 0xb0c0398f, 0x0001ffc3,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 247 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x00080000, 0x00080000,
-    } },
-    { { /* 248 */
-    0x030000f0, 0x00000000, 0x0c00001e, 0x1e000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 249 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000000, 0x1438268f, 0x1438268f,
-    } },
-    { { /* 250 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x02045301, 0x02045301,
-    } },
-    { { /* 251 */
-    0xffff0042, 0xffffffff, 0x0042ffff, 0x003c000c,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 252 */
-    0xfdff8f04, 0xfdff01ff, 0x8f0401ff, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 253 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xfc7fffec, 0x2ffbffff, 0xff5f847f, 0x001c0000,
-    } },
-    { { /* 254 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x34582212, 0x34582212,
-    } },
-    { { /* 255 */
-    0x0000f000, 0x66000000, 0x00330180, 0x60030033,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 256 */
-    0x000330c0, 0x00000000, 0x00000000, 0x60000003,
-    0x00000000, 0x00000000, 0x00001b60, 0x003c0000,
-    } },
-    { { /* 257 */
-    0x00009e2c, 0x00000000, 0x9e2c0000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 258 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x00000880, 0x00000880,
-    } },
-    { { /* 259 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x08000000, 0x3fdfffff, 0x3f5fffff,
-    } },
-    { { /* 260 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0xd63dc7ec, 0xc3bfc718, 0x00803dc7, 0x0007ff80,
-    } },
-    { { /* 261 */
-    0xfffddfee, 0xc3effdff, 0x00603ddf, 0x0000ffc3,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 262 */
-    0xfffffffe, 0x87ffffff, 0x0fffffff, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 263 */
-    0x001fdfff, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 264 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00800000, 0x18400004, 0x18400084,
-    } },
-    { { /* 265 */
-    0xc0000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 266 */
-    0xffff00d2, 0xffffffff, 0x00d2ffff, 0x00000000,
-    0x00030000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 267 */
-    0x00000000, 0x00000000, 0x077dfffe, 0x077dfffe,
-    0x00000000, 0x00000000, 0x10400010, 0x10400010,
-    } },
-    { { /* 268 */
-    0x00000000, 0x00000000, 0x07fffffe, 0x07fffffe,
-    0x00000000, 0x00000000, 0x081047a4, 0x081047a4,
-    } },
-    { { /* 269 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000280, 0x00000000,
-    } },
-    { { /* 270 */
-    0x7f7b7f8b, 0xef553db4, 0xf35dfba8, 0x400b0243,
-    0x8d3efb40, 0x8c2c7bf7, 0xe3fa6eff, 0xa8ed1d3a,
-    } },
-    { { /* 271 */
-    0xcf83e602, 0x35558cf5, 0xffabe048, 0xd85992b9,
-    0x2892ab18, 0x8020d7e9, 0xf583c438, 0x450ae74a,
-    } },
-    { { /* 272 */
-    0x9714b000, 0x54007762, 0x1420d188, 0xc8c01020,
-    0x00002121, 0x0c0413a8, 0x04408000, 0x082870c0,
-    } },
-    { { /* 273 */
-    0x000408c0, 0x80000002, 0x14722b7b, 0x3bfb7924,
-    0x1ae43327, 0x38ef9835, 0x28029ad1, 0xbf69a813,
-    } },
-    { { /* 274 */
-    0x2fc665cf, 0xafc96b11, 0x5053340f, 0xa00486a2,
-    0xe8090106, 0xc00e3f0f, 0x81450a88, 0xc6010010,
-    } },
-    { { /* 275 */
-    0x26e1a161, 0xce00444b, 0xd4eec7aa, 0x85bbcadf,
-    0xa5203a74, 0x8840436c, 0x8bd23f06, 0x3befff79,
-    } },
-    { { /* 276 */
-    0xe8eff75a, 0x5b36fbcb, 0x1bfd0d49, 0x39ee0154,
-    0x2e75d855, 0xa91abfd8, 0xf6bff3d7, 0xb40c67e0,
-    } },
-    { { /* 277 */
-    0x081382c2, 0xd08bd49d, 0x1061065a, 0x59e074f2,
-    0xb3128f9f, 0x6aaa0080, 0xb05e3230, 0x60ac9d7a,
-    } },
-    { { /* 278 */
-    0xc900d303, 0x8a563098, 0x13907000, 0x18421f14,
-    0x0008c060, 0x10808008, 0xec900400, 0xe6332817,
-    } },
-    { { /* 279 */
-    0x90000758, 0x4e09f708, 0xfc83f485, 0x18c8af53,
-    0x080c187c, 0x01146adf, 0xa734c80c, 0x2710a011,
-    } },
-    { { /* 280 */
-    0x422228c5, 0x00210413, 0x41123010, 0x40001820,
-    0xc60c022b, 0x10000300, 0x00220022, 0x02495810,
-    } },
-    { { /* 281 */
-    0x9670a094, 0x1792eeb0, 0x05f2cb96, 0x23580025,
-    0x42cc25de, 0x4a04cf38, 0x359f0c40, 0x8a001128,
-    } },
-    { { /* 282 */
-    0x910a13fa, 0x10560229, 0x04200641, 0x84f00484,
-    0x0c040000, 0x412c0400, 0x11541206, 0x00020a4b,
-    } },
-    { { /* 283 */
-    0x00c00200, 0x00940000, 0xbfbb0001, 0x242b167c,
-    0x7fa89bbb, 0xe3790c7f, 0xe00d10f4, 0x9f014132,
-    } },
-    { { /* 284 */
-    0x35728652, 0xff1210b4, 0x4223cf27, 0x8602c06b,
-    0x1fd33106, 0xa1aa3a0c, 0x02040812, 0x08012572,
-    } },
-    { { /* 285 */
-    0x485040cc, 0x601062d0, 0x29001c80, 0x00109a00,
-    0x22000004, 0x00800000, 0x68002020, 0x609ecbe6,
-    } },
-    { { /* 286 */
-    0x3f73916e, 0x398260c0, 0x48301034, 0xbd5c0006,
-    0xd6fb8cd1, 0x43e820e1, 0x084e0600, 0xc4d00500,
-    } },
-    { { /* 287 */
-    0x89aa8d1f, 0x1602a6e1, 0x21ed0001, 0x1a8b3656,
-    0x13a51fb7, 0x30a06502, 0x23c7b278, 0xe9226c93,
-    } },
-    { { /* 288 */
-    0x3a74e47f, 0x98208fe3, 0x2625280e, 0xbf49bf9c,
-    0xac543218, 0x1916b949, 0xb5220c60, 0x0659fbc1,
-    } },
-    { { /* 289 */
-    0x8420e343, 0x800008d9, 0x20225500, 0x00a10184,
-    0x20104800, 0x40801380, 0x00160d04, 0x80200040,
-    } },
-    { { /* 290 */
-    0x8de7fd40, 0xe0985436, 0x091e7b8b, 0xd249fec8,
-    0x8dee0611, 0xba221937, 0x9fdd77f4, 0xf0daf3ec,
-    } },
-    { { /* 291 */
-    0xec424386, 0x26048d3f, 0xc021fa6c, 0x0cc2628e,
-    0x0145d785, 0x559977ad, 0x4045e250, 0xa154260b,
-    } },
-    { { /* 292 */
-    0x58199827, 0xa4103443, 0x411405f2, 0x07002280,
-    0x426600b4, 0x15a17210, 0x41856025, 0x00000054,
-    } },
-    { { /* 293 */
-    0x01040201, 0xcb70c820, 0x6a629320, 0x0095184c,
-    0x9a8b1880, 0x3201aab2, 0x00c4d87a, 0x04c3f3e5,
-    } },
-    { { /* 294 */
-    0xa238d44d, 0x5072a1a1, 0x84fc980a, 0x44d1c152,
-    0x20c21094, 0x42104180, 0x3a000000, 0xd29d0240,
-    } },
-    { { /* 295 */
-    0xa8b12f01, 0x2432bd40, 0xd04bd34d, 0xd0ada723,
-    0x75a10a92, 0x01e9adac, 0x771f801a, 0xa01b9225,
-    } },
-    { { /* 296 */
-    0x20cadfa1, 0x738c0602, 0x003b577f, 0x00d00bff,
-    0x0088806a, 0x0029a1c4, 0x05242a05, 0x16234009,
-    } },
-    { { /* 297 */
-    0x80056822, 0xa2112011, 0x64900004, 0x13824849,
-    0x193023d5, 0x08922980, 0x88115402, 0xa0042001,
-    } },
-    { { /* 298 */
-    0x81800400, 0x60228502, 0x0b010090, 0x12020022,
-    0x00834011, 0x00001a01, 0x00000000, 0x00000000,
-    } },
-    { { /* 299 */
-    0x00000000, 0x4684009f, 0x020012c8, 0x1a0004fc,
-    0x0c4c2ede, 0x80b80402, 0x0afca826, 0x22288c02,
-    } },
-    { { /* 300 */
-    0x8f7ba0e0, 0x2135c7d6, 0xf8b106c7, 0x62550713,
-    0x8a19936e, 0xfb0e6efa, 0x48f91630, 0x7debcd2f,
-    } },
-    { { /* 301 */
-    0x4e845892, 0x7a2e4ca0, 0x561eedea, 0x1190c649,
-    0xe83a5324, 0x8124cfdb, 0x634218f1, 0x1a8a5853,
-    } },
-    { { /* 302 */
-    0x24d37420, 0x0514aa3b, 0x89586018, 0xc0004800,
-    0x91018268, 0x2cd684a4, 0xc4ba8886, 0x02100377,
-    } },
-    { { /* 303 */
-    0x00388244, 0x404aae11, 0x510028c0, 0x15146044,
-    0x10007310, 0x02480082, 0x40060205, 0x0000c003,
-    } },
-    { { /* 304 */
-    0x0c020000, 0x02200008, 0x40009000, 0xd161b800,
-    0x32744621, 0x3b8af800, 0x8b00050f, 0x2280bbd0,
-    } },
-    { { /* 305 */
-    0x07690600, 0x00438040, 0x50005420, 0x250c41d0,
-    0x83108410, 0x02281101, 0x00304008, 0x020040a1,
-    } },
-    { { /* 306 */
-    0x20000040, 0xabe31500, 0xaa443180, 0xc624c2c6,
-    0x8004ac13, 0x03d1b000, 0x4285611e, 0x1d9ff303,
-    } },
-    { { /* 307 */
-    0x78e8440a, 0xc3925e26, 0x00852000, 0x4000b001,
-    0x88424a90, 0x0c8dca04, 0x4203a705, 0x000422a1,
-    } },
-    { { /* 308 */
-    0x0c018668, 0x10795564, 0xdea00002, 0x40c12000,
-    0x5001488b, 0x04000380, 0x50040000, 0x80d0c05d,
-    } },
-    { { /* 309 */
-    0x970aa010, 0x4dafbb20, 0x1e10d921, 0x83140460,
-    0xa6d68848, 0x733fd83b, 0x497427bc, 0x92130ddc,
-    } },
-    { { /* 310 */
-    0x8ba1142b, 0xd1392e75, 0x50503009, 0x69008808,
-    0x024a49d4, 0x80164010, 0x89d7e564, 0x5316c020,
-    } },
-    { { /* 311 */
-    0x86002b92, 0x15e0a345, 0x0c03008b, 0xe200196e,
-    0x80067031, 0xa82916a5, 0x18802000, 0xe1487aac,
-    } },
-    { { /* 312 */
-    0xb5d63207, 0x5f9132e8, 0x20e550a1, 0x10807c00,
-    0x9d8a7280, 0x421f00aa, 0x02310e22, 0x04941100,
-    } },
-    { { /* 313 */
-    0x40080022, 0x5c100010, 0xfcc80343, 0x0580a1a5,
-    0x04008433, 0x6e080080, 0x81262a4b, 0x2901aad8,
-    } },
-    { { /* 314 */
-    0x4490684d, 0xba880009, 0x00820040, 0x87d10000,
-    0xb1e6215b, 0x80083161, 0xc2400800, 0xa600a069,
-    } },
-    { { /* 315 */
-    0x4a328d58, 0x550a5d71, 0x2d579aa0, 0x4aa64005,
-    0x30b12021, 0x01123fc6, 0x260a10c2, 0x50824462,
-    } },
-    { { /* 316 */
-    0x80409880, 0x810004c0, 0x00002003, 0x38180000,
-    0xf1a60200, 0x720e4434, 0x92e035a2, 0x09008101,
-    } },
-    { { /* 317 */
-    0x00000400, 0x00008885, 0x00000000, 0x00804000,
-    0x00000000, 0x00004040, 0x00000000, 0x00000000,
-    } },
-    { { /* 318 */
-    0x00000000, 0x08000000, 0x00000082, 0x00000000,
-    0x88000004, 0xe7efbfff, 0xffbfffff, 0xfdffefef,
-    } },
-    { { /* 319 */
-    0xbffefbff, 0x057fffff, 0x85b30034, 0x42164706,
-    0xe4105402, 0xb3058092, 0x81305422, 0x180b4263,
-    } },
-    { { /* 320 */
-    0x13f5387b, 0xa9ea07e5, 0x05143c4c, 0x80020600,
-    0xbd481ad9, 0xf496ee37, 0x7ec0705f, 0x355fbfb2,
-    } },
-    { { /* 321 */
-    0x455fe644, 0x41469000, 0x063b1d40, 0xfe1362a1,
-    0x39028505, 0x0c080548, 0x0000144f, 0x58183488,
-    } },
-    { { /* 322 */
-    0xd8153077, 0x4bfbbd0e, 0x85008a90, 0xe61dc100,
-    0xb386ed14, 0x639bff72, 0xd9befd92, 0x0a92887b,
-    } },
-    { { /* 323 */
-    0x1cb2d3fe, 0x177ab980, 0xdc1782c9, 0x3980fffb,
-    0x590c4260, 0x37df0f01, 0xb15094a3, 0x23070623,
-    } },
-    { { /* 324 */
-    0x3102f85a, 0x310201f0, 0x1e820040, 0x056a3a0a,
-    0x12805b84, 0xa7148002, 0xa04b2612, 0x90011069,
-    } },
-    { { /* 325 */
-    0x848a1000, 0x3f801802, 0x42400708, 0x4e140110,
-    0x180080b0, 0x0281c510, 0x10298202, 0x88000210,
-    } },
-    { { /* 326 */
-    0x00420020, 0x11000280, 0x4413e000, 0xfe025804,
-    0x30283c07, 0x04739798, 0xcb13ced1, 0x431f6210,
-    } },
-    { { /* 327 */
-    0x55ac278d, 0xc892422e, 0x02885380, 0x78514039,
-    0x8088292c, 0x2428b900, 0x080e0c41, 0x42004421,
-    } },
-    { { /* 328 */
-    0x08680408, 0x12040006, 0x02903031, 0xe0855b3e,
-    0x10442936, 0x10822814, 0x83344266, 0x531b013c,
-    } },
-    { { /* 329 */
-    0x0e0d0404, 0x00510c22, 0xc0000012, 0x88000040,
-    0x0000004a, 0x00000000, 0x5447dff6, 0x00088868,
-    } },
-    { { /* 330 */
-    0x00000081, 0x40000000, 0x00000100, 0x02000000,
-    0x00080600, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 331 */
-    0x00000080, 0x00000040, 0x00000000, 0x00001040,
-    0x00000000, 0xf7fdefff, 0xfffeff7f, 0xfffffbff,
-    } },
-    { { /* 332 */
-    0xbffffdff, 0x00ffffff, 0x042012c2, 0x07080c06,
-    0x01101624, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 333 */
-    0xe0000000, 0xfffffffe, 0x7f79ffff, 0x00f928df,
-    0x80120c32, 0xd53a0008, 0xecc2d858, 0x2fa89d18,
-    } },
-    { { /* 334 */
-    0xe0109620, 0x2622d60c, 0x02060f97, 0x9055b240,
-    0x501180a2, 0x04049800, 0x00004000, 0x00000000,
-    } },
-    { { /* 335 */
-    0x00000000, 0x00000000, 0x00000000, 0xfffffbc0,
-    0xdffbeffe, 0x62430b08, 0xfb3b41b6, 0x23896f74,
-    } },
-    { { /* 336 */
-    0xecd7ae7f, 0x5960e047, 0x098fa096, 0xa030612c,
-    0x2aaa090d, 0x4f7bd44e, 0x388bc4b2, 0x6110a9c6,
-    } },
-    { { /* 337 */
-    0x42000014, 0x0202800c, 0x6485fe48, 0xe3f7d63e,
-    0x0c073aa0, 0x0430e40c, 0x1002f680, 0x00000000,
-    } },
-    { { /* 338 */
-    0x00000000, 0x00000000, 0x00000000, 0x00100000,
-    0x00004000, 0x00004000, 0x00000100, 0x00000000,
-    } },
-    { { /* 339 */
-    0x00000000, 0x40000000, 0x00000000, 0x00000400,
-    0x00008000, 0x00000000, 0x00400400, 0x00000000,
-    } },
-    { { /* 340 */
-    0x00000000, 0x40000000, 0x00000000, 0x00000800,
-    0xfebdffe0, 0xffffffff, 0xfbe77f7f, 0xf7ffffbf,
-    } },
-    { { /* 341 */
-    0xefffffff, 0xdff7ff7e, 0xfbdff6f7, 0x804fbffe,
-    0x00000000, 0x00000000, 0x00000000, 0x7fffef00,
-    } },
-    { { /* 342 */
-    0xb6f7ff7f, 0xb87e4406, 0x88313bf5, 0x00f41796,
-    0x1391a960, 0x72490080, 0x0024f2f3, 0x42c88701,
-    } },
-    { { /* 343 */
-    0x5048e3d3, 0x43052400, 0x4a4c0000, 0x10580227,
-    0x01162820, 0x0014a809, 0x00000000, 0x00683ec0,
-    } },
-    { { /* 344 */
-    0x00000000, 0x00000000, 0x00000000, 0xffe00000,
-    0xfddbb7ff, 0x000000f7, 0xc72e4000, 0x00000180,
-    } },
-    { { /* 345 */
-    0x00012000, 0x00004000, 0x00300000, 0xb4f7ffa8,
-    0x03ffadf3, 0x00000120, 0x00000000, 0x00000000,
-    } },
-    { { /* 346 */
-    0x00000000, 0x00000000, 0x00000000, 0xfffbf000,
-    0xfdcf9df7, 0x15c301bf, 0x810a1827, 0x0a00a842,
-    } },
-    { { /* 347 */
-    0x80088108, 0x18048008, 0x0012a3be, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 348 */
-    0x00000000, 0x00000000, 0x00000000, 0x90000000,
-    0xdc3769e6, 0x3dff6bff, 0xf3f9fcf8, 0x00000004,
-    } },
-    { { /* 349 */
-    0x80000000, 0xe7eebf6f, 0x5da2dffe, 0xc00b3fd8,
-    0xa00c0984, 0x69100040, 0xb912e210, 0x5a0086a5,
-    } },
-    { { /* 350 */
-    0x02896800, 0x6a809005, 0x00030010, 0x80000000,
-    0x8e001ff9, 0x00000001, 0x00000000, 0x00000000,
-    } },
-    { { /* 351 */
-    0x0000002f, 0x000003fe, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 352 */
-    0xc373ff8b, 0x1b0f6840, 0xf34ce9ac, 0xc0080200,
-    0xca3e795c, 0x06487976, 0xf7f02fdf, 0xa8ff033a,
-    } },
-    { { /* 353 */
-    0x233fef37, 0xfd59b004, 0xfffff3ca, 0xfff9de9f,
-    0x7df7abff, 0x8eecc000, 0xffdbeebf, 0x45fad003,
-    } },
-    { { /* 354 */
-    0xdffefae1, 0x10abbfef, 0xfcaaffeb, 0x24fdef3f,
-    0x7f7678ad, 0xedfff00c, 0x2cfacff6, 0xeb6bf7f9,
-    } },
-    { { /* 355 */
-    0x95bf1ffd, 0xbfbf6677, 0xfeb43bfb, 0x11e27bae,
-    0x41bea681, 0x72c31435, 0x71917d70, 0x276b0003,
-    } },
-    { { /* 356 */
-    0x70cf57cb, 0x0def4732, 0xfc747eda, 0xbdb4fe06,
-    0x8bca3f9f, 0x58007e49, 0xebec228f, 0xddbb8a5c,
-    } },
-    { { /* 357 */
-    0xb6e7ef60, 0xf293a40f, 0x549e37bb, 0x9bafd04b,
-    0xf7d4c414, 0x0a1430b0, 0x88d02f08, 0x192fff7e,
-    } },
-    { { /* 358 */
-    0xfb07ffda, 0x7beb7ff1, 0x0010c5ef, 0xfdff99ff,
-    0x056779d7, 0xfdcbffe7, 0x4040c3ff, 0xbd8e6ff7,
-    } },
-    { { /* 359 */
-    0x0497dffa, 0x5bfff4c0, 0xd0e7ed7b, 0xf8e0047e,
-    0xb73eff9f, 0x882e7dfe, 0xbe7ffffd, 0xf6c483fe,
-    } },
-    { { /* 360 */
-    0xb8fdf357, 0xef7dd680, 0x47885767, 0xc3dfff7d,
-    0x37a9f0ff, 0x70fc7de0, 0xec9a3f6f, 0x86814cb3,
-    } },
-    { { /* 361 */
-    0xdd5c3f9e, 0x4819f70d, 0x0007fea3, 0x38ffaf56,
-    0xefb8980d, 0xb760403d, 0x9035d8ce, 0x3fff72bf,
-    } },
-    { { /* 362 */
-    0x7a117ff7, 0xabfff7bb, 0x6fbeff00, 0xfe72a93c,
-    0xf11bcfef, 0xf40adb6b, 0xef7ec3e6, 0xf6109b9c,
-    } },
-    { { /* 363 */
-    0x16f4f048, 0x5182feb5, 0x15bbc7b1, 0xfbdf6e87,
-    0x63cde43f, 0x7e7ec1ff, 0x7d5ffdeb, 0xfcfe777b,
-    } },
-    { { /* 364 */
-    0xdbea960b, 0x53e86229, 0xfdef37df, 0xbd8136f5,
-    0xfcbddc18, 0xffffd2e4, 0xffe03fd7, 0xabf87f6f,
-    } },
-    { { /* 365 */
-    0x6ed99bae, 0xf115f5fb, 0xbdfb79a9, 0xadaf5a3c,
-    0x1facdbba, 0x837971fc, 0xc35f7cf7, 0x0567dfff,
-    } },
-    { { /* 366 */
-    0x8467ff9a, 0xdf8b1534, 0x3373f9f3, 0x5e1af7bd,
-    0xa03fbf40, 0x01ebffff, 0xcfdddfc0, 0xabd37500,
-    } },
-    { { /* 367 */
-    0xeed6f8c3, 0xb7ff43fd, 0x42275eaf, 0xf6869bac,
-    0xf6bc27d7, 0x35b7f787, 0xe176aacd, 0xe29f49e7,
-    } },
-    { { /* 368 */
-    0xaff2545c, 0x61d82b3f, 0xbbb8fc3b, 0x7b7dffcf,
-    0x1ce0bf95, 0x43ff7dfd, 0xfffe5ff6, 0xc4ced3ef,
-    } },
-    { { /* 369 */
-    0xadbc8db6, 0x11eb63dc, 0x23d0df59, 0xf3dbbeb4,
-    0xdbc71fe7, 0xfae4ff63, 0x63f7b22b, 0xadbaed3b,
-    } },
-    { { /* 370 */
-    0x7efffe01, 0x02bcfff7, 0xef3932ff, 0x8005fffc,
-    0xbcf577fb, 0xfff7010d, 0xbf3afffb, 0xdfff0057,
-    } },
-    { { /* 371 */
-    0xbd7def7b, 0xc8d4db88, 0xed7cfff3, 0x56ff5dee,
-    0xac5f7e0d, 0xd57fff96, 0xc1403fee, 0xffe76ff9,
-    } },
-    { { /* 372 */
-    0x8e77779b, 0xe45d6ebf, 0x5f1f6fcf, 0xfedfe07f,
-    0x01fed7db, 0xfb7bff00, 0x1fdfffd4, 0xfffff800,
-    } },
-    { { /* 373 */
-    0x007bfb8f, 0x7f5cbf00, 0x07f3ffff, 0x3de7eba0,
-    0xfbd7f7bf, 0x6003ffbf, 0xbfedfffd, 0x027fefbb,
-    } },
-    { { /* 374 */
-    0xddfdfe40, 0xe2f9fdff, 0xfb1f680b, 0xaffdfbe3,
-    0xf7ed9fa4, 0xf80f7a7d, 0x0fd5eebe, 0xfd9fbb5d,
-    } },
-    { { /* 375 */
-    0x3bf9f2db, 0xebccfe7f, 0x73fa876a, 0x9ffc95fc,
-    0xfaf7109f, 0xbbcdddb7, 0xeccdf87e, 0x3c3ff366,
-    } },
-    { { /* 376 */
-    0xb03ffffd, 0x067ee9f7, 0xfe0696ae, 0x5fd7d576,
-    0xa3f33fd1, 0x6fb7cf07, 0x7f449fd1, 0xd3dd7b59,
-    } },
-    { { /* 377 */
-    0xa9bdaf3b, 0xff3a7dcf, 0xf6ebfbe0, 0xffffb401,
-    0xb7bf7afa, 0x0ffdc000, 0xff1fff7f, 0x95fffefc,
-    } },
-    { { /* 378 */
-    0xb5dc0000, 0x3f3eef63, 0x001bfb7f, 0xfbf6e800,
-    0xb8df9eef, 0x003fff9f, 0xf5ff7bd0, 0x3fffdfdb,
-    } },
-    { { /* 379 */
-    0x00bffdf0, 0xbbbd8420, 0xffdedf37, 0x0ff3ff6d,
-    0x5efb604c, 0xfafbfffb, 0x0219fe5e, 0xf9de79f4,
-    } },
-    { { /* 380 */
-    0xebfaa7f7, 0xff3401eb, 0xef73ebd3, 0xc040afd7,
-    0xdcff72bb, 0x2fd8f17f, 0xfe0bb8ec, 0x1f0bdda3,
-    } },
-    { { /* 381 */
-    0x47cf8f1d, 0xffdeb12b, 0xda737fee, 0xcbc424ff,
-    0xcbf2f75d, 0xb4edecfd, 0x4dddbff9, 0xfb8d99dd,
-    } },
-    { { /* 382 */
-    0xaf7bbb7f, 0xc959ddfb, 0xfab5fc4f, 0x6d5fafe3,
-    0x3f7dffff, 0xffdb7800, 0x7effb6ff, 0x022ffbaf,
-    } },
-    { { /* 383 */
-    0xefc7ff9b, 0xffffffa5, 0xc7000007, 0xfff1f7ff,
-    0x01bf7ffd, 0xfdbcdc00, 0xffffbff5, 0x3effff7f,
-    } },
-    { { /* 384 */
-    0xbe000029, 0xff7ff9ff, 0xfd7e6efb, 0x039ecbff,
-    0xfbdde300, 0xf6dfccff, 0x117fffff, 0xfbf6f800,
-    } },
-    { { /* 385 */
-    0xd73ce7ef, 0xdfeffeef, 0xedbfc00b, 0xfdcdfedf,
-    0x40fd7bf5, 0xb75fffff, 0xf930ffdf, 0xdc97fbdf,
-    } },
-    { { /* 386 */
-    0xbff2fef3, 0xdfbf8fdf, 0xede6177f, 0x35530f7f,
-    0x877e447c, 0x45bbfa12, 0x779eede0, 0xbfd98017,
-    } },
-    { { /* 387 */
-    0xde897e55, 0x0447c16f, 0xf75d7ade, 0x290557ff,
-    0xfe9586f7, 0xf32f97b3, 0x9f75cfff, 0xfb1771f7,
-    } },
-    { { /* 388 */
-    0xee1934ee, 0xef6137cc, 0xef4c9fd6, 0xfbddd68f,
-    0x6def7b73, 0xa431d7fe, 0x97d75e7f, 0xffd80f5b,
-    } },
-    { { /* 389 */
-    0x7bce9d83, 0xdcff22ec, 0xef87763d, 0xfdeddfe7,
-    0xa0fc4fff, 0xdbfc3b77, 0x7fdc3ded, 0xf5706fa9,
-    } },
-    { { /* 390 */
-    0x2c403ffb, 0x847fff7f, 0xdeb7ec57, 0xf22fe69c,
-    0xd5b50feb, 0xede7afeb, 0xfff08c2f, 0xe8f0537f,
-    } },
-    { { /* 391 */
-    0xb5ffb99d, 0xe78fff66, 0xbe10d981, 0xe3c19c7c,
-    0x27339cd1, 0xff6d0cbc, 0xefb7fcb7, 0xffffa0df,
-    } },
-    { { /* 392 */
-    0xfe7bbf0b, 0x353fa3ff, 0x97cd13cc, 0xfb277637,
-    0x7e6ccfd6, 0xed31ec50, 0xfc1c677c, 0x5fbff6fa,
-    } },
-    { { /* 393 */
-    0xae2f0fba, 0x7ffea3ad, 0xde74fcf0, 0xf200ffef,
-    0xfea2fbbf, 0xbcff3daf, 0x5fb9f694, 0x3f8ff3ad,
-    } },
-    { { /* 394 */
-    0xa01ff26c, 0x01bfffef, 0x70057728, 0xda03ff35,
-    0xc7fad2f9, 0x5c1d3fbf, 0xec33ff3a, 0xfe9cb7af,
-    } },
-    { { /* 395 */
-    0x7a9f5236, 0xe722bffa, 0xfcff9ff7, 0xb61d2fbb,
-    0x1dfded06, 0xefdf7dd7, 0xf166eb23, 0x0dc07ed9,
-    } },
-    { { /* 396 */
-    0xdfbf3d3d, 0xba83c945, 0x9dd07dd1, 0xcf737b87,
-    0xc3f59ff3, 0xc5fedf0d, 0x83020cb3, 0xaec0e879,
-    } },
-    { { /* 397 */
-    0x6f0fc773, 0x093ffd7d, 0x0157fff1, 0x01ff62fb,
-    0x3bf3fdb4, 0x43b2b013, 0xff305ed3, 0xeb9f0fff,
-    } },
-    { { /* 398 */
-    0xf203feef, 0xfb893fef, 0x9e9937a9, 0xa72cdef9,
-    0xc1f63733, 0xfe3e812e, 0xf2f75d20, 0x69d7d585,
-    } },
-    { { /* 399 */
-    0xffffffff, 0xff6fdb07, 0xd97fc4ff, 0xbe0fefce,
-    0xf05ef17b, 0xffb7f6cf, 0xef845ef7, 0x0edfd7cb,
-    } },
-    { { /* 400 */
-    0xfcffff08, 0xffffee3f, 0xd7ff13ff, 0x7ffdaf0f,
-    0x1ffabdc7, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 401 */
-    0x00000000, 0xe7400000, 0xf933bd38, 0xfeed7feb,
-    0x7c767fe8, 0xffefb3f7, 0xd8b7feaf, 0xfbbfff6f,
-    } },
-    { { /* 402 */
-    0xdbf7f8fb, 0xe2f91752, 0x754785c8, 0xe3ef9090,
-    0x3f6d9ef4, 0x0536ee2e, 0x7ff3f7bc, 0x7f3fa07b,
-    } },
-    { { /* 403 */
-    0xeb600567, 0x6601babe, 0x583ffcd8, 0x87dfcaf7,
-    0xffa0bfcd, 0xfebf5bcd, 0xefa7b6fd, 0xdf9c77ef,
-    } },
-    { { /* 404 */
-    0xf8773fb7, 0xb7fc9d27, 0xdfefcab5, 0xf1b6fb5a,
-    0xef1fec39, 0x7ffbfbbf, 0xdafe000d, 0x4e7fbdfb,
-    } },
-    { { /* 405 */
-    0x5ac033ff, 0x9ffebff5, 0x005fffbf, 0xfdf80000,
-    0x6ffdffca, 0xa001cffd, 0xfbf2dfff, 0xff7fdfbf,
-    } },
-    { { /* 406 */
-    0x080ffeda, 0xbfffba08, 0xeed77afd, 0x67f9fbeb,
-    0xff93e044, 0x9f57df97, 0x08dffef7, 0xfedfdf80,
-    } },
-    { { /* 407 */
-    0xf7feffc5, 0x6803fffb, 0x6bfa67fb, 0x5fe27fff,
-    0xff73ffff, 0xe7fb87df, 0xf7a7ebfd, 0xefc7bf7e,
-    } },
-    { { /* 408 */
-    0xdf821ef3, 0xdf7e76ff, 0xda7d79c9, 0x1e9befbe,
-    0x77fb7ce0, 0xfffb87be, 0xffdb1bff, 0x4fe03f5c,
-    } },
-    { { /* 409 */
-    0x5f0e7fff, 0xddbf77ff, 0xfffff04f, 0x0ff8ffff,
-    0xfddfa3be, 0xfffdfc1c, 0xfb9e1f7d, 0xdedcbdff,
-    } },
-    { { /* 410 */
-    0xbafb3f6f, 0xfbefdf7f, 0x2eec7d1b, 0xf2f7af8e,
-    0xcfee7b0f, 0x77c61d96, 0xfff57e07, 0x7fdfd982,
-    } },
-    { { /* 411 */
-    0xc7ff5ee6, 0x79effeee, 0xffcf9a56, 0xde5efe5f,
-    0xf9e8896e, 0xe6c4f45e, 0xbe7c0001, 0xdddf3b7f,
-    } },
-    { { /* 412 */
-    0xe9efd59d, 0xde5334ac, 0x4bf7f573, 0x9eff7b4f,
-    0x476eb8fe, 0xff450dfb, 0xfbfeabfd, 0xddffe9d7,
-    } },
-    { { /* 413 */
-    0x7fffedf7, 0x7eebddfd, 0xb7ffcfe7, 0xef91bde9,
-    0xd77c5d75, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 414 */
-    0x00000000, 0xfa800000, 0xb4f1ffee, 0x2fefbf76,
-    0x77bfb677, 0xfffd9fbf, 0xf6ae95bf, 0x7f3b75ff,
-    } },
-    { { /* 415 */
-    0x0af9a7f5, 0x00000000, 0x00000000, 0x2bddfbd0,
-    0x9a7ff633, 0xd6fcfdab, 0xbfebf9e6, 0xf41fdfdf,
-    } },
-    { { /* 416 */
-    0xffffa6fd, 0xf37b4aff, 0xfef97fb7, 0x1d5cb6ff,
-    0xe5ff7ff6, 0x24041f7b, 0xf99ebe05, 0xdff2dbe3,
-    } },
-    { { /* 417 */
-    0xfdff6fef, 0xcbfcd679, 0xefffebfd, 0x0000001f,
-    0x98000000, 0x8017e148, 0x00fe6a74, 0xfdf16d7f,
-    } },
-    { { /* 418 */
-    0xfef3b87f, 0xf176e01f, 0x7b3fee96, 0xfffdeb8d,
-    0xcbb3adff, 0xe17f84ef, 0xbff04daa, 0xfe3fbf3f,
-    } },
-    { { /* 419 */
-    0xffd7ebff, 0xcf7fffdf, 0x85edfffb, 0x07bcd73f,
-    0xfe0faeff, 0x76bffdaf, 0x37bbfaef, 0xa3ba7fdc,
-    } },
-    { { /* 420 */
-    0x56f7b6ff, 0xe7df60f8, 0x4cdfff61, 0xff45b0fb,
-    0x3ffa7ded, 0x18fc1fff, 0xe3afffff, 0xdf83c7d3,
-    } },
-    { { /* 421 */
-    0xef7dfb57, 0x1378efff, 0x5ff7fec0, 0x5ee334bb,
-    0xeff6f70d, 0x00bfd7fe, 0xf7f7f59d, 0xffe051de,
-    } },
-    { { /* 422 */
-    0x037ffec9, 0xbfef5f01, 0x60a79ff1, 0xf1ffef1d,
-    0x0000000f, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 423 */
-    0x00000000, 0x00000000, 0x00000000, 0x3c800000,
-    0xd91ffb4d, 0xfee37b3a, 0xdc7f3fe9, 0x0000003f,
-    } },
-    { { /* 424 */
-    0x50000000, 0xbe07f51f, 0xf91bfc1d, 0x71ffbc1e,
-    0x5bbe6ff9, 0x9b1b5796, 0xfffc7fff, 0xafe7872e,
-    } },
-    { { /* 425 */
-    0xf34febf5, 0xe725dffd, 0x5d440bdc, 0xfddd5747,
-    0x7790ed3f, 0x8ac87d7f, 0xf3f9fafa, 0xef4b202a,
-    } },
-    { { /* 426 */
-    0x79cff5ff, 0x0ba5abd3, 0xfb8ff77a, 0x001f8ebd,
-    0x00000000, 0xfd4ef300, 0x88001a57, 0x7654aeac,
-    } },
-    { { /* 427 */
-    0xcdff17ad, 0xf42fffb2, 0xdbff5baa, 0x00000002,
-    0x73c00000, 0x2e3ff9ea, 0xbbfffa8e, 0xffd376bc,
-    } },
-    { { /* 428 */
-    0x7e72eefe, 0xe7f77ebd, 0xcefdf77f, 0x00000ff5,
-    0x00000000, 0xdb9ba900, 0x917fa4c7, 0x7ecef8ca,
-    } },
-    { { /* 429 */
-    0xc7e77d7a, 0xdcaecbbd, 0x8f76fd7e, 0x7cf391d3,
-    0x4c2f01e5, 0xa360ed77, 0x5ef807db, 0x21811df7,
-    } },
-    { { /* 430 */
-    0x309c6be0, 0xfade3b3a, 0xc3f57f53, 0x07ba61cd,
-    0x00000000, 0x00000000, 0x00000000, 0xbefe26e0,
-    } },
-    { { /* 431 */
-    0xebb503f9, 0xe9cbe36d, 0xbfde9c2f, 0xabbf9f83,
-    0xffd51ff7, 0xdffeb7df, 0xffeffdae, 0xeffdfb7e,
-    } },
-    { { /* 432 */
-    0x6ebfaaff, 0x00000000, 0x00000000, 0xb6200000,
-    0xbe9e7fcd, 0x58f162b3, 0xfd7bf10d, 0xbefde9f1,
-    } },
-    { { /* 433 */
-    0x5f6dc6c3, 0x69ffff3d, 0xfbf4ffcf, 0x4ff7dcfb,
-    0x11372000, 0x00000015, 0x00000000, 0x00000000,
-    } },
-    { { /* 434 */
-    0x00003000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    } },
-    { { /* 435 */
-    0x00000000, 0x00000000, 0x00000000, 0x00000000,
-    0x00000000, 0xffffffff, 0xffffffff, 0x001fffff,
-    } },
-};
-
-#define L(n) ((FcCharLeaf *) &leaves[n])
-
-static const FcCharLeaf *leaves_ab[2] = {
-    L(  0), L(  1),
-};
-
-static const FcChar16 numbers_ab[2] = {
-    0x0000, 0x0004,
-};
-
-static const FcCharLeaf *leaves_ar[1] = {
-    L(  2),
-};
-
-static const FcChar16 numbers_ar[1] = {
-    0x0006,
-};
-
-static const FcCharLeaf *leaves_az[4] = {
-    L(  3), L(  4), L(  5), L(  6),
-};
-
-static const FcChar16 numbers_az[4] = {
-    0x0000, 0x0001, 0x0002, 0x0004,
-};
-
-static const FcCharLeaf *leaves_ba[2] = {
-    L(  0), L(  7),
-};
-
-static const FcChar16 numbers_ba[2] = {
-    0x0000, 0x0004,
-};
-
-static const FcCharLeaf *leaves_be[2] = {
-    L(  0), L(  8),
-};
-
-static const FcChar16 numbers_be[2] = {
-    0x0000, 0x0004,
-};
-
-static const FcCharLeaf *leaves_bg[1] = {
-    L(  9),
-};
-
-static const FcChar16 numbers_bg[1] = {
-    0x0004,
-};
-
-static const FcCharLeaf *leaves_bn[1] = {
-    L( 10),
-};
-
-static const FcChar16 numbers_bn[1] = {
-    0x0009,
-};
-
-static const FcCharLeaf *leaves_bo[1] = {
-    L( 11),
-};
-
-static const FcChar16 numbers_bo[1] = {
-    0x000f,
-};
-
-static const FcCharLeaf *leaves_br[1] = {
-    L( 12),
-};
-
-static const FcChar16 numbers_br[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_ca[2] = {
-    L( 13), L( 14),
-};
-
-static const FcChar16 numbers_ca[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_co[1] = {
-    L( 15),
-};
-
-static const FcChar16 numbers_co[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_cs[2] = {
-    L( 16), L( 17),
-};
-
-static const FcChar16 numbers_cs[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_da[2] = {
-    L( 18), L( 19),
-};
-
-static const FcChar16 numbers_da[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_de[1] = {
-    L( 20),
-};
-
-static const FcChar16 numbers_de[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_el[1] = {
-    L( 21),
-};
-
-static const FcChar16 numbers_el[1] = {
-    0x0003,
-};
-
-static const FcCharLeaf *leaves_en[1] = {
-    L( 22),
-};
-
-static const FcChar16 numbers_en[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_eo[2] = {
-    L( 23), L( 24),
-};
-
-static const FcChar16 numbers_eo[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_es[1] = {
-    L( 25),
-};
-
-static const FcChar16 numbers_es[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_et[2] = {
-    L( 26), L( 27),
-};
-
-static const FcChar16 numbers_et[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_eu[2] = {
-    L( 28), L( 29),
-};
-
-static const FcChar16 numbers_eu[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_fi[2] = {
-    L( 30), L( 27),
-};
-
-static const FcChar16 numbers_fi[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_fo[1] = {
-    L( 31),
-};
-
-static const FcChar16 numbers_fo[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_ga[5] = {
-    L( 32), L( 33), L( 34), L( 35), L( 36),
-};
-
-static const FcChar16 numbers_ga[5] = {
-    0x0000, 0x0001, 0x0002, 0x001e, 0x0020,
-};
-
-static const FcCharLeaf *leaves_gd[1] = {
-    L( 37),
-};
-
-static const FcChar16 numbers_gd[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_gl[1] = {
-    L( 38),
-};
-
-static const FcChar16 numbers_gl[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_gu[1] = {
-    L( 39),
-};
-
-static const FcChar16 numbers_gu[1] = {
-    0x000a,
-};
-
-static const FcCharLeaf *leaves_he[1] = {
-    L( 40),
-};
-
-static const FcChar16 numbers_he[1] = {
-    0x0005,
-};
-
-static const FcCharLeaf *leaves_hr[3] = {
-    L( 41), L( 42), L( 43),
-};
-
-static const FcChar16 numbers_hr[3] = {
-    0x0000, 0x0001, 0x0002,
-};
-
-static const FcCharLeaf *leaves_hu[2] = {
-    L( 44), L( 45),
-};
-
-static const FcChar16 numbers_hu[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_hy[1] = {
-    L( 46),
-};
-
-static const FcChar16 numbers_hy[1] = {
-    0x0005,
-};
-
-static const FcCharLeaf *leaves_is[1] = {
-    L( 47),
-};
-
-static const FcChar16 numbers_is[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_it[1] = {
-    L( 48),
-};
-
-static const FcChar16 numbers_it[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_ja[84] = {
-    L( 49), L( 50), L( 51), L( 52), L( 53), L( 54), L( 55), L( 56),
-    L( 57), L( 58), L( 59), L( 60), L( 61), L( 62), L( 63), L( 64),
-    L( 65), L( 66), L( 67), L( 68), L( 69), L( 70), L( 71), L( 72),
-    L( 73), L( 74), L( 75), L( 76), L( 77), L( 78), L( 79), L( 80),
-    L( 81), L( 82), L( 83), L( 84), L( 85), L( 86), L( 87), L( 88),
-    L( 89), L( 90), L( 91), L( 92), L( 93), L( 94), L( 95), L( 96),
-    L( 97), L( 98), L( 99), L(100), L(101), L(102), L(103), L(104),
-    L(105), L(106), L(107), L(108), L(109), L(110), L(111), L(112),
-    L(113), L(114), L(115), L(116), L(117), L(118), L(119), L(120),
-    L(121), L(122), L(123), L(124), L(125), L(126), L(127), L(128),
-    L(129), L(130), L(131), L(132),
-};
-
-static const FcChar16 numbers_ja[84] = {
-    0x0030, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
-    0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
-    0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
-    0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
-    0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
-    0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
-    0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
-    0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
-    0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
-    0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
-    0x009d, 0x009e, 0x009f, 0x00ff,
-};
-
-static const FcCharLeaf *leaves_ka[2] = {
-    L(133), L(134),
-};
-
-static const FcChar16 numbers_ka[2] = {
-    0x0005, 0x0010,
-};
-
-static const FcCharLeaf *leaves_kk[2] = {
-    L(  0), L(135),
-};
-
-static const FcChar16 numbers_kk[2] = {
-    0x0000, 0x0004,
-};
-
-static const FcCharLeaf *leaves_kl[2] = {
-    L(136), L(137),
-};
-
-static const FcChar16 numbers_kl[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_km[1] = {
-    L(138),
-};
-
-static const FcChar16 numbers_km[1] = {
-    0x0017,
-};
-
-static const FcCharLeaf *leaves_kn[1] = {
-    L(139),
-};
-
-static const FcChar16 numbers_kn[1] = {
-    0x000c,
-};
-
-static const FcCharLeaf *leaves_ko[132] = {
-    L(140), L(141), L(142), L(143), L(144), L(145), L(146), L(147),
-    L(148), L(149), L(150), L(151), L(152), L(153), L(154), L(155),
-    L(156), L(157), L(158), L(159), L(160), L(161), L(162), L(163),
-    L(164), L(165), L(166), L(167), L(168), L(169), L(170), L(171),
-    L(172), L(173), L(174), L(175), L(176), L(177), L(178), L(179),
-    L(180), L(181), L(182), L(183), L(184), L(185), L(186), L(187),
-    L(188), L(189), L(190), L(191), L(192), L(193), L(194), L(195),
-    L(196), L(197), L(198), L(199), L(200), L(201), L(202), L(203),
-    L(204), L(205), L(206), L(207), L(208), L(209), L(210), L(211),
-    L(212), L(213), L(214), L(215), L(216), L(217), L(218), L(219),
-    L(220), L(221), L(222), L(223), L(224), L(225), L(225), L(225),
-    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
-    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
-    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
-    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
-    L(225), L(225), L(225), L(225), L(225), L(225), L(225), L(225),
-    L(226), L(225), L(227), L(228),
-};
-
-static const FcChar16 numbers_ko[132] = {
-    0x0030, 0x0031, 0x0032, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052,
-    0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a,
-    0x005b, 0x005c, 0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062,
-    0x0063, 0x0064, 0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a,
-    0x006b, 0x006c, 0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072,
-    0x0073, 0x0074, 0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a,
-    0x007b, 0x007c, 0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082,
-    0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a,
-    0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092,
-    0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a,
-    0x009b, 0x009c, 0x009d, 0x009e, 0x009f, 0x00ac, 0x00ad, 0x00ae,
-    0x00af, 0x00b0, 0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6,
-    0x00b7, 0x00b8, 0x00b9, 0x00ba, 0x00bb, 0x00bc, 0x00bd, 0x00be,
-    0x00bf, 0x00c0, 0x00c1, 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x00c6,
-    0x00c7, 0x00c8, 0x00c9, 0x00ca, 0x00cb, 0x00cc, 0x00cd, 0x00ce,
-    0x00cf, 0x00d0, 0x00d1, 0x00d2, 0x00d3, 0x00d4, 0x00d5, 0x00d6,
-    0x00d7, 0x00f9, 0x00fa, 0x00ff,
-};
-
-static const FcCharLeaf *leaves_la[2] = {
-    L( 23), L(229),
-};
-
-static const FcChar16 numbers_la[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_lo[1] = {
-    L(230),
-};
-
-static const FcChar16 numbers_lo[1] = {
-    0x000e,
-};
-
-static const FcCharLeaf *leaves_lt[2] = {
-    L( 23), L(231),
-};
-
-static const FcChar16 numbers_lt[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_lv[2] = {
-    L( 23), L(232),
-};
-
-static const FcChar16 numbers_lv[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_mk[1] = {
-    L(233),
-};
-
-static const FcChar16 numbers_mk[1] = {
-    0x0004,
-};
-
-static const FcCharLeaf *leaves_ml[1] = {
-    L(234),
-};
-
-static const FcChar16 numbers_ml[1] = {
-    0x000d,
-};
-
-static const FcCharLeaf *leaves_mn[1] = {
-    L(235),
-};
-
-static const FcChar16 numbers_mn[1] = {
-    0x0018,
-};
-
-static const FcCharLeaf *leaves_mo[4] = {
-    L(236), L(237), L(238), L(239),
-};
-
-static const FcChar16 numbers_mo[4] = {
-    0x0000, 0x0001, 0x0002, 0x0004,
-};
-
-static const FcCharLeaf *leaves_mt[3] = {
-    L(240), L(241), L(242),
-};
-
-static const FcChar16 numbers_mt[3] = {
-    0x0000, 0x0001, 0x0002,
-};
-
-static const FcCharLeaf *leaves_nl[1] = {
-    L(243),
-};
-
-static const FcChar16 numbers_nl[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_no[1] = {
-    L(244),
-};
-
-static const FcChar16 numbers_no[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_oc[1] = {
-    L(245),
-};
-
-static const FcChar16 numbers_oc[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_or[1] = {
-    L(246),
-};
-
-static const FcChar16 numbers_or[1] = {
-    0x000b,
-};
-
-static const FcCharLeaf *leaves_pl[2] = {
-    L(247), L(248),
-};
-
-static const FcChar16 numbers_pl[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_pt[1] = {
-    L(249),
-};
-
-static const FcChar16 numbers_pt[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_rm[1] = {
-    L(250),
-};
-
-static const FcChar16 numbers_rm[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_ro[3] = {
-    L(236), L(237), L(238),
-};
-
-static const FcChar16 numbers_ro[3] = {
-    0x0000, 0x0001, 0x0002,
-};
-
-static const FcCharLeaf *leaves_ru[2] = {
-    L(  0), L(251),
-};
-
-static const FcChar16 numbers_ru[2] = {
-    0x0000, 0x0004,
-};
-
-static const FcCharLeaf *leaves_sh[1] = {
-    L(252),
-};
-
-static const FcChar16 numbers_sh[1] = {
-    0x0004,
-};
-
-static const FcCharLeaf *leaves_si[1] = {
-    L(253),
-};
-
-static const FcChar16 numbers_si[1] = {
-    0x000d,
-};
-
-static const FcCharLeaf *leaves_sk[2] = {
-    L(254), L(255),
-};
-
-static const FcChar16 numbers_sk[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_sl[3] = {
-    L( 23), L(256), L(257),
-};
-
-static const FcChar16 numbers_sl[3] = {
-    0x0000, 0x0001, 0x0004,
-};
-
-static const FcCharLeaf *leaves_sq[1] = {
-    L(258),
-};
-
-static const FcChar16 numbers_sq[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_sv[1] = {
-    L(259),
-};
-
-static const FcChar16 numbers_sv[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_ta[1] = {
-    L(260),
-};
-
-static const FcChar16 numbers_ta[1] = {
-    0x000b,
-};
-
-static const FcCharLeaf *leaves_te[1] = {
-    L(261),
-};
-
-static const FcChar16 numbers_te[1] = {
-    0x000c,
-};
-
-static const FcCharLeaf *leaves_th[1] = {
-    L(262),
-};
-
-static const FcChar16 numbers_th[1] = {
-    0x000e,
-};
-
-static const FcCharLeaf *leaves_tl[1] = {
-    L(263),
-};
-
-static const FcChar16 numbers_tl[1] = {
-    0x0017,
-};
-
-static const FcCharLeaf *leaves_tr[2] = {
-    L(264), L(265),
-};
-
-static const FcChar16 numbers_tr[2] = {
-    0x0000, 0x0001,
-};
-
-static const FcCharLeaf *leaves_uk[2] = {
-    L(  0), L(266),
-};
-
-static const FcChar16 numbers_uk[2] = {
-    0x0000, 0x0004,
-};
-
-static const FcCharLeaf *leaves_vo[1] = {
-    L(267),
-};
-
-static const FcChar16 numbers_vo[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_wa[1] = {
-    L(268),
-};
-
-static const FcChar16 numbers_wa[1] = {
-    0x0000,
-};
-
-static const FcCharLeaf *leaves_zh_cn[82] = {
-    L(269), L(270), L(271), L(272), L(273), L(274), L(275), L(276),
-    L(277), L(278), L(279), L(280), L(281), L(282), L(283), L(284),
-    L(285), L(286), L(287), L(288), L(289), L(290), L(291), L(292),
-    L(293), L(294), L(295), L(296), L(297), L(298), L(299), L(300),
-    L(301), L(302), L(303), L(304), L(305), L(306), L(307), L(308),
-    L(309), L(310), L(311), L(312), L(313), L(314), L(315), L(316),
-    L(317), L(318), L(319), L(320), L(321), L(322), L(323), L(324),
-    L(325), L(326), L(327), L(328), L(329), L(330), L(331), L(332),
-    L(333), L(334), L(335), L(336), L(337), L(338), L(339), L(340),
-    L(341), L(342), L(343), L(344), L(345), L(346), L(347), L(348),
-    L(349), L(350),
-};
-
-static const FcChar16 numbers_zh_cn[82] = {
-    0x0002, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
-    0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
-    0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
-    0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
-    0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
-    0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
-    0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
-    0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
-    0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
-    0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
-    0x009e, 0x009f,
-};
-
-static const FcCharLeaf *leaves_zh_tw[84] = {
-    L(351), L(352), L(353), L(354), L(355), L(356), L(357), L(358),
-    L(359), L(360), L(361), L(362), L(363), L(364), L(365), L(366),
-    L(367), L(368), L(369), L(370), L(371), L(372), L(373), L(374),
-    L(375), L(376), L(377), L(378), L(379), L(380), L(381), L(382),
-    L(383), L(384), L(385), L(386), L(387), L(388), L(389), L(390),
-    L(391), L(392), L(393), L(394), L(395), L(396), L(397), L(398),
-    L(399), L(400), L(401), L(402), L(403), L(404), L(405), L(406),
-    L(407), L(408), L(409), L(410), L(411), L(412), L(413), L(414),
-    L(415), L(416), L(417), L(418), L(419), L(420), L(421), L(422),
-    L(423), L(424), L(425), L(426), L(427), L(428), L(429), L(430),
-    L(431), L(432), L(433), L(434),
-};
-
-static const FcChar16 numbers_zh_tw[84] = {
-    0x0030, 0x004e, 0x004f, 0x0050, 0x0051, 0x0052, 0x0053, 0x0054,
-    0x0055, 0x0056, 0x0057, 0x0058, 0x0059, 0x005a, 0x005b, 0x005c,
-    0x005d, 0x005e, 0x005f, 0x0060, 0x0061, 0x0062, 0x0063, 0x0064,
-    0x0065, 0x0066, 0x0067, 0x0068, 0x0069, 0x006a, 0x006b, 0x006c,
-    0x006d, 0x006e, 0x006f, 0x0070, 0x0071, 0x0072, 0x0073, 0x0074,
-    0x0075, 0x0076, 0x0077, 0x0078, 0x0079, 0x007a, 0x007b, 0x007c,
-    0x007d, 0x007e, 0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084,
-    0x0085, 0x0086, 0x0087, 0x0088, 0x0089, 0x008a, 0x008b, 0x008c,
-    0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092, 0x0093, 0x0094,
-    0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
-    0x009d, 0x009e, 0x009f, 0x00fa,
-};
-
-static const FcCharLeaf *leaves_chr[1] = {
-    L(435),
-};
-
-static const FcChar16 numbers_chr[1] = {
-    0x0013,
-};
-
-#undef L
-
-static const FcLangCharSet  fcLangCharSets[] = {
-    { (FcChar8 *) "ab",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ab, (FcChar16 *) numbers_ab } },
-    { (FcChar8 *) "ar",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_ar, (FcChar16 *) numbers_ar } },
-    { (FcChar8 *) "az",
-      { 1, FcTrue, 4, (FcCharLeaf **) leaves_az, (FcChar16 *) numbers_az } },
-    { (FcChar8 *) "ba",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ba, (FcChar16 *) numbers_ba } },
-    { (FcChar8 *) "be",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_be, (FcChar16 *) numbers_be } },
-    { (FcChar8 *) "bg",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_bg, (FcChar16 *) numbers_bg } },
-    { (FcChar8 *) "bn",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_bn, (FcChar16 *) numbers_bn } },
-    { (FcChar8 *) "bo",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_bo, (FcChar16 *) numbers_bo } },
-    { (FcChar8 *) "br",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_br, (FcChar16 *) numbers_br } },
-    { (FcChar8 *) "ca",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ca, (FcChar16 *) numbers_ca } },
-    { (FcChar8 *) "co",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_co, (FcChar16 *) numbers_co } },
-    { (FcChar8 *) "cs",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_cs, (FcChar16 *) numbers_cs } },
-    { (FcChar8 *) "da",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_da, (FcChar16 *) numbers_da } },
-    { (FcChar8 *) "de",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_de, (FcChar16 *) numbers_de } },
-    { (FcChar8 *) "el",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_el, (FcChar16 *) numbers_el } },
-    { (FcChar8 *) "en",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_en, (FcChar16 *) numbers_en } },
-    { (FcChar8 *) "eo",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_eo, (FcChar16 *) numbers_eo } },
-    { (FcChar8 *) "es",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_es, (FcChar16 *) numbers_es } },
-    { (FcChar8 *) "et",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_et, (FcChar16 *) numbers_et } },
-    { (FcChar8 *) "eu",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_eu, (FcChar16 *) numbers_eu } },
-    { (FcChar8 *) "fi",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_fi, (FcChar16 *) numbers_fi } },
-    { (FcChar8 *) "fo",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_fo, (FcChar16 *) numbers_fo } },
-    { (FcChar8 *) "fr",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_co, (FcChar16 *) numbers_co } },
-    { (FcChar8 *) "fy",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_de, (FcChar16 *) numbers_de } },
-    { (FcChar8 *) "ga",
-      { 1, FcTrue, 5, (FcCharLeaf **) leaves_ga, (FcChar16 *) numbers_ga } },
-    { (FcChar8 *) "gd",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_gd, (FcChar16 *) numbers_gd } },
-    { (FcChar8 *) "gl",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_gl, (FcChar16 *) numbers_gl } },
-    { (FcChar8 *) "gu",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_gu, (FcChar16 *) numbers_gu } },
-    { (FcChar8 *) "he",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_he, (FcChar16 *) numbers_he } },
-    { (FcChar8 *) "hr",
-      { 1, FcTrue, 3, (FcCharLeaf **) leaves_hr, (FcChar16 *) numbers_hr } },
-    { (FcChar8 *) "hu",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_hu, (FcChar16 *) numbers_hu } },
-    { (FcChar8 *) "hy",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_hy, (FcChar16 *) numbers_hy } },
-    { (FcChar8 *) "is",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_is, (FcChar16 *) numbers_is } },
-    { (FcChar8 *) "it",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_it, (FcChar16 *) numbers_it } },
-    { (FcChar8 *) "ja",
-      { 1, FcTrue, 84, (FcCharLeaf **) leaves_ja, (FcChar16 *) numbers_ja } },
-    { (FcChar8 *) "ka",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ka, (FcChar16 *) numbers_ka } },
-    { (FcChar8 *) "kk",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_kk, (FcChar16 *) numbers_kk } },
-    { (FcChar8 *) "kl",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_kl, (FcChar16 *) numbers_kl } },
-    { (FcChar8 *) "km",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_km, (FcChar16 *) numbers_km } },
-    { (FcChar8 *) "kn",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_kn, (FcChar16 *) numbers_kn } },
-    { (FcChar8 *) "ko",
-      { 1, FcTrue, 132, (FcCharLeaf **) leaves_ko, (FcChar16 *) numbers_ko } },
-    { (FcChar8 *) "la",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_la, (FcChar16 *) numbers_la } },
-    { (FcChar8 *) "lo",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_lo, (FcChar16 *) numbers_lo } },
-    { (FcChar8 *) "lt",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_lt, (FcChar16 *) numbers_lt } },
-    { (FcChar8 *) "lv",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_lv, (FcChar16 *) numbers_lv } },
-    { (FcChar8 *) "mk",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_mk, (FcChar16 *) numbers_mk } },
-    { (FcChar8 *) "ml",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_ml, (FcChar16 *) numbers_ml } },
-    { (FcChar8 *) "mn",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_mn, (FcChar16 *) numbers_mn } },
-    { (FcChar8 *) "mo",
-      { 1, FcTrue, 4, (FcCharLeaf **) leaves_mo, (FcChar16 *) numbers_mo } },
-    { (FcChar8 *) "mt",
-      { 1, FcTrue, 3, (FcCharLeaf **) leaves_mt, (FcChar16 *) numbers_mt } },
-    { (FcChar8 *) "nl",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_nl, (FcChar16 *) numbers_nl } },
-    { (FcChar8 *) "no",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_no, (FcChar16 *) numbers_no } },
-    { (FcChar8 *) "oc",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_oc, (FcChar16 *) numbers_oc } },
-    { (FcChar8 *) "or",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_or, (FcChar16 *) numbers_or } },
-    { (FcChar8 *) "pl",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_pl, (FcChar16 *) numbers_pl } },
-    { (FcChar8 *) "pt",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_pt, (FcChar16 *) numbers_pt } },
-    { (FcChar8 *) "rm",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_rm, (FcChar16 *) numbers_rm } },
-    { (FcChar8 *) "ro",
-      { 1, FcTrue, 3, (FcCharLeaf **) leaves_ro, (FcChar16 *) numbers_ro } },
-    { (FcChar8 *) "ru",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_ru, (FcChar16 *) numbers_ru } },
-    { (FcChar8 *) "sh",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sh, (FcChar16 *) numbers_sh } },
-    { (FcChar8 *) "si",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_si, (FcChar16 *) numbers_si } },
-    { (FcChar8 *) "sk",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_sk, (FcChar16 *) numbers_sk } },
-    { (FcChar8 *) "sl",
-      { 1, FcTrue, 3, (FcCharLeaf **) leaves_sl, (FcChar16 *) numbers_sl } },
-    { (FcChar8 *) "sq",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sq, (FcChar16 *) numbers_sq } },
-    { (FcChar8 *) "sr",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sh, (FcChar16 *) numbers_sh } },
-    { (FcChar8 *) "sv",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_sv, (FcChar16 *) numbers_sv } },
-    { (FcChar8 *) "ta",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_ta, (FcChar16 *) numbers_ta } },
-    { (FcChar8 *) "te",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_te, (FcChar16 *) numbers_te } },
-    { (FcChar8 *) "th",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_th, (FcChar16 *) numbers_th } },
-    { (FcChar8 *) "tl",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_tl, (FcChar16 *) numbers_tl } },
-    { (FcChar8 *) "tr",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_tr, (FcChar16 *) numbers_tr } },
-    { (FcChar8 *) "uk",
-      { 1, FcTrue, 2, (FcCharLeaf **) leaves_uk, (FcChar16 *) numbers_uk } },
-    { (FcChar8 *) "vo",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_vo, (FcChar16 *) numbers_vo } },
-    { (FcChar8 *) "wa",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_wa, (FcChar16 *) numbers_wa } },
-    { (FcChar8 *) "yi",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_he, (FcChar16 *) numbers_he } },
-    { (FcChar8 *) "zh-cn",
-      { 1, FcTrue, 82, (FcCharLeaf **) leaves_zh_cn, (FcChar16 *) numbers_zh_cn } },
-    { (FcChar8 *) "zh-tw",
-      { 1, FcTrue, 84, (FcCharLeaf **) leaves_zh_tw, (FcChar16 *) numbers_zh_tw } },
-    { (FcChar8 *) "chr",
-      { 1, FcTrue, 1, (FcCharLeaf **) leaves_chr, (FcChar16 *) numbers_chr } },
-};
-
+#include "../fc-lang/fclang.h"
 
 #define NUM_LANG_CHAR_SET      (sizeof (fcLangCharSets) / sizeof (fcLangCharSets[0]))
                                                 
 FcBool
-FcFreeTypeSetLang (FcPattern *pattern, FcCharSet *charset)
+FcFreeTypeSetLang (FcPattern       *pattern, 
+                  FcCharSet        *charset, 
+                  const FcChar8    *exclusiveLang)
 {
-    int                i;
-    FcChar32   missing;
+    int                    i;
+    FcChar32       missing;
+    FcBool         hasLang = FcFalse;
+    const FcCharSet *exclusiveCharset = 0;
 
+    if (exclusiveLang)
+       exclusiveCharset = FcCharSetForLang (exclusiveLang);
     for (i = 0; i < NUM_LANG_CHAR_SET; i++)
     {
+       /*
+        * Check for Han charsets to make fonts
+        * which advertise support for a single language
+        * not support other Han languages
+        */
+       if (exclusiveCharset &&
+           FcFreeTypeIsExclusiveLang (fcLangCharSets[i].lang) &&
+           fcLangCharSets[i].charset.leaves != exclusiveCharset->leaves)
+       {
+           continue;
+       }
        missing = FcCharSetSubtractCount (&fcLangCharSets[i].charset, charset);
         if (FcDebug() & FC_DBG_SCANV)
            printf ("%s(%d) ", fcLangCharSets[i].lang, missing);
-       if (!missing && !FcFreeTypeHasLang (pattern, fcLangCharSets[i].lang))
+       if (!missing)
+       {
            if (!FcPatternAddString (pattern, FC_LANG, fcLangCharSets[i].lang))
                return FcFalse;
+           hasLang = FcTrue;
+       }
     }
+    /*
+     * Make sure it has a lang entry
+     */
+    if (!hasLang)
+       if (!FcPatternAddString (pattern, FC_LANG, (FcChar8 *) "x-unknown"))
+           return FcFalse;
+
     if (FcDebug() & FC_DBG_SCANV)
        printf ("\n");
     return FcTrue;