Update data files and tests to Unicode 5.2. Bug 528359, r=Masatoshi Kimura <YV03354@nifty.ne.jp>
authorSimon Montagu <smontagu@smontagu.org>
Mon, 21 Dec 2009 01:20:35 -0800
changeset 36500 54f5cef111a78916ef48d7d7d2153c9c2e3be52f
parent 36499 4ed95e61ee01945527c6851486361f2056f740a4
child 36501 19d6e3e6adbf1f52ee38ddc000b6828e42c9be4f
push id1
push userroot
push dateTue, 26 Apr 2011 22:38:44 +0000
treeherdermozilla-beta@bfdb6e623a36 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersMasatoshi
bugs528359
milestone1.9.3a1pre
Update data files and tests to Unicode 5.2. Bug 528359, r=Masatoshi Kimura <YV03354@nifty.ne.jp>
intl/unicharutil/public/nsIUGenCategory.h
intl/unicharutil/src/casetable.h
intl/unicharutil/src/cattable.h
intl/unicharutil/tables/transliterate.properties
intl/unicharutil/tests/unit/test_bug_427350_1.js
intl/unicharutil/tools/gencattable.pl
intl/unicharutil/util/bidicattable.h
intl/unicharutil/util/genbidicattable.pl
intl/unicharutil/util/symmtable.h
layout/generic/punct_marks.x-ccmap
layout/reftests/text-transform/all-lower-ref.html
layout/reftests/text-transform/all-lower.html
layout/reftests/text-transform/all-title-ref.html
layout/reftests/text-transform/all-title.html
layout/reftests/text-transform/all-upper-ref.html
layout/reftests/text-transform/all-upper.html
--- a/intl/unicharutil/public/nsIUGenCategory.h
+++ b/intl/unicharutil/public/nsIUGenCategory.h
@@ -49,17 +49,17 @@
 
 class nsIUGenCategory : public nsISupports {
 
 public: 
 
   NS_DECLARE_STATIC_IID_ACCESSOR(NS_IUGENCATEGORY_IID)
 
    /**
-    *  Read http://www.unicode.org/Public/UNIDATA/UCD.html#General_Category_Values
+    *  Read http://unicode.org/reports/tr44/#General_Category_Values
     *  for the detailed definition of the following categories
     */
    typedef enum {
      kUndefined    = 0,
      kMark         = 1, // Mn, Mc, and Me
      kNumber       = 2, // Nd, Nl, and No 
      kSeparator    = 3, // Zs, Zl, and Zp
      kOther        = 4, // Cc, Cf, Cs, Co, and Cn
--- a/intl/unicharutil/src/casetable.h
+++ b/intl/unicharutil/src/casetable.h
@@ -86,20 +86,23 @@ static const PRUint16 gToUpper[] =
        0x01ce, ((0x0e << 8) | 0x02), 0xffff  ,
        0x01dd, ((0x00 << 8) | 0x00), 0xffb1  ,
        0x01df, ((0x10 << 8) | 0x02), 0xffff  ,
        0x01f2, ((0x00 << 8) | 0x00), 0xffff  ,
        0x01f3, ((0x00 << 8) | 0x00), 0xfffe  ,
        0x01f5, ((0x04 << 8) | 0x04), 0xffff  ,
        0x01fb, ((0x24 << 8) | 0x02), 0xffff  ,
        0x0223, ((0x10 << 8) | 0x02), 0xffff  ,
-       0x023c, ((0x06 << 8) | 0x06), 0xffff  ,
-       0x0247, ((0x08 << 8) | 0x02), 0xffff  ,
+       0x023c, ((0x00 << 8) | 0x00), 0xffff  ,
+       0x023f, ((0x01 << 8) | 0x01), 0x2a3f  ,
+       0x0242, ((0x05 << 8) | 0x05), 0xffff  ,
+       0x0249, ((0x06 << 8) | 0x02), 0xffff  ,
        0x0250, ((0x00 << 8) | 0x00), 0x2a1f  ,
        0x0251, ((0x00 << 8) | 0x00), 0x2a1c  ,
+       0x0252, ((0x00 << 8) | 0x00), 0x2a1e  ,
        0x0253, ((0x00 << 8) | 0x00), 0xff2e  ,
        0x0254, ((0x00 << 8) | 0x00), 0xff32  ,
        0x0256, ((0x01 << 8) | 0x01), 0xff33  ,
        0x0259, ((0x00 << 8) | 0x00), 0xff36  ,
        0x025b, ((0x00 << 8) | 0x00), 0xff35  ,
        0x0260, ((0x00 << 8) | 0x00), 0xff33  ,
        0x0263, ((0x00 << 8) | 0x00), 0xff31  ,
        0x0268, ((0x00 << 8) | 0x00), 0xff2f  ,
@@ -139,17 +142,17 @@ static const PRUint16 gToUpper[] =
        0x03f5, ((0x00 << 8) | 0x00), 0xffa0  ,
        0x03f8, ((0x03 << 8) | 0x03), 0xffff  ,
        0x0430, ((0x1f << 8) | 0x01), 0xffe0  ,
        0x0450, ((0x0f << 8) | 0x01), 0xffb0  ,
        0x0461, ((0x20 << 8) | 0x02), 0xffff  ,
        0x048b, ((0x34 << 8) | 0x02), 0xffff  ,
        0x04c2, ((0x0c << 8) | 0x02), 0xffff  ,
        0x04cf, ((0x00 << 8) | 0x00), 0xfff1  ,
-       0x04d1, ((0x52 << 8) | 0x02), 0xffff  ,
+       0x04d1, ((0x54 << 8) | 0x02), 0xffff  ,
        0x0561, ((0x25 << 8) | 0x01), 0xffd0  ,
        0x1d79, ((0x00 << 8) | 0x00), 0x8a04  ,
        0x1d7d, ((0x00 << 8) | 0x00), 0x0ee6  ,
        0x1e01, ((0x94 << 8) | 0x02), 0xffff  ,
        0x1e9b, ((0x00 << 8) | 0x00), 0xffc5  ,
        0x1ea1, ((0x5e << 8) | 0x02), 0xffff  ,
        0x1f00, ((0x07 << 8) | 0x01), 0x0008  ,
        0x1f10, ((0x05 << 8) | 0x01), 0x0008  ,
@@ -181,29 +184,30 @@ static const PRUint16 gToUpper[] =
        0x24d0, ((0x19 << 8) | 0x01), 0xffe6  ,
        0x2c30, ((0x2e << 8) | 0x01), 0xffd0  ,
        0x2c61, ((0x00 << 8) | 0x00), 0xffff  ,
        0x2c65, ((0x00 << 8) | 0x00), 0xd5d5  ,
        0x2c66, ((0x00 << 8) | 0x00), 0xd5d8  ,
        0x2c68, ((0x04 << 8) | 0x02), 0xffff  ,
        0x2c73, ((0x03 << 8) | 0x03), 0xffff  ,
        0x2c81, ((0x62 << 8) | 0x02), 0xffff  ,
+       0x2cec, ((0x02 << 8) | 0x02), 0xffff  ,
        0x2d00, ((0x25 << 8) | 0x01), 0xe3a0  ,
        0xa641, ((0x1e << 8) | 0x02), 0xffff  ,
        0xa663, ((0x0a << 8) | 0x02), 0xffff  ,
        0xa681, ((0x16 << 8) | 0x02), 0xffff  ,
        0xa723, ((0x0c << 8) | 0x02), 0xffff  ,
        0xa733, ((0x3c << 8) | 0x02), 0xffff  ,
        0xa77a, ((0x02 << 8) | 0x02), 0xffff  ,
        0xa77f, ((0x08 << 8) | 0x02), 0xffff  ,
        0xa78c, ((0x00 << 8) | 0x00), 0xffff  ,
        0xff41, ((0x19 << 8) | 0x01), 0xffe0   
 };
 
-static const PRUint32 gToUpperItems = 145;
+static const PRUint32 gToUpperItems = 149;
 
 static const PRUint16 gToLower[] = 
 { /*   From    To             Every   Diff   */ 
        0x0041, ((0x19 << 8) | 0x01), 0x0020  ,
        0x00c0, ((0x16 << 8) | 0x01), 0x0020  ,
        0x00d8, ((0x06 << 8) | 0x01), 0x0020  ,
        0x0100, ((0x2e << 8) | 0x02), 0x0001  ,
        0x0130, ((0x00 << 8) | 0x00), 0xff39  ,
@@ -280,17 +284,17 @@ static const PRUint16 gToLower[] =
        0x03fa, ((0x00 << 8) | 0x00), 0x0001  ,
        0x03fd, ((0x02 << 8) | 0x01), 0xff7e  ,
        0x0400, ((0x0f << 8) | 0x01), 0x0050  ,
        0x0410, ((0x1f << 8) | 0x01), 0x0020  ,
        0x0460, ((0x20 << 8) | 0x02), 0x0001  ,
        0x048a, ((0x34 << 8) | 0x02), 0x0001  ,
        0x04c0, ((0x00 << 8) | 0x00), 0x000f  ,
        0x04c1, ((0x0c << 8) | 0x02), 0x0001  ,
-       0x04d0, ((0x52 << 8) | 0x02), 0x0001  ,
+       0x04d0, ((0x54 << 8) | 0x02), 0x0001  ,
        0x0531, ((0x25 << 8) | 0x01), 0x0030  ,
        0x10a0, ((0x25 << 8) | 0x01), 0x1c60  ,
        0x1e00, ((0x94 << 8) | 0x02), 0x0001  ,
        0x1e9e, ((0x00 << 8) | 0x00), 0xe241  ,
        0x1ea0, ((0x5e << 8) | 0x02), 0x0001  ,
        0x1f08, ((0x07 << 8) | 0x01), 0xfff8  ,
        0x1f18, ((0x05 << 8) | 0x01), 0xfff8  ,
        0x1f28, ((0x07 << 8) | 0x01), 0xfff8  ,
@@ -325,31 +329,34 @@ static const PRUint16 gToLower[] =
        0x2c60, ((0x00 << 8) | 0x00), 0x0001  ,
        0x2c62, ((0x00 << 8) | 0x00), 0xd609  ,
        0x2c63, ((0x00 << 8) | 0x00), 0xf11a  ,
        0x2c64, ((0x00 << 8) | 0x00), 0xd619  ,
        0x2c67, ((0x04 << 8) | 0x02), 0x0001  ,
        0x2c6d, ((0x00 << 8) | 0x00), 0xd5e4  ,
        0x2c6e, ((0x00 << 8) | 0x00), 0xd603  ,
        0x2c6f, ((0x00 << 8) | 0x00), 0xd5e1  ,
+       0x2c70, ((0x00 << 8) | 0x00), 0xd5e2  ,
        0x2c72, ((0x03 << 8) | 0x03), 0x0001  ,
+       0x2c7e, ((0x01 << 8) | 0x01), 0xd5c1  ,
        0x2c80, ((0x62 << 8) | 0x02), 0x0001  ,
+       0x2ceb, ((0x02 << 8) | 0x02), 0x0001  ,
        0xa640, ((0x1e << 8) | 0x02), 0x0001  ,
        0xa662, ((0x0a << 8) | 0x02), 0x0001  ,
        0xa680, ((0x16 << 8) | 0x02), 0x0001  ,
        0xa722, ((0x0c << 8) | 0x02), 0x0001  ,
        0xa732, ((0x3c << 8) | 0x02), 0x0001  ,
        0xa779, ((0x02 << 8) | 0x02), 0x0001  ,
        0xa77d, ((0x00 << 8) | 0x00), 0x75fc  ,
        0xa77e, ((0x08 << 8) | 0x02), 0x0001  ,
        0xa78b, ((0x00 << 8) | 0x00), 0x0001  ,
        0xff21, ((0x19 << 8) | 0x01), 0x0020   
 };
 
-static const PRUint32 gToLowerItems = 140;
+static const PRUint32 gToLowerItems = 143;
 
 static const PRUint32 gCaseBlocks [8] = {
 0xE001003F,
 0x00003012,
 0x00000000,
 0x00000000,
 0x00000000,
 0x000000C0,
--- a/intl/unicharutil/src/cattable.h
+++ b/intl/unicharutil/src/cattable.h
@@ -35,17 +35,17 @@
  *
  * ***** END LICENSE BLOCK ***** */
 /* 
     DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
     mozilla/intl/unicharutil/tools/gencattable.pl
  */
 #include "nscore.h" 
 
-static const PRUint8 gGenCatIdx1[256] = {
+static const PRUint8 gGenCatIdx1[928] = {
       0,  // U+000000 - U+000007 : 0x44444444
       0,  // U+000008 - U+00000F : 0x44444444
       0,  // U+000010 - U+000017 : 0x44444444
       0,  // U+000018 - U+00001F : 0x44444444
       1,  // U+000020 - U+000027 : 0x66676663
       2,  // U+000028 - U+00002F : 0x66667666
       3,  // U+000030 - U+000037 : 0x22222222
       4,  // U+000038 - U+00003F : 0x67776622
@@ -200,17 +200,17 @@ static const PRUint8 gGenCatIdx1[256] = 
       6,  // U+0004E0 - U+0004E7 : 0x55555555
       6,  // U+0004E8 - U+0004EF : 0x55555555
       6,  // U+0004F0 - U+0004F7 : 0x55555555
       6,  // U+0004F8 - U+0004FF : 0x55555555
       6,  // U+000500 - U+000507 : 0x55555555
       6,  // U+000508 - U+00050F : 0x55555555
       6,  // U+000510 - U+000517 : 0x55555555
       6,  // U+000518 - U+00051F : 0x55555555
-     29,  // U+000520 - U+000527 : 0x00005555
+     29,  // U+000520 - U+000527 : 0x00555555
      30,  // U+000528 - U+00052F : 0x00000000
      31,  // U+000530 - U+000537 : 0x55555550
       6,  // U+000538 - U+00053F : 0x55555555
       6,  // U+000540 - U+000547 : 0x55555555
       6,  // U+000548 - U+00054F : 0x55555555
      32,  // U+000550 - U+000557 : 0x05555555
      33,  // U+000558 - U+00055F : 0x66666650
      31,  // U+000560 - U+000567 : 0x55555550
@@ -292,372 +292,401 @@ static const PRUint8 gGenCatIdx1[256] = 
       3,  // U+0007C0 - U+0007C7 : 0x22222222
      58,  // U+0007C8 - U+0007CF : 0x55555522
       6,  // U+0007D0 - U+0007D7 : 0x55555555
       6,  // U+0007D8 - U+0007DF : 0x55555555
       6,  // U+0007E0 - U+0007E7 : 0x55555555
      43,  // U+0007E8 - U+0007EF : 0x11111555
      59,  // U+0007F0 - U+0007F7 : 0x67551111
      60,  // U+0007F8 - U+0007FF : 0x00000566
-};
-
-static const PRUint8 gGenCatIdx2[624] = {
-     61,  // U+000900 - U+000907 : 0x55551110
+      6,  // U+000800 - U+000807 : 0x55555555
+      6,  // U+000808 - U+00080F : 0x55555555
+     56,  // U+000810 - U+000817 : 0x11555555
+     61,  // U+000818 - U+00081F : 0x11111511
+     62,  // U+000820 - U+000827 : 0x11151111
+     63,  // U+000828 - U+00082F : 0x00111115
+     52,  // U+000830 - U+000837 : 0x66666666
+     64,  // U+000838 - U+00083F : 0x06666666
+     30,  // U+000840 - U+000847 : 0x00000000
+     30,  // U+000848 - U+00084F : 0x00000000
+     30,  // U+000850 - U+000857 : 0x00000000
+     30,  // U+000858 - U+00085F : 0x00000000
+     30,  // U+000860 - U+000867 : 0x00000000
+     30,  // U+000868 - U+00086F : 0x00000000
+     30,  // U+000870 - U+000877 : 0x00000000
+     30,  // U+000878 - U+00087F : 0x00000000
+     30,  // U+000880 - U+000887 : 0x00000000
+     30,  // U+000888 - U+00088F : 0x00000000
+     30,  // U+000890 - U+000897 : 0x00000000
+     30,  // U+000898 - U+00089F : 0x00000000
+     30,  // U+0008A0 - U+0008A7 : 0x00000000
+     30,  // U+0008A8 - U+0008AF : 0x00000000
+     30,  // U+0008B0 - U+0008B7 : 0x00000000
+     30,  // U+0008B8 - U+0008BF : 0x00000000
+     30,  // U+0008C0 - U+0008C7 : 0x00000000
+     30,  // U+0008C8 - U+0008CF : 0x00000000
+     30,  // U+0008D0 - U+0008D7 : 0x00000000
+     30,  // U+0008D8 - U+0008DF : 0x00000000
+     30,  // U+0008E0 - U+0008E7 : 0x00000000
+     30,  // U+0008E8 - U+0008EF : 0x00000000
+     30,  // U+0008F0 - U+0008F7 : 0x00000000
+     30,  // U+0008F8 - U+0008FF : 0x00000000
+     65,  // U+000900 - U+000907 : 0x55551111
       6,  // U+000908 - U+00090F : 0x55555555
       6,  // U+000910 - U+000917 : 0x55555555
       6,  // U+000918 - U+00091F : 0x55555555
       6,  // U+000920 - U+000927 : 0x55555555
       6,  // U+000928 - U+00092F : 0x55555555
       6,  // U+000930 - U+000937 : 0x55555555
-     62,  // U+000938 - U+00093F : 0x11510055
+     66,  // U+000938 - U+00093F : 0x11510055
      20,  // U+000940 - U+000947 : 0x11111111
-     63,  // U+000948 - U+00094F : 0x00111111
-     64,  // U+000950 - U+000957 : 0x00011115
+     44,  // U+000948 - U+00094F : 0x01111111
+     63,  // U+000950 - U+000957 : 0x00111115
       6,  // U+000958 - U+00095F : 0x55555555
-     65,  // U+000960 - U+000967 : 0x22661155
+     67,  // U+000960 - U+000967 : 0x22661155
       3,  // U+000968 - U+00096F : 0x22222222
-     66,  // U+000970 - U+000977 : 0x00000556
-     67,  // U+000978 - U+00097F : 0x55555000
-     68,  // U+000980 - U+000987 : 0x55501110
-     69,  // U+000988 - U+00098F : 0x50055555
-     70,  // U+000990 - U+000997 : 0x55555005
+     68,  // U+000970 - U+000977 : 0x00000556
+     31,  // U+000978 - U+00097F : 0x55555550
+     69,  // U+000980 - U+000987 : 0x55501110
+     70,  // U+000988 - U+00098F : 0x50055555
+     71,  // U+000990 - U+000997 : 0x55555005
       6,  // U+000998 - U+00099F : 0x55555555
       6,  // U+0009A0 - U+0009A7 : 0x55555555
-     71,  // U+0009A8 - U+0009AF : 0x55555505
-     72,  // U+0009B0 - U+0009B7 : 0x55000505
-     62,  // U+0009B8 - U+0009BF : 0x11510055
-     73,  // U+0009C0 - U+0009C7 : 0x10011111
-     74,  // U+0009C8 - U+0009CF : 0x05111001
-     75,  // U+0009D0 - U+0009D7 : 0x10000000
-     76,  // U+0009D8 - U+0009DF : 0x50550000
-     77,  // U+0009E0 - U+0009E7 : 0x22001155
+     72,  // U+0009A8 - U+0009AF : 0x55555505
+     73,  // U+0009B0 - U+0009B7 : 0x55000505
+     66,  // U+0009B8 - U+0009BF : 0x11510055
+     74,  // U+0009C0 - U+0009C7 : 0x10011111
+     75,  // U+0009C8 - U+0009CF : 0x05111001
+     76,  // U+0009D0 - U+0009D7 : 0x10000000
+     77,  // U+0009D8 - U+0009DF : 0x50550000
+     78,  // U+0009E0 - U+0009E7 : 0x22001155
       3,  // U+0009E8 - U+0009EF : 0x22222222
-     78,  // U+0009F0 - U+0009F7 : 0x22227755
-     79,  // U+0009F8 - U+0009FF : 0x00000722
-     68,  // U+000A00 - U+000A07 : 0x55501110
-     80,  // U+000A08 - U+000A0F : 0x50000555
-     70,  // U+000A10 - U+000A17 : 0x55555005
+     79,  // U+0009F0 - U+0009F7 : 0x22227755
+     80,  // U+0009F8 - U+0009FF : 0x00007722
+     69,  // U+000A00 - U+000A07 : 0x55501110
+     81,  // U+000A08 - U+000A0F : 0x50000555
+     71,  // U+000A10 - U+000A17 : 0x55555005
       6,  // U+000A18 - U+000A1F : 0x55555555
       6,  // U+000A20 - U+000A27 : 0x55555555
-     71,  // U+000A28 - U+000A2F : 0x55555505
-     81,  // U+000A30 - U+000A37 : 0x05505505
-     82,  // U+000A38 - U+000A3F : 0x11010055
-     83,  // U+000A40 - U+000A47 : 0x10000111
-     84,  // U+000A48 - U+000A4F : 0x00111001
-     85,  // U+000A50 - U+000A57 : 0x00000010
-     86,  // U+000A58 - U+000A5F : 0x05055550
-     87,  // U+000A60 - U+000A67 : 0x22000000
+     72,  // U+000A28 - U+000A2F : 0x55555505
+     82,  // U+000A30 - U+000A37 : 0x05505505
+     83,  // U+000A38 - U+000A3F : 0x11010055
+     84,  // U+000A40 - U+000A47 : 0x10000111
+     85,  // U+000A48 - U+000A4F : 0x00111001
+     86,  // U+000A50 - U+000A57 : 0x00000010
+     87,  // U+000A58 - U+000A5F : 0x05055550
+     88,  // U+000A60 - U+000A67 : 0x22000000
       3,  // U+000A68 - U+000A6F : 0x22222222
-     88,  // U+000A70 - U+000A77 : 0x00155511
+     89,  // U+000A70 - U+000A77 : 0x00155511
      30,  // U+000A78 - U+000A7F : 0x00000000
-     68,  // U+000A80 - U+000A87 : 0x55501110
-     89,  // U+000A88 - U+000A8F : 0x50555555
+     69,  // U+000A80 - U+000A87 : 0x55501110
+     90,  // U+000A88 - U+000A8F : 0x50555555
      25,  // U+000A90 - U+000A97 : 0x55555055
       6,  // U+000A98 - U+000A9F : 0x55555555
       6,  // U+000AA0 - U+000AA7 : 0x55555555
-     71,  // U+000AA8 - U+000AAF : 0x55555505
-     90,  // U+000AB0 - U+000AB7 : 0x55505505
-     62,  // U+000AB8 - U+000ABF : 0x11510055
-     91,  // U+000AC0 - U+000AC7 : 0x10111111
-     92,  // U+000AC8 - U+000ACF : 0x00111011
-     93,  // U+000AD0 - U+000AD7 : 0x00000005
+     72,  // U+000AA8 - U+000AAF : 0x55555505
+     91,  // U+000AB0 - U+000AB7 : 0x55505505
+     66,  // U+000AB8 - U+000ABF : 0x11510055
+     92,  // U+000AC0 - U+000AC7 : 0x10111111
+     93,  // U+000AC8 - U+000ACF : 0x00111011
+     94,  // U+000AD0 - U+000AD7 : 0x00000005
      30,  // U+000AD8 - U+000ADF : 0x00000000
-     77,  // U+000AE0 - U+000AE7 : 0x22001155
+     78,  // U+000AE0 - U+000AE7 : 0x22001155
       3,  // U+000AE8 - U+000AEF : 0x22222222
-     94,  // U+000AF0 - U+000AF7 : 0x00000070
+     95,  // U+000AF0 - U+000AF7 : 0x00000070
      30,  // U+000AF8 - U+000AFF : 0x00000000
-     68,  // U+000B00 - U+000B07 : 0x55501110
-     69,  // U+000B08 - U+000B0F : 0x50055555
-     70,  // U+000B10 - U+000B17 : 0x55555005
+     69,  // U+000B00 - U+000B07 : 0x55501110
+     70,  // U+000B08 - U+000B0F : 0x50055555
+     71,  // U+000B10 - U+000B17 : 0x55555005
       6,  // U+000B18 - U+000B1F : 0x55555555
       6,  // U+000B20 - U+000B27 : 0x55555555
-     71,  // U+000B28 - U+000B2F : 0x55555505
-     90,  // U+000B30 - U+000B37 : 0x55505505
-     62,  // U+000B38 - U+000B3F : 0x11510055
-     73,  // U+000B40 - U+000B47 : 0x10011111
-     84,  // U+000B48 - U+000B4F : 0x00111001
-     95,  // U+000B50 - U+000B57 : 0x11000000
-     76,  // U+000B58 - U+000B5F : 0x50550000
-     77,  // U+000B60 - U+000B67 : 0x22001155
+     72,  // U+000B28 - U+000B2F : 0x55555505
+     91,  // U+000B30 - U+000B37 : 0x55505505
+     66,  // U+000B38 - U+000B3F : 0x11510055
+     74,  // U+000B40 - U+000B47 : 0x10011111
+     85,  // U+000B48 - U+000B4F : 0x00111001
+     96,  // U+000B50 - U+000B57 : 0x11000000
+     77,  // U+000B58 - U+000B5F : 0x50550000
+     78,  // U+000B60 - U+000B67 : 0x22001155
       3,  // U+000B68 - U+000B6F : 0x22222222
-     96,  // U+000B70 - U+000B77 : 0x00000057
+     97,  // U+000B70 - U+000B77 : 0x00000057
      30,  // U+000B78 - U+000B7F : 0x00000000
-     97,  // U+000B80 - U+000B87 : 0x55505100
-     98,  // U+000B88 - U+000B8F : 0x55000555
-     99,  // U+000B90 - U+000B97 : 0x00555505
-    100,  // U+000B98 - U+000B9F : 0x55050550
-    101,  // U+000BA0 - U+000BA7 : 0x00055000
-     98,  // U+000BA8 - U+000BAF : 0x55000555
+     98,  // U+000B80 - U+000B87 : 0x55505100
+     99,  // U+000B88 - U+000B8F : 0x55000555
+    100,  // U+000B90 - U+000B97 : 0x00555505
+    101,  // U+000B98 - U+000B9F : 0x55050550
+    102,  // U+000BA0 - U+000BA7 : 0x00055000
+     99,  // U+000BA8 - U+000BAF : 0x55000555
       6,  // U+000BB0 - U+000BB7 : 0x55555555
-    102,  // U+000BB8 - U+000BBF : 0x11000055
-    103,  // U+000BC0 - U+000BC7 : 0x11000111
-    104,  // U+000BC8 - U+000BCF : 0x00111101
-    105,  // U+000BD0 - U+000BD7 : 0x10000005
+    103,  // U+000BB8 - U+000BBF : 0x11000055
+    104,  // U+000BC0 - U+000BC7 : 0x11000111
+    105,  // U+000BC8 - U+000BCF : 0x00111101
+    106,  // U+000BD0 - U+000BD7 : 0x10000005
      30,  // U+000BD8 - U+000BDF : 0x00000000
-     87,  // U+000BE0 - U+000BE7 : 0x22000000
+     88,  // U+000BE0 - U+000BE7 : 0x22000000
       3,  // U+000BE8 - U+000BEF : 0x22222222
-    106,  // U+000BF0 - U+000BF7 : 0x77777222
-    107,  // U+000BF8 - U+000BFF : 0x00000777
-     68,  // U+000C00 - U+000C07 : 0x55501110
-    108,  // U+000C08 - U+000C0F : 0x55055555
-     71,  // U+000C10 - U+000C17 : 0x55555505
+    107,  // U+000BF0 - U+000BF7 : 0x77777222
+    108,  // U+000BF8 - U+000BFF : 0x00000777
+     69,  // U+000C00 - U+000C07 : 0x55501110
+    109,  // U+000C08 - U+000C0F : 0x55055555
+     72,  // U+000C10 - U+000C17 : 0x55555505
       6,  // U+000C18 - U+000C1F : 0x55555555
       6,  // U+000C20 - U+000C27 : 0x55555555
-     71,  // U+000C28 - U+000C2F : 0x55555505
-    109,  // U+000C30 - U+000C37 : 0x55505555
-    110,  // U+000C38 - U+000C3F : 0x11500055
-    111,  // U+000C40 - U+000C47 : 0x11011111
-    104,  // U+000C48 - U+000C4F : 0x00111101
-    112,  // U+000C50 - U+000C57 : 0x01100000
-    113,  // U+000C58 - U+000C5F : 0x00000055
-     77,  // U+000C60 - U+000C67 : 0x22001155
+     72,  // U+000C28 - U+000C2F : 0x55555505
+    110,  // U+000C30 - U+000C37 : 0x55505555
+    111,  // U+000C38 - U+000C3F : 0x11500055
+    112,  // U+000C40 - U+000C47 : 0x11011111
+    105,  // U+000C48 - U+000C4F : 0x00111101
+    113,  // U+000C50 - U+000C57 : 0x01100000
+    114,  // U+000C58 - U+000C5F : 0x00000055
+     78,  // U+000C60 - U+000C67 : 0x22001155
       3,  // U+000C68 - U+000C6F : 0x22222222
      30,  // U+000C70 - U+000C77 : 0x00000000
-    114,  // U+000C78 - U+000C7F : 0x72222222
-    115,  // U+000C80 - U+000C87 : 0x55501100
-    108,  // U+000C88 - U+000C8F : 0x55055555
-     71,  // U+000C90 - U+000C97 : 0x55555505
+    115,  // U+000C78 - U+000C7F : 0x72222222
+    116,  // U+000C80 - U+000C87 : 0x55501100
+    109,  // U+000C88 - U+000C8F : 0x55055555
+     72,  // U+000C90 - U+000C97 : 0x55555505
       6,  // U+000C98 - U+000C9F : 0x55555555
       6,  // U+000CA0 - U+000CA7 : 0x55555555
-     71,  // U+000CA8 - U+000CAF : 0x55555505
-    109,  // U+000CB0 - U+000CB7 : 0x55505555
-     62,  // U+000CB8 - U+000CBF : 0x11510055
-    111,  // U+000CC0 - U+000CC7 : 0x11011111
-    104,  // U+000CC8 - U+000CCF : 0x00111101
-    112,  // U+000CD0 - U+000CD7 : 0x01100000
-    116,  // U+000CD8 - U+000CDF : 0x05000000
-     77,  // U+000CE0 - U+000CE7 : 0x22001155
+     72,  // U+000CA8 - U+000CAF : 0x55555505
+    110,  // U+000CB0 - U+000CB7 : 0x55505555
+     66,  // U+000CB8 - U+000CBF : 0x11510055
+    112,  // U+000CC0 - U+000CC7 : 0x11011111
+    105,  // U+000CC8 - U+000CCF : 0x00111101
+    113,  // U+000CD0 - U+000CD7 : 0x01100000
+    117,  // U+000CD8 - U+000CDF : 0x05000000
+     78,  // U+000CE0 - U+000CE7 : 0x22001155
       3,  // U+000CE8 - U+000CEF : 0x22222222
-    117,  // U+000CF0 - U+000CF7 : 0x00000770
+    118,  // U+000CF0 - U+000CF7 : 0x00000770
      30,  // U+000CF8 - U+000CFF : 0x00000000
-    115,  // U+000D00 - U+000D07 : 0x55501100
-    108,  // U+000D08 - U+000D0F : 0x55055555
-     71,  // U+000D10 - U+000D17 : 0x55555505
+    116,  // U+000D00 - U+000D07 : 0x55501100
+    109,  // U+000D08 - U+000D0F : 0x55055555
+     72,  // U+000D10 - U+000D17 : 0x55555505
       6,  // U+000D18 - U+000D1F : 0x55555555
       6,  // U+000D20 - U+000D27 : 0x55555555
-     71,  // U+000D28 - U+000D2F : 0x55555505
+     72,  // U+000D28 - U+000D2F : 0x55555505
       6,  // U+000D30 - U+000D37 : 0x55555555
-    110,  // U+000D38 - U+000D3F : 0x11500055
-    111,  // U+000D40 - U+000D47 : 0x11011111
-    104,  // U+000D48 - U+000D4F : 0x00111101
-     75,  // U+000D50 - U+000D57 : 0x10000000
+    111,  // U+000D38 - U+000D3F : 0x11500055
+    112,  // U+000D40 - U+000D47 : 0x11011111
+    105,  // U+000D48 - U+000D4F : 0x00111101
+     76,  // U+000D50 - U+000D57 : 0x10000000
      30,  // U+000D58 - U+000D5F : 0x00000000
-     77,  // U+000D60 - U+000D67 : 0x22001155
+     78,  // U+000D60 - U+000D67 : 0x22001155
       3,  // U+000D68 - U+000D6F : 0x22222222
-    118,  // U+000D70 - U+000D77 : 0x00222222
-    119,  // U+000D78 - U+000D7F : 0x55555570
-    115,  // U+000D80 - U+000D87 : 0x55501100
+    119,  // U+000D70 - U+000D77 : 0x00222222
+    120,  // U+000D78 - U+000D7F : 0x55555570
+    116,  // U+000D80 - U+000D87 : 0x55501100
       6,  // U+000D88 - U+000D8F : 0x55555555
      32,  // U+000D90 - U+000D97 : 0x05555555
-    120,  // U+000D98 - U+000D9F : 0x55555500
+    121,  // U+000D98 - U+000D9F : 0x55555500
       6,  // U+000DA0 - U+000DA7 : 0x55555555
       6,  // U+000DA8 - U+000DAF : 0x55555555
      25,  // U+000DB0 - U+000DB7 : 0x55555055
-    121,  // U+000DB8 - U+000DBF : 0x00505555
+    122,  // U+000DB8 - U+000DBF : 0x00505555
      32,  // U+000DC0 - U+000DC7 : 0x05555555
-    122,  // U+000DC8 - U+000DCF : 0x10000100
-    123,  // U+000DD0 - U+000DD7 : 0x01011111
+    123,  // U+000DC8 - U+000DCF : 0x10000100
+    124,  // U+000DD0 - U+000DD7 : 0x01011111
      20,  // U+000DD8 - U+000DDF : 0x11111111
      30,  // U+000DE0 - U+000DE7 : 0x00000000
      30,  // U+000DE8 - U+000DEF : 0x00000000
-    124,  // U+000DF0 - U+000DF7 : 0x00061100
+    125,  // U+000DF0 - U+000DF7 : 0x00061100
      30,  // U+000DF8 - U+000DFF : 0x00000000
      31,  // U+000E00 - U+000E07 : 0x55555550
       6,  // U+000E08 - U+000E0F : 0x55555555
       6,  // U+000E10 - U+000E17 : 0x55555555
       6,  // U+000E18 - U+000E1F : 0x55555555
       6,  // U+000E20 - U+000E27 : 0x55555555
       6,  // U+000E28 - U+000E2F : 0x55555555
-    125,  // U+000E30 - U+000E37 : 0x11115515
-    126,  // U+000E38 - U+000E3F : 0x70000111
-    127,  // U+000E40 - U+000E47 : 0x15555555
-    128,  // U+000E48 - U+000E4F : 0x61111111
+    126,  // U+000E30 - U+000E37 : 0x11115515
+    127,  // U+000E38 - U+000E3F : 0x70000111
+    128,  // U+000E40 - U+000E47 : 0x15555555
+    129,  // U+000E48 - U+000E4F : 0x61111111
       3,  // U+000E50 - U+000E57 : 0x22222222
-    129,  // U+000E58 - U+000E5F : 0x00006622
+    130,  // U+000E58 - U+000E5F : 0x00006622
      30,  // U+000E60 - U+000E67 : 0x00000000
      30,  // U+000E68 - U+000E6F : 0x00000000
      30,  // U+000E70 - U+000E77 : 0x00000000
      30,  // U+000E78 - U+000E7F : 0x00000000
-    130,  // U+000E80 - U+000E87 : 0x50050550
-    131,  // U+000E88 - U+000E8F : 0x00500505
-    132,  // U+000E90 - U+000E97 : 0x55550000
+    131,  // U+000E80 - U+000E87 : 0x50050550
+    132,  // U+000E88 - U+000E8F : 0x00500505
+    133,  // U+000E90 - U+000E97 : 0x55550000
      31,  // U+000E98 - U+000E9F : 0x55555550
-    133,  // U+000EA0 - U+000EA7 : 0x50505550
-    134,  // U+000EA8 - U+000EAF : 0x55505500
-    125,  // U+000EB0 - U+000EB7 : 0x11115515
-    135,  // U+000EB8 - U+000EBF : 0x00511011
-    136,  // U+000EC0 - U+000EC7 : 0x05055555
-     63,  // U+000EC8 - U+000ECF : 0x00111111
+    134,  // U+000EA0 - U+000EA7 : 0x50505550
+    135,  // U+000EA8 - U+000EAF : 0x55505500
+    126,  // U+000EB0 - U+000EB7 : 0x11115515
+    136,  // U+000EB8 - U+000EBF : 0x00511011
+    137,  // U+000EC0 - U+000EC7 : 0x05055555
+    138,  // U+000EC8 - U+000ECF : 0x00111111
       3,  // U+000ED0 - U+000ED7 : 0x22222222
-    137,  // U+000ED8 - U+000EDF : 0x00550022
+    139,  // U+000ED8 - U+000EDF : 0x00550022
      30,  // U+000EE0 - U+000EE7 : 0x00000000
      30,  // U+000EE8 - U+000EEF : 0x00000000
      30,  // U+000EF0 - U+000EF7 : 0x00000000
      30,  // U+000EF8 - U+000EFF : 0x00000000
-    138,  // U+000F00 - U+000F07 : 0x66667775
+    140,  // U+000F00 - U+000F07 : 0x66667775
      52,  // U+000F08 - U+000F0F : 0x66666666
-    139,  // U+000F10 - U+000F17 : 0x77777666
-    140,  // U+000F18 - U+000F1F : 0x77777711
+    141,  // U+000F10 - U+000F17 : 0x77777666
+    142,  // U+000F18 - U+000F1F : 0x77777711
       3,  // U+000F20 - U+000F27 : 0x22222222
       3,  // U+000F28 - U+000F2F : 0x22222222
-    141,  // U+000F30 - U+000F37 : 0x17172222
-    142,  // U+000F38 - U+000F3F : 0x11666617
+    143,  // U+000F30 - U+000F37 : 0x17172222
+    144,  // U+000F38 - U+000F3F : 0x11666617
       6,  // U+000F40 - U+000F47 : 0x55555555
      31,  // U+000F48 - U+000F4F : 0x55555550
       6,  // U+000F50 - U+000F57 : 0x55555555
       6,  // U+000F58 - U+000F5F : 0x55555555
       6,  // U+000F60 - U+000F67 : 0x55555555
-    143,  // U+000F68 - U+000F6F : 0x00055555
+    145,  // U+000F68 - U+000F6F : 0x00055555
      35,  // U+000F70 - U+000F77 : 0x11111110
      20,  // U+000F78 - U+000F7F : 0x11111111
-    144,  // U+000F80 - U+000F87 : 0x11611111
-     29,  // U+000F88 - U+000F8F : 0x00005555
+    146,  // U+000F80 - U+000F87 : 0x11611111
+    147,  // U+000F88 - U+000F8F : 0x00005555
      20,  // U+000F90 - U+000F97 : 0x11111111
      35,  // U+000F98 - U+000F9F : 0x11111110
      20,  // U+000FA0 - U+000FA7 : 0x11111111
      20,  // U+000FA8 - U+000FAF : 0x11111111
      20,  // U+000FB0 - U+000FB7 : 0x11111111
-    145,  // U+000FB8 - U+000FBF : 0x77011111
-    146,  // U+000FC0 - U+000FC7 : 0x71777777
-    147,  // U+000FC8 - U+000FCF : 0x77077777
-    148,  // U+000FD0 - U+000FD7 : 0x00066666
-     30,  // U+000FD8 - U+000FDF : 0x00000000
+    148,  // U+000FB8 - U+000FBF : 0x77011111
+    149,  // U+000FC0 - U+000FC7 : 0x71777777
+    150,  // U+000FC8 - U+000FCF : 0x77077777
+    151,  // U+000FD0 - U+000FD7 : 0x77766666
+    152,  // U+000FD8 - U+000FDF : 0x00000007
      30,  // U+000FE0 - U+000FE7 : 0x00000000
      30,  // U+000FE8 - U+000FEF : 0x00000000
      30,  // U+000FF0 - U+000FF7 : 0x00000000
      30,  // U+000FF8 - U+000FFF : 0x00000000
       6,  // U+001000 - U+001007 : 0x55555555
       6,  // U+001008 - U+00100F : 0x55555555
       6,  // U+001010 - U+001017 : 0x55555555
       6,  // U+001018 - U+00101F : 0x55555555
       6,  // U+001020 - U+001027 : 0x55555555
      43,  // U+001028 - U+00102F : 0x11111555
      20,  // U+001030 - U+001037 : 0x11111111
-    149,  // U+001038 - U+00103F : 0x51111111
+    153,  // U+001038 - U+00103F : 0x51111111
       3,  // U+001040 - U+001047 : 0x22222222
-    150,  // U+001048 - U+00104F : 0x66666622
+    154,  // U+001048 - U+00104F : 0x66666622
      56,  // U+001050 - U+001057 : 0x11555555
-    151,  // U+001058 - U+00105F : 0x11555511
-    152,  // U+001060 - U+001067 : 0x15511151
-    153,  // U+001068 - U+00106F : 0x55111111
-    154,  // U+001070 - U+001077 : 0x55511115
+    155,  // U+001058 - U+00105F : 0x11555511
+    156,  // U+001060 - U+001067 : 0x15511151
+    157,  // U+001068 - U+00106F : 0x55111111
+    158,  // U+001070 - U+001077 : 0x55511115
       6,  // U+001078 - U+00107F : 0x55555555
-    155,  // U+001080 - U+001087 : 0x11111155
-    156,  // U+001088 - U+00108F : 0x15111111
+    159,  // U+001080 - U+001087 : 0x11111155
+    160,  // U+001088 - U+00108F : 0x15111111
       3,  // U+001090 - U+001097 : 0x22222222
-    157,  // U+001098 - U+00109F : 0x77000022
+    161,  // U+001098 - U+00109F : 0x77111122
       6,  // U+0010A0 - U+0010A7 : 0x55555555
       6,  // U+0010A8 - U+0010AF : 0x55555555
       6,  // U+0010B0 - U+0010B7 : 0x55555555
       6,  // U+0010B8 - U+0010BF : 0x55555555
-    158,  // U+0010C0 - U+0010C7 : 0x00555555
+     29,  // U+0010C0 - U+0010C7 : 0x00555555
      30,  // U+0010C8 - U+0010CF : 0x00000000
       6,  // U+0010D0 - U+0010D7 : 0x55555555
       6,  // U+0010D8 - U+0010DF : 0x55555555
       6,  // U+0010E0 - U+0010E7 : 0x55555555
       6,  // U+0010E8 - U+0010EF : 0x55555555
       6,  // U+0010F0 - U+0010F7 : 0x55555555
-    159,  // U+0010F8 - U+0010FF : 0x00056555
+    162,  // U+0010F8 - U+0010FF : 0x00056555
       6,  // U+001100 - U+001107 : 0x55555555
       6,  // U+001108 - U+00110F : 0x55555555
       6,  // U+001110 - U+001117 : 0x55555555
       6,  // U+001118 - U+00111F : 0x55555555
       6,  // U+001120 - U+001127 : 0x55555555
       6,  // U+001128 - U+00112F : 0x55555555
       6,  // U+001130 - U+001137 : 0x55555555
       6,  // U+001138 - U+00113F : 0x55555555
       6,  // U+001140 - U+001147 : 0x55555555
       6,  // U+001148 - U+00114F : 0x55555555
       6,  // U+001150 - U+001157 : 0x55555555
-    160,  // U+001158 - U+00115F : 0x50000055
+      6,  // U+001158 - U+00115F : 0x55555555
       6,  // U+001160 - U+001167 : 0x55555555
       6,  // U+001168 - U+00116F : 0x55555555
       6,  // U+001170 - U+001177 : 0x55555555
       6,  // U+001178 - U+00117F : 0x55555555
       6,  // U+001180 - U+001187 : 0x55555555
       6,  // U+001188 - U+00118F : 0x55555555
       6,  // U+001190 - U+001197 : 0x55555555
       6,  // U+001198 - U+00119F : 0x55555555
-     38,  // U+0011A0 - U+0011A7 : 0x00000555
+      6,  // U+0011A0 - U+0011A7 : 0x55555555
       6,  // U+0011A8 - U+0011AF : 0x55555555
       6,  // U+0011B0 - U+0011B7 : 0x55555555
       6,  // U+0011B8 - U+0011BF : 0x55555555
       6,  // U+0011C0 - U+0011C7 : 0x55555555
       6,  // U+0011C8 - U+0011CF : 0x55555555
       6,  // U+0011D0 - U+0011D7 : 0x55555555
       6,  // U+0011D8 - U+0011DF : 0x55555555
       6,  // U+0011E0 - U+0011E7 : 0x55555555
       6,  // U+0011E8 - U+0011EF : 0x55555555
       6,  // U+0011F0 - U+0011F7 : 0x55555555
-    113,  // U+0011F8 - U+0011FF : 0x00000055
+      6,  // U+0011F8 - U+0011FF : 0x55555555
       6,  // U+001200 - U+001207 : 0x55555555
       6,  // U+001208 - U+00120F : 0x55555555
       6,  // U+001210 - U+001217 : 0x55555555
       6,  // U+001218 - U+00121F : 0x55555555
       6,  // U+001220 - U+001227 : 0x55555555
       6,  // U+001228 - U+00122F : 0x55555555
       6,  // U+001230 - U+001237 : 0x55555555
       6,  // U+001238 - U+00123F : 0x55555555
       6,  // U+001240 - U+001247 : 0x55555555
-     99,  // U+001248 - U+00124F : 0x00555505
+    100,  // U+001248 - U+00124F : 0x00555505
      32,  // U+001250 - U+001257 : 0x05555555
-     99,  // U+001258 - U+00125F : 0x00555505
+    100,  // U+001258 - U+00125F : 0x00555505
       6,  // U+001260 - U+001267 : 0x55555555
       6,  // U+001268 - U+00126F : 0x55555555
       6,  // U+001270 - U+001277 : 0x55555555
       6,  // U+001278 - U+00127F : 0x55555555
       6,  // U+001280 - U+001287 : 0x55555555
-     99,  // U+001288 - U+00128F : 0x00555505
+    100,  // U+001288 - U+00128F : 0x00555505
       6,  // U+001290 - U+001297 : 0x55555555
       6,  // U+001298 - U+00129F : 0x55555555
       6,  // U+0012A0 - U+0012A7 : 0x55555555
       6,  // U+0012A8 - U+0012AF : 0x55555555
-     99,  // U+0012B0 - U+0012B7 : 0x00555505
+    100,  // U+0012B0 - U+0012B7 : 0x00555505
      32,  // U+0012B8 - U+0012BF : 0x05555555
-     99,  // U+0012C0 - U+0012C7 : 0x00555505
+    100,  // U+0012C0 - U+0012C7 : 0x00555505
       6,  // U+0012C8 - U+0012CF : 0x55555555
      32,  // U+0012D0 - U+0012D7 : 0x05555555
       6,  // U+0012D8 - U+0012DF : 0x55555555
       6,  // U+0012E0 - U+0012E7 : 0x55555555
       6,  // U+0012E8 - U+0012EF : 0x55555555
       6,  // U+0012F0 - U+0012F7 : 0x55555555
       6,  // U+0012F8 - U+0012FF : 0x55555555
       6,  // U+001300 - U+001307 : 0x55555555
       6,  // U+001308 - U+00130F : 0x55555555
-     99,  // U+001310 - U+001317 : 0x00555505
+    100,  // U+001310 - U+001317 : 0x00555505
       6,  // U+001318 - U+00131F : 0x55555555
       6,  // U+001320 - U+001327 : 0x55555555
       6,  // U+001328 - U+00132F : 0x55555555
       6,  // U+001330 - U+001337 : 0x55555555
       6,  // U+001338 - U+00133F : 0x55555555
       6,  // U+001340 - U+001347 : 0x55555555
       6,  // U+001348 - U+00134F : 0x55555555
       6,  // U+001350 - U+001357 : 0x55555555
-    161,  // U+001358 - U+00135F : 0x10000555
-    162,  // U+001360 - U+001367 : 0x66666667
-    163,  // U+001368 - U+00136F : 0x22222226
+    163,  // U+001358 - U+00135F : 0x10000555
+    164,  // U+001360 - U+001367 : 0x66666667
+    165,  // U+001368 - U+00136F : 0x22222226
       3,  // U+001370 - U+001377 : 0x22222222
-    164,  // U+001378 - U+00137F : 0x00022222
+    166,  // U+001378 - U+00137F : 0x00022222
       6,  // U+001380 - U+001387 : 0x55555555
       6,  // U+001388 - U+00138F : 0x55555555
      17,  // U+001390 - U+001397 : 0x77777777
-    165,  // U+001398 - U+00139F : 0x00000077
+    167,  // U+001398 - U+00139F : 0x00000077
       6,  // U+0013A0 - U+0013A7 : 0x55555555
       6,  // U+0013A8 - U+0013AF : 0x55555555
       6,  // U+0013B0 - U+0013B7 : 0x55555555
       6,  // U+0013B8 - U+0013BF : 0x55555555
       6,  // U+0013C0 - U+0013C7 : 0x55555555
       6,  // U+0013C8 - U+0013CF : 0x55555555
       6,  // U+0013D0 - U+0013D7 : 0x55555555
       6,  // U+0013D8 - U+0013DF : 0x55555555
       6,  // U+0013E0 - U+0013E7 : 0x55555555
       6,  // U+0013E8 - U+0013EF : 0x55555555
-    143,  // U+0013F0 - U+0013F7 : 0x00055555
+    145,  // U+0013F0 - U+0013F7 : 0x00055555
      30,  // U+0013F8 - U+0013FF : 0x00000000
-     31,  // U+001400 - U+001407 : 0x55555550
+      5,  // U+001400 - U+001407 : 0x55555556
       6,  // U+001408 - U+00140F : 0x55555555
       6,  // U+001410 - U+001417 : 0x55555555
       6,  // U+001418 - U+00141F : 0x55555555
       6,  // U+001420 - U+001427 : 0x55555555
       6,  // U+001428 - U+00142F : 0x55555555
       6,  // U+001430 - U+001437 : 0x55555555
       6,  // U+001438 - U+00143F : 0x55555555
       6,  // U+001440 - U+001447 : 0x55555555
@@ -724,71 +753,71 @@ static const PRUint8 gGenCatIdx2[624] = 
       6,  // U+001628 - U+00162F : 0x55555555
       6,  // U+001630 - U+001637 : 0x55555555
       6,  // U+001638 - U+00163F : 0x55555555
       6,  // U+001640 - U+001647 : 0x55555555
       6,  // U+001648 - U+00164F : 0x55555555
       6,  // U+001650 - U+001657 : 0x55555555
       6,  // U+001658 - U+00165F : 0x55555555
       6,  // U+001660 - U+001667 : 0x55555555
-    166,  // U+001668 - U+00166F : 0x56655555
-     32,  // U+001670 - U+001677 : 0x05555555
-     30,  // U+001678 - U+00167F : 0x00000000
-    167,  // U+001680 - U+001687 : 0x55555553
+    168,  // U+001668 - U+00166F : 0x56655555
+      6,  // U+001670 - U+001677 : 0x55555555
+      6,  // U+001678 - U+00167F : 0x55555555
+    169,  // U+001680 - U+001687 : 0x55555553
       6,  // U+001688 - U+00168F : 0x55555555
       6,  // U+001690 - U+001697 : 0x55555555
      39,  // U+001698 - U+00169F : 0x00066555
       6,  // U+0016A0 - U+0016A7 : 0x55555555
       6,  // U+0016A8 - U+0016AF : 0x55555555
       6,  // U+0016B0 - U+0016B7 : 0x55555555
       6,  // U+0016B8 - U+0016BF : 0x55555555
       6,  // U+0016C0 - U+0016C7 : 0x55555555
       6,  // U+0016C8 - U+0016CF : 0x55555555
       6,  // U+0016D0 - U+0016D7 : 0x55555555
       6,  // U+0016D8 - U+0016DF : 0x55555555
       6,  // U+0016E0 - U+0016E7 : 0x55555555
-    168,  // U+0016E8 - U+0016EF : 0x22666555
-    169,  // U+0016F0 - U+0016F7 : 0x00000002
+    170,  // U+0016E8 - U+0016EF : 0x22666555
+    171,  // U+0016F0 - U+0016F7 : 0x00000002
      30,  // U+0016F8 - U+0016FF : 0x00000000
       6,  // U+001700 - U+001707 : 0x55555555
-    108,  // U+001708 - U+00170F : 0x55055555
-    170,  // U+001710 - U+001717 : 0x00011155
+    109,  // U+001708 - U+00170F : 0x55055555
+    172,  // U+001710 - U+001717 : 0x00011155
      30,  // U+001718 - U+00171F : 0x00000000
       6,  // U+001720 - U+001727 : 0x55555555
       6,  // U+001728 - U+00172F : 0x55555555
-    171,  // U+001730 - U+001737 : 0x06611155
+    173,  // U+001730 - U+001737 : 0x06611155
      30,  // U+001738 - U+00173F : 0x00000000
       6,  // U+001740 - U+001747 : 0x55555555
       6,  // U+001748 - U+00174F : 0x55555555
-    172,  // U+001750 - U+001757 : 0x00001155
+    174,  // U+001750 - U+001757 : 0x00001155
      30,  // U+001758 - U+00175F : 0x00000000
       6,  // U+001760 - U+001767 : 0x55555555
-    108,  // U+001768 - U+00176F : 0x55055555
-    173,  // U+001770 - U+001777 : 0x00001105
+    109,  // U+001768 - U+00176F : 0x55055555
+    175,  // U+001770 - U+001777 : 0x00001105
      30,  // U+001778 - U+00177F : 0x00000000
       6,  // U+001780 - U+001787 : 0x55555555
       6,  // U+001788 - U+00178F : 0x55555555
       6,  // U+001790 - U+001797 : 0x55555555
       6,  // U+001798 - U+00179F : 0x55555555
       6,  // U+0017A0 - U+0017A7 : 0x55555555
       6,  // U+0017A8 - U+0017AF : 0x55555555
-    174,  // U+0017B0 - U+0017B7 : 0x11445555
+    176,  // U+0017B0 - U+0017B7 : 0x11445555
      20,  // U+0017B8 - U+0017BF : 0x11111111
      20,  // U+0017C0 - U+0017C7 : 0x11111111
      20,  // U+0017C8 - U+0017CF : 0x11111111
-    175,  // U+0017D0 - U+0017D7 : 0x56661111
-    176,  // U+0017D8 - U+0017DF : 0x00157666
+    177,  // U+0017D0 - U+0017D7 : 0x56661111
+    178,  // U+0017D8 - U+0017DF : 0x00157666
       3,  // U+0017E0 - U+0017E7 : 0x22222222
-    177,  // U+0017E8 - U+0017EF : 0x00000022
+    179,  // U+0017E8 - U+0017EF : 0x00000022
       3,  // U+0017F0 - U+0017F7 : 0x22222222
-    177,  // U+0017F8 - U+0017FF : 0x00000022
+    179,  // U+0017F8 - U+0017FF : 0x00000022
      52,  // U+001800 - U+001807 : 0x66666666
-    178,  // U+001808 - U+00180F : 0x03111666
+    180,  // U+001808 - U+00180F : 0x03111666
       3,  // U+001810 - U+001817 : 0x22222222
-    177,  // U+001818 - U+00181F : 0x00000022
+    179,  // U+001818 - U+00181F : 0x00000022
       6,  // U+001820 - U+001827 : 0x55555555
       6,  // U+001828 - U+00182F : 0x55555555
       6,  // U+001830 - U+001837 : 0x55555555
       6,  // U+001838 - U+00183F : 0x55555555
       6,  // U+001840 - U+001847 : 0x55555555
       6,  // U+001848 - U+00184F : 0x55555555
       6,  // U+001850 - U+001857 : 0x55555555
       6,  // U+001858 - U+00185F : 0x55555555
@@ -796,142 +825,158 @@ static const PRUint8 gGenCatIdx2[624] = 
       6,  // U+001868 - U+00186F : 0x55555555
       6,  // U+001870 - U+001877 : 0x55555555
      30,  // U+001878 - U+00187F : 0x00000000
       6,  // U+001880 - U+001887 : 0x55555555
       6,  // U+001888 - U+00188F : 0x55555555
       6,  // U+001890 - U+001897 : 0x55555555
       6,  // U+001898 - U+00189F : 0x55555555
       6,  // U+0018A0 - U+0018A7 : 0x55555555
-    179,  // U+0018A8 - U+0018AF : 0x00000515
-     30,  // U+0018B0 - U+0018B7 : 0x00000000
-     30,  // U+0018B8 - U+0018BF : 0x00000000
-     30,  // U+0018C0 - U+0018C7 : 0x00000000
-     30,  // U+0018C8 - U+0018CF : 0x00000000
-     30,  // U+0018D0 - U+0018D7 : 0x00000000
-     30,  // U+0018D8 - U+0018DF : 0x00000000
-     30,  // U+0018E0 - U+0018E7 : 0x00000000
-     30,  // U+0018E8 - U+0018EF : 0x00000000
-     30,  // U+0018F0 - U+0018F7 : 0x00000000
+    181,  // U+0018A8 - U+0018AF : 0x00000515
+      6,  // U+0018B0 - U+0018B7 : 0x55555555
+      6,  // U+0018B8 - U+0018BF : 0x55555555
+      6,  // U+0018C0 - U+0018C7 : 0x55555555
+      6,  // U+0018C8 - U+0018CF : 0x55555555
+      6,  // U+0018D0 - U+0018D7 : 0x55555555
+      6,  // U+0018D8 - U+0018DF : 0x55555555
+      6,  // U+0018E0 - U+0018E7 : 0x55555555
+      6,  // U+0018E8 - U+0018EF : 0x55555555
+     29,  // U+0018F0 - U+0018F7 : 0x00555555
      30,  // U+0018F8 - U+0018FF : 0x00000000
       6,  // U+001900 - U+001907 : 0x55555555
       6,  // U+001908 - U+00190F : 0x55555555
       6,  // U+001910 - U+001917 : 0x55555555
-    143,  // U+001918 - U+00191F : 0x00055555
+    145,  // U+001918 - U+00191F : 0x00055555
      20,  // U+001920 - U+001927 : 0x11111111
-    180,  // U+001928 - U+00192F : 0x00001111
+    182,  // U+001928 - U+00192F : 0x00001111
      20,  // U+001930 - U+001937 : 0x11111111
-    180,  // U+001938 - U+00193F : 0x00001111
-    181,  // U+001940 - U+001947 : 0x22660007
+    182,  // U+001938 - U+00193F : 0x00001111
+    183,  // U+001940 - U+001947 : 0x22660007
       3,  // U+001948 - U+00194F : 0x22222222
       6,  // U+001950 - U+001957 : 0x55555555
       6,  // U+001958 - U+00195F : 0x55555555
       6,  // U+001960 - U+001967 : 0x55555555
-    158,  // U+001968 - U+00196F : 0x00555555
-    143,  // U+001970 - U+001977 : 0x00055555
+     29,  // U+001968 - U+00196F : 0x00555555
+    145,  // U+001970 - U+001977 : 0x00055555
      30,  // U+001978 - U+00197F : 0x00000000
       6,  // U+001980 - U+001987 : 0x55555555
       6,  // U+001988 - U+00198F : 0x55555555
       6,  // U+001990 - U+001997 : 0x55555555
       6,  // U+001998 - U+00199F : 0x55555555
       6,  // U+0019A0 - U+0019A7 : 0x55555555
-    113,  // U+0019A8 - U+0019AF : 0x00000055
+    147,  // U+0019A8 - U+0019AF : 0x00005555
      20,  // U+0019B0 - U+0019B7 : 0x11111111
      20,  // U+0019B8 - U+0019BF : 0x11111111
      46,  // U+0019C0 - U+0019C7 : 0x55555551
-    182,  // U+0019C8 - U+0019CF : 0x00000011
+    184,  // U+0019C8 - U+0019CF : 0x00000011
       3,  // U+0019D0 - U+0019D7 : 0x22222222
-    183,  // U+0019D8 - U+0019DF : 0x66000022
+    185,  // U+0019D8 - U+0019DF : 0x66000222
      17,  // U+0019E0 - U+0019E7 : 0x77777777
      17,  // U+0019E8 - U+0019EF : 0x77777777
      17,  // U+0019F0 - U+0019F7 : 0x77777777
      17,  // U+0019F8 - U+0019FF : 0x77777777
       6,  // U+001A00 - U+001A07 : 0x55555555
       6,  // U+001A08 - U+001A0F : 0x55555555
-    127,  // U+001A10 - U+001A17 : 0x15555555
-    184,  // U+001A18 - U+001A1F : 0x66001111
-     30,  // U+001A20 - U+001A27 : 0x00000000
-     30,  // U+001A28 - U+001A2F : 0x00000000
-     30,  // U+001A30 - U+001A37 : 0x00000000
-     30,  // U+001A38 - U+001A3F : 0x00000000
-     30,  // U+001A40 - U+001A47 : 0x00000000
-     30,  // U+001A48 - U+001A4F : 0x00000000
-     30,  // U+001A50 - U+001A57 : 0x00000000
-     30,  // U+001A58 - U+001A5F : 0x00000000
-     30,  // U+001A60 - U+001A67 : 0x00000000
-     30,  // U+001A68 - U+001A6F : 0x00000000
-     30,  // U+001A70 - U+001A77 : 0x00000000
-     30,  // U+001A78 - U+001A7F : 0x00000000
-     30,  // U+001A80 - U+001A87 : 0x00000000
-     30,  // U+001A88 - U+001A8F : 0x00000000
-     30,  // U+001A90 - U+001A97 : 0x00000000
-     30,  // U+001A98 - U+001A9F : 0x00000000
-     30,  // U+001AA0 - U+001AA7 : 0x00000000
-     30,  // U+001AA8 - U+001AAF : 0x00000000
+    128,  // U+001A10 - U+001A17 : 0x15555555
+    186,  // U+001A18 - U+001A1F : 0x66001111
+      6,  // U+001A20 - U+001A27 : 0x55555555
+      6,  // U+001A28 - U+001A2F : 0x55555555
+      6,  // U+001A30 - U+001A37 : 0x55555555
+      6,  // U+001A38 - U+001A3F : 0x55555555
+      6,  // U+001A40 - U+001A47 : 0x55555555
+      6,  // U+001A48 - U+001A4F : 0x55555555
+    187,  // U+001A50 - U+001A57 : 0x11155555
+     44,  // U+001A58 - U+001A5F : 0x01111111
+     20,  // U+001A60 - U+001A67 : 0x11111111
+     20,  // U+001A68 - U+001A6F : 0x11111111
+     20,  // U+001A70 - U+001A77 : 0x11111111
+     74,  // U+001A78 - U+001A7F : 0x10011111
+      3,  // U+001A80 - U+001A87 : 0x22222222
+    179,  // U+001A88 - U+001A8F : 0x00000022
+      3,  // U+001A90 - U+001A97 : 0x22222222
+    179,  // U+001A98 - U+001A9F : 0x00000022
+    188,  // U+001AA0 - U+001AA7 : 0x56666666
+    189,  // U+001AA8 - U+001AAF : 0x00666666
      30,  // U+001AB0 - U+001AB7 : 0x00000000
      30,  // U+001AB8 - U+001ABF : 0x00000000
      30,  // U+001AC0 - U+001AC7 : 0x00000000
      30,  // U+001AC8 - U+001ACF : 0x00000000
      30,  // U+001AD0 - U+001AD7 : 0x00000000
      30,  // U+001AD8 - U+001ADF : 0x00000000
      30,  // U+001AE0 - U+001AE7 : 0x00000000
      30,  // U+001AE8 - U+001AEF : 0x00000000
      30,  // U+001AF0 - U+001AF7 : 0x00000000
      30,  // U+001AF8 - U+001AFF : 0x00000000
-    185,  // U+001B00 - U+001B07 : 0x55511111
+    190,  // U+001B00 - U+001B07 : 0x55511111
       6,  // U+001B08 - U+001B0F : 0x55555555
       6,  // U+001B10 - U+001B17 : 0x55555555
       6,  // U+001B18 - U+001B1F : 0x55555555
       6,  // U+001B20 - U+001B27 : 0x55555555
       6,  // U+001B28 - U+001B2F : 0x55555555
-    186,  // U+001B30 - U+001B37 : 0x11115555
+    191,  // U+001B30 - U+001B37 : 0x11115555
      20,  // U+001B38 - U+001B3F : 0x11111111
-    185,  // U+001B40 - U+001B47 : 0x55511111
-     29,  // U+001B48 - U+001B4F : 0x00005555
+    190,  // U+001B40 - U+001B47 : 0x55511111
+    147,  // U+001B48 - U+001B4F : 0x00005555
       3,  // U+001B50 - U+001B57 : 0x22222222
-    150,  // U+001B58 - U+001B5F : 0x66666622
-    187,  // U+001B60 - U+001B67 : 0x77777776
-    188,  // U+001B68 - U+001B6F : 0x11111777
-    189,  // U+001B70 - U+001B77 : 0x77771111
-    190,  // U+001B78 - U+001B7F : 0x00077777
-    191,  // U+001B80 - U+001B87 : 0x55555111
+    154,  // U+001B58 - U+001B5F : 0x66666622
+    192,  // U+001B60 - U+001B67 : 0x77777776
+    193,  // U+001B68 - U+001B6F : 0x11111777
+    194,  // U+001B70 - U+001B77 : 0x77771111
+    195,  // U+001B78 - U+001B7F : 0x00077777
+    196,  // U+001B80 - U+001B87 : 0x55555111
       6,  // U+001B88 - U+001B8F : 0x55555555
       6,  // U+001B90 - U+001B97 : 0x55555555
       6,  // U+001B98 - U+001B9F : 0x55555555
-    192,  // U+001BA0 - U+001BA7 : 0x11111115
-    193,  // U+001BA8 - U+001BAF : 0x55000111
+    197,  // U+001BA0 - U+001BA7 : 0x11111115
+    198,  // U+001BA8 - U+001BAF : 0x55000111
       3,  // U+001BB0 - U+001BB7 : 0x22222222
-    177,  // U+001BB8 - U+001BBF : 0x00000022
+    179,  // U+001BB8 - U+001BBF : 0x00000022
      30,  // U+001BC0 - U+001BC7 : 0x00000000
      30,  // U+001BC8 - U+001BCF : 0x00000000
      30,  // U+001BD0 - U+001BD7 : 0x00000000
      30,  // U+001BD8 - U+001BDF : 0x00000000
      30,  // U+001BE0 - U+001BE7 : 0x00000000
      30,  // U+001BE8 - U+001BEF : 0x00000000
      30,  // U+001BF0 - U+001BF7 : 0x00000000
      30,  // U+001BF8 - U+001BFF : 0x00000000
       6,  // U+001C00 - U+001C07 : 0x55555555
       6,  // U+001C08 - U+001C0F : 0x55555555
       6,  // U+001C10 - U+001C17 : 0x55555555
       6,  // U+001C18 - U+001C1F : 0x55555555
-    186,  // U+001C20 - U+001C27 : 0x11115555
+    191,  // U+001C20 - U+001C27 : 0x11115555
      20,  // U+001C28 - U+001C2F : 0x11111111
      20,  // U+001C30 - U+001C37 : 0x11111111
-    194,  // U+001C38 - U+001C3F : 0x66666000
+    199,  // U+001C38 - U+001C3F : 0x66666000
       3,  // U+001C40 - U+001C47 : 0x22222222
-    195,  // U+001C48 - U+001C4F : 0x55500022
+    200,  // U+001C48 - U+001C4F : 0x55500022
       3,  // U+001C50 - U+001C57 : 0x22222222
      58,  // U+001C58 - U+001C5F : 0x55555522
       6,  // U+001C60 - U+001C67 : 0x55555555
       6,  // U+001C68 - U+001C6F : 0x55555555
       6,  // U+001C70 - U+001C77 : 0x55555555
-    196,  // U+001C78 - U+001C7F : 0x66555555
+    201,  // U+001C78 - U+001C7F : 0x66555555
+     30,  // U+001C80 - U+001C87 : 0x00000000
+     30,  // U+001C88 - U+001C8F : 0x00000000
+     30,  // U+001C90 - U+001C97 : 0x00000000
+     30,  // U+001C98 - U+001C9F : 0x00000000
+     30,  // U+001CA0 - U+001CA7 : 0x00000000
+     30,  // U+001CA8 - U+001CAF : 0x00000000
+     30,  // U+001CB0 - U+001CB7 : 0x00000000
+     30,  // U+001CB8 - U+001CBF : 0x00000000
+     30,  // U+001CC0 - U+001CC7 : 0x00000000
+     30,  // U+001CC8 - U+001CCF : 0x00000000
+    202,  // U+001CD0 - U+001CD7 : 0x11116111
+     20,  // U+001CD8 - U+001CDF : 0x11111111
+     20,  // U+001CE0 - U+001CE7 : 0x11111111
+    203,  // U+001CE8 - U+001CEF : 0x55155551
+    204,  // U+001CF0 - U+001CF7 : 0x00000155
+     30,  // U+001CF8 - U+001CFF : 0x00000000
 };
 
-static const PRUint8 gGenCatIdx3[736] = {
+static const PRUint8 gGenCatIdx2[736] = {
       0,  // U+001D00 - U+001D07 : 0x55555555
       0,  // U+001D08 - U+001D0F : 0x55555555
       0,  // U+001D10 - U+001D17 : 0x55555555
       0,  // U+001D18 - U+001D1F : 0x55555555
       0,  // U+001D20 - U+001D27 : 0x55555555
       0,  // U+001D28 - U+001D2F : 0x55555555
       0,  // U+001D30 - U+001D37 : 0x55555555
       0,  // U+001D38 - U+001D3F : 0x55555555
@@ -953,17 +998,17 @@ static const PRUint8 gGenCatIdx3[736] = 
       0,  // U+001DB8 - U+001DBF : 0x55555555
       1,  // U+001DC0 - U+001DC7 : 0x11111111
       1,  // U+001DC8 - U+001DCF : 0x11111111
       1,  // U+001DD0 - U+001DD7 : 0x11111111
       1,  // U+001DD8 - U+001DDF : 0x11111111
       2,  // U+001DE0 - U+001DE7 : 0x01111111
       3,  // U+001DE8 - U+001DEF : 0x00000000
       3,  // U+001DF0 - U+001DF7 : 0x00000000
-      4,  // U+001DF8 - U+001DFF : 0x11000000
+      4,  // U+001DF8 - U+001DFF : 0x11100000
       0,  // U+001E00 - U+001E07 : 0x55555555
       0,  // U+001E08 - U+001E0F : 0x55555555
       0,  // U+001E10 - U+001E17 : 0x55555555
       0,  // U+001E18 - U+001E1F : 0x55555555
       0,  // U+001E20 - U+001E27 : 0x55555555
       0,  // U+001E28 - U+001E2F : 0x55555555
       0,  // U+001E30 - U+001E37 : 0x55555555
       0,  // U+001E38 - U+001E3F : 0x55555555
@@ -1040,18 +1085,18 @@ static const PRUint8 gGenCatIdx3[736] = 
      24,  // U+002070 - U+002077 : 0x22220052
      25,  // U+002078 - U+00207F : 0x56677722
      26,  // U+002080 - U+002087 : 0x22222222
      27,  // U+002088 - U+00208F : 0x06677722
      28,  // U+002090 - U+002097 : 0x00055555
       3,  // U+002098 - U+00209F : 0x00000000
      29,  // U+0020A0 - U+0020A7 : 0x77777777
      29,  // U+0020A8 - U+0020AF : 0x77777777
-     30,  // U+0020B0 - U+0020B7 : 0x00777777
-      3,  // U+0020B8 - U+0020BF : 0x00000000
+     29,  // U+0020B0 - U+0020B7 : 0x77777777
+     30,  // U+0020B8 - U+0020BF : 0x00000007
       3,  // U+0020C0 - U+0020C7 : 0x00000000
       3,  // U+0020C8 - U+0020CF : 0x00000000
       1,  // U+0020D0 - U+0020D7 : 0x11111111
       1,  // U+0020D8 - U+0020DF : 0x11111111
       1,  // U+0020E0 - U+0020E7 : 0x11111111
       1,  // U+0020E8 - U+0020EF : 0x11111111
      31,  // U+0020F0 - U+0020F7 : 0x00000001
       3,  // U+0020F8 - U+0020FF : 0x00000000
@@ -1060,24 +1105,24 @@ static const PRUint8 gGenCatIdx3[736] = 
      34,  // U+002110 - U+002117 : 0x77575555
      35,  // U+002118 - U+00211F : 0x77555557
      36,  // U+002120 - U+002127 : 0x75757777
      37,  // U+002128 - U+00212F : 0x57555575
       0,  // U+002130 - U+002137 : 0x55555555
      38,  // U+002138 - U+00213F : 0x55557755
      39,  // U+002140 - U+002147 : 0x55577777
      40,  // U+002148 - U+00214F : 0x75777755
-     41,  // U+002150 - U+002157 : 0x22222000
+     26,  // U+002150 - U+002157 : 0x22222222
      26,  // U+002158 - U+00215F : 0x22222222
      26,  // U+002160 - U+002167 : 0x22222222
      26,  // U+002168 - U+00216F : 0x22222222
      26,  // U+002170 - U+002177 : 0x22222222
      26,  // U+002178 - U+00217F : 0x22222222
-     42,  // U+002180 - U+002187 : 0x22255222
-     43,  // U+002188 - U+00218F : 0x00000002
+     41,  // U+002180 - U+002187 : 0x22255222
+     42,  // U+002188 - U+00218F : 0x00000022
      29,  // U+002190 - U+002197 : 0x77777777
      29,  // U+002198 - U+00219F : 0x77777777
      29,  // U+0021A0 - U+0021A7 : 0x77777777
      29,  // U+0021A8 - U+0021AF : 0x77777777
      29,  // U+0021B0 - U+0021B7 : 0x77777777
      29,  // U+0021B8 - U+0021BF : 0x77777777
      29,  // U+0021C0 - U+0021C7 : 0x77777777
      29,  // U+0021C8 - U+0021CF : 0x77777777
@@ -1119,17 +1164,17 @@ static const PRUint8 gGenCatIdx3[736] = 
      29,  // U+0022E8 - U+0022EF : 0x77777777
      29,  // U+0022F0 - U+0022F7 : 0x77777777
      29,  // U+0022F8 - U+0022FF : 0x77777777
      29,  // U+002300 - U+002307 : 0x77777777
      29,  // U+002308 - U+00230F : 0x77777777
      29,  // U+002310 - U+002317 : 0x77777777
      29,  // U+002318 - U+00231F : 0x77777777
      29,  // U+002320 - U+002327 : 0x77777777
-     44,  // U+002328 - U+00232F : 0x77777667
+     43,  // U+002328 - U+00232F : 0x77777667
      29,  // U+002330 - U+002337 : 0x77777777
      29,  // U+002338 - U+00233F : 0x77777777
      29,  // U+002340 - U+002347 : 0x77777777
      29,  // U+002348 - U+00234F : 0x77777777
      29,  // U+002350 - U+002357 : 0x77777777
      29,  // U+002358 - U+00235F : 0x77777777
      29,  // U+002360 - U+002367 : 0x77777777
      29,  // U+002368 - U+00236F : 0x77777777
@@ -1143,49 +1188,49 @@ static const PRUint8 gGenCatIdx3[736] = 
      29,  // U+0023A8 - U+0023AF : 0x77777777
      29,  // U+0023B0 - U+0023B7 : 0x77777777
      29,  // U+0023B8 - U+0023BF : 0x77777777
      29,  // U+0023C0 - U+0023C7 : 0x77777777
      29,  // U+0023C8 - U+0023CF : 0x77777777
      29,  // U+0023D0 - U+0023D7 : 0x77777777
      29,  // U+0023D8 - U+0023DF : 0x77777777
      29,  // U+0023E0 - U+0023E7 : 0x77777777
-      3,  // U+0023E8 - U+0023EF : 0x00000000
+     30,  // U+0023E8 - U+0023EF : 0x00000007
       3,  // U+0023F0 - U+0023F7 : 0x00000000
       3,  // U+0023F8 - U+0023FF : 0x00000000
      29,  // U+002400 - U+002407 : 0x77777777
      29,  // U+002408 - U+00240F : 0x77777777
      29,  // U+002410 - U+002417 : 0x77777777
      29,  // U+002418 - U+00241F : 0x77777777
-     45,  // U+002420 - U+002427 : 0x07777777
+     44,  // U+002420 - U+002427 : 0x07777777
       3,  // U+002428 - U+00242F : 0x00000000
       3,  // U+002430 - U+002437 : 0x00000000
       3,  // U+002438 - U+00243F : 0x00000000
      29,  // U+002440 - U+002447 : 0x77777777
-     46,  // U+002448 - U+00244F : 0x00000777
+     45,  // U+002448 - U+00244F : 0x00000777
       3,  // U+002450 - U+002457 : 0x00000000
       3,  // U+002458 - U+00245F : 0x00000000
      26,  // U+002460 - U+002467 : 0x22222222
      26,  // U+002468 - U+00246F : 0x22222222
      26,  // U+002470 - U+002477 : 0x22222222
      26,  // U+002478 - U+00247F : 0x22222222
      26,  // U+002480 - U+002487 : 0x22222222
      26,  // U+002488 - U+00248F : 0x22222222
      26,  // U+002490 - U+002497 : 0x22222222
-     47,  // U+002498 - U+00249F : 0x77772222
+     46,  // U+002498 - U+00249F : 0x77772222
      29,  // U+0024A0 - U+0024A7 : 0x77777777
      29,  // U+0024A8 - U+0024AF : 0x77777777
      29,  // U+0024B0 - U+0024B7 : 0x77777777
      29,  // U+0024B8 - U+0024BF : 0x77777777
      29,  // U+0024C0 - U+0024C7 : 0x77777777
      29,  // U+0024C8 - U+0024CF : 0x77777777
      29,  // U+0024D0 - U+0024D7 : 0x77777777
      29,  // U+0024D8 - U+0024DF : 0x77777777
      29,  // U+0024E0 - U+0024E7 : 0x77777777
-     48,  // U+0024E8 - U+0024EF : 0x22222277
+     47,  // U+0024E8 - U+0024EF : 0x22222277
      26,  // U+0024F0 - U+0024F7 : 0x22222222
      26,  // U+0024F8 - U+0024FF : 0x22222222
      29,  // U+002500 - U+002507 : 0x77777777
      29,  // U+002508 - U+00250F : 0x77777777
      29,  // U+002510 - U+002517 : 0x77777777
      29,  // U+002518 - U+00251F : 0x77777777
      29,  // U+002520 - U+002527 : 0x77777777
      29,  // U+002528 - U+00252F : 0x77777777
@@ -1229,58 +1274,58 @@ static const PRUint8 gGenCatIdx3[736] = 
      29,  // U+002658 - U+00265F : 0x77777777
      29,  // U+002660 - U+002667 : 0x77777777
      29,  // U+002668 - U+00266F : 0x77777777
      29,  // U+002670 - U+002677 : 0x77777777
      29,  // U+002678 - U+00267F : 0x77777777
      29,  // U+002680 - U+002687 : 0x77777777
      29,  // U+002688 - U+00268F : 0x77777777
      29,  // U+002690 - U+002697 : 0x77777777
-     30,  // U+002698 - U+00269F : 0x00777777
+     29,  // U+002698 - U+00269F : 0x77777777
      29,  // U+0026A0 - U+0026A7 : 0x77777777
      29,  // U+0026A8 - U+0026AF : 0x77777777
      29,  // U+0026B0 - U+0026B7 : 0x77777777
-     49,  // U+0026B8 - U+0026BF : 0x00077777
-     50,  // U+0026C0 - U+0026C7 : 0x00007777
-      3,  // U+0026C8 - U+0026CF : 0x00000000
-      3,  // U+0026D0 - U+0026D7 : 0x00000000
-      3,  // U+0026D8 - U+0026DF : 0x00000000
-      3,  // U+0026E0 - U+0026E7 : 0x00000000
-      3,  // U+0026E8 - U+0026EF : 0x00000000
-      3,  // U+0026F0 - U+0026F7 : 0x00000000
-      3,  // U+0026F8 - U+0026FF : 0x00000000
-     51,  // U+002700 - U+002707 : 0x77077770
-     52,  // U+002708 - U+00270F : 0x77770077
+     29,  // U+0026B8 - U+0026BF : 0x77777777
+     29,  // U+0026C0 - U+0026C7 : 0x77777777
+     48,  // U+0026C8 - U+0026CF : 0x70777777
+     29,  // U+0026D0 - U+0026D7 : 0x77777777
+     29,  // U+0026D8 - U+0026DF : 0x77777777
+     49,  // U+0026E0 - U+0026E7 : 0x00007077
+     29,  // U+0026E8 - U+0026EF : 0x77777777
+     29,  // U+0026F0 - U+0026F7 : 0x77777777
+     29,  // U+0026F8 - U+0026FF : 0x77777777
+     50,  // U+002700 - U+002707 : 0x77077770
+     51,  // U+002708 - U+00270F : 0x77770077
      29,  // U+002710 - U+002717 : 0x77777777
      29,  // U+002718 - U+00271F : 0x77777777
      29,  // U+002720 - U+002727 : 0x77777777
-     53,  // U+002728 - U+00272F : 0x77777770
+     52,  // U+002728 - U+00272F : 0x77777770
      29,  // U+002730 - U+002737 : 0x77777777
      29,  // U+002738 - U+00273F : 0x77777777
      29,  // U+002740 - U+002747 : 0x77777777
-     54,  // U+002748 - U+00274F : 0x70707777
-     55,  // U+002750 - U+002757 : 0x07000777
-     45,  // U+002758 - U+00275F : 0x07777777
-     53,  // U+002760 - U+002767 : 0x77777770
+     53,  // U+002748 - U+00274F : 0x70707777
+     54,  // U+002750 - U+002757 : 0x77000777
+     44,  // U+002758 - U+00275F : 0x07777777
+     52,  // U+002760 - U+002767 : 0x77777770
      17,  // U+002768 - U+00276F : 0x66666666
-     56,  // U+002770 - U+002777 : 0x22666666
+     55,  // U+002770 - U+002777 : 0x22666666
      26,  // U+002778 - U+00277F : 0x22222222
      26,  // U+002780 - U+002787 : 0x22222222
      26,  // U+002788 - U+00278F : 0x22222222
-     57,  // U+002790 - U+002797 : 0x00072222
+     56,  // U+002790 - U+002797 : 0x00072222
      29,  // U+002798 - U+00279F : 0x77777777
      29,  // U+0027A0 - U+0027A7 : 0x77777777
      29,  // U+0027A8 - U+0027AF : 0x77777777
-     53,  // U+0027B0 - U+0027B7 : 0x77777770
-     45,  // U+0027B8 - U+0027BF : 0x07777777
-     58,  // U+0027C0 - U+0027C7 : 0x76677777
-     59,  // U+0027C8 - U+0027CF : 0x00070777
+     52,  // U+0027B0 - U+0027B7 : 0x77777770
+     44,  // U+0027B8 - U+0027BF : 0x07777777
+     57,  // U+0027C0 - U+0027C7 : 0x76677777
+     58,  // U+0027C8 - U+0027CF : 0x00070777
      29,  // U+0027D0 - U+0027D7 : 0x77777777
      29,  // U+0027D8 - U+0027DF : 0x77777777
-     60,  // U+0027E0 - U+0027E7 : 0x66777777
+     59,  // U+0027E0 - U+0027E7 : 0x66777777
      17,  // U+0027E8 - U+0027EF : 0x66666666
      29,  // U+0027F0 - U+0027F7 : 0x77777777
      29,  // U+0027F8 - U+0027FF : 0x77777777
      29,  // U+002800 - U+002807 : 0x77777777
      29,  // U+002808 - U+00280F : 0x77777777
      29,  // U+002810 - U+002817 : 0x77777777
      29,  // U+002818 - U+00281F : 0x77777777
      29,  // U+002820 - U+002827 : 0x77777777
@@ -1322,32 +1367,32 @@ static const PRUint8 gGenCatIdx3[736] = 
      29,  // U+002940 - U+002947 : 0x77777777
      29,  // U+002948 - U+00294F : 0x77777777
      29,  // U+002950 - U+002957 : 0x77777777
      29,  // U+002958 - U+00295F : 0x77777777
      29,  // U+002960 - U+002967 : 0x77777777
      29,  // U+002968 - U+00296F : 0x77777777
      29,  // U+002970 - U+002977 : 0x77777777
      29,  // U+002978 - U+00297F : 0x77777777
-     61,  // U+002980 - U+002987 : 0x66666777
+     60,  // U+002980 - U+002987 : 0x66666777
      17,  // U+002988 - U+00298F : 0x66666666
      17,  // U+002990 - U+002997 : 0x66666666
-     62,  // U+002998 - U+00299F : 0x77777776
+     61,  // U+002998 - U+00299F : 0x77777776
      29,  // U+0029A0 - U+0029A7 : 0x77777777
      29,  // U+0029A8 - U+0029AF : 0x77777777
      29,  // U+0029B0 - U+0029B7 : 0x77777777
      29,  // U+0029B8 - U+0029BF : 0x77777777
      29,  // U+0029C0 - U+0029C7 : 0x77777777
      29,  // U+0029C8 - U+0029CF : 0x77777777
      29,  // U+0029D0 - U+0029D7 : 0x77777777
-     63,  // U+0029D8 - U+0029DF : 0x77776666
+     62,  // U+0029D8 - U+0029DF : 0x77776666
      29,  // U+0029E0 - U+0029E7 : 0x77777777
      29,  // U+0029E8 - U+0029EF : 0x77777777
      29,  // U+0029F0 - U+0029F7 : 0x77777777
-     64,  // U+0029F8 - U+0029FF : 0x77667777
+     63,  // U+0029F8 - U+0029FF : 0x77667777
      29,  // U+002A00 - U+002A07 : 0x77777777
      29,  // U+002A08 - U+002A0F : 0x77777777
      29,  // U+002A10 - U+002A17 : 0x77777777
      29,  // U+002A18 - U+002A1F : 0x77777777
      29,  // U+002A20 - U+002A27 : 0x77777777
      29,  // U+002A28 - U+002A2F : 0x77777777
      29,  // U+002A30 - U+002A37 : 0x77777777
      29,  // U+002A38 - U+002A3F : 0x77777777
@@ -1379,19 +1424,19 @@ static const PRUint8 gGenCatIdx3[736] = 
      29,  // U+002B08 - U+002B0F : 0x77777777
      29,  // U+002B10 - U+002B17 : 0x77777777
      29,  // U+002B18 - U+002B1F : 0x77777777
      29,  // U+002B20 - U+002B27 : 0x77777777
      29,  // U+002B28 - U+002B2F : 0x77777777
      29,  // U+002B30 - U+002B37 : 0x77777777
      29,  // U+002B38 - U+002B3F : 0x77777777
      29,  // U+002B40 - U+002B47 : 0x77777777
-     49,  // U+002B48 - U+002B4F : 0x00077777
-     49,  // U+002B50 - U+002B57 : 0x00077777
-      3,  // U+002B58 - U+002B5F : 0x00000000
+     64,  // U+002B48 - U+002B4F : 0x00077777
+     29,  // U+002B50 - U+002B57 : 0x77777777
+     65,  // U+002B58 - U+002B5F : 0x00000077
       3,  // U+002B60 - U+002B67 : 0x00000000
       3,  // U+002B68 - U+002B6F : 0x00000000
       3,  // U+002B70 - U+002B77 : 0x00000000
       3,  // U+002B78 - U+002B7F : 0x00000000
       3,  // U+002B80 - U+002B87 : 0x00000000
       3,  // U+002B88 - U+002B8F : 0x00000000
       3,  // U+002B90 - U+002B97 : 0x00000000
       3,  // U+002B98 - U+002B9F : 0x00000000
@@ -1407,106 +1452,106 @@ static const PRUint8 gGenCatIdx3[736] = 
       3,  // U+002BE8 - U+002BEF : 0x00000000
       3,  // U+002BF0 - U+002BF7 : 0x00000000
       3,  // U+002BF8 - U+002BFF : 0x00000000
       0,  // U+002C00 - U+002C07 : 0x55555555
       0,  // U+002C08 - U+002C0F : 0x55555555
       0,  // U+002C10 - U+002C17 : 0x55555555
       0,  // U+002C18 - U+002C1F : 0x55555555
       0,  // U+002C20 - U+002C27 : 0x55555555
-     65,  // U+002C28 - U+002C2F : 0x05555555
+     66,  // U+002C28 - U+002C2F : 0x05555555
       0,  // U+002C30 - U+002C37 : 0x55555555
       0,  // U+002C38 - U+002C3F : 0x55555555
       0,  // U+002C40 - U+002C47 : 0x55555555
       0,  // U+002C48 - U+002C4F : 0x55555555
       0,  // U+002C50 - U+002C57 : 0x55555555
-     65,  // U+002C58 - U+002C5F : 0x05555555
+     66,  // U+002C58 - U+002C5F : 0x05555555
       0,  // U+002C60 - U+002C67 : 0x55555555
       0,  // U+002C68 - U+002C6F : 0x55555555
-     66,  // U+002C70 - U+002C77 : 0x55555550
-      5,  // U+002C78 - U+002C7F : 0x00555555
+      0,  // U+002C70 - U+002C77 : 0x55555555
+      0,  // U+002C78 - U+002C7F : 0x55555555
       0,  // U+002C80 - U+002C87 : 0x55555555
       0,  // U+002C88 - U+002C8F : 0x55555555
       0,  // U+002C90 - U+002C97 : 0x55555555
       0,  // U+002C98 - U+002C9F : 0x55555555
       0,  // U+002CA0 - U+002CA7 : 0x55555555
       0,  // U+002CA8 - U+002CAF : 0x55555555
       0,  // U+002CB0 - U+002CB7 : 0x55555555
       0,  // U+002CB8 - U+002CBF : 0x55555555
       0,  // U+002CC0 - U+002CC7 : 0x55555555
       0,  // U+002CC8 - U+002CCF : 0x55555555
       0,  // U+002CD0 - U+002CD7 : 0x55555555
       0,  // U+002CD8 - U+002CDF : 0x55555555
      10,  // U+002CE0 - U+002CE7 : 0x77755555
-     46,  // U+002CE8 - U+002CEF : 0x00000777
-      3,  // U+002CF0 - U+002CF7 : 0x00000000
-     67,  // U+002CF8 - U+002CFF : 0x66266660
+     67,  // U+002CE8 - U+002CEF : 0x15555777
+     68,  // U+002CF0 - U+002CF7 : 0x00000011
+     69,  // U+002CF8 - U+002CFF : 0x66266660
       0,  // U+002D00 - U+002D07 : 0x55555555
       0,  // U+002D08 - U+002D0F : 0x55555555
       0,  // U+002D10 - U+002D17 : 0x55555555
       0,  // U+002D18 - U+002D1F : 0x55555555
       5,  // U+002D20 - U+002D27 : 0x00555555
       3,  // U+002D28 - U+002D2F : 0x00000000
       0,  // U+002D30 - U+002D37 : 0x55555555
       0,  // U+002D38 - U+002D3F : 0x55555555
       0,  // U+002D40 - U+002D47 : 0x55555555
       0,  // U+002D48 - U+002D4F : 0x55555555
       0,  // U+002D50 - U+002D57 : 0x55555555
       0,  // U+002D58 - U+002D5F : 0x55555555
       5,  // U+002D60 - U+002D67 : 0x00555555
-     68,  // U+002D68 - U+002D6F : 0x50000000
+     70,  // U+002D68 - U+002D6F : 0x50000000
       3,  // U+002D70 - U+002D77 : 0x00000000
       3,  // U+002D78 - U+002D7F : 0x00000000
       0,  // U+002D80 - U+002D87 : 0x55555555
       0,  // U+002D88 - U+002D8F : 0x55555555
-     65,  // U+002D90 - U+002D97 : 0x05555555
+     66,  // U+002D90 - U+002D97 : 0x05555555
       3,  // U+002D98 - U+002D9F : 0x00000000
-     65,  // U+002DA0 - U+002DA7 : 0x05555555
-     65,  // U+002DA8 - U+002DAF : 0x05555555
-     65,  // U+002DB0 - U+002DB7 : 0x05555555
-     65,  // U+002DB8 - U+002DBF : 0x05555555
-     65,  // U+002DC0 - U+002DC7 : 0x05555555
-     65,  // U+002DC8 - U+002DCF : 0x05555555
-     65,  // U+002DD0 - U+002DD7 : 0x05555555
-     65,  // U+002DD8 - U+002DDF : 0x05555555
+     66,  // U+002DA0 - U+002DA7 : 0x05555555
+     66,  // U+002DA8 - U+002DAF : 0x05555555
+     66,  // U+002DB0 - U+002DB7 : 0x05555555
+     66,  // U+002DB8 - U+002DBF : 0x05555555
+     66,  // U+002DC0 - U+002DC7 : 0x05555555
+     66,  // U+002DC8 - U+002DCF : 0x05555555
+     66,  // U+002DD0 - U+002DD7 : 0x05555555
+     66,  // U+002DD8 - U+002DDF : 0x05555555
       1,  // U+002DE0 - U+002DE7 : 0x11111111
       1,  // U+002DE8 - U+002DEF : 0x11111111
       1,  // U+002DF0 - U+002DF7 : 0x11111111
       1,  // U+002DF8 - U+002DFF : 0x11111111
      17,  // U+002E00 - U+002E07 : 0x66666666
      17,  // U+002E08 - U+002E0F : 0x66666666
      17,  // U+002E10 - U+002E17 : 0x66666666
      17,  // U+002E18 - U+002E1F : 0x66666666
      17,  // U+002E20 - U+002E27 : 0x66666666
-     69,  // U+002E28 - U+002E2F : 0x56666666
-     70,  // U+002E30 - U+002E37 : 0x00000006
+     71,  // U+002E28 - U+002E2F : 0x56666666
+     72,  // U+002E30 - U+002E37 : 0x00000066
       3,  // U+002E38 - U+002E3F : 0x00000000
       3,  // U+002E40 - U+002E47 : 0x00000000
       3,  // U+002E48 - U+002E4F : 0x00000000
       3,  // U+002E50 - U+002E57 : 0x00000000
       3,  // U+002E58 - U+002E5F : 0x00000000
       3,  // U+002E60 - U+002E67 : 0x00000000
       3,  // U+002E68 - U+002E6F : 0x00000000
       3,  // U+002E70 - U+002E77 : 0x00000000
       3,  // U+002E78 - U+002E7F : 0x00000000
      29,  // U+002E80 - U+002E87 : 0x77777777
      29,  // U+002E88 - U+002E8F : 0x77777777
      29,  // U+002E90 - U+002E97 : 0x77777777
-     71,  // U+002E98 - U+002E9F : 0x77777077
+     73,  // U+002E98 - U+002E9F : 0x77777077
      29,  // U+002EA0 - U+002EA7 : 0x77777777
      29,  // U+002EA8 - U+002EAF : 0x77777777
      29,  // U+002EB0 - U+002EB7 : 0x77777777
      29,  // U+002EB8 - U+002EBF : 0x77777777
      29,  // U+002EC0 - U+002EC7 : 0x77777777
      29,  // U+002EC8 - U+002ECF : 0x77777777
      29,  // U+002ED0 - U+002ED7 : 0x77777777
      29,  // U+002ED8 - U+002EDF : 0x77777777
      29,  // U+002EE0 - U+002EE7 : 0x77777777
      29,  // U+002EE8 - U+002EEF : 0x77777777
-     50,  // U+002EF0 - U+002EF7 : 0x00007777
+     74,  // U+002EF0 - U+002EF7 : 0x00007777
       3,  // U+002EF8 - U+002EFF : 0x00000000
      29,  // U+002F00 - U+002F07 : 0x77777777
      29,  // U+002F08 - U+002F0F : 0x77777777
      29,  // U+002F10 - U+002F17 : 0x77777777
      29,  // U+002F18 - U+002F1F : 0x77777777
      29,  // U+002F20 - U+002F27 : 0x77777777
      29,  // U+002F28 - U+002F2F : 0x77777777
      29,  // U+002F30 - U+002F37 : 0x77777777
@@ -1524,118 +1569,118 @@ static const PRUint8 gGenCatIdx3[736] = 
      29,  // U+002F90 - U+002F97 : 0x77777777
      29,  // U+002F98 - U+002F9F : 0x77777777
      29,  // U+002FA0 - U+002FA7 : 0x77777777
      29,  // U+002FA8 - U+002FAF : 0x77777777
      29,  // U+002FB0 - U+002FB7 : 0x77777777
      29,  // U+002FB8 - U+002FBF : 0x77777777
      29,  // U+002FC0 - U+002FC7 : 0x77777777
      29,  // U+002FC8 - U+002FCF : 0x77777777
-     30,  // U+002FD0 - U+002FD7 : 0x00777777
+     75,  // U+002FD0 - U+002FD7 : 0x00777777
       3,  // U+002FD8 - U+002FDF : 0x00000000
       3,  // U+002FE0 - U+002FE7 : 0x00000000
       3,  // U+002FE8 - U+002FEF : 0x00000000
      29,  // U+002FF0 - U+002FF7 : 0x77777777
-     50,  // U+002FF8 - U+002FFF : 0x00007777
-     72,  // U+003000 - U+003007 : 0x25576663
+     74,  // U+002FF8 - U+002FFF : 0x00007777
+     76,  // U+003000 - U+003007 : 0x25576663
      17,  // U+003008 - U+00300F : 0x66666666
-     73,  // U+003010 - U+003017 : 0x66667766
+     77,  // U+003010 - U+003017 : 0x66667766
      17,  // U+003018 - U+00301F : 0x66666666
-     74,  // U+003020 - U+003027 : 0x22222227
-     75,  // U+003028 - U+00302F : 0x11111122
-     76,  // U+003030 - U+003037 : 0x77555556
-     77,  // U+003038 - U+00303F : 0x77655222
-     66,  // U+003040 - U+003047 : 0x55555550
+     78,  // U+003020 - U+003027 : 0x22222227
+     79,  // U+003028 - U+00302F : 0x11111122
+     80,  // U+003030 - U+003037 : 0x77555556
+     81,  // U+003038 - U+00303F : 0x77655222
+     82,  // U+003040 - U+003047 : 0x55555550
       0,  // U+003048 - U+00304F : 0x55555555
       0,  // U+003050 - U+003057 : 0x55555555
       0,  // U+003058 - U+00305F : 0x55555555
       0,  // U+003060 - U+003067 : 0x55555555
       0,  // U+003068 - U+00306F : 0x55555555
       0,  // U+003070 - U+003077 : 0x55555555
       0,  // U+003078 - U+00307F : 0x55555555
       0,  // U+003080 - U+003087 : 0x55555555
       0,  // U+003088 - U+00308F : 0x55555555
-     65,  // U+003090 - U+003097 : 0x05555555
-     78,  // U+003098 - U+00309F : 0x55577110
-     79,  // U+0030A0 - U+0030A7 : 0x55555556
+     66,  // U+003090 - U+003097 : 0x05555555
+     83,  // U+003098 - U+00309F : 0x55577110
+     84,  // U+0030A0 - U+0030A7 : 0x55555556
       0,  // U+0030A8 - U+0030AF : 0x55555555
       0,  // U+0030B0 - U+0030B7 : 0x55555555
       0,  // U+0030B8 - U+0030BF : 0x55555555
       0,  // U+0030C0 - U+0030C7 : 0x55555555
       0,  // U+0030C8 - U+0030CF : 0x55555555
       0,  // U+0030D0 - U+0030D7 : 0x55555555
       0,  // U+0030D8 - U+0030DF : 0x55555555
       0,  // U+0030E0 - U+0030E7 : 0x55555555
       0,  // U+0030E8 - U+0030EF : 0x55555555
       0,  // U+0030F0 - U+0030F7 : 0x55555555
-     80,  // U+0030F8 - U+0030FF : 0x55556555
-     81,  // U+003100 - U+003107 : 0x55500000
+     85,  // U+0030F8 - U+0030FF : 0x55556555
+     86,  // U+003100 - U+003107 : 0x55500000
       0,  // U+003108 - U+00310F : 0x55555555
       0,  // U+003110 - U+003117 : 0x55555555
       0,  // U+003118 - U+00311F : 0x55555555
       0,  // U+003120 - U+003127 : 0x55555555
       5,  // U+003128 - U+00312F : 0x00555555
-     66,  // U+003130 - U+003137 : 0x55555550
+     82,  // U+003130 - U+003137 : 0x55555550
       0,  // U+003138 - U+00313F : 0x55555555
       0,  // U+003140 - U+003147 : 0x55555555
       0,  // U+003148 - U+00314F : 0x55555555
       0,  // U+003150 - U+003157 : 0x55555555
       0,  // U+003158 - U+00315F : 0x55555555
       0,  // U+003160 - U+003167 : 0x55555555
       0,  // U+003168 - U+00316F : 0x55555555
       0,  // U+003170 - U+003177 : 0x55555555
       0,  // U+003178 - U+00317F : 0x55555555
       0,  // U+003180 - U+003187 : 0x55555555
-     65,  // U+003188 - U+00318F : 0x05555555
-     82,  // U+003190 - U+003197 : 0x77222277
+     66,  // U+003188 - U+00318F : 0x05555555
+     87,  // U+003190 - U+003197 : 0x77222277
      29,  // U+003198 - U+00319F : 0x77777777
       0,  // U+0031A0 - U+0031A7 : 0x55555555
       0,  // U+0031A8 - U+0031AF : 0x55555555
       0,  // U+0031B0 - U+0031B7 : 0x55555555
       3,  // U+0031B8 - U+0031BF : 0x00000000
      29,  // U+0031C0 - U+0031C7 : 0x77777777
      29,  // U+0031C8 - U+0031CF : 0x77777777
      29,  // U+0031D0 - U+0031D7 : 0x77777777
      29,  // U+0031D8 - U+0031DF : 0x77777777
-     50,  // U+0031E0 - U+0031E7 : 0x00007777
+     74,  // U+0031E0 - U+0031E7 : 0x00007777
       3,  // U+0031E8 - U+0031EF : 0x00000000
       0,  // U+0031F0 - U+0031F7 : 0x55555555
       0,  // U+0031F8 - U+0031FF : 0x55555555
      29,  // U+003200 - U+003207 : 0x77777777
      29,  // U+003208 - U+00320F : 0x77777777
      29,  // U+003210 - U+003217 : 0x77777777
-     45,  // U+003218 - U+00321F : 0x07777777
+     44,  // U+003218 - U+00321F : 0x07777777
      26,  // U+003220 - U+003227 : 0x22222222
-     83,  // U+003228 - U+00322F : 0x77777722
+     88,  // U+003228 - U+00322F : 0x77777722
      29,  // U+003230 - U+003237 : 0x77777777
      29,  // U+003238 - U+00323F : 0x77777777
-     50,  // U+003240 - U+003247 : 0x00007777
-      3,  // U+003248 - U+00324F : 0x00000000
-     74,  // U+003250 - U+003257 : 0x22222227
+     29,  // U+003240 - U+003247 : 0x77777777
+     29,  // U+003248 - U+00324F : 0x77777777
+     78,  // U+003250 - U+003257 : 0x22222227
      26,  // U+003258 - U+00325F : 0x22222222
      29,  // U+003260 - U+003267 : 0x77777777
      29,  // U+003268 - U+00326F : 0x77777777
      29,  // U+003270 - U+003277 : 0x77777777
      29,  // U+003278 - U+00327F : 0x77777777
      26,  // U+003280 - U+003287 : 0x22222222
-     83,  // U+003288 - U+00328F : 0x77777722
+     88,  // U+003288 - U+00328F : 0x77777722
      29,  // U+003290 - U+003297 : 0x77777777
      29,  // U+003298 - U+00329F : 0x77777777
      29,  // U+0032A0 - U+0032A7 : 0x77777777
      29,  // U+0032A8 - U+0032AF : 0x77777777
-     74,  // U+0032B0 - U+0032B7 : 0x22222227
+     78,  // U+0032B0 - U+0032B7 : 0x22222227
      26,  // U+0032B8 - U+0032BF : 0x22222222
      29,  // U+0032C0 - U+0032C7 : 0x77777777
      29,  // U+0032C8 - U+0032CF : 0x77777777
      29,  // U+0032D0 - U+0032D7 : 0x77777777
      29,  // U+0032D8 - U+0032DF : 0x77777777
      29,  // U+0032E0 - U+0032E7 : 0x77777777
      29,  // U+0032E8 - U+0032EF : 0x77777777
      29,  // U+0032F0 - U+0032F7 : 0x77777777
-     45,  // U+0032F8 - U+0032FF : 0x07777777
+     44,  // U+0032F8 - U+0032FF : 0x07777777
      29,  // U+003300 - U+003307 : 0x77777777
      29,  // U+003308 - U+00330F : 0x77777777
      29,  // U+003310 - U+003317 : 0x77777777
      29,  // U+003318 - U+00331F : 0x77777777
      29,  // U+003320 - U+003327 : 0x77777777
      29,  // U+003328 - U+00332F : 0x77777777
      29,  // U+003330 - U+003337 : 0x77777777
      29,  // U+003338 - U+00333F : 0x77777777
@@ -1660,28 +1705,28 @@ static const PRUint8 gGenCatIdx3[736] = 
      29,  // U+0033D0 - U+0033D7 : 0x77777777
      29,  // U+0033D8 - U+0033DF : 0x77777777
      29,  // U+0033E0 - U+0033E7 : 0x77777777
      29,  // U+0033E8 - U+0033EF : 0x77777777
      29,  // U+0033F0 - U+0033F7 : 0x77777777
      29,  // U+0033F8 - U+0033FF : 0x77777777
 };
 
-static const PRUint8 gGenCatIdx4[8] = {
+static const PRUint8 gGenCatIdx3[8] = {
      29,  // U+004DC0 - U+004DC7 : 0x77777777
      29,  // U+004DC8 - U+004DCF : 0x77777777
      29,  // U+004DD0 - U+004DD7 : 0x77777777
      29,  // U+004DD8 - U+004DDF : 0x77777777
      29,  // U+004DE0 - U+004DE7 : 0x77777777
      29,  // U+004DE8 - U+004DEF : 0x77777777
      29,  // U+004DF0 - U+004DF7 : 0x77777777
      29,  // U+004DF8 - U+004DFF : 0x77777777
 };
 
-static const PRUint8 gGenCatIdx5[336] = {
+static const PRUint8 gGenCatIdx4[352] = {
       0,  // U+00A000 - U+00A007 : 0x55555555
       0,  // U+00A008 - U+00A00F : 0x55555555
       0,  // U+00A010 - U+00A017 : 0x55555555
       0,  // U+00A018 - U+00A01F : 0x55555555
       0,  // U+00A020 - U+00A027 : 0x55555555
       0,  // U+00A028 - U+00A02F : 0x55555555
       0,  // U+00A030 - U+00A037 : 0x55555555
       0,  // U+00A038 - U+00A03F : 0x55555555
@@ -1824,24 +1869,24 @@ static const PRUint8 gGenCatIdx5[336] = 
       0,  // U+00A480 - U+00A487 : 0x55555555
      28,  // U+00A488 - U+00A48F : 0x00055555
      29,  // U+00A490 - U+00A497 : 0x77777777
      29,  // U+00A498 - U+00A49F : 0x77777777
      29,  // U+00A4A0 - U+00A4A7 : 0x77777777
      29,  // U+00A4A8 - U+00A4AF : 0x77777777
      29,  // U+00A4B0 - U+00A4B7 : 0x77777777
      29,  // U+00A4B8 - U+00A4BF : 0x77777777
-     45,  // U+00A4C0 - U+00A4C7 : 0x07777777
+     44,  // U+00A4C0 - U+00A4C7 : 0x07777777
       3,  // U+00A4C8 - U+00A4CF : 0x00000000
-      3,  // U+00A4D0 - U+00A4D7 : 0x00000000
-      3,  // U+00A4D8 - U+00A4DF : 0x00000000
-      3,  // U+00A4E0 - U+00A4E7 : 0x00000000
-      3,  // U+00A4E8 - U+00A4EF : 0x00000000
-      3,  // U+00A4F0 - U+00A4F7 : 0x00000000
-      3,  // U+00A4F8 - U+00A4FF : 0x00000000
+      0,  // U+00A4D0 - U+00A4D7 : 0x55555555
+      0,  // U+00A4D8 - U+00A4DF : 0x55555555
+      0,  // U+00A4E0 - U+00A4E7 : 0x55555555
+      0,  // U+00A4E8 - U+00A4EF : 0x55555555
+      0,  // U+00A4F0 - U+00A4F7 : 0x55555555
+     89,  // U+00A4F8 - U+00A4FF : 0x66555555
       0,  // U+00A500 - U+00A507 : 0x55555555
       0,  // U+00A508 - U+00A50F : 0x55555555
       0,  // U+00A510 - U+00A517 : 0x55555555
       0,  // U+00A518 - U+00A51F : 0x55555555
       0,  // U+00A520 - U+00A527 : 0x55555555
       0,  // U+00A528 - U+00A52F : 0x55555555
       0,  // U+00A530 - U+00A537 : 0x55555555
       0,  // U+00A538 - U+00A53F : 0x55555555
@@ -1865,162 +1910,202 @@ static const PRUint8 gGenCatIdx5[336] = 
       0,  // U+00A5C8 - U+00A5CF : 0x55555555
       0,  // U+00A5D0 - U+00A5D7 : 0x55555555
       0,  // U+00A5D8 - U+00A5DF : 0x55555555
       0,  // U+00A5E0 - U+00A5E7 : 0x55555555
       0,  // U+00A5E8 - U+00A5EF : 0x55555555
       0,  // U+00A5F0 - U+00A5F7 : 0x55555555
       0,  // U+00A5F8 - U+00A5FF : 0x55555555
       0,  // U+00A600 - U+00A607 : 0x55555555
-     84,  // U+00A608 - U+00A60F : 0x66655555
+     90,  // U+00A608 - U+00A60F : 0x66655555
       0,  // U+00A610 - U+00A617 : 0x55555555
       0,  // U+00A618 - U+00A61F : 0x55555555
      26,  // U+00A620 - U+00A627 : 0x22222222
-     85,  // U+00A628 - U+00A62F : 0x00005522
+     91,  // U+00A628 - U+00A62F : 0x00005522
       3,  // U+00A630 - U+00A637 : 0x00000000
       3,  // U+00A638 - U+00A63F : 0x00000000
       0,  // U+00A640 - U+00A647 : 0x55555555
       0,  // U+00A648 - U+00A64F : 0x55555555
       0,  // U+00A650 - U+00A657 : 0x55555555
       0,  // U+00A658 - U+00A65F : 0x55555555
-     86,  // U+00A660 - U+00A667 : 0x55555500
-     87,  // U+00A668 - U+00A66F : 0x15555555
-     88,  // U+00A670 - U+00A677 : 0x00006111
-     89,  // U+00A678 - U+00A67F : 0x56110000
+     92,  // U+00A660 - U+00A667 : 0x55555500
+     93,  // U+00A668 - U+00A66F : 0x15555555
+     94,  // U+00A670 - U+00A677 : 0x00006111
+     95,  // U+00A678 - U+00A67F : 0x56110000
       0,  // U+00A680 - U+00A687 : 0x55555555
       0,  // U+00A688 - U+00A68F : 0x55555555
       0,  // U+00A690 - U+00A697 : 0x55555555
       3,  // U+00A698 - U+00A69F : 0x00000000
-      3,  // U+00A6A0 - U+00A6A7 : 0x00000000
-      3,  // U+00A6A8 - U+00A6AF : 0x00000000
-      3,  // U+00A6B0 - U+00A6B7 : 0x00000000
-      3,  // U+00A6B8 - U+00A6BF : 0x00000000
-      3,  // U+00A6C0 - U+00A6C7 : 0x00000000
-      3,  // U+00A6C8 - U+00A6CF : 0x00000000
-      3,  // U+00A6D0 - U+00A6D7 : 0x00000000
-      3,  // U+00A6D8 - U+00A6DF : 0x00000000
-      3,  // U+00A6E0 - U+00A6E7 : 0x00000000
-      3,  // U+00A6E8 - U+00A6EF : 0x00000000
-      3,  // U+00A6F0 - U+00A6F7 : 0x00000000
+      0,  // U+00A6A0 - U+00A6A7 : 0x55555555
+      0,  // U+00A6A8 - U+00A6AF : 0x55555555
+      0,  // U+00A6B0 - U+00A6B7 : 0x55555555
+      0,  // U+00A6B8 - U+00A6BF : 0x55555555
+      0,  // U+00A6C0 - U+00A6C7 : 0x55555555
+      0,  // U+00A6C8 - U+00A6CF : 0x55555555
+      0,  // U+00A6D0 - U+00A6D7 : 0x55555555
+      0,  // U+00A6D8 - U+00A6DF : 0x55555555
+     96,  // U+00A6E0 - U+00A6E7 : 0x22555555
+     26,  // U+00A6E8 - U+00A6EF : 0x22222222
+     97,  // U+00A6F0 - U+00A6F7 : 0x66666611
       3,  // U+00A6F8 - U+00A6FF : 0x00000000
      29,  // U+00A700 - U+00A707 : 0x77777777
      29,  // U+00A708 - U+00A70F : 0x77777777
-     90,  // U+00A710 - U+00A717 : 0x57777777
+     98,  // U+00A710 - U+00A717 : 0x57777777
       0,  // U+00A718 - U+00A71F : 0x55555555
      33,  // U+00A720 - U+00A727 : 0x55555577
       0,  // U+00A728 - U+00A72F : 0x55555555
       0,  // U+00A730 - U+00A737 : 0x55555555
       0,  // U+00A738 - U+00A73F : 0x55555555
       0,  // U+00A740 - U+00A747 : 0x55555555
       0,  // U+00A748 - U+00A74F : 0x55555555
       0,  // U+00A750 - U+00A757 : 0x55555555
       0,  // U+00A758 - U+00A75F : 0x55555555
       0,  // U+00A760 - U+00A767 : 0x55555555
       0,  // U+00A768 - U+00A76F : 0x55555555
       0,  // U+00A770 - U+00A777 : 0x55555555
       0,  // U+00A778 - U+00A77F : 0x55555555
       0,  // U+00A780 - U+00A787 : 0x55555555
-     91,  // U+00A788 - U+00A78F : 0x00055775
+     99,  // U+00A788 - U+00A78F : 0x00055775
       3,  // U+00A790 - U+00A797 : 0x00000000
       3,  // U+00A798 - U+00A79F : 0x00000000
       3,  // U+00A7A0 - U+00A7A7 : 0x00000000
       3,  // U+00A7A8 - U+00A7AF : 0x00000000
       3,  // U+00A7B0 - U+00A7B7 : 0x00000000
       3,  // U+00A7B8 - U+00A7BF : 0x00000000
       3,  // U+00A7C0 - U+00A7C7 : 0x00000000
       3,  // U+00A7C8 - U+00A7CF : 0x00000000
       3,  // U+00A7D0 - U+00A7D7 : 0x00000000
       3,  // U+00A7D8 - U+00A7DF : 0x00000000
       3,  // U+00A7E0 - U+00A7E7 : 0x00000000
       3,  // U+00A7E8 - U+00A7EF : 0x00000000
       3,  // U+00A7F0 - U+00A7F7 : 0x00000000
-     92,  // U+00A7F8 - U+00A7FF : 0x55555000
-     93,  // U+00A800 - U+00A807 : 0x51555155
-     94,  // U+00A808 - U+00A80F : 0x55551555
+    100,  // U+00A7F8 - U+00A7FF : 0x55555000
+    101,  // U+00A800 - U+00A807 : 0x51555155
+    102,  // U+00A808 - U+00A80F : 0x55551555
       0,  // U+00A810 - U+00A817 : 0x55555555
       0,  // U+00A818 - U+00A81F : 0x55555555
-     95,  // U+00A820 - U+00A827 : 0x11111555
-     50,  // U+00A828 - U+00A82F : 0x00007777
-      3,  // U+00A830 - U+00A837 : 0x00000000
-      3,  // U+00A838 - U+00A83F : 0x00000000
+    103,  // U+00A820 - U+00A827 : 0x11111555
+     74,  // U+00A828 - U+00A82F : 0x00007777
+    104,  // U+00A830 - U+00A837 : 0x77222222
+     65,  // U+00A838 - U+00A83F : 0x00000077
       0,  // U+00A840 - U+00A847 : 0x55555555
       0,  // U+00A848 - U+00A84F : 0x55555555
       0,  // U+00A850 - U+00A857 : 0x55555555
       0,  // U+00A858 - U+00A85F : 0x55555555
       0,  // U+00A860 - U+00A867 : 0x55555555
       0,  // U+00A868 - U+00A86F : 0x55555555
-     96,  // U+00A870 - U+00A877 : 0x66665555
+    105,  // U+00A870 - U+00A877 : 0x66665555
       3,  // U+00A878 - U+00A87F : 0x00000000
-     97,  // U+00A880 - U+00A887 : 0x55555511
+    106,  // U+00A880 - U+00A887 : 0x55555511
       0,  // U+00A888 - U+00A88F : 0x55555555
       0,  // U+00A890 - U+00A897 : 0x55555555
       0,  // U+00A898 - U+00A89F : 0x55555555
       0,  // U+00A8A0 - U+00A8A7 : 0x55555555
       0,  // U+00A8A8 - U+00A8AF : 0x55555555
-     98,  // U+00A8B0 - U+00A8B7 : 0x11115555
+    107,  // U+00A8B0 - U+00A8B7 : 0x11115555
       1,  // U+00A8B8 - U+00A8BF : 0x11111111
-     99,  // U+00A8C0 - U+00A8C7 : 0x00011111
-    100,  // U+00A8C8 - U+00A8CF : 0x66000000
+    108,  // U+00A8C0 - U+00A8C7 : 0x00011111
+    109,  // U+00A8C8 - U+00A8CF : 0x66000000
      26,  // U+00A8D0 - U+00A8D7 : 0x22222222
-    101,  // U+00A8D8 - U+00A8DF : 0x00000022
-      3,  // U+00A8E0 - U+00A8E7 : 0x00000000
-      3,  // U+00A8E8 - U+00A8EF : 0x00000000
-      3,  // U+00A8F0 - U+00A8F7 : 0x00000000
-      3,  // U+00A8F8 - U+00A8FF : 0x00000000
+     42,  // U+00A8D8 - U+00A8DF : 0x00000022
+      1,  // U+00A8E0 - U+00A8E7 : 0x11111111
+      1,  // U+00A8E8 - U+00A8EF : 0x11111111
+    106,  // U+00A8F0 - U+00A8F7 : 0x55555511
+    110,  // U+00A8F8 - U+00A8FF : 0x00005666
      26,  // U+00A900 - U+00A907 : 0x22222222
-    102,  // U+00A908 - U+00A90F : 0x55555522
+    111,  // U+00A908 - U+00A90F : 0x55555522
       0,  // U+00A910 - U+00A917 : 0x55555555
       0,  // U+00A918 - U+00A91F : 0x55555555
-    103,  // U+00A920 - U+00A927 : 0x11555555
-    104,  // U+00A928 - U+00A92F : 0x66111111
+    112,  // U+00A920 - U+00A927 : 0x11555555
+    113,  // U+00A928 - U+00A92F : 0x66111111
       0,  // U+00A930 - U+00A937 : 0x55555555
       0,  // U+00A938 - U+00A93F : 0x55555555
-     87,  // U+00A940 - U+00A947 : 0x15555555
+     93,  // U+00A940 - U+00A947 : 0x15555555
       1,  // U+00A948 - U+00A94F : 0x11111111
-    105,  // U+00A950 - U+00A957 : 0x00001111
-    106,  // U+00A958 - U+00A95F : 0x60000000
-      3,  // U+00A960 - U+00A967 : 0x00000000
-      3,  // U+00A968 - U+00A96F : 0x00000000
-      3,  // U+00A970 - U+00A977 : 0x00000000
-      3,  // U+00A978 - U+00A97F : 0x00000000
-      3,  // U+00A980 - U+00A987 : 0x00000000
-      3,  // U+00A988 - U+00A98F : 0x00000000
-      3,  // U+00A990 - U+00A997 : 0x00000000
-      3,  // U+00A998 - U+00A99F : 0x00000000
-      3,  // U+00A9A0 - U+00A9A7 : 0x00000000
-      3,  // U+00A9A8 - U+00A9AF : 0x00000000
-      3,  // U+00A9B0 - U+00A9B7 : 0x00000000
-      3,  // U+00A9B8 - U+00A9BF : 0x00000000
-      3,  // U+00A9C0 - U+00A9C7 : 0x00000000
-      3,  // U+00A9C8 - U+00A9CF : 0x00000000
-      3,  // U+00A9D0 - U+00A9D7 : 0x00000000
-      3,  // U+00A9D8 - U+00A9DF : 0x00000000
+    114,  // U+00A950 - U+00A957 : 0x00001111
+    115,  // U+00A958 - U+00A95F : 0x60000000
+      0,  // U+00A960 - U+00A967 : 0x55555555
+      0,  // U+00A968 - U+00A96F : 0x55555555
+      0,  // U+00A970 - U+00A977 : 0x55555555
+     28,  // U+00A978 - U+00A97F : 0x00055555
+    116,  // U+00A980 - U+00A987 : 0x55551111
+      0,  // U+00A988 - U+00A98F : 0x55555555
+      0,  // U+00A990 - U+00A997 : 0x55555555
+      0,  // U+00A998 - U+00A99F : 0x55555555
+      0,  // U+00A9A0 - U+00A9A7 : 0x55555555
+      0,  // U+00A9A8 - U+00A9AF : 0x55555555
+    103,  // U+00A9B0 - U+00A9B7 : 0x11111555
+      1,  // U+00A9B8 - U+00A9BF : 0x11111111
+    117,  // U+00A9C0 - U+00A9C7 : 0x66666661
+    118,  // U+00A9C8 - U+00A9CF : 0x50666666
+     26,  // U+00A9D0 - U+00A9D7 : 0x22222222
+    119,  // U+00A9D8 - U+00A9DF : 0x66000022
       3,  // U+00A9E0 - U+00A9E7 : 0x00000000
       3,  // U+00A9E8 - U+00A9EF : 0x00000000
       3,  // U+00A9F0 - U+00A9F7 : 0x00000000
       3,  // U+00A9F8 - U+00A9FF : 0x00000000
       0,  // U+00AA00 - U+00AA07 : 0x55555555
       0,  // U+00AA08 - U+00AA0F : 0x55555555
       0,  // U+00AA10 - U+00AA17 : 0x55555555
       0,  // U+00AA18 - U+00AA1F : 0x55555555
       0,  // U+00AA20 - U+00AA27 : 0x55555555
-    107,  // U+00AA28 - U+00AA2F : 0x11111115
+    120,  // U+00AA28 - U+00AA2F : 0x11111115
       2,  // U+00AA30 - U+00AA37 : 0x01111111
       3,  // U+00AA38 - U+00AA3F : 0x00000000
-     94,  // U+00AA40 - U+00AA47 : 0x55551555
-    108,  // U+00AA48 - U+00AA4F : 0x00115555
+    102,  // U+00AA40 - U+00AA47 : 0x55551555
+    121,  // U+00AA48 - U+00AA4F : 0x00115555
      26,  // U+00AA50 - U+00AA57 : 0x22222222
-    109,  // U+00AA58 - U+00AA5F : 0x66660022
-      3,  // U+00AA60 - U+00AA67 : 0x00000000
-      3,  // U+00AA68 - U+00AA6F : 0x00000000
-      3,  // U+00AA70 - U+00AA77 : 0x00000000
-      3,  // U+00AA78 - U+00AA7F : 0x00000000
+    122,  // U+00AA58 - U+00AA5F : 0x66660022
+      0,  // U+00AA60 - U+00AA67 : 0x55555555
+      0,  // U+00AA68 - U+00AA6F : 0x55555555
+    123,  // U+00AA70 - U+00AA77 : 0x75555555
+    124,  // U+00AA78 - U+00AA7F : 0x00001577
+      0,  // U+00AA80 - U+00AA87 : 0x55555555
+      0,  // U+00AA88 - U+00AA8F : 0x55555555
+      0,  // U+00AA90 - U+00AA97 : 0x55555555
+      0,  // U+00AA98 - U+00AA9F : 0x55555555
+      0,  // U+00AAA0 - U+00AAA7 : 0x55555555
+      0,  // U+00AAA8 - U+00AAAF : 0x55555555
+    125,  // U+00AAB0 - U+00AAB7 : 0x15511151
+    126,  // U+00AAB8 - U+00AABF : 0x11555551
+    127,  // U+00AAC0 - U+00AAC7 : 0x00000515
+      3,  // U+00AAC8 - U+00AACF : 0x00000000
+      3,  // U+00AAD0 - U+00AAD7 : 0x00000000
+    128,  // U+00AAD8 - U+00AADF : 0x66555000
+      3,  // U+00AAE0 - U+00AAE7 : 0x00000000
+      3,  // U+00AAE8 - U+00AAEF : 0x00000000
+      3,  // U+00AAF0 - U+00AAF7 : 0x00000000
+      3,  // U+00AAF8 - U+00AAFF : 0x00000000
 };
 
-static const PRUint8 gGenCatIdx6[224] = {
+static const PRUint8 gGenCatIdx5[8] = {
+      0,  // U+00ABC0 - U+00ABC7 : 0x55555555
+      0,  // U+00ABC8 - U+00ABCF : 0x55555555
+      0,  // U+00ABD0 - U+00ABD7 : 0x55555555
+      0,  // U+00ABD8 - U+00ABDF : 0x55555555
+    103,  // U+00ABE0 - U+00ABE7 : 0x11111555
+    129,  // U+00ABE8 - U+00ABEF : 0x00116111
+     26,  // U+00ABF0 - U+00ABF7 : 0x22222222
+     42,  // U+00ABF8 - U+00ABFF : 0x00000022
+};
+
+static const PRUint8 gGenCatIdx6[10] = {
+      0,  // U+00D7B0 - U+00D7B7 : 0x55555555
+      0,  // U+00D7B8 - U+00D7BF : 0x55555555
+     66,  // U+00D7C0 - U+00D7C7 : 0x05555555
+    100,  // U+00D7C8 - U+00D7CF : 0x55555000
+      0,  // U+00D7D0 - U+00D7D7 : 0x55555555
+      0,  // U+00D7D8 - U+00D7DF : 0x55555555
+      0,  // U+00D7E0 - U+00D7E7 : 0x55555555
+      0,  // U+00D7E8 - U+00D7EF : 0x55555555
+      0,  // U+00D7F0 - U+00D7F7 : 0x55555555
+    130,  // U+00D7F8 - U+00D7FF : 0x00005555
+};
+
+static const PRUint8 gGenCatIdx7[224] = {
       3,  // U+00F900 - U+00F907 : 0x00000000
       3,  // U+00F908 - U+00F90F : 0x00000000
       3,  // U+00F910 - U+00F917 : 0x00000000
       3,  // U+00F918 - U+00F91F : 0x00000000
       3,  // U+00F920 - U+00F927 : 0x00000000
       3,  // U+00F928 - U+00F92F : 0x00000000
       3,  // U+00F930 - U+00F937 : 0x00000000
       3,  // U+00F938 - U+00F93F : 0x00000000
@@ -2075,43 +2160,43 @@ static const PRUint8 gGenCatIdx6[224] = 
       3,  // U+00FAC0 - U+00FAC7 : 0x00000000
       3,  // U+00FAC8 - U+00FACF : 0x00000000
       3,  // U+00FAD0 - U+00FAD7 : 0x00000000
       3,  // U+00FAD8 - U+00FADF : 0x00000000
       3,  // U+00FAE0 - U+00FAE7 : 0x00000000
       3,  // U+00FAE8 - U+00FAEF : 0x00000000
       3,  // U+00FAF0 - U+00FAF7 : 0x00000000
       3,  // U+00FAF8 - U+00FAFF : 0x00000000
-     65,  // U+00FB00 - U+00FB07 : 0x05555555
+     66,  // U+00FB00 - U+00FB07 : 0x05555555
       3,  // U+00FB08 - U+00FB0F : 0x00000000
-     92,  // U+00FB10 - U+00FB17 : 0x55555000
-    110,  // U+00FB18 - U+00FB1F : 0x51500000
+    100,  // U+00FB10 - U+00FB17 : 0x55555000
+    131,  // U+00FB18 - U+00FB1F : 0x51500000
       0,  // U+00FB20 - U+00FB27 : 0x55555555
-    111,  // U+00FB28 - U+00FB2F : 0x55555575
-     65,  // U+00FB30 - U+00FB37 : 0x05555555
-    112,  // U+00FB38 - U+00FB3F : 0x05055555
-    113,  // U+00FB40 - U+00FB47 : 0x55055055
+    132,  // U+00FB28 - U+00FB2F : 0x55555575
+     66,  // U+00FB30 - U+00FB37 : 0x05555555
+    133,  // U+00FB38 - U+00FB3F : 0x05055555
+    134,  // U+00FB40 - U+00FB47 : 0x55055055
       0,  // U+00FB48 - U+00FB4F : 0x55555555
       0,  // U+00FB50 - U+00FB57 : 0x55555555
       0,  // U+00FB58 - U+00FB5F : 0x55555555
       0,  // U+00FB60 - U+00FB67 : 0x55555555
       0,  // U+00FB68 - U+00FB6F : 0x55555555
       0,  // U+00FB70 - U+00FB77 : 0x55555555
       0,  // U+00FB78 - U+00FB7F : 0x55555555
       0,  // U+00FB80 - U+00FB87 : 0x55555555
       0,  // U+00FB88 - U+00FB8F : 0x55555555
       0,  // U+00FB90 - U+00FB97 : 0x55555555
       0,  // U+00FB98 - U+00FB9F : 0x55555555
       0,  // U+00FBA0 - U+00FBA7 : 0x55555555
       0,  // U+00FBA8 - U+00FBAF : 0x55555555
-    114,  // U+00FBB0 - U+00FBB7 : 0x00000055
+    135,  // U+00FBB0 - U+00FBB7 : 0x00000055
       3,  // U+00FBB8 - U+00FBBF : 0x00000000
       3,  // U+00FBC0 - U+00FBC7 : 0x00000000
       3,  // U+00FBC8 - U+00FBCF : 0x00000000
-     92,  // U+00FBD0 - U+00FBD7 : 0x55555000
+    100,  // U+00FBD0 - U+00FBD7 : 0x55555000
       0,  // U+00FBD8 - U+00FBDF : 0x55555555
       0,  // U+00FBE0 - U+00FBE7 : 0x55555555
       0,  // U+00FBE8 - U+00FBEF : 0x55555555
       0,  // U+00FBF0 - U+00FBF7 : 0x55555555
       0,  // U+00FBF8 - U+00FBFF : 0x55555555
       0,  // U+00FC00 - U+00FC07 : 0x55555555
       0,  // U+00FC08 - U+00FC0F : 0x55555555
       0,  // U+00FC10 - U+00FC17 : 0x55555555
@@ -2146,55 +2231,55 @@ static const PRUint8 gGenCatIdx6[224] = 
       0,  // U+00FCF8 - U+00FCFF : 0x55555555
       0,  // U+00FD00 - U+00FD07 : 0x55555555
       0,  // U+00FD08 - U+00FD0F : 0x55555555
       0,  // U+00FD10 - U+00FD17 : 0x55555555
       0,  // U+00FD18 - U+00FD1F : 0x55555555
       0,  // U+00FD20 - U+00FD27 : 0x55555555
       0,  // U+00FD28 - U+00FD2F : 0x55555555
       0,  // U+00FD30 - U+00FD37 : 0x55555555
-    115,  // U+00FD38 - U+00FD3F : 0x66555555
+     89,  // U+00FD38 - U+00FD3F : 0x66555555
       3,  // U+00FD40 - U+00FD47 : 0x00000000
       3,  // U+00FD48 - U+00FD4F : 0x00000000
       0,  // U+00FD50 - U+00FD57 : 0x55555555
       0,  // U+00FD58 - U+00FD5F : 0x55555555
       0,  // U+00FD60 - U+00FD67 : 0x55555555
       0,  // U+00FD68 - U+00FD6F : 0x55555555
       0,  // U+00FD70 - U+00FD77 : 0x55555555
       0,  // U+00FD78 - U+00FD7F : 0x55555555
       0,  // U+00FD80 - U+00FD87 : 0x55555555
       0,  // U+00FD88 - U+00FD8F : 0x55555555
-     86,  // U+00FD90 - U+00FD97 : 0x55555500
+     92,  // U+00FD90 - U+00FD97 : 0x55555500
       0,  // U+00FD98 - U+00FD9F : 0x55555555
       0,  // U+00FDA0 - U+00FDA7 : 0x55555555
       0,  // U+00FDA8 - U+00FDAF : 0x55555555
       0,  // U+00FDB0 - U+00FDB7 : 0x55555555
       0,  // U+00FDB8 - U+00FDBF : 0x55555555
       0,  // U+00FDC0 - U+00FDC7 : 0x55555555
       3,  // U+00FDC8 - U+00FDCF : 0x00000000
       3,  // U+00FDD0 - U+00FDD7 : 0x00000000
       3,  // U+00FDD8 - U+00FDDF : 0x00000000
       3,  // U+00FDE0 - U+00FDE7 : 0x00000000
       3,  // U+00FDE8 - U+00FDEF : 0x00000000
       0,  // U+00FDF0 - U+00FDF7 : 0x55555555
-    116,  // U+00FDF8 - U+00FDFF : 0x00775555
+    136,  // U+00FDF8 - U+00FDFF : 0x00775555
       1,  // U+00FE00 - U+00FE07 : 0x11111111
       1,  // U+00FE08 - U+00FE0F : 0x11111111
      17,  // U+00FE10 - U+00FE17 : 0x66666666
-    117,  // U+00FE18 - U+00FE1F : 0x00000066
+     72,  // U+00FE18 - U+00FE1F : 0x00000066
       2,  // U+00FE20 - U+00FE27 : 0x01111111
       3,  // U+00FE28 - U+00FE2F : 0x00000000
      17,  // U+00FE30 - U+00FE37 : 0x66666666
      17,  // U+00FE38 - U+00FE3F : 0x66666666
      17,  // U+00FE40 - U+00FE47 : 0x66666666
      17,  // U+00FE48 - U+00FE4F : 0x66666666
-    118,  // U+00FE50 - U+00FE57 : 0x66660666
+    137,  // U+00FE50 - U+00FE57 : 0x66660666
      17,  // U+00FE58 - U+00FE5F : 0x66666666
-    119,  // U+00FE60 - U+00FE67 : 0x07776766
-    120,  // U+00FE68 - U+00FE6F : 0x00006676
+    138,  // U+00FE60 - U+00FE67 : 0x07776766
+    139,  // U+00FE68 - U+00FE6F : 0x00006676
       7,  // U+00FE70 - U+00FE77 : 0x55055555
       0,  // U+00FE78 - U+00FE7F : 0x55555555
       0,  // U+00FE80 - U+00FE87 : 0x55555555
       0,  // U+00FE88 - U+00FE8F : 0x55555555
       0,  // U+00FE90 - U+00FE97 : 0x55555555
       0,  // U+00FE98 - U+00FE9F : 0x55555555
       0,  // U+00FEA0 - U+00FEA7 : 0x55555555
       0,  // U+00FEA8 - U+00FEAF : 0x55555555
@@ -2202,60 +2287,60 @@ static const PRUint8 gGenCatIdx6[224] = 
       0,  // U+00FEB8 - U+00FEBF : 0x55555555
       0,  // U+00FEC0 - U+00FEC7 : 0x55555555
       0,  // U+00FEC8 - U+00FECF : 0x55555555
       0,  // U+00FED0 - U+00FED7 : 0x55555555
       0,  // U+00FED8 - U+00FEDF : 0x55555555
       0,  // U+00FEE0 - U+00FEE7 : 0x55555555
       0,  // U+00FEE8 - U+00FEEF : 0x55555555
       0,  // U+00FEF0 - U+00FEF7 : 0x55555555
-    121,  // U+00FEF8 - U+00FEFF : 0x40055555
-    122,  // U+00FF00 - U+00FF07 : 0x66676660
-    123,  // U+00FF08 - U+00FF0F : 0x66667666
+    140,  // U+00FEF8 - U+00FEFF : 0x40055555
+    141,  // U+00FF00 - U+00FF07 : 0x66676660
+    142,  // U+00FF08 - U+00FF0F : 0x66667666
      26,  // U+00FF10 - U+00FF17 : 0x22222222
-    124,  // U+00FF18 - U+00FF1F : 0x67776622
-     79,  // U+00FF20 - U+00FF27 : 0x55555556
+    143,  // U+00FF18 - U+00FF1F : 0x67776622
+     84,  // U+00FF20 - U+00FF27 : 0x55555556
       0,  // U+00FF28 - U+00FF2F : 0x55555555
       0,  // U+00FF30 - U+00FF37 : 0x55555555
-    125,  // U+00FF38 - U+00FF3F : 0x67666555
-    126,  // U+00FF40 - U+00FF47 : 0x55555557
+    144,  // U+00FF38 - U+00FF3F : 0x67666555
+    145,  // U+00FF40 - U+00FF47 : 0x55555557
       0,  // U+00FF48 - U+00FF4F : 0x55555555
       0,  // U+00FF50 - U+00FF57 : 0x55555555
-    127,  // U+00FF58 - U+00FF5F : 0x67676555
-    128,  // U+00FF60 - U+00FF67 : 0x55666666
+    146,  // U+00FF58 - U+00FF5F : 0x67676555
+    147,  // U+00FF60 - U+00FF67 : 0x55666666
       0,  // U+00FF68 - U+00FF6F : 0x55555555
       0,  // U+00FF70 - U+00FF77 : 0x55555555
       0,  // U+00FF78 - U+00FF7F : 0x55555555
       0,  // U+00FF80 - U+00FF87 : 0x55555555
       0,  // U+00FF88 - U+00FF8F : 0x55555555
       0,  // U+00FF90 - U+00FF97 : 0x55555555
       0,  // U+00FF98 - U+00FF9F : 0x55555555
       0,  // U+00FFA0 - U+00FFA7 : 0x55555555
       0,  // U+00FFA8 - U+00FFAF : 0x55555555
       0,  // U+00FFB0 - U+00FFB7 : 0x55555555
-     65,  // U+00FFB8 - U+00FFBF : 0x05555555
-     86,  // U+00FFC0 - U+00FFC7 : 0x55555500
-     86,  // U+00FFC8 - U+00FFCF : 0x55555500
-     86,  // U+00FFD0 - U+00FFD7 : 0x55555500
-    129,  // U+00FFD8 - U+00FFDF : 0x00055500
-     45,  // U+00FFE0 - U+00FFE7 : 0x07777777
-     45,  // U+00FFE8 - U+00FFEF : 0x07777777
+     66,  // U+00FFB8 - U+00FFBF : 0x05555555
+     92,  // U+00FFC0 - U+00FFC7 : 0x55555500
+     92,  // U+00FFC8 - U+00FFCF : 0x55555500
+     92,  // U+00FFD0 - U+00FFD7 : 0x55555500
+    148,  // U+00FFD8 - U+00FFDF : 0x00055500
+     44,  // U+00FFE0 - U+00FFE7 : 0x07777777
+     44,  // U+00FFE8 - U+00FFEF : 0x07777777
       3,  // U+00FFF0 - U+00FFF7 : 0x00000000
-    130,  // U+00FFF8 - U+00FFFF : 0x00774440
+    149,  // U+00FFF8 - U+00FFFF : 0x00774440
 };
 
-static const PRUint8 gGenCatIdx7[150] = {
+static const PRUint8 gGenCatIdx8[150] = {
       0,  // U+010000 - U+010007 : 0x55555555
-    131,  // U+010008 - U+01000F : 0x55505555
+    150,  // U+010008 - U+01000F : 0x55505555
       0,  // U+010010 - U+010017 : 0x55555555
       0,  // U+010018 - U+01001F : 0x55555555
-     65,  // U+010020 - U+010027 : 0x05555555
+     66,  // U+010020 - U+010027 : 0x05555555
       0,  // U+010028 - U+01002F : 0x55555555
       0,  // U+010030 - U+010037 : 0x55555555
-    132,  // U+010038 - U+01003F : 0x50550555
+    151,  // U+010038 - U+01003F : 0x50550555
       0,  // U+010040 - U+010047 : 0x55555555
       5,  // U+010048 - U+01004F : 0x00555555
       0,  // U+010050 - U+010057 : 0x55555555
       5,  // U+010058 - U+01005F : 0x00555555
       3,  // U+010060 - U+010067 : 0x00000000
       3,  // U+010068 - U+01006F : 0x00000000
       3,  // U+010070 - U+010077 : 0x00000000
       3,  // U+010078 - U+01007F : 0x00000000
@@ -2269,49 +2354,49 @@ static const PRUint8 gGenCatIdx7[150] = 
       0,  // U+0100B8 - U+0100BF : 0x55555555
       0,  // U+0100C0 - U+0100C7 : 0x55555555
       0,  // U+0100C8 - U+0100CF : 0x55555555
       0,  // U+0100D0 - U+0100D7 : 0x55555555
       0,  // U+0100D8 - U+0100DF : 0x55555555
       0,  // U+0100E0 - U+0100E7 : 0x55555555
       0,  // U+0100E8 - U+0100EF : 0x55555555
       0,  // U+0100F0 - U+0100F7 : 0x55555555
-    133,  // U+0100F8 - U+0100FF : 0x00000555
-    134,  // U+010100 - U+010107 : 0x20000766
+    152,  // U+0100F8 - U+0100FF : 0x00000555
+    153,  // U+010100 - U+010107 : 0x20000766
      26,  // U+010108 - U+01010F : 0x22222222
      26,  // U+010110 - U+010117 : 0x22222222
      26,  // U+010118 - U+01011F : 0x22222222
      26,  // U+010120 - U+010127 : 0x22222222
      26,  // U+010128 - U+01012F : 0x22222222
-    135,  // U+010130 - U+010137 : 0x70002222
+    154,  // U+010130 - U+010137 : 0x70002222
      29,  // U+010138 - U+01013F : 0x77777777
      26,  // U+010140 - U+010147 : 0x22222222
      26,  // U+010148 - U+01014F : 0x22222222
      26,  // U+010150 - U+010157 : 0x22222222
      26,  // U+010158 - U+01015F : 0x22222222
      26,  // U+010160 - U+010167 : 0x22222222
      26,  // U+010168 - U+01016F : 0x22222222
      26,  // U+010170 - U+010177 : 0x22222222
-    136,  // U+010178 - U+01017F : 0x77777772
+    155,  // U+010178 - U+01017F : 0x77777772
      29,  // U+010180 - U+010187 : 0x77777777
-    137,  // U+010188 - U+01018F : 0x00000277
+    156,  // U+010188 - U+01018F : 0x00000277
      29,  // U+010190 - U+010197 : 0x77777777
-     50,  // U+010198 - U+01019F : 0x00007777
+     74,  // U+010198 - U+01019F : 0x00007777
       3,  // U+0101A0 - U+0101A7 : 0x00000000
       3,  // U+0101A8 - U+0101AF : 0x00000000
       3,  // U+0101B0 - U+0101B7 : 0x00000000
       3,  // U+0101B8 - U+0101BF : 0x00000000
       3,  // U+0101C0 - U+0101C7 : 0x00000000
       3,  // U+0101C8 - U+0101CF : 0x00000000
      29,  // U+0101D0 - U+0101D7 : 0x77777777
      29,  // U+0101D8 - U+0101DF : 0x77777777
      29,  // U+0101E0 - U+0101E7 : 0x77777777
      29,  // U+0101E8 - U+0101EF : 0x77777777
      29,  // U+0101F0 - U+0101F7 : 0x77777777
-    138,  // U+0101F8 - U+0101FF : 0x00177777
+    157,  // U+0101F8 - U+0101FF : 0x00177777
       3,  // U+010200 - U+010207 : 0x00000000
       3,  // U+010208 - U+01020F : 0x00000000
       3,  // U+010210 - U+010217 : 0x00000000
       3,  // U+010218 - U+01021F : 0x00000000
       3,  // U+010220 - U+010227 : 0x00000000
       3,  // U+010228 - U+01022F : 0x00000000
       3,  // U+010230 - U+010237 : 0x00000000
       3,  // U+010238 - U+01023F : 0x00000000
@@ -2328,49 +2413,49 @@ static const PRUint8 gGenCatIdx7[150] = 
       0,  // U+010290 - U+010297 : 0x55555555
      28,  // U+010298 - U+01029F : 0x00055555
       0,  // U+0102A0 - U+0102A7 : 0x55555555
       0,  // U+0102A8 - U+0102AF : 0x55555555
       0,  // U+0102B0 - U+0102B7 : 0x55555555
       0,  // U+0102B8 - U+0102BF : 0x55555555
       0,  // U+0102C0 - U+0102C7 : 0x55555555
       0,  // U+0102C8 - U+0102CF : 0x55555555
-    139,  // U+0102D0 - U+0102D7 : 0x00000005
+    158,  // U+0102D0 - U+0102D7 : 0x00000005
       3,  // U+0102D8 - U+0102DF : 0x00000000
       3,  // U+0102E0 - U+0102E7 : 0x00000000
       3,  // U+0102E8 - U+0102EF : 0x00000000
       3,  // U+0102F0 - U+0102F7 : 0x00000000
       3,  // U+0102F8 - U+0102FF : 0x00000000
       0,  // U+010300 - U+010307 : 0x55555555
       0,  // U+010308 - U+01030F : 0x55555555
       0,  // U+010310 - U+010317 : 0x55555555
-     65,  // U+010318 - U+01031F : 0x05555555
-    140,  // U+010320 - U+010327 : 0x00002222
+     66,  // U+010318 - U+01031F : 0x05555555
+    159,  // U+010320 - U+010327 : 0x00002222
       3,  // U+010328 - U+01032F : 0x00000000
       0,  // U+010330 - U+010337 : 0x55555555
       0,  // U+010338 - U+01033F : 0x55555555
-    141,  // U+010340 - U+010347 : 0x55555525
-    142,  // U+010348 - U+01034F : 0x00000255
+    160,  // U+010340 - U+010347 : 0x55555525
+    161,  // U+010348 - U+01034F : 0x00000255
       3,  // U+010350 - U+010357 : 0x00000000
       3,  // U+010358 - U+01035F : 0x00000000
       3,  // U+010360 - U+010367 : 0x00000000
       3,  // U+010368 - U+01036F : 0x00000000
       3,  // U+010370 - U+010377 : 0x00000000
       3,  // U+010378 - U+01037F : 0x00000000
       0,  // U+010380 - U+010387 : 0x55555555
       0,  // U+010388 - U+01038F : 0x55555555
       0,  // U+010390 - U+010397 : 0x55555555
-    143,  // U+010398 - U+01039F : 0x60555555
+    162,  // U+010398 - U+01039F : 0x60555555
       0,  // U+0103A0 - U+0103A7 : 0x55555555
       0,  // U+0103A8 - U+0103AF : 0x55555555
       0,  // U+0103B0 - U+0103B7 : 0x55555555
       0,  // U+0103B8 - U+0103BF : 0x55555555
-    144,  // U+0103C0 - U+0103C7 : 0x00005555
+    130,  // U+0103C0 - U+0103C7 : 0x00005555
       0,  // U+0103C8 - U+0103CF : 0x55555555
-    145,  // U+0103D0 - U+0103D7 : 0x00222226
+    163,  // U+0103D0 - U+0103D7 : 0x00222226
       3,  // U+0103D8 - U+0103DF : 0x00000000
       3,  // U+0103E0 - U+0103E7 : 0x00000000
       3,  // U+0103E8 - U+0103EF : 0x00000000
       3,  // U+0103F0 - U+0103F7 : 0x00000000
       3,  // U+0103F8 - U+0103FF : 0x00000000
       0,  // U+010400 - U+010407 : 0x55555555
       0,  // U+010408 - U+01040F : 0x55555555
       0,  // U+010410 - U+010417 : 0x55555555
@@ -2387,57 +2472,143 @@ static const PRUint8 gGenCatIdx7[150] = 
       0,  // U+010468 - U+01046F : 0x55555555
       0,  // U+010470 - U+010477 : 0x55555555
       0,  // U+010478 - U+01047F : 0x55555555
       0,  // U+010480 - U+010487 : 0x55555555
       0,  // U+010488 - U+01048F : 0x55555555
       0,  // U+010490 - U+010497 : 0x55555555
       5,  // U+010498 - U+01049F : 0x00555555
      26,  // U+0104A0 - U+0104A7 : 0x22222222
-    101,  // U+0104A8 - U+0104AF : 0x00000022
+     42,  // U+0104A8 - U+0104AF : 0x00000022
 };
 
-static const PRUint8 gGenCatIdx8[8] = {
+static const PRUint8 gGenCatIdx9[12] = {
       5,  // U+010800 - U+010807 : 0x00555555
-    146,  // U+010808 - U+01080F : 0x55555505
+    164,  // U+010808 - U+01080F : 0x55555505
       0,  // U+010810 - U+010817 : 0x55555555
       0,  // U+010818 - U+01081F : 0x55555555
       0,  // U+010820 - U+010827 : 0x55555555
       0,  // U+010828 - U+01082F : 0x55555555
-    147,  // U+010830 - U+010837 : 0x50555555
-    148,  // U+010838 - U+01083F : 0x50050005
+    165,  // U+010830 - U+010837 : 0x50555555
+    166,  // U+010838 - U+01083F : 0x50050005
+      0,  // U+010840 - U+010847 : 0x55555555
+      0,  // U+010848 - U+01084F : 0x55555555
+    162,  // U+010850 - U+010857 : 0x60555555
+     26,  // U+010858 - U+01085F : 0x22222222
 };
 
-static const PRUint8 gGenCatIdx9[8] = {
+static const PRUint8 gGenCatIdx10[8] = {
       0,  // U+010900 - U+010907 : 0x55555555
       0,  // U+010908 - U+01090F : 0x55555555
-    149,  // U+010910 - U+010917 : 0x22555555
-    150,  // U+010918 - U+01091F : 0x60000022
+     96,  // U+010910 - U+010917 : 0x22555555
+    167,  // U+010918 - U+01091F : 0x60002222
       0,  // U+010920 - U+010927 : 0x55555555
       0,  // U+010928 - U+01092F : 0x55555555
       0,  // U+010930 - U+010937 : 0x55555555
-    151,  // U+010938 - U+01093F : 0x60000055
+    168,  // U+010938 - U+01093F : 0x60000055
 };
 
-static const PRUint8 gGenCatIdx10[12] = {
-    152,  // U+010A00 - U+010A07 : 0x01101115
-    153,  // U+010A08 - U+010A0F : 0x11110000
-    131,  // U+010A10 - U+010A17 : 0x55505555
-     66,  // U+010A18 - U+010A1F : 0x55555550
+static const PRUint8 gGenCatIdx11[74] = {
+    169,  // U+010A00 - U+010A07 : 0x01101115
+    170,  // U+010A08 - U+010A0F : 0x11110000
+    150,  // U+010A10 - U+010A17 : 0x55505555
+     82,  // U+010A18 - U+010A1F : 0x55555550
       0,  // U+010A20 - U+010A27 : 0x55555555
       0,  // U+010A28 - U+010A2F : 0x55555555
-    144,  // U+010A30 - U+010A37 : 0x00005555
-    154,  // U+010A38 - U+010A3F : 0x10000111
+    130,  // U+010A30 - U+010A37 : 0x00005555
+    171,  // U+010A38 - U+010A3F : 0x10000111
      26,  // U+010A40 - U+010A47 : 0x22222222
       3,  // U+010A48 - U+010A4F : 0x00000000
      17,  // U+010A50 - U+010A57 : 0x66666666
-     70,  // U+010A58 - U+010A5F : 0x00000006
+    172,  // U+010A58 - U+010A5F : 0x00000006
+      0,  // U+010A60 - U+010A67 : 0x55555555
+      0,  // U+010A68 - U+010A6F : 0x55555555
+      0,  // U+010A70 - U+010A77 : 0x55555555
+    173,  // U+010A78 - U+010A7F : 0x62255555
+      3,  // U+010A80 - U+010A87 : 0x00000000
+      3,  // U+010A88 - U+010A8F : 0x00000000
+      3,  // U+010A90 - U+010A97 : 0x00000000
+      3,  // U+010A98 - U+010A9F : 0x00000000
+      3,  // U+010AA0 - U+010AA7 : 0x00000000
+      3,  // U+010AA8 - U+010AAF : 0x00000000
+      3,  // U+010AB0 - U+010AB7 : 0x00000000
+      3,  // U+010AB8 - U+010ABF : 0x00000000
+      3,  // U+010AC0 - U+010AC7 : 0x00000000
+      3,  // U+010AC8 - U+010ACF : 0x00000000
+      3,  // U+010AD0 - U+010AD7 : 0x00000000
+      3,  // U+010AD8 - U+010ADF : 0x00000000
+      3,  // U+010AE0 - U+010AE7 : 0x00000000
+      3,  // U+010AE8 - U+010AEF : 0x00000000
+      3,  // U+010AF0 - U+010AF7 : 0x00000000
+      3,  // U+010AF8 - U+010AFF : 0x00000000
+      0,  // U+010B00 - U+010B07 : 0x55555555
+      0,  // U+010B08 - U+010B0F : 0x55555555
+      0,  // U+010B10 - U+010B17 : 0x55555555
+      0,  // U+010B18 - U+010B1F : 0x55555555
+      0,  // U+010B20 - U+010B27 : 0x55555555
+      0,  // U+010B28 - U+010B2F : 0x55555555
+      5,  // U+010B30 - U+010B37 : 0x00555555
+    174,  // U+010B38 - U+010B3F : 0x66666660
+      0,  // U+010B40 - U+010B47 : 0x55555555
+      0,  // U+010B48 - U+010B4F : 0x55555555
+      5,  // U+010B50 - U+010B57 : 0x00555555
+     26,  // U+010B58 - U+010B5F : 0x22222222
+      0,  // U+010B60 - U+010B67 : 0x55555555
+      0,  // U+010B68 - U+010B6F : 0x55555555
+    152,  // U+010B70 - U+010B77 : 0x00000555
+     26,  // U+010B78 - U+010B7F : 0x22222222
+      3,  // U+010B80 - U+010B87 : 0x00000000
+      3,  // U+010B88 - U+010B8F : 0x00000000
+      3,  // U+010B90 - U+010B97 : 0x00000000
+      3,  // U+010B98 - U+010B9F : 0x00000000
+      3,  // U+010BA0 - U+010BA7 : 0x00000000
+      3,  // U+010BA8 - U+010BAF : 0x00000000
+      3,  // U+010BB0 - U+010BB7 : 0x00000000
+      3,  // U+010BB8 - U+010BBF : 0x00000000
+      3,  // U+010BC0 - U+010BC7 : 0x00000000
+      3,  // U+010BC8 - U+010BCF : 0x00000000
+      3,  // U+010BD0 - U+010BD7 : 0x00000000
+      3,  // U+010BD8 - U+010BDF : 0x00000000
+      3,  // U+010BE0 - U+010BE7 : 0x00000000
+      3,  // U+010BE8 - U+010BEF : 0x00000000
+      3,  // U+010BF0 - U+010BF7 : 0x00000000
+      3,  // U+010BF8 - U+010BFF : 0x00000000
+      0,  // U+010C00 - U+010C07 : 0x55555555
+      0,  // U+010C08 - U+010C0F : 0x55555555
+      0,  // U+010C10 - U+010C17 : 0x55555555
+      0,  // U+010C18 - U+010C1F : 0x55555555
+      0,  // U+010C20 - U+010C27 : 0x55555555
+      0,  // U+010C28 - U+010C2F : 0x55555555
+      0,  // U+010C30 - U+010C37 : 0x55555555
+      0,  // U+010C38 - U+010C3F : 0x55555555
+      0,  // U+010C40 - U+010C47 : 0x55555555
+    158,  // U+010C48 - U+010C4F : 0x00000005
 };
 
-static const PRUint8 gGenCatIdx11[144] = {
+static const PRUint8 gGenCatIdx12[4] = {
+     26,  // U+010E60 - U+010E67 : 0x22222222
+     26,  // U+010E68 - U+010E6F : 0x22222222
+     26,  // U+010E70 - U+010E77 : 0x22222222
+    175,  // U+010E78 - U+010E7F : 0x02222222
+};
+
+static const PRUint8 gGenCatIdx13[10] = {
+    176,  // U+011080 - U+011087 : 0x55555111
+      0,  // U+011088 - U+01108F : 0x55555555
+      0,  // U+011090 - U+011097 : 0x55555555
+      0,  // U+011098 - U+01109F : 0x55555555
+      0,  // U+0110A0 - U+0110A7 : 0x55555555
+      0,  // U+0110A8 - U+0110AF : 0x55555555
+      1,  // U+0110B0 - U+0110B7 : 0x11111111
+    177,  // U+0110B8 - U+0110BF : 0x66466111
+     72,  // U+0110C0 - U+0110C7 : 0x00000066
+      3,  // U+0110C8 - U+0110CF : 0x00000000
+};
+
+static const PRUint8 gGenCatIdx14[144] = {
       0,  // U+012000 - U+012007 : 0x55555555
       0,  // U+012008 - U+01200F : 0x55555555
       0,  // U+012010 - U+012017 : 0x55555555
       0,  // U+012018 - U+01201F : 0x55555555
       0,  // U+012020 - U+012027 : 0x55555555
       0,  // U+012028 - U+01202F : 0x55555555
       0,  // U+012030 - U+012037 : 0x55555555
       0,  // U+012038 - U+01203F : 0x55555555
@@ -2537,17 +2708,17 @@ static const PRUint8 gGenCatIdx11[144] =
       0,  // U+012328 - U+01232F : 0x55555555
       0,  // U+012330 - U+012337 : 0x55555555
       0,  // U+012338 - U+01233F : 0x55555555
       0,  // U+012340 - U+012347 : 0x55555555
       0,  // U+012348 - U+01234F : 0x55555555
       0,  // U+012350 - U+012357 : 0x55555555
       0,  // U+012358 - U+01235F : 0x55555555
       0,  // U+012360 - U+012367 : 0x55555555
-     65,  // U+012368 - U+01236F : 0x05555555
+     66,  // U+012368 - U+01236F : 0x05555555
       3,  // U+012370 - U+012377 : 0x00000000
       3,  // U+012378 - U+01237F : 0x00000000
       3,  // U+012380 - U+012387 : 0x00000000
       3,  // U+012388 - U+01238F : 0x00000000
       3,  // U+012390 - U+012397 : 0x00000000
       3,  // U+012398 - U+01239F : 0x00000000
       3,  // U+0123A0 - U+0123A7 : 0x00000000
       3,  // U+0123A8 - U+0123AF : 0x00000000
@@ -2568,23 +2739,160 @@ static const PRUint8 gGenCatIdx11[144] =
      26,  // U+012420 - U+012427 : 0x22222222
      26,  // U+012428 - U+01242F : 0x22222222
      26,  // U+012430 - U+012437 : 0x22222222
      26,  // U+012438 - U+01243F : 0x22222222
      26,  // U+012440 - U+012447 : 0x22222222
      26,  // U+012448 - U+01244F : 0x22222222
      26,  // U+012450 - U+012457 : 0x22222222
      26,  // U+012458 - U+01245F : 0x22222222
-    155,  // U+012460 - U+012467 : 0x00000222
+    178,  // U+012460 - U+012467 : 0x00000222
       3,  // U+012468 - U+01246F : 0x00000000
-    156,  // U+012470 - U+012477 : 0x00006666
+    179,  // U+012470 - U+012477 : 0x00006666
       3,  // U+012478 - U+01247F : 0x00000000
 };
 
-static const PRUint8 gGenCatIdx12[256] = {
+static const PRUint8 gGenCatIdx15[134] = {
+      0,  // U+013000 - U+013007 : 0x55555555
+      0,  // U+013008 - U+01300F : 0x55555555
+      0,  // U+013010 - U+013017 : 0x55555555
+      0,  // U+013018 - U+01301F : 0x55555555
+      0,  // U+013020 - U+013027 : 0x55555555
+      0,  // U+013028 - U+01302F : 0x55555555
+      0,  // U+013030 - U+013037 : 0x55555555
+      0,  // U+013038 - U+01303F : 0x55555555
+      0,  // U+013040 - U+013047 : 0x55555555
+      0,  // U+013048 - U+01304F : 0x55555555
+      0,  // U+013050 - U+013057 : 0x55555555
+      0,  // U+013058 - U+01305F : 0x55555555
+      0,  // U+013060 - U+013067 : 0x55555555
+      0,  // U+013068 - U+01306F : 0x55555555
+      0,  // U+013070 - U+013077 : 0x55555555
+      0,  // U+013078 - U+01307F : 0x55555555
+      0,  // U+013080 - U+013087 : 0x55555555
+      0,  // U+013088 - U+01308F : 0x55555555
+      0,  // U+013090 - U+013097 : 0x55555555
+      0,  // U+013098 - U+01309F : 0x55555555
+      0,  // U+0130A0 - U+0130A7 : 0x55555555
+      0,  // U+0130A8 - U+0130AF : 0x55555555
+      0,  // U+0130B0 - U+0130B7 : 0x55555555
+      0,  // U+0130B8 - U+0130BF : 0x55555555
+      0,  // U+0130C0 - U+0130C7 : 0x55555555
+      0,  // U+0130C8 - U+0130CF : 0x55555555
+      0,  // U+0130D0 - U+0130D7 : 0x55555555
+      0,  // U+0130D8 - U+0130DF : 0x55555555
+      0,  // U+0130E0 - U+0130E7 : 0x55555555
+      0,  // U+0130E8 - U+0130EF : 0x55555555
+      0,  // U+0130F0 - U+0130F7 : 0x55555555
+      0,  // U+0130F8 - U+0130FF : 0x55555555
+      0,  // U+013100 - U+013107 : 0x55555555
+      0,  // U+013108 - U+01310F : 0x55555555
+      0,  // U+013110 - U+013117 : 0x55555555
+      0,  // U+013118 - U+01311F : 0x55555555
+      0,  // U+013120 - U+013127 : 0x55555555
+      0,  // U+013128 - U+01312F : 0x55555555
+      0,  // U+013130 - U+013137 : 0x55555555
+      0,  // U+013138 - U+01313F : 0x55555555
+      0,  // U+013140 - U+013147 : 0x55555555
+      0,  // U+013148 - U+01314F : 0x55555555
+      0,  // U+013150 - U+013157 : 0x55555555
+      0,  // U+013158 - U+01315F : 0x55555555
+      0,  // U+013160 - U+013167 : 0x55555555
+      0,  // U+013168 - U+01316F : 0x55555555
+      0,  // U+013170 - U+013177 : 0x55555555
+      0,  // U+013178 - U+01317F : 0x55555555
+      0,  // U+013180 - U+013187 : 0x55555555
+      0,  // U+013188 - U+01318F : 0x55555555
+      0,  // U+013190 - U+013197 : 0x55555555
+      0,  // U+013198 - U+01319F : 0x55555555
+      0,  // U+0131A0 - U+0131A7 : 0x55555555
+      0,  // U+0131A8 - U+0131AF : 0x55555555
+      0,  // U+0131B0 - U+0131B7 : 0x55555555
+      0,  // U+0131B8 - U+0131BF : 0x55555555
+      0,  // U+0131C0 - U+0131C7 : 0x55555555
+      0,  // U+0131C8 - U+0131CF : 0x55555555
+      0,  // U+0131D0 - U+0131D7 : 0x55555555
+      0,  // U+0131D8 - U+0131DF : 0x55555555
+      0,  // U+0131E0 - U+0131E7 : 0x55555555
+      0,  // U+0131E8 - U+0131EF : 0x55555555
+      0,  // U+0131F0 - U+0131F7 : 0x55555555
+      0,  // U+0131F8 - U+0131FF : 0x55555555
+      0,  // U+013200 - U+013207 : 0x55555555
+      0,  // U+013208 - U+01320F : 0x55555555
+      0,  // U+013210 - U+013217 : 0x55555555
+      0,  // U+013218 - U+01321F : 0x55555555
+      0,  // U+013220 - U+013227 : 0x55555555
+      0,  // U+013228 - U+01322F : 0x55555555
+      0,  // U+013230 - U+013237 : 0x55555555
+      0,  // U+013238 - U+01323F : 0x55555555
+      0,  // U+013240 - U+013247 : 0x55555555
+      0,  // U+013248 - U+01324F : 0x55555555
+      0,  // U+013250 - U+013257 : 0x55555555
+      0,  // U+013258 - U+01325F : 0x55555555
+      0,  // U+013260 - U+013267 : 0x55555555
+      0,  // U+013268 - U+01326F : 0x55555555
+      0,  // U+013270 - U+013277 : 0x55555555
+      0,  // U+013278 - U+01327F : 0x55555555
+      0,  // U+013280 - U+013287 : 0x55555555
+      0,  // U+013288 - U+01328F : 0x55555555
+      0,  // U+013290 - U+013297 : 0x55555555
+      0,  // U+013298 - U+01329F : 0x55555555
+      0,  // U+0132A0 - U+0132A7 : 0x55555555
+      0,  // U+0132A8 - U+0132AF : 0x55555555
+      0,  // U+0132B0 - U+0132B7 : 0x55555555
+      0,  // U+0132B8 - U+0132BF : 0x55555555
+      0,  // U+0132C0 - U+0132C7 : 0x55555555
+      0,  // U+0132C8 - U+0132CF : 0x55555555
+      0,  // U+0132D0 - U+0132D7 : 0x55555555
+      0,  // U+0132D8 - U+0132DF : 0x55555555
+      0,  // U+0132E0 - U+0132E7 : 0x55555555
+      0,  // U+0132E8 - U+0132EF : 0x55555555
+      0,  // U+0132F0 - U+0132F7 : 0x55555555
+      0,  // U+0132F8 - U+0132FF : 0x55555555
+      0,  // U+013300 - U+013307 : 0x55555555
+      0,  // U+013308 - U+01330F : 0x55555555
+      0,  // U+013310 - U+013317 : 0x55555555
+      0,  // U+013318 - U+01331F : 0x55555555
+      0,  // U+013320 - U+013327 : 0x55555555
+      0,  // U+013328 - U+01332F : 0x55555555
+      0,  // U+013330 - U+013337 : 0x55555555
+      0,  // U+013338 - U+01333F : 0x55555555
+      0,  // U+013340 - U+013347 : 0x55555555
+      0,  // U+013348 - U+01334F : 0x55555555
+      0,  // U+013350 - U+013357 : 0x55555555
+      0,  // U+013358 - U+01335F : 0x55555555
+      0,  // U+013360 - U+013367 : 0x55555555
+      0,  // U+013368 - U+01336F : 0x55555555
+      0,  // U+013370 - U+013377 : 0x55555555
+      0,  // U+013378 - U+01337F : 0x55555555
+      0,  // U+013380 - U+013387 : 0x55555555
+      0,  // U+013388 - U+01338F : 0x55555555
+      0,  // U+013390 - U+013397 : 0x55555555
+      0,  // U+013398 - U+01339F : 0x55555555
+      0,  // U+0133A0 - U+0133A7 : 0x55555555
+      0,  // U+0133A8 - U+0133AF : 0x55555555
+      0,  // U+0133B0 - U+0133B7 : 0x55555555
+      0,  // U+0133B8 - U+0133BF : 0x55555555
+      0,  // U+0133C0 - U+0133C7 : 0x55555555
+      0,  // U+0133C8 - U+0133CF : 0x55555555
+      0,  // U+0133D0 - U+0133D7 : 0x55555555
+      0,  // U+0133D8 - U+0133DF : 0x55555555
+      0,  // U+0133E0 - U+0133E7 : 0x55555555
+      0,  // U+0133E8 - U+0133EF : 0x55555555
+      0,  // U+0133F0 - U+0133F7 : 0x55555555
+      0,  // U+0133F8 - U+0133FF : 0x55555555
+      0,  // U+013400 - U+013407 : 0x55555555
+      0,  // U+013408 - U+01340F : 0x55555555
+      0,  // U+013410 - U+013417 : 0x55555555
+      0,  // U+013418 - U+01341F : 0x55555555
+      0,  // U+013420 - U+013427 : 0x55555555
+     66,  // U+013428 - U+01342F : 0x05555555
+};
+
+static const PRUint8 gGenCatIdx16[256] = {
      29,  // U+01D000 - U+01D007 : 0x77777777
      29,  // U+01D008 - U+01D00F : 0x77777777
      29,  // U+01D010 - U+01D017 : 0x77777777
      29,  // U+01D018 - U+01D01F : 0x77777777
      29,  // U+01D020 - U+01D027 : 0x77777777
      29,  // U+01D028 - U+01D02F : 0x77777777
      29,  // U+01D030 - U+01D037 : 0x77777777
      29,  // U+01D038 - U+01D03F : 0x77777777
@@ -2605,59 +2913,59 @@ static const PRUint8 gGenCatIdx12[256] =
      29,  // U+01D0B0 - U+01D0B7 : 0x77777777
      29,  // U+01D0B8 - U+01D0BF : 0x77777777
      29,  // U+01D0C0 - U+01D0C7 : 0x77777777
      29,  // U+01D0C8 - U+01D0CF : 0x77777777
      29,  // U+01D0D0 - U+01D0D7 : 0x77777777
      29,  // U+01D0D8 - U+01D0DF : 0x77777777
      29,  // U+01D0E0 - U+01D0E7 : 0x77777777
      29,  // U+01D0E8 - U+01D0EF : 0x77777777
-     30,  // U+01D0F0 - U+01D0F7 : 0x00777777
+     75,  // U+01D0F0 - U+01D0F7 : 0x00777777
       3,  // U+01D0F8 - U+01D0FF : 0x00000000
      29,  // U+01D100 - U+01D107 : 0x77777777
      29,  // U+01D108 - U+01D10F : 0x77777777
      29,  // U+01D110 - U+01D117 : 0x77777777
      29,  // U+01D118 - U+01D11F : 0x77777777
-     45,  // U+01D120 - U+01D127 : 0x07777777
-     53,  // U+01D128 - U+01D12F : 0x77777770
+     44,  // U+01D120 - U+01D127 : 0x07777777
+     52,  // U+01D128 - U+01D12F : 0x77777770
      29,  // U+01D130 - U+01D137 : 0x77777777
      29,  // U+01D138 - U+01D13F : 0x77777777
      29,  // U+01D140 - U+01D147 : 0x77777777
      29,  // U+01D148 - U+01D14F : 0x77777777
      29,  // U+01D150 - U+01D157 : 0x77777777
      29,  // U+01D158 - U+01D15F : 0x77777777
-    157,  // U+01D160 - U+01D167 : 0x11177777
-    158,  // U+01D168 - U+01D16F : 0x11177711
-    159,  // U+01D170 - U+01D177 : 0x44444111
-    160,  // U+01D178 - U+01D17F : 0x11111444
-    161,  // U+01D180 - U+01D187 : 0x11177111
-    162,  // U+01D188 - U+01D18F : 0x77771111
+    180,  // U+01D160 - U+01D167 : 0x11177777
+    181,  // U+01D168 - U+01D16F : 0x11177711
+    182,  // U+01D170 - U+01D177 : 0x44444111
+    183,  // U+01D178 - U+01D17F : 0x11111444
+    184,  // U+01D180 - U+01D187 : 0x11177111
+    185,  // U+01D188 - U+01D18F : 0x77771111
      29,  // U+01D190 - U+01D197 : 0x77777777
      29,  // U+01D198 - U+01D19F : 0x77777777
      29,  // U+01D1A0 - U+01D1A7 : 0x77777777
-    163,  // U+01D1A8 - U+01D1AF : 0x77111177
+    186,  // U+01D1A8 - U+01D1AF : 0x77111177
      29,  // U+01D1B0 - U+01D1B7 : 0x77777777
      29,  // U+01D1B8 - U+01D1BF : 0x77777777
      29,  // U+01D1C0 - U+01D1C7 : 0x77777777
      29,  // U+01D1C8 - U+01D1CF : 0x77777777
      29,  // U+01D1D0 - U+01D1D7 : 0x77777777
-     30,  // U+01D1D8 - U+01D1DF : 0x00777777
+     75,  // U+01D1D8 - U+01D1DF : 0x00777777
       3,  // U+01D1E0 - U+01D1E7 : 0x00000000
       3,  // U+01D1E8 - U+01D1EF : 0x00000000
       3,  // U+01D1F0 - U+01D1F7 : 0x00000000
       3,  // U+01D1F8 - U+01D1FF : 0x00000000
      29,  // U+01D200 - U+01D207 : 0x77777777
      29,  // U+01D208 - U+01D20F : 0x77777777
      29,  // U+01D210 - U+01D217 : 0x77777777
      29,  // U+01D218 - U+01D21F : 0x77777777
      29,  // U+01D220 - U+01D227 : 0x77777777
      29,  // U+01D228 - U+01D22F : 0x77777777
      29,  // U+01D230 - U+01D237 : 0x77777777
      29,  // U+01D238 - U+01D23F : 0x77777777
-    164,  // U+01D240 - U+01D247 : 0x00711177
+    187,  // U+01D240 - U+01D247 : 0x00711177
       3,  // U+01D248 - U+01D24F : 0x00000000
       3,  // U+01D250 - U+01D257 : 0x00000000
       3,  // U+01D258 - U+01D25F : 0x00000000
       3,  // U+01D260 - U+01D267 : 0x00000000
       3,  // U+01D268 - U+01D26F : 0x00000000
       3,  // U+01D270 - U+01D277 : 0x00000000
       3,  // U+01D278 - U+01D27F : 0x00000000
       3,  // U+01D280 - U+01D287 : 0x00000000
@@ -2681,21 +2989,21 @@ static const PRUint8 gGenCatIdx12[256] =
      29,  // U+01D310 - U+01D317 : 0x77777777
      29,  // U+01D318 - U+01D31F : 0x77777777
      29,  // U+01D320 - U+01D327 : 0x77777777
      29,  // U+01D328 - U+01D32F : 0x77777777
      29,  // U+01D330 - U+01D337 : 0x77777777
      29,  // U+01D338 - U+01D33F : 0x77777777
      29,  // U+01D340 - U+01D347 : 0x77777777
      29,  // U+01D348 - U+01D34F : 0x77777777
-     45,  // U+01D350 - U+01D357 : 0x07777777
+     44,  // U+01D350 - U+01D357 : 0x07777777
       3,  // U+01D358 - U+01D35F : 0x00000000
      26,  // U+01D360 - U+01D367 : 0x22222222
      26,  // U+01D368 - U+01D36F : 0x22222222
-    101,  // U+01D370 - U+01D377 : 0x00000022
+     42,  // U+01D370 - U+01D377 : 0x00000022
       3,  // U+01D378 - U+01D37F : 0x00000000
       3,  // U+01D380 - U+01D387 : 0x00000000
       3,  // U+01D388 - U+01D38F : 0x00000000
       3,  // U+01D390 - U+01D397 : 0x00000000
       3,  // U+01D398 - U+01D39F : 0x00000000
       3,  // U+01D3A0 - U+01D3A7 : 0x00000000
       3,  // U+01D3A8 - U+01D3AF : 0x00000000
       3,  // U+01D3B0 - U+01D3B7 : 0x00000000
@@ -2723,39 +3031,39 @@ static const PRUint8 gGenCatIdx12[256] =
       0,  // U+01D460 - U+01D467 : 0x55555555
       0,  // U+01D468 - U+01D46F : 0x55555555
       0,  // U+01D470 - U+01D477 : 0x55555555
       0,  // U+01D478 - U+01D47F : 0x55555555
       0,  // U+01D480 - U+01D487 : 0x55555555
       0,  // U+01D488 - U+01D48F : 0x55555555
       0,  // U+01D490 - U+01D497 : 0x55555555
       7,  // U+01D498 - U+01D49F : 0x55055555
-    165,  // U+01D4A0 - U+01D4A7 : 0x05500500
-    166,  // U+01D4A8 - U+01D4AF : 0x55055550
+    188,  // U+01D4A0 - U+01D4A7 : 0x05500500
+    189,  // U+01D4A8 - U+01D4AF : 0x55055550
       0,  // U+01D4B0 - U+01D4B7 : 0x55555555
-    167,  // U+01D4B8 - U+01D4BF : 0x55505055
-    131,  // U+01D4C0 - U+01D4C7 : 0x55505555
+    190,  // U+01D4B8 - U+01D4BF : 0x55505055
+    150,  // U+01D4C0 - U+01D4C7 : 0x55505555
       0,  // U+01D4C8 - U+01D4CF : 0x55555555
       0,  // U+01D4D0 - U+01D4D7 : 0x55555555
       0,  // U+01D4D8 - U+01D4DF : 0x55555555
       0,  // U+01D4E0 - U+01D4E7 : 0x55555555
       0,  // U+01D4E8 - U+01D4EF : 0x55555555
       0,  // U+01D4F0 - U+01D4F7 : 0x55555555
       0,  // U+01D4F8 - U+01D4FF : 0x55555555
-    147,  // U+01D500 - U+01D507 : 0x50555555
-    168,  // U+01D508 - U+01D50F : 0x55500555
+    165,  // U+01D500 - U+01D507 : 0x50555555
+    191,  // U+01D508 - U+01D50F : 0x55500555
       7,  // U+01D510 - U+01D517 : 0x55055555
       7,  // U+01D518 - U+01D51F : 0x55055555
       0,  // U+01D520 - U+01D527 : 0x55555555
       0,  // U+01D528 - U+01D52F : 0x55555555
       0,  // U+01D530 - U+01D537 : 0x55555555
-    169,  // U+01D538 - U+01D53F : 0x05555055
-    112,  // U+01D540 - U+01D547 : 0x05055555
-     86,  // U+01D548 - U+01D54F : 0x55555500
-    146,  // U+01D550 - U+01D557 : 0x55555505
+    192,  // U+01D538 - U+01D53F : 0x05555055
+    133,  // U+01D540 - U+01D547 : 0x05055555
+     92,  // U+01D548 - U+01D54F : 0x55555500
+    164,  // U+01D550 - U+01D557 : 0x55555505
       0,  // U+01D558 - U+01D55F : 0x55555555
       0,  // U+01D560 - U+01D567 : 0x55555555
       0,  // U+01D568 - U+01D56F : 0x55555555
       0,  // U+01D570 - U+01D577 : 0x55555555
       0,  // U+01D578 - U+01D57F : 0x55555555
       0,  // U+01D580 - U+01D587 : 0x55555555
       0,  // U+01D588 - U+01D58F : 0x55555555
       0,  // U+01D590 - U+01D597 : 0x55555555
@@ -2791,110 +3099,110 @@ static const PRUint8 gGenCatIdx12[256] =
       0,  // U+01D680 - U+01D687 : 0x55555555
       0,  // U+01D688 - U+01D68F : 0x55555555
       0,  // U+01D690 - U+01D697 : 0x55555555
       0,  // U+01D698 - U+01D69F : 0x55555555
       5,  // U+01D6A0 - U+01D6A7 : 0x00555555
       0,  // U+01D6A8 - U+01D6AF : 0x55555555
       0,  // U+01D6B0 - U+01D6B7 : 0x55555555
       0,  // U+01D6B8 - U+01D6BF : 0x55555555
-    111,  // U+01D6C0 - U+01D6C7 : 0x55555575
+    132,  // U+01D6C0 - U+01D6C7 : 0x55555575
       0,  // U+01D6C8 - U+01D6CF : 0x55555555
       0,  // U+01D6D0 - U+01D6D7 : 0x55555555
-    170,  // U+01D6D8 - U+01D6DF : 0x55557555
+    193,  // U+01D6D8 - U+01D6DF : 0x55557555
       0,  // U+01D6E0 - U+01D6E7 : 0x55555555
       0,  // U+01D6E8 - U+01D6EF : 0x55555555
       0,  // U+01D6F0 - U+01D6F7 : 0x55555555
-    170,  // U+01D6F8 - U+01D6FF : 0x55557555
+    193,  // U+01D6F8 - U+01D6FF : 0x55557555
       0,  // U+01D700 - U+01D707 : 0x55555555
       0,  // U+01D708 - U+01D70F : 0x55555555
-    171,  // U+01D710 - U+01D717 : 0x55755555
+    194,  // U+01D710 - U+01D717 : 0x55755555
       0,  // U+01D718 - U+01D71F : 0x55555555
       0,  // U+01D720 - U+01D727 : 0x55555555
       0,  // U+01D728 - U+01D72F : 0x55555555
-    171,  // U+01D730 - U+01D737 : 0x55755555
+    194,  // U+01D730 - U+01D737 : 0x55755555
       0,  // U+01D738 - U+01D73F : 0x55555555
       0,  // U+01D740 - U+01D747 : 0x55555555
-    172,  // U+01D748 - U+01D74F : 0x75555555
+    123,  // U+01D748 - U+01D74F : 0x75555555
       0,  // U+01D750 - U+01D757 : 0x55555555
       0,  // U+01D758 - U+01D75F : 0x55555555
       0,  // U+01D760 - U+01D767 : 0x55555555
-    172,  // U+01D768 - U+01D76F : 0x75555555
+    123,  // U+01D768 - U+01D76F : 0x75555555
       0,  // U+01D770 - U+01D777 : 0x55555555
       0,  // U+01D778 - U+01D77F : 0x55555555
       0,  // U+01D780 - U+01D787 : 0x55555555
-    111,  // U+01D788 - U+01D78F : 0x55555575
+    132,  // U+01D788 - U+01D78F : 0x55555575
       0,  // U+01D790 - U+01D797 : 0x55555555
       0,  // U+01D798 - U+01D79F : 0x55555555
       0,  // U+01D7A0 - U+01D7A7 : 0x55555555
-    111,  // U+01D7A8 - U+01D7AF : 0x55555575
+    132,  // U+01D7A8 - U+01D7AF : 0x55555575
       0,  // U+01D7B0 - U+01D7B7 : 0x55555555
       0,  // U+01D7B8 - U+01D7BF : 0x55555555
-    170,  // U+01D7C0 - U+01D7C7 : 0x55557555
-    173,  // U+01D7C8 - U+01D7CF : 0x22005555
+    193,  // U+01D7C0 - U+01D7C7 : 0x55557555
+    195,  // U+01D7C8 - U+01D7CF : 0x22005555
      26,  // U+01D7D0 - U+01D7D7 : 0x22222222
      26,  // U+01D7D8 - U+01D7DF : 0x22222222
      26,  // U+01D7E0 - U+01D7E7 : 0x22222222
      26,  // U+01D7E8 - U+01D7EF : 0x22222222
      26,  // U+01D7F0 - U+01D7F7 : 0x22222222
      26,  // U+01D7F8 - U+01D7FF : 0x22222222
 };
 
-static const PRUint8 gGenCatIdx13[64] = {
+static const PRUint8 gGenCatIdx17[64] = {
      29,  // U+01F000 - U+01F007 : 0x77777777
      29,  // U+01F008 - U+01F00F : 0x77777777
      29,  // U+01F010 - U+01F017 : 0x77777777
      29,  // U+01F018 - U+01F01F : 0x77777777
      29,  // U+01F020 - U+01F027 : 0x77777777
-     50,  // U+01F028 - U+01F02F : 0x00007777
+     74,  // U+01F028 - U+01F02F : 0x00007777
      29,  // U+01F030 - U+01F037 : 0x77777777
      29,  // U+01F038 - U+01F03F : 0x77777777
      29,  // U+01F040 - U+01F047 : 0x77777777
      29,  // U+01F048 - U+01F04F : 0x77777777
      29,  // U+01F050 - U+01F057 : 0x77777777
      29,  // U+01F058 - U+01F05F : 0x77777777
      29,  // U+01F060 - U+01F067 : 0x77777777
      29,  // U+01F068 - U+01F06F : 0x77777777
      29,  // U+01F070 - U+01F077 : 0x77777777
      29,  // U+01F078 - U+01F07F : 0x77777777
      29,  // U+01F080 - U+01F087 : 0x77777777
      29,  // U+01F088 - U+01F08F : 0x77777777
-     50,  // U+01F090 - U+01F097 : 0x00007777
+     74,  // U+01F090 - U+01F097 : 0x00007777
       3,  // U+01F098 - U+01F09F : 0x00000000
       3,  // U+01F0A0 - U+01F0A7 : 0x00000000
       3,  // U+01F0A8 - U+01F0AF : 0x00000000
       3,  // U+01F0B0 - U+01F0B7 : 0x00000000
       3,  // U+01F0B8 - U+01F0BF : 0x00000000
       3,  // U+01F0C0 - U+01F0C7 : 0x00000000
       3,  // U+01F0C8 - U+01F0CF : 0x00000000
       3,  // U+01F0D0 - U+01F0D7 : 0x00000000
       3,  // U+01F0D8 - U+01F0DF : 0x00000000
       3,  // U+01F0E0 - U+01F0E7 : 0x00000000
       3,  // U+01F0E8 - U+01F0EF : 0x00000000
       3,  // U+01F0F0 - U+01F0F7 : 0x00000000
       3,  // U+01F0F8 - U+01F0FF : 0x00000000
-      3,  // U+01F100 - U+01F107 : 0x00000000
-      3,  // U+01F108 - U+01F10F : 0x00000000
-      3,  // U+01F110 - U+01F117 : 0x00000000
-      3,  // U+01F118 - U+01F11F : 0x00000000
-      3,  // U+01F120 - U+01F127 : 0x00000000
-      3,  // U+01F128 - U+01F12F : 0x00000000
-      3,  // U+01F130 - U+01F137 : 0x00000000
-      3,  // U+01F138 - U+01F13F : 0x00000000
-      3,  // U+01F140 - U+01F147 : 0x00000000
-      3,  // U+01F148 - U+01F14F : 0x00000000
-      3,  // U+01F150 - U+01F157 : 0x00000000
-      3,  // U+01F158 - U+01F15F : 0x00000000
+     26,  // U+01F100 - U+01F107 : 0x22222222
+    178,  // U+01F108 - U+01F10F : 0x00000222
+     29,  // U+01F110 - U+01F117 : 0x77777777
+     29,  // U+01F118 - U+01F11F : 0x77777777
+     29,  // U+01F120 - U+01F127 : 0x77777777
+     44,  // U+01F128 - U+01F12F : 0x07777777
+    196,  // U+01F130 - U+01F137 : 0x00000070
+    197,  // U+01F138 - U+01F13F : 0x70700000
+    198,  // U+01F140 - U+01F147 : 0x07000700
+    199,  // U+01F148 - U+01F14F : 0x07777700
+    200,  // U+01F150 - U+01F157 : 0x70000000
+    200,  // U+01F158 - U+01F15F : 0x70000000
       3,  // U+01F160 - U+01F167 : 0x00000000
       3,  // U+01F168 - U+01F16F : 0x00000000
       3,  // U+01F170 - U+01F177 : 0x00000000
-      3,  // U+01F178 - U+01F17F : 0x00000000
+    201,  // U+01F178 - U+01F17F : 0x70077070
       3,  // U+01F180 - U+01F187 : 0x00000000
-      3,  // U+01F188 - U+01F18F : 0x00000000
-      3,  // U+01F190 - U+01F197 : 0x00000000
+    202,  // U+01F188 - U+01F18F : 0x00777700
+     30,  // U+01F190 - U+01F197 : 0x00000007
       3,  // U+01F198 - U+01F19F : 0x00000000
       3,  // U+01F1A0 - U+01F1A7 : 0x00000000
       3,  // U+01F1A8 - U+01F1AF : 0x00000000
       3,  // U+01F1B0 - U+01F1B7 : 0x00000000
       3,  // U+01F1B8 - U+01F1BF : 0x00000000
       3,  // U+01F1C0 - U+01F1C7 : 0x00000000
       3,  // U+01F1C8 - U+01F1CF : 0x00000000
       3,  // U+01F1D0 - U+01F1D7 : 0x00000000
@@ -2930,17 +3238,17 @@ static const PRUint32 gGenCatPatPl0[] = 
     0x55755555,  // 21 
     0x06555500,  // 22 
     0x65770000,  // 23 
     0x55050555,  // 24 
     0x55555055,  // 25 
     0x57555555,  // 26 
     0x11111755,  // 27 
     0x55555511,  // 28 
-    0x00005555,  // 29 
+    0x00555555,  // 29 
     0x00000000,  // 30 
     0x55555550,  // 31 
     0x05555555,  // 32 
     0x66666650,  // 33 
     0x00000660,  // 34 
     0x11111110,  // 35 
     0x16111111,  // 36 
     0x16116116,  // 37 
@@ -2962,160 +3270,168 @@ static const PRUint32 gGenCatPatPl0[] = 
     0x40666666,  // 53 
     0x55555515,  // 54 
     0x55500111,  // 55 
     0x11555555,  // 56 
     0x00000051,  // 57 
     0x55555522,  // 58 
     0x67551111,  // 59 
     0x00000566,  // 60 
-    0x55551110,  // 61 
-    0x11510055,  // 62 
-    0x00111111,  // 63 
-    0x00011115,  // 64 
-    0x22661155,  // 65 
-    0x00000556,  // 66 
-    0x55555000,  // 67 
-    0x55501110,  // 68 
-    0x50055555,  // 69 
-    0x55555005,  // 70 
-    0x55555505,  // 71 
-    0x55000505,  // 72 
-    0x10011111,  // 73 
-    0x05111001,  // 74 
-    0x10000000,  // 75 
-    0x50550000,  // 76 
-    0x22001155,  // 77 
-    0x22227755,  // 78 
-    0x00000722,  // 79 
-    0x50000555,  // 80 
-    0x05505505,  // 81 
-    0x11010055,  // 82 
-    0x10000111,  // 83 
-    0x00111001,  // 84 
-    0x00000010,  // 85 
-    0x05055550,  // 86 
-    0x22000000,  // 87 
-    0x00155511,  // 88 
-    0x50555555,  // 89 
-    0x55505505,  // 90 
-    0x10111111,  // 91 
-    0x00111011,  // 92 
-    0x00000005,  // 93 
-    0x00000070,  // 94 
-    0x11000000,  // 95 
-    0x00000057,  // 96 
-    0x55505100,  // 97 
-    0x55000555,  // 98 
-    0x00555505,  // 99 
-    0x55050550,  // 100 
-    0x00055000,  // 101 
-    0x11000055,  // 102 
-    0x11000111,  // 103 
-    0x00111101,  // 104 
-    0x10000005,  // 105 
-    0x77777222,  // 106 
-    0x00000777,  // 107 
-    0x55055555,  // 108 
-    0x55505555,  // 109 
-    0x11500055,  // 110 
-    0x11011111,  // 111 
-    0x01100000,  // 112 
-    0x00000055,  // 113 
-    0x72222222,  // 114 
-    0x55501100,  // 115 
-    0x05000000,  // 116 
-    0x00000770,  // 117 
-    0x00222222,  // 118 
-    0x55555570,  // 119 
-    0x55555500,  // 120 
-    0x00505555,  // 121 
-    0x10000100,  // 122 
-    0x01011111,  // 123 
-    0x00061100,  // 124 
-    0x11115515,  // 125 
-    0x70000111,  // 126 
-    0x15555555,  // 127 
-    0x61111111,  // 128 
-    0x00006622,  // 129 
-    0x50050550,  // 130 
-    0x00500505,  // 131 
-    0x55550000,  // 132 
-    0x50505550,  // 133 
-    0x55505500,  // 134 
-    0x00511011,  // 135 
-    0x05055555,  // 136 
-    0x00550022,  // 137 
-    0x66667775,  // 138 
-    0x77777666,  // 139 
-    0x77777711,  // 140 
-    0x17172222,  // 141 
-    0x11666617,  // 142 
-    0x00055555,  // 143 
-    0x11611111,  // 144 
-    0x77011111,  // 145 
-    0x71777777,  // 146 
-    0x77077777,  // 147 
-    0x00066666,  // 148 
-    0x51111111,  // 149 
-    0x66666622,  // 150 
-    0x11555511,  // 151 
-    0x15511151,  // 152 
-    0x55111111,  // 153 
-    0x55511115,  // 154 
-    0x11111155,  // 155 
-    0x15111111,  // 156 
-    0x77000022,  // 157 
-    0x00555555,  // 158 
-    0x00056555,  // 159 
-    0x50000055,  // 160 
-    0x10000555,  // 161 
-    0x66666667,  // 162 
-    0x22222226,  // 163 
-    0x00022222,  // 164 
-    0x00000077,  // 165 
-    0x56655555,  // 166 
-    0x55555553,  // 167 
-    0x22666555,  // 168 
-    0x00000002,  // 169 
-    0x00011155,  // 170 
-    0x06611155,  // 171 
-    0x00001155,  // 172 
-    0x00001105,  // 173 
-    0x11445555,  // 174 
-    0x56661111,  // 175 
-    0x00157666,  // 176 
-    0x00000022,  // 177 
-    0x03111666,  // 178 
-    0x00000515,  // 179 
-    0x00001111,  // 180 
-    0x22660007,  // 181 
-    0x00000011,  // 182 
-    0x66000022,  // 183 
-    0x66001111,  // 184 
-    0x55511111,  // 185 
-    0x11115555,  // 186 
-    0x77777776,  // 187 
-    0x11111777,  // 188 
-    0x77771111,  // 189 
-    0x00077777,  // 190 
-    0x55555111,  // 191 
-    0x11111115,  // 192 
-    0x55000111,  // 193 
-    0x66666000,  // 194 
-    0x55500022,  // 195 
-    0x66555555,  // 196 
+    0x11111511,  // 61 
+    0x11151111,  // 62 
+    0x00111115,  // 63 
+    0x06666666,  // 64 
+    0x55551111,  // 65 
+    0x11510055,  // 66 
+    0x22661155,  // 67 
+    0x00000556,  // 68 
+    0x55501110,  // 69 
+    0x50055555,  // 70 
+    0x55555005,  // 71 
+    0x55555505,  // 72 
+    0x55000505,  // 73 
+    0x10011111,  // 74 
+    0x05111001,  // 75 
+    0x10000000,  // 76 
+    0x50550000,  // 77 
+    0x22001155,  // 78 
+    0x22227755,  // 79 
+    0x00007722,  // 80 
+    0x50000555,  // 81 
+    0x05505505,  // 82 
+    0x11010055,  // 83 
+    0x10000111,  // 84 
+    0x00111001,  // 85 
+    0x00000010,  // 86 
+    0x05055550,  // 87 
+    0x22000000,  // 88 
+    0x00155511,  // 89 
+    0x50555555,  // 90 
+    0x55505505,  // 91 
+    0x10111111,  // 92 
+    0x00111011,  // 93 
+    0x00000005,  // 94 
+    0x00000070,  // 95 
+    0x11000000,  // 96 
+    0x00000057,  // 97 
+    0x55505100,  // 98 
+    0x55000555,  // 99 
+    0x00555505,  // 100 
+    0x55050550,  // 101 
+    0x00055000,  // 102 
+    0x11000055,  // 103 
+    0x11000111,  // 104 
+    0x00111101,  // 105 
+    0x10000005,  // 106 
+    0x77777222,  // 107 
+    0x00000777,  // 108 
+    0x55055555,  // 109 
+    0x55505555,  // 110 
+    0x11500055,  // 111 
+    0x11011111,  // 112 
+    0x01100000,  // 113 
+    0x00000055,  // 114 
+    0x72222222,  // 115 
+    0x55501100,  // 116 
+    0x05000000,  // 117 
+    0x00000770,  // 118 
+    0x00222222,  // 119 
+    0x55555570,  // 120 
+    0x55555500,  // 121 
+    0x00505555,  // 122 
+    0x10000100,  // 123 
+    0x01011111,  // 124 
+    0x00061100,  // 125 
+    0x11115515,  // 126 
+    0x70000111,  // 127 
+    0x15555555,  // 128 
+    0x61111111,  // 129 
+    0x00006622,  // 130 
+    0x50050550,  // 131 
+    0x00500505,  // 132 
+    0x55550000,  // 133 
+    0x50505550,  // 134 
+    0x55505500,  // 135 
+    0x00511011,  // 136 
+    0x05055555,  // 137 
+    0x00111111,  // 138 
+    0x00550022,  // 139 
+    0x66667775,  // 140 
+    0x77777666,  // 141 
+    0x77777711,  // 142 
+    0x17172222,  // 143 
+    0x11666617,  // 144 
+    0x00055555,  // 145 
+    0x11611111,  // 146 
+    0x00005555,  // 147 
+    0x77011111,  // 148 
+    0x71777777,  // 149 
+    0x77077777,  // 150 
+    0x77766666,  // 151 
+    0x00000007,  // 152 
+    0x51111111,  // 153 
+    0x66666622,  // 154 
+    0x11555511,  // 155 
+    0x15511151,  // 156 
+    0x55111111,  // 157 
+    0x55511115,  // 158 
+    0x11111155,  // 159 
+    0x15111111,  // 160 
+    0x77111122,  // 161 
+    0x00056555,  // 162 
+    0x10000555,  // 163 
+    0x66666667,  // 164 
+    0x22222226,  // 165 
+    0x00022222,  // 166 
+    0x00000077,  // 167 
+    0x56655555,  // 168 
+    0x55555553,  // 169 
+    0x22666555,  // 170 
+    0x00000002,  // 171 
+    0x00011155,  // 172 
+    0x06611155,  // 173 
+    0x00001155,  // 174 
+    0x00001105,  // 175 
+    0x11445555,  // 176 
+    0x56661111,  // 177 
+    0x00157666,  // 178 
+    0x00000022,  // 179 
+    0x03111666,  // 180 
+    0x00000515,  // 181 
+    0x00001111,  // 182 
+    0x22660007,  // 183 
+    0x00000011,  // 184 
+    0x66000222,  // 185 
+    0x66001111,  // 186 
+    0x11155555,  // 187 
+    0x56666666,  // 188 
+    0x00666666,  // 189 
+    0x55511111,  // 190 
+    0x11115555,  // 191 
+    0x77777776,  // 192 
+    0x11111777,  // 193 
+    0x77771111,  // 194 
+    0x00077777,  // 195 
+    0x55555111,  // 196 
+    0x11111115,  // 197 
+    0x55000111,  // 198 
+    0x66666000,  // 199 
+    0x55500022,  // 200 
+    0x66555555,  // 201 
+    0x11116111,  // 202 
+    0x55155551,  // 203 
+    0x00000155,  // 204 
 }; 
 
 static const PRUint32 gGenCatPatPl1[] = {
     0x55555555,  // 0 
     0x11111111,  // 1 
     0x01111111,  // 2 
     0x00000000,  // 3 
-    0x11000000,  // 4 
+    0x11100000,  // 4 
     0x00555555,  // 5 
     0x50505050,  // 6 
     0x55055555,  // 7 
     0x75755555,  // 8 
     0x55055577,  // 9 
     0x77755555,  // 10 
     0x55005555,  // 11 
     0x77705555,  // 12 
@@ -3131,255 +3447,308 @@ static const PRUint32 gGenCatPatPl1[] = 
     0x00044444,  // 22 
     0x44444400,  // 23 
     0x22220052,  // 24 
     0x56677722,  // 25 
     0x22222222,  // 26 
     0x06677722,  // 27 
     0x00055555,  // 28 
     0x77777777,  // 29 
-    0x00777777,  // 30 
+    0x00000007,  // 30 
     0x00000001,  // 31 
     0x57777577,  // 32 
     0x55555577,  // 33 
     0x77575555,  // 34 
     0x77555557,  // 35 
     0x75757777,  // 36 
     0x57555575,  // 37 
     0x55557755,  // 38 
     0x55577777,  // 39 
     0x75777755,  // 40 
-    0x22222000,  // 41 
-    0x22255222,  // 42 
-    0x00000002,  // 43 
-    0x77777667,  // 44 
-    0x07777777,  // 45 
-    0x00000777,  // 46 
-    0x77772222,  // 47 
-    0x22222277,  // 48 
-    0x00077777,  // 49 
-    0x00007777,  // 50 
-    0x77077770,  // 51 
-    0x77770077,  // 52 
-    0x77777770,  // 53 
-    0x70707777,  // 54 
-    0x07000777,  // 55 
-    0x22666666,  // 56 
-    0x00072222,  // 57 
-    0x76677777,  // 58 
-    0x00070777,  // 59 
-    0x66777777,  // 60 
-    0x66666777,  // 61 
-    0x77777776,  // 62 
-    0x77776666,  // 63 
-    0x77667777,  // 64 
-    0x05555555,  // 65 
-    0x55555550,  // 66 
-    0x66266660,  // 67 
-    0x50000000,  // 68 
-    0x56666666,  // 69 
-    0x00000006,  // 70 
-    0x77777077,  // 71 
-    0x25576663,  // 72 
-    0x66667766,  // 73 
-    0x22222227,  // 74 
-    0x11111122,  // 75 
-    0x77555556,  // 76 
-    0x77655222,  // 77 
-    0x55577110,  // 78 
-    0x55555556,  // 79 
-    0x55556555,  // 80 
-    0x55500000,  // 81 
-    0x77222277,  // 82 
-    0x77777722,  // 83 
-    0x66655555,  // 84 
-    0x00005522,  // 85 
-    0x55555500,  // 86 
-    0x15555555,  // 87 
-    0x00006111,  // 88 
-    0x56110000,  // 89 
-    0x57777777,  // 90 
-    0x00055775,  // 91 
-    0x55555000,  // 92 
-    0x51555155,  // 93 
-    0x55551555,  // 94 
-    0x11111555,  // 95 
-    0x66665555,  // 96 
-    0x55555511,  // 97 
-    0x11115555,  // 98 
-    0x00011111,  // 99 
-    0x66000000,  // 100 
-    0x00000022,  // 101 
-    0x55555522,  // 102 
-    0x11555555,  // 103 
-    0x66111111,  // 104 
-    0x00001111,  // 105 
-    0x60000000,  // 106 
-    0x11111115,  // 107 
-    0x00115555,  // 108 
-    0x66660022,  // 109 
-    0x51500000,  // 110 
-    0x55555575,  // 111 
-    0x05055555,  // 112 
-    0x55055055,  // 113 
-    0x00000055,  // 114 
-    0x66555555,  // 115 
-    0x00775555,  // 116 
-    0x00000066,  // 117 
-    0x66660666,  // 118 
-    0x07776766,  // 119 
-    0x00006676,  // 120 
-    0x40055555,  // 121 
-    0x66676660,  // 122 
-    0x66667666,  // 123 
-    0x67776622,  // 124 
-    0x67666555,  // 125 
-    0x55555557,  // 126 
-    0x67676555,  // 127 
-    0x55666666,  // 128 
-    0x00055500,  // 129 
-    0x00774440,  // 130 
-    0x55505555,  // 131 
-    0x50550555,  // 132 
-    0x00000555,  // 133 
-    0x20000766,  // 134 
-    0x70002222,  // 135 
-    0x77777772,  // 136 
-    0x00000277,  // 137 
-    0x00177777,  // 138 
-    0x00000005,  // 139 
-    0x00002222,  // 140 
-    0x55555525,  // 141 
-    0x00000255,  // 142 
-    0x60555555,  // 143 
-    0x00005555,  // 144 
-    0x00222226,  // 145 
-    0x55555505,  // 146 
-    0x50555555,  // 147 
-    0x50050005,  // 148 
-    0x22555555,  // 149 
-    0x60000022,  // 150 
-    0x60000055,  // 151 
-    0x01101115,  // 152 
-    0x11110000,  // 153 
-    0x10000111,  // 154 
-    0x00000222,  // 155 
-    0x00006666,  // 156 
-    0x11177777,  // 157 
-    0x11177711,  // 158 
-    0x44444111,  // 159 
-    0x11111444,  // 160 
-    0x11177111,  // 161 
-    0x77771111,  // 162 
-    0x77111177,  // 163 
-    0x00711177,  // 164 
-    0x05500500,  // 165 
-    0x55055550,  // 166 
-    0x55505055,  // 167 
-    0x55500555,  // 168 
-    0x05555055,  // 169 
-    0x55557555,  // 170 
-    0x55755555,  // 171 
-    0x75555555,  // 172 
-    0x22005555,  // 173 
+    0x22255222,  // 41 
+    0x00000022,  // 42 
+    0x77777667,  // 43 
+    0x07777777,  // 44 
+    0x00000777,  // 45 
+    0x77772222,  // 46 
+    0x22222277,  // 47 
+    0x70777777,  // 48 
+    0x00007077,  // 49 
+    0x77077770,  // 50 
+    0x77770077,  // 51 
+    0x77777770,  // 52 
+    0x70707777,  // 53 
+    0x77000777,  // 54 
+    0x22666666,  // 55 
+    0x00072222,  // 56 
+    0x76677777,  // 57 
+    0x00070777,  // 58 
+    0x66777777,  // 59 
+    0x66666777,  // 60 
+    0x77777776,  // 61 
+    0x77776666,  // 62 
+    0x77667777,  // 63 
+    0x00077777,  // 64 
+    0x00000077,  // 65 
+    0x05555555,  // 66 
+    0x15555777,  // 67 
+    0x00000011,  // 68 
+    0x66266660,  // 69 
+    0x50000000,  // 70 
+    0x56666666,  // 71 
+    0x00000066,  // 72 
+    0x77777077,  // 73 
+    0x00007777,  // 74 
+    0x00777777,  // 75 
+    0x25576663,  // 76 
+    0x66667766,  // 77 
+    0x22222227,  // 78 
+    0x11111122,  // 79 
+    0x77555556,  // 80 
+    0x77655222,  // 81 
+    0x55555550,  // 82 
+    0x55577110,  // 83 
+    0x55555556,  // 84 
+    0x55556555,  // 85 
+    0x55500000,  // 86 
+    0x77222277,  // 87 
+    0x77777722,  // 88 
+    0x66555555,  // 89 
+    0x66655555,  // 90 
+    0x00005522,  // 91 
+    0x55555500,  // 92 
+    0x15555555,  // 93 
+    0x00006111,  // 94 
+    0x56110000,  // 95 
+    0x22555555,  // 96 
+    0x66666611,  // 97 
+    0x57777777,  // 98 
+    0x00055775,  // 99 
+    0x55555000,  // 100 
+    0x51555155,  // 101 
+    0x55551555,  // 102 
+    0x11111555,  // 103 
+    0x77222222,  // 104 
+    0x66665555,  // 105 
+    0x55555511,  // 106 
+    0x11115555,  // 107 
+    0x00011111,  // 108 
+    0x66000000,  // 109 
+    0x00005666,  // 110 
+    0x55555522,  // 111 
+    0x11555555,  // 112 
+    0x66111111,  // 113 
+    0x00001111,  // 114 
+    0x60000000,  // 115 
+    0x55551111,  // 116 
+    0x66666661,  // 117 
+    0x50666666,  // 118 
+    0x66000022,  // 119 
+    0x11111115,  // 120 
+    0x00115555,  // 121 
+    0x66660022,  // 122 
+    0x75555555,  // 123 
+    0x00001577,  // 124 
+    0x15511151,  // 125 
+    0x11555551,  // 126 
+    0x00000515,  // 127 
+    0x66555000,  // 128 
+    0x00116111,  // 129 
+    0x00005555,  // 130 
+    0x51500000,  // 131 
+    0x55555575,  // 132 
+    0x05055555,  // 133 
+    0x55055055,  // 134 
+    0x00000055,  // 135 
+    0x00775555,  // 136 
+    0x66660666,  // 137 
+    0x07776766,  // 138 
+    0x00006676,  // 139 
+    0x40055555,  // 140 
+    0x66676660,  // 141 
+    0x66667666,  // 142 
+    0x67776622,  // 143 
+    0x67666555,  // 144 
+    0x55555557,  // 145 
+    0x67676555,  // 146 
+    0x55666666,  // 147 
+    0x00055500,  // 148 
+    0x00774440,  // 149 
+    0x55505555,  // 150 
+    0x50550555,  // 151 
+    0x00000555,  // 152 
+    0x20000766,  // 153 
+    0x70002222,  // 154 
+    0x77777772,  // 155 
+    0x00000277,  // 156 
+    0x00177777,  // 157 
+    0x00000005,  // 158 
+    0x00002222,  // 159 
+    0x55555525,  // 160 
+    0x00000255,  // 161 
+    0x60555555,  // 162 
+    0x00222226,  // 163 
+    0x55555505,  // 164 
+    0x50555555,  // 165 
+    0x50050005,  // 166 
+    0x60002222,  // 167 
+    0x60000055,  // 168 
+    0x01101115,  // 169 
+    0x11110000,  // 170 
+    0x10000111,  // 171 
+    0x00000006,  // 172 
+    0x62255555,  // 173 
+    0x66666660,  // 174 
+    0x02222222,  // 175 
+    0x55555111,  // 176 
+    0x66466111,  // 177 
+    0x00000222,  // 178 
+    0x00006666,  // 179 
+    0x11177777,  // 180 
+    0x11177711,  // 181 
+    0x44444111,  // 182 
+    0x11111444,  // 183 
+    0x11177111,  // 184 
+    0x77771111,  // 185 
+    0x77111177,  // 186 
+    0x00711177,  // 187 
+    0x05500500,  // 188 
+    0x55055550,  // 189 
+    0x55505055,  // 190 
+    0x55500555,  // 191 
+    0x05555055,  // 192 
+    0x55557555,  // 193 
+    0x55755555,  // 194 
+    0x22005555,  // 195 
+    0x00000070,  // 196 
+    0x70700000,  // 197 
+    0x07000700,  // 198 
+    0x07777700,  // 199 
+    0x70000000,  // 200 
+    0x70077070,  // 201 
+    0x00777700,  // 202 
 }; 
 
 static PRUint8 GetCat(PRUint32 u)
 {
     PRUint32 pat;
     //
     //  Handle block which use index table mapping    
     //
-    // Handle U+000000 to U+0007FF
-    if(0x000000 <= u && u <= 0x0007FF) {
+    // Handle U+000000 to U+001CFF
+    if(0x000000 <= u && u <= 0x001CFF) {
         pat = gGenCatPatPl0[gGenCatIdx1 [( u - 0x000000 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
-    // Handle U+000900 to U+001C7F
-    if(0x000900 <= u && u <= 0x001C7F) {
-        pat = gGenCatPatPl0[gGenCatIdx2 [( u - 0x000900 ) / 8]];
-        return (pat  >> ((u % 8) * 4)) & 0x0F;
-    }
-
     // Handle U+001D00 to U+0033FF
     if(0x001D00 <= u && u <= 0x0033FF) {
-        pat = gGenCatPatPl1[gGenCatIdx3 [( u - 0x001D00 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx2 [( u - 0x001D00 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     // Handle U+004DC0 to U+004DFF
     if(0x004DC0 <= u && u <= 0x004DFF) {
-        pat = gGenCatPatPl1[gGenCatIdx4 [( u - 0x004DC0 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx3 [( u - 0x004DC0 ) / 8]];
+        return (pat  >> ((u % 8) * 4)) & 0x0F;
+    }
+
+    // Handle U+00A000 to U+00AAFF
+    if(0x00A000 <= u && u <= 0x00AAFF) {
+        pat = gGenCatPatPl1[gGenCatIdx4 [( u - 0x00A000 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
-    // Handle U+00A000 to U+00AA7F
-    if(0x00A000 <= u && u <= 0x00AA7F) {
-        pat = gGenCatPatPl1[gGenCatIdx5 [( u - 0x00A000 ) / 8]];
+    // Handle U+00ABC0 to U+00ABFF
+    if(0x00ABC0 <= u && u <= 0x00ABFF) {
+        pat = gGenCatPatPl1[gGenCatIdx5 [( u - 0x00ABC0 ) / 8]];
+        return (pat  >> ((u % 8) * 4)) & 0x0F;
+    }
+
+    // Handle U+00D7B0 to U+00D7FF
+    if(0x00D7B0 <= u && u <= 0x00D7FF) {
+        pat = gGenCatPatPl1[gGenCatIdx6 [( u - 0x00D7B0 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     // Handle U+00F900 to U+00FFFF
     if(0x00F900 <= u && u <= 0x00FFFF) {
-        pat = gGenCatPatPl1[gGenCatIdx6 [( u - 0x00F900 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx7 [( u - 0x00F900 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     // Handle U+010000 to U+0104AF
     if(0x010000 <= u && u <= 0x0104AF) {
-        pat = gGenCatPatPl1[gGenCatIdx7 [( u - 0x010000 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx8 [( u - 0x010000 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
-    // Handle U+010800 to U+01083F
-    if(0x010800 <= u && u <= 0x01083F) {
-        pat = gGenCatPatPl1[gGenCatIdx8 [( u - 0x010800 ) / 8]];
+    // Handle U+010800 to U+01085F
+    if(0x010800 <= u && u <= 0x01085F) {
+        pat = gGenCatPatPl1[gGenCatIdx9 [( u - 0x010800 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     // Handle U+010900 to U+01093F
     if(0x010900 <= u && u <= 0x01093F) {
-        pat = gGenCatPatPl1[gGenCatIdx9 [( u - 0x010900 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx10 [( u - 0x010900 ) / 8]];
+        return (pat  >> ((u % 8) * 4)) & 0x0F;
+    }
+
+    // Handle U+010A00 to U+010C4F
+    if(0x010A00 <= u && u <= 0x010C4F) {
+        pat = gGenCatPatPl1[gGenCatIdx11 [( u - 0x010A00 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
-    // Handle U+010A00 to U+010A5F
-    if(0x010A00 <= u && u <= 0x010A5F) {
-        pat = gGenCatPatPl1[gGenCatIdx10 [( u - 0x010A00 ) / 8]];
+    // Handle U+010E60 to U+010E7F
+    if(0x010E60 <= u && u <= 0x010E7F) {
+        pat = gGenCatPatPl1[gGenCatIdx12 [( u - 0x010E60 ) / 8]];
+        return (pat  >> ((u % 8) * 4)) & 0x0F;
+    }
+
+    // Handle U+011080 to U+0110CF
+    if(0x011080 <= u && u <= 0x0110CF) {
+        pat = gGenCatPatPl1[gGenCatIdx13 [( u - 0x011080 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     // Handle U+012000 to U+01247F
     if(0x012000 <= u && u <= 0x01247F) {
-        pat = gGenCatPatPl1[gGenCatIdx11 [( u - 0x012000 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx14 [( u - 0x012000 ) / 8]];
+        return (pat  >> ((u % 8) * 4)) & 0x0F;
+    }
+
+    // Handle U+013000 to U+01342F
+    if(0x013000 <= u && u <= 0x01342F) {
+        pat = gGenCatPatPl1[gGenCatIdx15 [( u - 0x013000 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     // Handle U+01D000 to U+01D7FF
     if(0x01D000 <= u && u <= 0x01D7FF) {
-        pat = gGenCatPatPl1[gGenCatIdx12 [( u - 0x01D000 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx16 [( u - 0x01D000 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     // Handle U+01F000 to U+01F1FF
     if(0x01F000 <= u && u <= 0x01F1FF) {
-        pat = gGenCatPatPl1[gGenCatIdx13 [( u - 0x01F000 ) / 8]];
+        pat = gGenCatPatPl1[gGenCatIdx17 [( u - 0x01F000 ) / 8]];
         return (pat  >> ((u % 8) * 4)) & 0x0F;
     }
 
     //
     //  Handle blocks which share the same category 
     //
     // Handle CJK Ideograph Extension A block 
     if(0x3400 <= u && u <= 0x4DB5) 
         return 5; 
 
     // Handle CJK Ideograph block 
-    if(0x4E00 <= u && u <= 0x9FC3) 
+    if(0x4E00 <= u && u <= 0x9FCB) 
         return 5; 
 
     // Handle Hangul Syllable block 
     if(0xAC00 <= u && u <= 0xD7A3) 
         return 5; 
 
     // Handle Non Private Use High Surrogate block 
     if(0xD800 <= u && u <= 0xDB7F) 
@@ -3397,34 +3766,38 @@ static PRUint8 GetCat(PRUint32 u)
     if(0xE000 <= u && u <= 0xF8FF) 
         return 4; 
 
     // Handle CJK Compatibility #1 block 
     if(0xF900 <= u && u <= 0xFA2D) 
         return 5; 
 
     // Handle CJK Compatibility #2 block 
-    if(0xFA30 <= u && u <= 0xFA6A) 
+    if(0xFA30 <= u && u <= 0xFA6D) 
         return 5; 
 
     // Handle CJK Compatibility #3 block 
     if(0xFA70 <= u && u <= 0xFAD9) 
         return 5; 
 
     // Handle CJK Ideograph Extension B block 
     if(0x20000 <= u && u <= 0x2A6D6) 
         return 5; 
 
+    // Handle CJK Ideograph Extension C block 
+    if(0x2A700 <= u && u <= 0x2B734) 
+        return 5; 
+
     // Handle CJK Compatibility #4 block 
     if(0x2F800 <= u && u <= 0x2FA1D) 
         return 5; 
 
     // Handle Plane 15 Private Use block 
     if(0xF0000 <= u && u <= 0xFFFFD) 
         return 4; 
 
     // Handle Plane 16 Private Use block 
     if(0x100000 <= u && u <= 0x10FFFD) 
         return 4; 
 
     return 0; // UNDEFINE 
 }
-// total data size = 4310
+// total data size = 4754
--- a/intl/unicharutil/tables/transliterate.properties
+++ b/intl/unicharutil/tables/transliterate.properties
@@ -416,20 +416,21 @@ entity.2535=1
 entity.2536=2
 entity.2537=3
 entity.2538=4
 entity.2539=5
 entity.2540=6
 entity.2541=7
 entity.2542=8
 entity.2543=9
-entity.2548=[1]
-entity.2549=[2]
-entity.2550=[3]
-entity.2551=[4]
+entity.2548=[1/16]
+entity.2549=[1/8]
+entity.2550=[3/16]
+entity.2551=[1/4]
+entity.2552=[3/4]
 entity.2553=[16]
 entity.2662=0
 entity.2663=1
 entity.2664=2
 entity.2665=3
 entity.2666=4
 entity.2667=5
 entity.2668=6
@@ -640,16 +641,37 @@ entity.6609=1
 entity.6610=2
 entity.6611=3
 entity.6612=4
 entity.6613=5
 entity.6614=6
 entity.6615=7
 entity.6616=8
 entity.6617=9
+entity.6618=1
+entity.6784=0
+entity.6785=1
+entity.6786=2
+entity.6787=3
+entity.6788=4
+entity.6789=5
+entity.6790=6
+entity.6791=7
+entity.6792=8
+entity.6793=9
+entity.6800=0
+entity.6801=1
+entity.6802=2
+entity.6803=3
+entity.6804=4
+entity.6805=5
+entity.6806=6
+entity.6807=7
+entity.6808=8
+entity.6809=9
 entity.6992=0
 entity.6993=1
 entity.6994=2
 entity.6995=3
 entity.6996=4
 entity.6997=5
 entity.6998=6
 entity.6999=7
@@ -1053,16 +1075,19 @@ entity.8499=M
 entity.8500=o
 entity.8505=i
 entity.8507=FAX
 entity.8517=D
 entity.8518=d
 entity.8519=e
 entity.8520=i
 entity.8521=j
+entity.8528=1/7
+entity.8529=1/9
+entity.8530=1/10
 entity.8531=1/3
 entity.8532=2/3
 entity.8533=1/5
 entity.8534=2/5
 entity.8535=3/5
 entity.8536=4/5
 entity.8537=1/6
 entity.8538=5/6
@@ -1105,16 +1130,17 @@ entity.8574=d
 entity.8575=m
 entity.8576=[1000]
 entity.8577=[5000]
 entity.8578=[10000]
 entity.8581=[6]
 entity.8582=[50]
 entity.8583=[50000]
 entity.8584=[100000]
+entity.8585=0/3
 entity.9312=(1)
 entity.9313=(2)
 entity.9314=(3)
 entity.9315=(4)
 entity.9316=(5)
 entity.9317=(6)
 entity.9318=(7)
 entity.9319=(8)
@@ -1352,16 +1378,32 @@ entity.42529=1
 entity.42530=2
 entity.42531=3
 entity.42532=4
 entity.42533=5
 entity.42534=6
 entity.42535=7
 entity.42536=8
 entity.42537=9
+entity.42726=[1]
+entity.42727=[2]
+entity.42728=[3]
+entity.42729=[4]
+entity.42730=[5]
+entity.42731=[6]
+entity.42732=[7]
+entity.42733=[8]
+entity.42734=[9]
+entity.42735=[0]
+entity.43056=[1/4]
+entity.43057=[1/2]
+entity.43058=[3/4]
+entity.43059=[1/16]
+entity.43060=[1/8]
+entity.43061=[3/16]
 entity.43216=0
 entity.43217=1
 entity.43218=2
 entity.43219=3
 entity.43220=4
 entity.43221=5
 entity.43222=6
 entity.43223=7
@@ -1372,26 +1414,46 @@ entity.43265=1
 entity.43266=2
 entity.43267=3
 entity.43268=4
 entity.43269=5
 entity.43270=6
 entity.43271=7
 entity.43272=8
 entity.43273=9
+entity.43472=0
+entity.43473=1
+entity.43474=2
+entity.43475=3
+entity.43476=4
+entity.43477=5
+entity.43478=6
+entity.43479=7
+entity.43480=8
+entity.43481=9
 entity.43600=0
 entity.43601=1
 entity.43602=2
 entity.43603=3
 entity.43604=4
 entity.43605=5
 entity.43606=6
 entity.43607=7
 entity.43608=8
 entity.43609=9
+entity.44016=0
+entity.44017=1
+entity.44018=2
+entity.44019=3
+entity.44020=4
+entity.44021=5
+entity.44022=6
+entity.44023=7
+entity.44024=8
+entity.44025=9
 entity.64256=ff
 entity.64257=fi
 entity.64258=fl
 entity.64259=ffi
 entity.64260=ffl
 entity.64262=st
 entity.64297=+
 entity.65101=_
@@ -1632,28 +1694,87 @@ entity.66721=1
 entity.66722=2
 entity.66723=3
 entity.66724=4
 entity.66725=5
 entity.66726=6
 entity.66727=7
 entity.66728=8
 entity.66729=9
+entity.67672=[1]
+entity.67673=[2]
+entity.67674=[3]
+entity.67675=[10]
+entity.67676=[20]
+entity.67677=[100]
+entity.67678=[1000]
+entity.67679=[10000]
 entity.67862=[1]
 entity.67863=[10]
 entity.67864=[20]
 entity.67865=[100]
+entity.67866=[2]
+entity.67867=[3]
 entity.68160=[1]
 entity.68161=[2]
 entity.68162=[3]
 entity.68163=[4]
 entity.68164=[10]
 entity.68165=[20]
 entity.68166=[100]
 entity.68167=[1000]
+entity.68221=[1]
+entity.68222=[50]
+entity.68440=[1]
+entity.68441=[2]
+entity.68442=[3]
+entity.68443=[4]
+entity.68444=[10]
+entity.68445=[20]
+entity.68446=[100]
+entity.68447=[1000]
+entity.68472=[1]
+entity.68473=[2]
+entity.68474=[3]
+entity.68475=[4]
+entity.68476=[10]
+entity.68477=[20]
+entity.68478=[100]
+entity.68479=[1000]
+entity.69216=[1]
+entity.69217=[2]
+entity.69218=[3]
+entity.69219=[4]
+entity.69220=[5]
+entity.69221=[6]
+entity.69222=[7]
+entity.69223=[8]
+entity.69224=[9]
+entity.69225=[10]
+entity.69226=[20]
+entity.69227=[30]
+entity.69228=[40]
+entity.69229=[50]
+entity.69230=[60]
+entity.69231=[70]
+entity.69232=[80]
+entity.69233=[90]
+entity.69234=[100]
+entity.69235=[200]
+entity.69236=[300]
+entity.69237=[400]
+entity.69238=[500]
+entity.69239=[600]
+entity.69240=[700]
+entity.69241=[800]
+entity.69242=[900]
+entity.69243=[1/2]
+entity.69244=[1/4]
+entity.69245=[1/3]
+entity.69246=[2/3]
 entity.74752=[2]
 entity.74753=[3]
 entity.74754=[4]
 entity.74755=[5]
 entity.74756=[6]
 entity.74757=[7]
 entity.74758=[8]
 entity.74759=[9]
@@ -2459,8 +2580,50 @@ entity.120823=1
 entity.120824=2
 entity.120825=3
 entity.120826=4
 entity.120827=5
 entity.120828=6
 entity.120829=7
 entity.120830=8
 entity.120831=9
+entity.127232=0.
+entity.127233=0,
+entity.127234=1,
+entity.127235=2,
+entity.127236=3,
+entity.127237=4,
+entity.127238=5,
+entity.127239=6,
+entity.127240=7,
+entity.127241=8,
+entity.127242=9,
+entity.127248=(A)
+entity.127249=(B)
+entity.127250=(C)
+entity.127251=(D)
+entity.127252=(E)
+entity.127253=(F)
+entity.127254=(G)
+entity.127255=(H)
+entity.127256=(I)
+entity.127257=(J)
+entity.127258=(K)
+entity.127259=(L)
+entity.127260=(M)
+entity.127261=(N)
+entity.127262=(O)
+entity.127263=(P)
+entity.127264=(Q)
+entity.127265=(R)
+entity.127266=(S)
+entity.127267=(T)
+entity.127268=(U)
+entity.127269=(V)
+entity.127270=(W)
+entity.127271=(X)
+entity.127272=(Y)
+entity.127273=(Z)
+entity.127274=S
+entity.127275=(C)
+entity.127276=(R)
+entity.127277=(CD)
+entity.127278=(WZ)
--- a/intl/unicharutil/tests/unit/test_bug_427350_1.js
+++ b/intl/unicharutil/tests/unit/test_bug_427350_1.js
@@ -1,29 +1,31 @@
-/* Tests transliteration of new characters in Unicode 5.1
+/* Tests transliteration of new characters in Unicode 5.1 and 5.2
  */
 
 const inTeluguFractions = "\u0C78\u0C79\u0C7A\u0C7B\u0C7C\u0C7D\u0C7E";
 const inMalayalamNumbers = "\u0D70\u0D71\u0D72\u0D73\u0D74\u0D75";
 
 /* MYANMAR SHAN DIGIT ONE,
    SUNDANESE DIGIT TWO,
    LEPCHA DIGIT THREE,
    OL CHIKI DIGIT FOUR,
    VAI DIGIT FIVE,
    SAURASHTRA DIGIT SIX
    KAYAH LI DIGIT SEVEN
-   CHAM DIGIT EIGHT */
-const inDigits = "\u1091\u1BB2\u1C43\u1C54\uA625\uA8D6\uA907\uAA58";
+   CHAM DIGIT EIGHT
+   JAVANESE DIGIT NINE 
+   MEETEI MAYEK DIGIT ZERO */
+const inDigits = "\u1091\u1BB2\u1C43\u1C54\uA625\uA8D6\uA907\uAA58\uA9D9\uABF0";
 const inRomanNumerals = "\u2185\u2186\u2187\u2188";
 const inSuperSubscripts = "\u2C7C\u2C7D";
     
 const expectedTeluguFractions = "[0][1][2][3][1][2][3]";
 const expectedMalayalamNumbers = "[10][100][1000][1/4][1/2][3/4]";
-const expectedDigits = "12345678";
+const expectedDigits = "1234567890";
 const expectedRomanNumerals = "[6][50][50000][100000]";
 const expectedSuperSubscripts = "v(j)^(V)";
 
 const EntityAfterCharsetConv = 512;
 const transliterate = 8;
 
 const charset = "ISO-8859-1";
     
--- a/intl/unicharutil/tools/gencattable.pl
+++ b/intl/unicharutil/tools/gencattable.pl
@@ -220,27 +220,31 @@ while(<UNICODATA>) {
 
 # We treat characters < U+1D00 as "plane 0" and all the rest of planes 0 and 1
 # as "plane 1". This gives a relatively even distribution of patterns between
 # planes. If you change the value of $planeSplit, make sure that none of the
 # ranges below straddles the new value!
 $planeSplit = 0x1d00;
 
 @range = (
-  0x0000, 0x07ff, 
-  0x0900, 0x1c7f,
+  0x0000, 0x1cff,
   0x1d00, 0x33ff,
   0x4dc0, 0x4dff,
-  0xa000, 0xaa7f,
+  0xa000, 0xaaff,
+  0xabc0, 0xabff,
+  0xd7b0, 0xd7ff,
   0xf900, 0xffff,
   0x10000, 0x104af,
-  0x10800, 0x1083f,
+  0x10800, 0x1085f,
   0x10900, 0x1093f,
-  0x10a00, 0x10a5f,
+  0x10a00, 0x10c4f,
+  0x10e60, 0x10e7f,
+  0x11080, 0x110cf,
   0x12000, 0x1247f,
+  0x13000, 0x1342f,
   0x1d000, 0x1d7ff,
   0x1f000, 0x1f1ff
 );
 
 
 $totaldata = 0;
 
 $tt=($#range+1) / 2;
--- a/intl/unicharutil/util/bidicattable.h
+++ b/intl/unicharutil/util/bidicattable.h
@@ -38,17 +38,17 @@
 /* 
     DO NOT EDIT THIS DOCUMENT !!! THIS DOCUMENT IS GENERATED BY
     mozilla/intl/unicharutil/util/genbidicattable.pl
  */
 
 
 #include "nscore.h" 
 
-static PRUint8 gBidiCatIdx1[256] = {
+static PRUint8 gBidiCatIdx1[1664] = {
      11,  /* U+0000 - U+0007 : 0xBBBBBBBB */
      16,  /* U+0008 - U+000F : 0xBBCEDCDB */
      11,  /* U+0010 - U+0017 : 0xBBBBBBBB */
      17,  /* U+0018 - U+001F : 0xDCCCBBBB */
      18,  /* U+0020 - U+0027 : 0x9977799E */
      19,  /* U+0028 - U+002F : 0x88686999 */
       5,  /* U+0030 - U+0037 : 0x55555555 */
      20,  /* U+0038 - U+003F : 0x99999855 */
@@ -295,263 +295,292 @@ static PRUint8 gBidiCatIdx1[256] = {
       2,  /* U+07C0 - U+07C7 : 0x22222222 */
       2,  /* U+07C8 - U+07CF : 0x22222222 */
       2,  /* U+07D0 - U+07D7 : 0x22222222 */
       2,  /* U+07D8 - U+07DF : 0x22222222 */
       2,  /* U+07E0 - U+07E7 : 0x22222222 */
      57,  /* U+07E8 - U+07EF : 0xAAAAA222 */
      58,  /* U+07F0 - U+07F7 : 0x9922AAAA */
      59,  /* U+07F8 - U+07FF : 0x22222299 */
-};
-
-static PRUint8 gBidiCatIdx2[1376] = {
-     60,  /* U+0900 - U+0907 : 0x11111AA1 */
+      2,  /* U+0800 - U+0807 : 0x22222222 */
+      2,  /* U+0808 - U+080F : 0x22222222 */
+     60,  /* U+0810 - U+0817 : 0xAA222222 */
+     61,  /* U+0818 - U+081F : 0xAAAAA2AA */
+     62,  /* U+0820 - U+0827 : 0xAAA2AAAA */
+     63,  /* U+0828 - U+082F : 0x22AAAAA2 */
+      2,  /* U+0830 - U+0837 : 0x22222222 */
+      2,  /* U+0838 - U+083F : 0x22222222 */
+      2,  /* U+0840 - U+0847 : 0x22222222 */
+      2,  /* U+0848 - U+084F : 0x22222222 */
+      2,  /* U+0850 - U+0857 : 0x22222222 */
+      2,  /* U+0858 - U+085F : 0x22222222 */
+      2,  /* U+0860 - U+0867 : 0x22222222 */
+      2,  /* U+0868 - U+086F : 0x22222222 */
+      2,  /* U+0870 - U+0877 : 0x22222222 */
+      2,  /* U+0878 - U+087F : 0x22222222 */
+      2,  /* U+0880 - U+0887 : 0x22222222 */
+      2,  /* U+0888 - U+088F : 0x22222222 */
+      2,  /* U+0890 - U+0897 : 0x22222222 */
+      2,  /* U+0898 - U+089F : 0x22222222 */
+      2,  /* U+08A0 - U+08A7 : 0x22222222 */
+      2,  /* U+08A8 - U+08AF : 0x22222222 */
+      2,  /* U+08B0 - U+08B7 : 0x22222222 */
+      2,  /* U+08B8 - U+08BF : 0x22222222 */
+      2,  /* U+08C0 - U+08C7 : 0x22222222 */
+      2,  /* U+08C8 - U+08CF : 0x22222222 */
+      2,  /* U+08D0 - U+08D7 : 0x22222222 */
+      2,  /* U+08D8 - U+08DF : 0x22222222 */
+      2,  /* U+08E0 - U+08E7 : 0x22222222 */
+      2,  /* U+08E8 - U+08EF : 0x22222222 */
+      2,  /* U+08F0 - U+08F7 : 0x22222222 */
+      2,  /* U+08F8 - U+08FF : 0x22222222 */
+     64,  /* U+0900 - U+0907 : 0x11111AAA */
       1,  /* U+0908 - U+090F : 0x11111111 */
       1,  /* U+0910 - U+0917 : 0x11111111 */
       1,  /* U+0918 - U+091F : 0x11111111 */
       1,  /* U+0920 - U+0927 : 0x11111111 */
       1,  /* U+0928 - U+092F : 0x11111111 */
       1,  /* U+0930 - U+0937 : 0x11111111 */
-     61,  /* U+0938 - U+093F : 0x111A1111 */
-     62,  /* U+0940 - U+0947 : 0xAAAAAAA1 */
-     63,  /* U+0948 - U+094F : 0x11A1111A */
-     64,  /* U+0950 - U+0957 : 0x111AAAA1 */
+     65,  /* U+0938 - U+093F : 0x111A1111 */
+     66,  /* U+0940 - U+0947 : 0xAAAAAAA1 */
+     67,  /* U+0948 - U+094F : 0x11A1111A */
+     68,  /* U+0950 - U+0957 : 0x11AAAAA1 */
       1,  /* U+0958 - U+095F : 0x11111111 */
-     65,  /* U+0960 - U+0967 : 0x1111AA11 */
+     69,  /* U+0960 - U+0967 : 0x1111AA11 */
       1,  /* U+0968 - U+096F : 0x11111111 */
       1,  /* U+0970 - U+0977 : 0x11111111 */
       1,  /* U+0978 - U+097F : 0x11111111 */
-     66,  /* U+0980 - U+0987 : 0x111111A1 */
+     70,  /* U+0980 - U+0987 : 0x111111A1 */
       1,  /* U+0988 - U+098F : 0x11111111 */
       1,  /* U+0990 - U+0997 : 0x11111111 */
       1,  /* U+0998 - U+099F : 0x11111111 */
       1,  /* U+09A0 - U+09A7 : 0x11111111 */
       1,  /* U+09A8 - U+09AF : 0x11111111 */
       1,  /* U+09B0 - U+09B7 : 0x11111111 */
-     61,  /* U+09B8 - U+09BF : 0x111A1111 */
-     64,  /* U+09C0 - U+09C7 : 0x111AAAA1 */
-     67,  /* U+09C8 - U+09CF : 0x11A11111 */
+     65,  /* U+09B8 - U+09BF : 0x111A1111 */
+     71,  /* U+09C0 - U+09C7 : 0x111AAAA1 */
+     72,  /* U+09C8 - U+09CF : 0x11A11111 */
       1,  /* U+09D0 - U+09D7 : 0x11111111 */
       1,  /* U+09D8 - U+09DF : 0x11111111 */
-     65,  /* U+09E0 - U+09E7 : 0x1111AA11 */
+     69,  /* U+09E0 - U+09E7 : 0x1111AA11 */
       1,  /* U+09E8 - U+09EF : 0x11111111 */
-     68,  /* U+09F0 - U+09F7 : 0x11117711 */
-      1,  /* U+09F8 - U+09FF : 0x11111111 */
-     60,  /* U+0A00 - U+0A07 : 0x11111AA1 */
+     73,  /* U+09F0 - U+09F7 : 0x11117711 */
+     74,  /* U+09F8 - U+09FF : 0x11117111 */
+     75,  /* U+0A00 - U+0A07 : 0x11111AA1 */
       1,  /* U+0A08 - U+0A0F : 0x11111111 */
       1,  /* U+0A10 - U+0A17 : 0x11111111 */
       1,  /* U+0A18 - U+0A1F : 0x11111111 */
       1,  /* U+0A20 - U+0A27 : 0x11111111 */
       1,  /* U+0A28 - U+0A2F : 0x11111111 */
       1,  /* U+0A30 - U+0A37 : 0x11111111 */
-     61,  /* U+0A38 - U+0A3F : 0x111A1111 */
-     69,  /* U+0A40 - U+0A47 : 0xA1111AA1 */
-     70,  /* U+0A48 - U+0A4F : 0x11AAA11A */
-     66,  /* U+0A50 - U+0A57 : 0x111111A1 */
+     65,  /* U+0A38 - U+0A3F : 0x111A1111 */
+     76,  /* U+0A40 - U+0A47 : 0xA1111AA1 */
+     77,  /* U+0A48 - U+0A4F : 0x11AAA11A */
+     70,  /* U+0A50 - U+0A57 : 0x111111A1 */
       1,  /* U+0A58 - U+0A5F : 0x11111111 */
       1,  /* U+0A60 - U+0A67 : 0x11111111 */
       1,  /* U+0A68 - U+0A6F : 0x11111111 */
-     71,  /* U+0A70 - U+0A77 : 0x11A111AA */
+     78,  /* U+0A70 - U+0A77 : 0x11A111AA */
       1,  /* U+0A78 - U+0A7F : 0x11111111 */
-     60,  /* U+0A80 - U+0A87 : 0x11111AA1 */
+     75,  /* U+0A80 - U+0A87 : 0x11111AA1 */
       1,  /* U+0A88 - U+0A8F : 0x11111111 */
       1,  /* U+0A90 - U+0A97 : 0x11111111 */
       1,  /* U+0A98 - U+0A9F : 0x11111111 */
       1,  /* U+0AA0 - U+0AA7 : 0x11111111 */
       1,  /* U+0AA8 - U+0AAF : 0x11111111 */
       1,  /* U+0AB0 - U+0AB7 : 0x11111111 */
-     61,  /* U+0AB8 - U+0ABF : 0x111A1111 */
-     72,  /* U+0AC0 - U+0AC7 : 0xA1AAAAA1 */
-     63,  /* U+0AC8 - U+0ACF : 0x11A1111A */
+     65,  /* U+0AB8 - U+0ABF : 0x111A1111 */
+     79,  /* U+0AC0 - U+0AC7 : 0xA1AAAAA1 */
+     67,  /* U+0AC8 - U+0ACF : 0x11A1111A */
       1,  /* U+0AD0 - U+0AD7 : 0x11111111 */
       1,  /* U+0AD8 - U+0ADF : 0x11111111 */
-     65,  /* U+0AE0 - U+0AE7 : 0x1111AA11 */
+     69,  /* U+0AE0 - U+0AE7 : 0x1111AA11 */
       1,  /* U+0AE8 - U+0AEF : 0x11111111 */
-     73,  /* U+0AF0 - U+0AF7 : 0x11111171 */
+     80,  /* U+0AF0 - U+0AF7 : 0x11111171 */
       1,  /* U+0AF8 - U+0AFF : 0x11111111 */
-     66,  /* U+0B00 - U+0B07 : 0x111111A1 */
+     70,  /* U+0B00 - U+0B07 : 0x111111A1 */
       1,  /* U+0B08 - U+0B0F : 0x11111111 */
       1,  /* U+0B10 - U+0B17 : 0x11111111 */
       1,  /* U+0B18 - U+0B1F : 0x11111111 */
       1,  /* U+0B20 - U+0B27 : 0x11111111 */
       1,  /* U+0B28 - U+0B2F : 0x11111111 */
       1,  /* U+0B30 - U+0B37 : 0x11111111 */
-     74,  /* U+0B38 - U+0B3F : 0xA11A1111 */
-     64,  /* U+0B40 - U+0B47 : 0x111AAAA1 */
-     67,  /* U+0B48 - U+0B4F : 0x11A11111 */
-     75,  /* U+0B50 - U+0B57 : 0x1A111111 */
+     81,  /* U+0B38 - U+0B3F : 0xA11A1111 */
+     71,  /* U+0B40 - U+0B47 : 0x111AAAA1 */
+     72,  /* U+0B48 - U+0B4F : 0x11A11111 */
+     82,  /* U+0B50 - U+0B57 : 0x1A111111 */
       1,  /* U+0B58 - U+0B5F : 0x11111111 */
-     65,  /* U+0B60 - U+0B67 : 0x1111AA11 */
+     69,  /* U+0B60 - U+0B67 : 0x1111AA11 */
       1,  /* U+0B68 - U+0B6F : 0x11111111 */
       1,  /* U+0B70 - U+0B77 : 0x11111111 */
       1,  /* U+0B78 - U+0B7F : 0x11111111 */
-     76,  /* U+0B80 - U+0B87 : 0x11111A11 */
+     83,  /* U+0B80 - U+0B87 : 0x11111A11 */
       1,  /* U+0B88 - U+0B8F : 0x11111111 */
       1,  /* U+0B90 - U+0B97 : 0x11111111 */
       1,  /* U+0B98 - U+0B9F : 0x11111111 */
       1,  /* U+0BA0 - U+0BA7 : 0x11111111 */
       1,  /* U+0BA8 - U+0BAF : 0x11111111 */
       1,  /* U+0BB0 - U+0BB7 : 0x11111111 */
       1,  /* U+0BB8 - U+0BBF : 0x11111111 */
-     77,  /* U+0BC0 - U+0BC7 : 0x1111111A */
-     67,  /* U+0BC8 - U+0BCF : 0x11A11111 */
+     84,  /* U+0BC0 - U+0BC7 : 0x1111111A */
+     72,  /* U+0BC8 - U+0BCF : 0x11A11111 */
       1,  /* U+0BD0 - U+0BD7 : 0x11111111 */
       1,  /* U+0BD8 - U+0BDF : 0x11111111 */
       1,  /* U+0BE0 - U+0BE7 : 0x11111111 */
       1,  /* U+0BE8 - U+0BEF : 0x11111111 */
      22,  /* U+0BF0 - U+0BF7 : 0x99999111 */
-     78,  /* U+0BF8 - U+0BFF : 0x11111979 */
+     85,  /* U+0BF8 - U+0BFF : 0x11111979 */
       1,  /* U+0C00 - U+0C07 : 0x11111111 */
       1,  /* U+0C08 - U+0C0F : 0x11111111 */
       1,  /* U+0C10 - U+0C17 : 0x11111111 */
       1,  /* U+0C18 - U+0C1F : 0x11111111 */
       1,  /* U+0C20 - U+0C27 : 0x11111111 */
       1,  /* U+0C28 - U+0C2F : 0x11111111 */
       1,  /* U+0C30 - U+0C37 : 0x11111111 */
-     79,  /* U+0C38 - U+0C3F : 0xAA111111 */
-     80,  /* U+0C40 - U+0C47 : 0xAA11111A */
-     81,  /* U+0C48 - U+0C4F : 0x11AAAA1A */
-     82,  /* U+0C50 - U+0C57 : 0x1AA11111 */
+     86,  /* U+0C38 - U+0C3F : 0xAA111111 */
+     87,  /* U+0C40 - U+0C47 : 0xAA11111A */
+     88,  /* U+0C48 - U+0C4F : 0x11AAAA1A */
+     89,  /* U+0C50 - U+0C57 : 0x1AA11111 */
       1,  /* U+0C58 - U+0C5F : 0x11111111 */
-     65,  /* U+0C60 - U+0C67 : 0x1111AA11 */
+     69,  /* U+0C60 - U+0C67 : 0x1111AA11 */
       1,  /* U+0C68 - U+0C6F : 0x11111111 */
       1,  /* U+0C70 - U+0C77 : 0x11111111 */
-     83,  /* U+0C78 - U+0C7F : 0x19999999 */
+     90,  /* U+0C78 - U+0C7F : 0x19999999 */
       1,  /* U+0C80 - U+0C87 : 0x11111111 */
       1,  /* U+0C88 - U+0C8F : 0x11111111 */
       1,  /* U+0C90 - U+0C97 : 0x11111111 */
       1,  /* U+0C98 - U+0C9F : 0x11111111 */
       1,  /* U+0CA0 - U+0CA7 : 0x11111111 */
       1,  /* U+0CA8 - U+0CAF : 0x11111111 */
       1,  /* U+0CB0 - U+0CB7 : 0x11111111 */
-     61,  /* U+0CB8 - U+0CBF : 0x111A1111 */
+     65,  /* U+0CB8 - U+0CBF : 0x111A1111 */
       1,  /* U+0CC0 - U+0CC7 : 0x11111111 */
-     84,  /* U+0CC8 - U+0CCF : 0x11AA1111 */
+     91,  /* U+0CC8 - U+0CCF : 0x11AA1111 */
       1,  /* U+0CD0 - U+0CD7 : 0x11111111 */
       1,  /* U+0CD8 - U+0CDF : 0x11111111 */
-     65,  /* U+0CE0 - U+0CE7 : 0x1111AA11 */
+     69,  /* U+0CE0 - U+0CE7 : 0x1111AA11 */
       1,  /* U+0CE8 - U+0CEF : 0x11111111 */
      30,  /* U+0CF0 - U+0CF7 : 0x11111991 */
       1,  /* U+0CF8 - U+0CFF : 0x11111111 */
       1,  /* U+0D00 - U+0D07 : 0x11111111 */
       1,  /* U+0D08 - U+0D0F : 0x11111111 */
       1,  /* U+0D10 - U+0D17 : 0x11111111 */
       1,  /* U+0D18 - U+0D1F : 0x11111111 */
       1,  /* U+0D20 - U+0D27 : 0x11111111 */
       1,  /* U+0D28 - U+0D2F : 0x11111111 */
       1,  /* U+0D30 - U+0D37 : 0x11111111 */
       1,  /* U+0D38 - U+0D3F : 0x11111111 */
-     64,  /* U+0D40 - U+0D47 : 0x111AAAA1 */
-     67,  /* U+0D48 - U+0D4F : 0x11A11111 */
+     71,  /* U+0D40 - U+0D47 : 0x111AAAA1 */
+     72,  /* U+0D48 - U+0D4F : 0x11A11111 */
       1,  /* U+0D50 - U+0D57 : 0x11111111 */
       1,  /* U+0D58 - U+0D5F : 0x11111111 */
-     65,  /* U+0D60 - U+0D67 : 0x1111AA11 */
+     69,  /* U+0D60 - U+0D67 : 0x1111AA11 */
       1,  /* U+0D68 - U+0D6F : 0x11111111 */
       1,  /* U+0D70 - U+0D77 : 0x11111111 */
       1,  /* U+0D78 - U+0D7F : 0x11111111 */
       1,  /* U+0D80 - U+0D87 : 0x11111111 */
       1,  /* U+0D88 - U+0D8F : 0x11111111 */
       1,  /* U+0D90 - U+0D97 : 0x11111111 */
       1,  /* U+0D98 - U+0D9F : 0x11111111 */
       1,  /* U+0DA0 - U+0DA7 : 0x11111111 */
       1,  /* U+0DA8 - U+0DAF : 0x11111111 */
       1,  /* U+0DB0 - U+0DB7 : 0x11111111 */
       1,  /* U+0DB8 - U+0DBF : 0x11111111 */
       1,  /* U+0DC0 - U+0DC7 : 0x11111111 */
-     76,  /* U+0DC8 - U+0DCF : 0x11111A11 */
-     85,  /* U+0DD0 - U+0DD7 : 0x1A1AAA11 */
+     83,  /* U+0DC8 - U+0DCF : 0x11111A11 */
+     92,  /* U+0DD0 - U+0DD7 : 0x1A1AAA11 */
       1,  /* U+0DD8 - U+0DDF : 0x11111111 */
       1,  /* U+0DE0 - U+0DE7 : 0x11111111 */
       1,  /* U+0DE8 - U+0DEF : 0x11111111 */
       1,  /* U+0DF0 - U+0DF7 : 0x11111111 */
       1,  /* U+0DF8 - U+0DFF : 0x11111111 */
       1,  /* U+0E00 - U+0E07 : 0x11111111 */
       1,  /* U+0E08 - U+0E0F : 0x11111111 */
       1,  /* U+0E10 - U+0E17 : 0x11111111 */
       1,  /* U+0E18 - U+0E1F : 0x11111111 */
       1,  /* U+0E20 - U+0E27 : 0x11111111 */
       1,  /* U+0E28 - U+0E2F : 0x11111111 */
-     86,  /* U+0E30 - U+0E37 : 0xAAAA11A1 */
-     87,  /* U+0E38 - U+0E3F : 0x71111AAA */
-     88,  /* U+0E40 - U+0E47 : 0xA1111111 */
-     89,  /* U+0E48 - U+0E4F : 0x1AAAAAAA */
+     93,  /* U+0E30 - U+0E37 : 0xAAAA11A1 */
+     94,  /* U+0E38 - U+0E3F : 0x71111AAA */
+     95,  /* U+0E40 - U+0E47 : 0xA1111111 */
+     96,  /* U+0E48 - U+0E4F : 0x1AAAAAAA */
       1,  /* U+0E50 - U+0E57 : 0x11111111 */
       1,  /* U+0E58 - U+0E5F : 0x11111111 */
       1,  /* U+0E60 - U+0E67 : 0x11111111 */
       1,  /* U+0E68 - U+0E6F : 0x11111111 */
       1,  /* U+0E70 - U+0E77 : 0x11111111 */
       1,  /* U+0E78 - U+0E7F : 0x11111111 */
       1,  /* U+0E80 - U+0E87 : 0x11111111 */
       1,  /* U+0E88 - U+0E8F : 0x11111111 */
       1,  /* U+0E90 - U+0E97 : 0x11111111 */
       1,  /* U+0E98 - U+0E9F : 0x11111111 */
       1,  /* U+0EA0 - U+0EA7 : 0x11111111 */
       1,  /* U+0EA8 - U+0EAF : 0x11111111 */
-     86,  /* U+0EB0 - U+0EB7 : 0xAAAA11A1 */
-     90,  /* U+0EB8 - U+0EBF : 0x111AA1AA */
+     93,  /* U+0EB0 - U+0EB7 : 0xAAAA11A1 */
+     97,  /* U+0EB8 - U+0EBF : 0x111AA1AA */
       1,  /* U+0EC0 - U+0EC7 : 0x11111111 */
-     91,  /* U+0EC8 - U+0ECF : 0x11AAAAAA */
+     98,  /* U+0EC8 - U+0ECF : 0x11AAAAAA */
       1,  /* U+0ED0 - U+0ED7 : 0x11111111 */
       1,  /* U+0ED8 - U+0EDF : 0x11111111 */
       1,  /* U+0EE0 - U+0EE7 : 0x11111111 */
       1,  /* U+0EE8 - U+0EEF : 0x11111111 */
       1,  /* U+0EF0 - U+0EF7 : 0x11111111 */
       1,  /* U+0EF8 - U+0EFF : 0x11111111 */
       1,  /* U+0F00 - U+0F07 : 0x11111111 */
       1,  /* U+0F08 - U+0F0F : 0x11111111 */
       1,  /* U+0F10 - U+0F17 : 0x11111111 */
      38,  /* U+0F18 - U+0F1F : 0x111111AA */
       1,  /* U+0F20 - U+0F27 : 0x11111111 */
       1,  /* U+0F28 - U+0F2F : 0x11111111 */
-     92,  /* U+0F30 - U+0F37 : 0xA1A11111 */
-     93,  /* U+0F38 - U+0F3F : 0x119999A1 */
+     99,  /* U+0F30 - U+0F37 : 0xA1A11111 */
+    100,  /* U+0F38 - U+0F3F : 0x119999A1 */
       1,  /* U+0F40 - U+0F47 : 0x11111111 */
       1,  /* U+0F48 - U+0F4F : 0x11111111 */
       1,  /* U+0F50 - U+0F57 : 0x11111111 */
       1,  /* U+0F58 - U+0F5F : 0x11111111 */
       1,  /* U+0F60 - U+0F67 : 0x11111111 */
       1,  /* U+0F68 - U+0F6F : 0x11111111 */
-     62,  /* U+0F70 - U+0F77 : 0xAAAAAAA1 */
-     89,  /* U+0F78 - U+0F7F : 0x1AAAAAAA */
-     94,  /* U+0F80 - U+0F87 : 0xAA1AAAAA */
+     66,  /* U+0F70 - U+0F77 : 0xAAAAAAA1 */
+     96,  /* U+0F78 - U+0F7F : 0x1AAAAAAA */
+    101,  /* U+0F80 - U+0F87 : 0xAA1AAAAA */
       1,  /* U+0F88 - U+0F8F : 0x11111111 */
      10,  /* U+0F90 - U+0F97 : 0xAAAAAAAA */
-     62,  /* U+0F98 - U+0F9F : 0xAAAAAAA1 */
+     66,  /* U+0F98 - U+0F9F : 0xAAAAAAA1 */
      10,  /* U+0FA0 - U+0FA7 : 0xAAAAAAAA */
      10,  /* U+0FA8 - U+0FAF : 0xAAAAAAAA */
      10,  /* U+0FB0 - U+0FB7 : 0xAAAAAAAA */
-     95,  /* U+0FB8 - U+0FBF : 0x111AAAAA */
-     75,  /* U+0FC0 - U+0FC7 : 0x1A111111 */
+    102,  /* U+0FB8 - U+0FBF : 0x111AAAAA */
+     82,  /* U+0FC0 - U+0FC7 : 0x1A111111 */
       1,  /* U+0FC8 - U+0FCF : 0x11111111 */
       1,  /* U+0FD0 - U+0FD7 : 0x11111111 */
       1,  /* U+0FD8 - U+0FDF : 0x11111111 */
       1,  /* U+0FE0 - U+0FE7 : 0x11111111 */
       1,  /* U+0FE8 - U+0FEF : 0x11111111 */
       1,  /* U+0FF0 - U+0FF7 : 0x11111111 */
       1,  /* U+0FF8 - U+0FFF : 0x11111111 */
       1,  /* U+1000 - U+1007 : 0x11111111 */
       1,  /* U+1008 - U+100F : 0x11111111 */
       1,  /* U+1010 - U+1017 : 0x11111111 */
       1,  /* U+1018 - U+101F : 0x11111111 */
       1,  /* U+1020 - U+1027 : 0x11111111 */
-     96,  /* U+1028 - U+102F : 0xAAA11111 */
-     97,  /* U+1030 - U+1037 : 0xAAAAAA1A */
-     98,  /* U+1038 - U+103F : 0x1AA11AA1 */
+    103,  /* U+1028 - U+102F : 0xAAA11111 */
+    104,  /* U+1030 - U+1037 : 0xAAAAAA1A */
+    105,  /* U+1038 - U+103F : 0x1AA11AA1 */
       1,  /* U+1040 - U+1047 : 0x11111111 */
       1,  /* U+1048 - U+104F : 0x11111111 */
       1,  /* U+1050 - U+1057 : 0x11111111 */
-     99,  /* U+1058 - U+105F : 0xAA1111AA */
-     77,  /* U+1060 - U+1067 : 0x1111111A */
+    106,  /* U+1058 - U+105F : 0xAA1111AA */
+     84,  /* U+1060 - U+1067 : 0x1111111A */
       1,  /* U+1068 - U+106F : 0x11111111 */
-     64,  /* U+1070 - U+1077 : 0x111AAAA1 */
+     71,  /* U+1070 - U+1077 : 0x111AAAA1 */
       1,  /* U+1078 - U+107F : 0x11111111 */
-    100,  /* U+1080 - U+1087 : 0x1AA11A11 */
-     67,  /* U+1088 - U+108F : 0x11A11111 */
+    107,  /* U+1080 - U+1087 : 0x1AA11A11 */
+     72,  /* U+1088 - U+108F : 0x11A11111 */
       1,  /* U+1090 - U+1097 : 0x11111111 */
-      1,  /* U+1098 - U+109F : 0x11111111 */
+     72,  /* U+1098 - U+109F : 0x11A11111 */
       1,  /* U+10A0 - U+10A7 : 0x11111111 */
       1,  /* U+10A8 - U+10AF : 0x11111111 */
       1,  /* U+10B0 - U+10B7 : 0x11111111 */
       1,  /* U+10B8 - U+10BF : 0x11111111 */
       1,  /* U+10C0 - U+10C7 : 0x11111111 */
       1,  /* U+10C8 - U+10CF : 0x11111111 */
       1,  /* U+10D0 - U+10D7 : 0x11111111 */
       1,  /* U+10D8 - U+10DF : 0x11111111 */
@@ -629,38 +658,38 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+1318 - U+131F : 0x11111111 */
       1,  /* U+1320 - U+1327 : 0x11111111 */
       1,  /* U+1328 - U+132F : 0x11111111 */
       1,  /* U+1330 - U+1337 : 0x11111111 */
       1,  /* U+1338 - U+133F : 0x11111111 */
       1,  /* U+1340 - U+1347 : 0x11111111 */
       1,  /* U+1348 - U+134F : 0x11111111 */
       1,  /* U+1350 - U+1357 : 0x11111111 */
-     88,  /* U+1358 - U+135F : 0xA1111111 */
+     95,  /* U+1358 - U+135F : 0xA1111111 */
       1,  /* U+1360 - U+1367 : 0x11111111 */
       1,  /* U+1368 - U+136F : 0x11111111 */
       1,  /* U+1370 - U+1377 : 0x11111111 */
       1,  /* U+1378 - U+137F : 0x11111111 */
       1,  /* U+1380 - U+1387 : 0x11111111 */
       1,  /* U+1388 - U+138F : 0x11111111 */
       9,  /* U+1390 - U+1397 : 0x99999999 */
-    101,  /* U+1398 - U+139F : 0x11111199 */
+    108,  /* U+1398 - U+139F : 0x11111199 */
       1,  /* U+13A0 - U+13A7 : 0x11111111 */
       1,  /* U+13A8 - U+13AF : 0x11111111 */
       1,  /* U+13B0 - U+13B7 : 0x11111111 */
       1,  /* U+13B8 - U+13BF : 0x11111111 */
       1,  /* U+13C0 - U+13C7 : 0x11111111 */
       1,  /* U+13C8 - U+13CF : 0x11111111 */
       1,  /* U+13D0 - U+13D7 : 0x11111111 */
       1,  /* U+13D8 - U+13DF : 0x11111111 */
       1,  /* U+13E0 - U+13E7 : 0x11111111 */
       1,  /* U+13E8 - U+13EF : 0x11111111 */
       1,  /* U+13F0 - U+13F7 : 0x11111111 */
       1,  /* U+13F8 - U+13FF : 0x11111111 */
-      1,  /* U+1400 - U+1407 : 0x11111111 */
+     21,  /* U+1400 - U+1407 : 0x11111119 */
       1,  /* U+1408 - U+140F : 0x11111111 */
       1,  /* U+1410 - U+1417 : 0x11111111 */
       1,  /* U+1418 - U+141F : 0x11111111 */
       1,  /* U+1420 - U+1427 : 0x11111111 */
       1,  /* U+1428 - U+142F : 0x11111111 */
       1,  /* U+1430 - U+1437 : 0x11111111 */
       1,  /* U+1438 - U+143F : 0x11111111 */
       1,  /* U+1440 - U+1447 : 0x11111111 */
@@ -730,66 +759,66 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+1640 - U+1647 : 0x11111111 */
       1,  /* U+1648 - U+164F : 0x11111111 */
       1,  /* U+1650 - U+1657 : 0x11111111 */
       1,  /* U+1658 - U+165F : 0x11111111 */
       1,  /* U+1660 - U+1667 : 0x11111111 */
       1,  /* U+1668 - U+166F : 0x11111111 */
       1,  /* U+1670 - U+1677 : 0x11111111 */
       1,  /* U+1678 - U+167F : 0x11111111 */
-    102,  /* U+1680 - U+1687 : 0x1111111E */
+    109,  /* U+1680 - U+1687 : 0x1111111E */
       1,  /* U+1688 - U+168F : 0x11111111 */
       1,  /* U+1690 - U+1697 : 0x11111111 */
-    103,  /* U+1698 - U+169F : 0x11199111 */
+    110,  /* U+1698 - U+169F : 0x11199111 */
       1,  /* U+16A0 - U+16A7 : 0x11111111 */
       1,  /* U+16A8 - U+16AF : 0x11111111 */
       1,  /* U+16B0 - U+16B7 : 0x11111111 */
       1,  /* U+16B8 - U+16BF : 0x11111111 */
       1,  /* U+16C0 - U+16C7 : 0x11111111 */
       1,  /* U+16C8 - U+16CF : 0x11111111 */
       1,  /* U+16D0 - U+16D7 : 0x11111111 */
       1,  /* U+16D8 - U+16DF : 0x11111111 */
       1,  /* U+16E0 - U+16E7 : 0x11111111 */
       1,  /* U+16E8 - U+16EF : 0x11111111 */
       1,  /* U+16F0 - U+16F7 : 0x11111111 */
       1,  /* U+16F8 - U+16FF : 0x11111111 */
       1,  /* U+1700 - U+1707 : 0x11111111 */
       1,  /* U+1708 - U+170F : 0x11111111 */
-    104,  /* U+1710 - U+1717 : 0x111AAA11 */
+    111,  /* U+1710 - U+1717 : 0x111AAA11 */
       1,  /* U+1718 - U+171F : 0x11111111 */
       1,  /* U+1720 - U+1727 : 0x11111111 */
       1,  /* U+1728 - U+172F : 0x11111111 */
-    104,  /* U+1730 - U+1737 : 0x111AAA11 */
+    111,  /* U+1730 - U+1737 : 0x111AAA11 */
       1,  /* U+1738 - U+173F : 0x11111111 */
       1,  /* U+1740 - U+1747 : 0x11111111 */
       1,  /* U+1748 - U+174F : 0x11111111 */
-     65,  /* U+1750 - U+1757 : 0x1111AA11 */
+     69,  /* U+1750 - U+1757 : 0x1111AA11 */
       1,  /* U+1758 - U+175F : 0x11111111 */
       1,  /* U+1760 - U+1767 : 0x11111111 */
       1,  /* U+1768 - U+176F : 0x11111111 */
-     65,  /* U+1770 - U+1777 : 0x1111AA11 */
+     69,  /* U+1770 - U+1777 : 0x1111AA11 */
       1,  /* U+1778 - U+177F : 0x11111111 */
       1,  /* U+1780 - U+1787 : 0x11111111 */
       1,  /* U+1788 - U+178F : 0x11111111 */
       1,  /* U+1790 - U+1797 : 0x11111111 */
       1,  /* U+1798 - U+179F : 0x11111111 */
       1,  /* U+17A0 - U+17A7 : 0x11111111 */
       1,  /* U+17A8 - U+17AF : 0x11111111 */
-     88,  /* U+17B0 - U+17B7 : 0xA1111111 */
-     91,  /* U+17B8 - U+17BF : 0x11AAAAAA */
-     75,  /* U+17C0 - U+17C7 : 0x1A111111 */
-     62,  /* U+17C8 - U+17CF : 0xAAAAAAA1 */
-    105,  /* U+17D0 - U+17D7 : 0x1111AAAA */
-    106,  /* U+17D8 - U+17DF : 0x11A17111 */
+     95,  /* U+17B0 - U+17B7 : 0xA1111111 */
+     98,  /* U+17B8 - U+17BF : 0x11AAAAAA */
+     82,  /* U+17C0 - U+17C7 : 0x1A111111 */
+     66,  /* U+17C8 - U+17CF : 0xAAAAAAA1 */
+    112,  /* U+17D0 - U+17D7 : 0x1111AAAA */
+    113,  /* U+17D8 - U+17DF : 0x11A17111 */
       1,  /* U+17E0 - U+17E7 : 0x11111111 */
       1,  /* U+17E8 - U+17EF : 0x11111111 */
       9,  /* U+17F0 - U+17F7 : 0x99999999 */
-    101,  /* U+17F8 - U+17FF : 0x11111199 */
+    108,  /* U+17F8 - U+17FF : 0x11111199 */
       9,  /* U+1800 - U+1807 : 0x99999999 */
-    107,  /* U+1808 - U+180F : 0x1EAAA999 */
+    114,  /* U+1808 - U+180F : 0x1EAAA999 */
       1,  /* U+1810 - U+1817 : 0x11111111 */
       1,  /* U+1818 - U+181F : 0x11111111 */
       1,  /* U+1820 - U+1827 : 0x11111111 */
       1,  /* U+1828 - U+182F : 0x11111111 */
       1,  /* U+1830 - U+1837 : 0x11111111 */
       1,  /* U+1838 - U+183F : 0x11111111 */
       1,  /* U+1840 - U+1847 : 0x11111111 */
       1,  /* U+1848 - U+184F : 0x11111111 */
@@ -799,36 +828,36 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+1868 - U+186F : 0x11111111 */
       1,  /* U+1870 - U+1877 : 0x11111111 */
       1,  /* U+1878 - U+187F : 0x11111111 */
       1,  /* U+1880 - U+1887 : 0x11111111 */
       1,  /* U+1888 - U+188F : 0x11111111 */
       1,  /* U+1890 - U+1897 : 0x11111111 */
       1,  /* U+1898 - U+189F : 0x11111111 */
       1,  /* U+18A0 - U+18A7 : 0x11111111 */
-     66,  /* U+18A8 - U+18AF : 0x111111A1 */
+     70,  /* U+18A8 - U+18AF : 0x111111A1 */
       1,  /* U+18B0 - U+18B7 : 0x11111111 */
       1,  /* U+18B8 - U+18BF : 0x11111111 */
       1,  /* U+18C0 - U+18C7 : 0x11111111 */
       1,  /* U+18C8 - U+18CF : 0x11111111 */
       1,  /* U+18D0 - U+18D7 : 0x11111111 */
       1,  /* U+18D8 - U+18DF : 0x11111111 */
       1,  /* U+18E0 - U+18E7 : 0x11111111 */
       1,  /* U+18E8 - U+18EF : 0x11111111 */
       1,  /* U+18F0 - U+18F7 : 0x11111111 */
       1,  /* U+18F8 - U+18FF : 0x11111111 */
       1,  /* U+1900 - U+1907 : 0x11111111 */
       1,  /* U+1908 - U+190F : 0x11111111 */
       1,  /* U+1910 - U+1917 : 0x11111111 */
       1,  /* U+1918 - U+191F : 0x11111111 */
-    108,  /* U+1920 - U+1927 : 0xA1111AAA */
-     77,  /* U+1928 - U+192F : 0x1111111A */
-     76,  /* U+1930 - U+1937 : 0x11111A11 */
-    109,  /* U+1938 - U+193F : 0x1111AAA1 */
-    110,  /* U+1940 - U+1947 : 0x11991119 */
+    115,  /* U+1920 - U+1927 : 0xA1111AAA */
+     84,  /* U+1928 - U+192F : 0x1111111A */
+     83,  /* U+1930 - U+1937 : 0x11111A11 */
+    116,  /* U+1938 - U+193F : 0x1111AAA1 */
+    117,  /* U+1940 - U+1947 : 0x11991119 */
       1,  /* U+1948 - U+194F : 0x11111111 */
       1,  /* U+1950 - U+1957 : 0x11111111 */
       1,  /* U+1958 - U+195F : 0x11111111 */
       1,  /* U+1960 - U+1967 : 0x11111111 */
       1,  /* U+1968 - U+196F : 0x11111111 */
       1,  /* U+1970 - U+1977 : 0x11111111 */
       1,  /* U+1978 - U+197F : 0x11111111 */
       1,  /* U+1980 - U+1987 : 0x11111111 */
@@ -837,92 +866,92 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+1998 - U+199F : 0x11111111 */
       1,  /* U+19A0 - U+19A7 : 0x11111111 */
       1,  /* U+19A8 - U+19AF : 0x11111111 */
       1,  /* U+19B0 - U+19B7 : 0x11111111 */
       1,  /* U+19B8 - U+19BF : 0x11111111 */
       1,  /* U+19C0 - U+19C7 : 0x11111111 */
       1,  /* U+19C8 - U+19CF : 0x11111111 */
       1,  /* U+19D0 - U+19D7 : 0x11111111 */
-    111,  /* U+19D8 - U+19DF : 0x99111111 */
+    118,  /* U+19D8 - U+19DF : 0x99111111 */
       9,  /* U+19E0 - U+19E7 : 0x99999999 */
       9,  /* U+19E8 - U+19EF : 0x99999999 */
       9,  /* U+19F0 - U+19F7 : 0x99999999 */
       9,  /* U+19F8 - U+19FF : 0x99999999 */
       1,  /* U+1A00 - U+1A07 : 0x11111111 */
       1,  /* U+1A08 - U+1A0F : 0x11111111 */
-     88,  /* U+1A10 - U+1A17 : 0xA1111111 */
-     77,  /* U+1A18 - U+1A1F : 0x1111111A */
+     95,  /* U+1A10 - U+1A17 : 0xA1111111 */
+     84,  /* U+1A18 - U+1A1F : 0x1111111A */
       1,  /* U+1A20 - U+1A27 : 0x11111111 */
       1,  /* U+1A28 - U+1A2F : 0x11111111 */
       1,  /* U+1A30 - U+1A37 : 0x11111111 */
       1,  /* U+1A38 - U+1A3F : 0x11111111 */
       1,  /* U+1A40 - U+1A47 : 0x11111111 */
       1,  /* U+1A48 - U+1A4F : 0x11111111 */
-      1,  /* U+1A50 - U+1A57 : 0x11111111 */
-      1,  /* U+1A58 - U+1A5F : 0x11111111 */
-      1,  /* U+1A60 - U+1A67 : 0x11111111 */
-      1,  /* U+1A68 - U+1A6F : 0x11111111 */
-      1,  /* U+1A70 - U+1A77 : 0x11111111 */
-      1,  /* U+1A78 - U+1A7F : 0x11111111 */
+     82,  /* U+1A50 - U+1A57 : 0x1A111111 */
+     96,  /* U+1A58 - U+1A5F : 0x1AAAAAAA */
+    119,  /* U+1A60 - U+1A67 : 0xAAA11A1A */
+    102,  /* U+1A68 - U+1A6F : 0x111AAAAA */
+     37,  /* U+1A70 - U+1A77 : 0xAAAAA111 */
+    120,  /* U+1A78 - U+1A7F : 0xA11AAAAA */
       1,  /* U+1A80 - U+1A87 : 0x11111111 */
       1,  /* U+1A88 - U+1A8F : 0x11111111 */
       1,  /* U+1A90 - U+1A97 : 0x11111111 */
       1,  /* U+1A98 - U+1A9F : 0x11111111 */
       1,  /* U+1AA0 - U+1AA7 : 0x11111111 */
       1,  /* U+1AA8 - U+1AAF : 0x11111111 */
       1,  /* U+1AB0 - U+1AB7 : 0x11111111 */
       1,  /* U+1AB8 - U+1ABF : 0x11111111 */
       1,  /* U+1AC0 - U+1AC7 : 0x11111111 */
       1,  /* U+1AC8 - U+1ACF : 0x11111111 */
       1,  /* U+1AD0 - U+1AD7 : 0x11111111 */
       1,  /* U+1AD8 - U+1ADF : 0x11111111 */
       1,  /* U+1AE0 - U+1AE7 : 0x11111111 */
       1,  /* U+1AE8 - U+1AEF : 0x11111111 */
       1,  /* U+1AF0 - U+1AF7 : 0x11111111 */
       1,  /* U+1AF8 - U+1AFF : 0x11111111 */
-    105,  /* U+1B00 - U+1B07 : 0x1111AAAA */
+    112,  /* U+1B00 - U+1B07 : 0x1111AAAA */
       1,  /* U+1B08 - U+1B0F : 0x11111111 */
       1,  /* U+1B10 - U+1B17 : 0x11111111 */
       1,  /* U+1B18 - U+1B1F : 0x11111111 */
       1,  /* U+1B20 - U+1B27 : 0x11111111 */
       1,  /* U+1B28 - U+1B2F : 0x11111111 */
-    112,  /* U+1B30 - U+1B37 : 0xAA1A1111 */
-    113,  /* U+1B38 - U+1B3F : 0x111A1AAA */
-     76,  /* U+1B40 - U+1B47 : 0x11111A11 */
+    121,  /* U+1B30 - U+1B37 : 0xAA1A1111 */
+    122,  /* U+1B38 - U+1B3F : 0x111A1AAA */
+     83,  /* U+1B40 - U+1B47 : 0x11111A11 */
       1,  /* U+1B48 - U+1B4F : 0x11111111 */
       1,  /* U+1B50 - U+1B57 : 0x11111111 */
       1,  /* U+1B58 - U+1B5F : 0x11111111 */
       1,  /* U+1B60 - U+1B67 : 0x11111111 */
      37,  /* U+1B68 - U+1B6F : 0xAAAAA111 */
-    105,  /* U+1B70 - U+1B77 : 0x1111AAAA */
+    112,  /* U+1B70 - U+1B77 : 0x1111AAAA */
       1,  /* U+1B78 - U+1B7F : 0x11111111 */
      38,  /* U+1B80 - U+1B87 : 0x111111AA */
       1,  /* U+1B88 - U+1B8F : 0x11111111 */
       1,  /* U+1B90 - U+1B97 : 0x11111111 */
       1,  /* U+1B98 - U+1B9F : 0x11111111 */
-    114,  /* U+1BA0 - U+1BA7 : 0x11AAAA11 */
+    123,  /* U+1BA0 - U+1BA7 : 0x11AAAA11 */
      38,  /* U+1BA8 - U+1BAF : 0x111111AA */
       1,  /* U+1BB0 - U+1BB7 : 0x11111111 */
       1,  /* U+1BB8 - U+1BBF : 0x11111111 */
       1,  /* U+1BC0 - U+1BC7 : 0x11111111 */
       1,  /* U+1BC8 - U+1BCF : 0x11111111 */
       1,  /* U+1BD0 - U+1BD7 : 0x11111111 */
       1,  /* U+1BD8 - U+1BDF : 0x11111111 */
       1,  /* U+1BE0 - U+1BE7 : 0x11111111 */
       1,  /* U+1BE8 - U+1BEF : 0x11111111 */
       1,  /* U+1BF0 - U+1BF7 : 0x11111111 */
       1,  /* U+1BF8 - U+1BFF : 0x11111111 */
       1,  /* U+1C00 - U+1C07 : 0x11111111 */
       1,  /* U+1C08 - U+1C0F : 0x11111111 */
       1,  /* U+1C10 - U+1C17 : 0x11111111 */
       1,  /* U+1C18 - U+1C1F : 0x11111111 */
       1,  /* U+1C20 - U+1C27 : 0x11111111 */
-    115,  /* U+1C28 - U+1C2F : 0xAAAA1111 */
-    116,  /* U+1C30 - U+1C37 : 0xAA11AAAA */
+    124,  /* U+1C28 - U+1C2F : 0xAAAA1111 */
+    125,  /* U+1C30 - U+1C37 : 0xAA11AAAA */
       1,  /* U+1C38 - U+1C3F : 0x11111111 */
       1,  /* U+1C40 - U+1C47 : 0x11111111 */
       1,  /* U+1C48 - U+1C4F : 0x11111111 */
       1,  /* U+1C50 - U+1C57 : 0x11111111 */
       1,  /* U+1C58 - U+1C5F : 0x11111111 */
       1,  /* U+1C60 - U+1C67 : 0x11111111 */
       1,  /* U+1C68 - U+1C6F : 0x11111111 */
       1,  /* U+1C70 - U+1C77 : 0x11111111 */
@@ -932,20 +961,20 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+1C90 - U+1C97 : 0x11111111 */
       1,  /* U+1C98 - U+1C9F : 0x11111111 */
       1,  /* U+1CA0 - U+1CA7 : 0x11111111 */
       1,  /* U+1CA8 - U+1CAF : 0x11111111 */
       1,  /* U+1CB0 - U+1CB7 : 0x11111111 */
       1,  /* U+1CB8 - U+1CBF : 0x11111111 */
       1,  /* U+1CC0 - U+1CC7 : 0x11111111 */
       1,  /* U+1CC8 - U+1CCF : 0x11111111 */
-      1,  /* U+1CD0 - U+1CD7 : 0x11111111 */
-      1,  /* U+1CD8 - U+1CDF : 0x11111111 */
-      1,  /* U+1CE0 - U+1CE7 : 0x11111111 */
-      1,  /* U+1CE8 - U+1CEF : 0x11111111 */
+    126,  /* U+1CD0 - U+1CD7 : 0xAAAA1AAA */
+     10,  /* U+1CD8 - U+1CDF : 0xAAAAAAAA */
+    104,  /* U+1CE0 - U+1CE7 : 0xAAAAAA1A */
+     67,  /* U+1CE8 - U+1CEF : 0x11A1111A */
       1,  /* U+1CF0 - U+1CF7 : 0x11111111 */
       1,  /* U+1CF8 - U+1CFF : 0x11111111 */
       1,  /* U+1D00 - U+1D07 : 0x11111111 */
       1,  /* U+1D08 - U+1D0F : 0x11111111 */
       1,  /* U+1D10 - U+1D17 : 0x11111111 */
       1,  /* U+1D18 - U+1D1F : 0x11111111 */
       1,  /* U+1D20 - U+1D27 : 0x11111111 */
       1,  /* U+1D28 - U+1D2F : 0x11111111 */
@@ -966,20 +995,20 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+1DA0 - U+1DA7 : 0x11111111 */
       1,  /* U+1DA8 - U+1DAF : 0x11111111 */
       1,  /* U+1DB0 - U+1DB7 : 0x11111111 */
       1,  /* U+1DB8 - U+1DBF : 0x11111111 */
      10,  /* U+1DC0 - U+1DC7 : 0xAAAAAAAA */
      10,  /* U+1DC8 - U+1DCF : 0xAAAAAAAA */
      10,  /* U+1DD0 - U+1DD7 : 0xAAAAAAAA */
      10,  /* U+1DD8 - U+1DDF : 0xAAAAAAAA */
-     89,  /* U+1DE0 - U+1DE7 : 0x1AAAAAAA */
+     96,  /* U+1DE0 - U+1DE7 : 0x1AAAAAAA */
       1,  /* U+1DE8 - U+1DEF : 0x11111111 */
       1,  /* U+1DF0 - U+1DF7 : 0x11111111 */
-     79,  /* U+1DF8 - U+1DFF : 0xAA111111 */
+    103,  /* U+1DF8 - U+1DFF : 0xAAA11111 */
       1,  /* U+1E00 - U+1E07 : 0x11111111 */
       1,  /* U+1E08 - U+1E0F : 0x11111111 */
       1,  /* U+1E10 - U+1E17 : 0x11111111 */
       1,  /* U+1E18 - U+1E1F : 0x11111111 */
       1,  /* U+1E20 - U+1E27 : 0x11111111 */
       1,  /* U+1E28 - U+1E2F : 0x11111111 */
       1,  /* U+1E30 - U+1E37 : 0x11111111 */
       1,  /* U+1E38 - U+1E3F : 0x11111111 */
@@ -1025,92 +1054,92 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+1F78 - U+1F7F : 0x11111111 */
       1,  /* U+1F80 - U+1F87 : 0x11111111 */
       1,  /* U+1F88 - U+1F8F : 0x11111111 */
       1,  /* U+1F90 - U+1F97 : 0x11111111 */
       1,  /* U+1F98 - U+1F9F : 0x11111111 */
       1,  /* U+1FA0 - U+1FA7 : 0x11111111 */
       1,  /* U+1FA8 - U+1FAF : 0x11111111 */
       1,  /* U+1FB0 - U+1FB7 : 0x11111111 */
-    117,  /* U+1FB8 - U+1FBF : 0x91911111 */
-    101,  /* U+1FC0 - U+1FC7 : 0x11111199 */
+    127,  /* U+1FB8 - U+1FBF : 0x91911111 */
+    108,  /* U+1FC0 - U+1FC7 : 0x11111199 */
      32,  /* U+1FC8 - U+1FCF : 0x99911111 */
       1,  /* U+1FD0 - U+1FD7 : 0x11111111 */
      32,  /* U+1FD8 - U+1FDF : 0x99911111 */
       1,  /* U+1FE0 - U+1FE7 : 0x11111111 */
      32,  /* U+1FE8 - U+1FEF : 0x99911111 */
       1,  /* U+1FF0 - U+1FF7 : 0x11111111 */
-    118,  /* U+1FF8 - U+1FFF : 0x19911111 */
+    128,  /* U+1FF8 - U+1FFF : 0x19911111 */
      14,  /* U+2000 - U+2007 : 0xEEEEEEEE */
-    119,  /* U+2008 - U+200F : 0x21BBBEEE */
+    129,  /* U+2008 - U+200F : 0x21BBBEEE */
       9,  /* U+2010 - U+2017 : 0x99999999 */
       9,  /* U+2018 - U+201F : 0x99999999 */
       9,  /* U+2020 - U+2027 : 0x99999999 */
-    120,  /* U+2028 - U+202F : 0x8FFFFFCE */
-    121,  /* U+2030 - U+2037 : 0x99977777 */
+    130,  /* U+2028 - U+202F : 0x8FFFFFCE */
+    131,  /* U+2030 - U+2037 : 0x99977777 */
       9,  /* U+2038 - U+203F : 0x99999999 */
-    122,  /* U+2040 - U+2047 : 0x99989999 */
+    132,  /* U+2040 - U+2047 : 0x99989999 */
       9,  /* U+2048 - U+204F : 0x99999999 */
       9,  /* U+2050 - U+2057 : 0x99999999 */
-    123,  /* U+2058 - U+205F : 0xE9999999 */
-    124,  /* U+2060 - U+2067 : 0x111BBBBB */
-    125,  /* U+2068 - U+206F : 0xBBBBBB11 */
-    126,  /* U+2070 - U+2077 : 0x55551115 */
-    127,  /* U+2078 - U+207F : 0x19996655 */
+    133,  /* U+2058 - U+205F : 0xE9999999 */
+    134,  /* U+2060 - U+2067 : 0x111BBBBB */
+    135,  /* U+2068 - U+206F : 0xBBBBBB11 */
+    136,  /* U+2070 - U+2077 : 0x55551115 */
+    137,  /* U+2078 - U+207F : 0x19996655 */
       5,  /* U+2080 - U+2087 : 0x55555555 */
-    127,  /* U+2088 - U+208F : 0x19996655 */
+    137,  /* U+2088 - U+208F : 0x19996655 */
       1,  /* U+2090 - U+2097 : 0x11111111 */
       1,  /* U+2098 - U+209F : 0x11111111 */
       7,  /* U+20A0 - U+20A7 : 0x77777777 */
       7,  /* U+20A8 - U+20AF : 0x77777777 */
-    128,  /* U+20B0 - U+20B7 : 0x11777777 */
-      1,  /* U+20B8 - U+20BF : 0x11111111 */
+      7,  /* U+20B0 - U+20B7 : 0x77777777 */
+    138,  /* U+20B8 - U+20BF : 0x11111117 */
       1,  /* U+20C0 - U+20C7 : 0x11111111 */
       1,  /* U+20C8 - U+20CF : 0x11111111 */
      10,  /* U+20D0 - U+20D7 : 0xAAAAAAAA */
      10,  /* U+20D8 - U+20DF : 0xAAAAAAAA */
      10,  /* U+20E0 - U+20E7 : 0xAAAAAAAA */
      10,  /* U+20E8 - U+20EF : 0xAAAAAAAA */
-     77,  /* U+20F0 - U+20F7 : 0x1111111A */
+     84,  /* U+20F0 - U+20F7 : 0x1111111A */
       1,  /* U+20F8 - U+20FF : 0x11111111 */
-    129,  /* U+2100 - U+2107 : 0x19999199 */
-    101,  /* U+2108 - U+210F : 0x11111199 */
-    130,  /* U+2110 - U+2117 : 0x99191111 */
-    131,  /* U+2118 - U+211F : 0x99111119 */
-    132,  /* U+2120 - U+2127 : 0x91919999 */
-    133,  /* U+2128 - U+212F : 0x17111191 */
+    139,  /* U+2100 - U+2107 : 0x19999199 */
+    108,  /* U+2108 - U+210F : 0x11111199 */
+    140,  /* U+2110 - U+2117 : 0x99191111 */
+    141,  /* U+2118 - U+211F : 0x99111119 */
+    142,  /* U+2120 - U+2127 : 0x91919999 */
+    143,  /* U+2128 - U+212F : 0x17111191 */
       1,  /* U+2130 - U+2137 : 0x11111111 */
-    134,  /* U+2138 - U+213F : 0x11119911 */
-    135,  /* U+2140 - U+2147 : 0x11199999 */
-    136,  /* U+2148 - U+214F : 0x11999911 */
-     22,  /* U+2150 - U+2157 : 0x99999111 */
+    144,  /* U+2138 - U+213F : 0x11119911 */
+    145,  /* U+2140 - U+2147 : 0x11199999 */
+    146,  /* U+2148 - U+214F : 0x11999911 */
+      9,  /* U+2150 - U+2157 : 0x99999999 */
       9,  /* U+2158 - U+215F : 0x99999999 */
       1,  /* U+2160 - U+2167 : 0x11111111 */
       1,  /* U+2168 - U+216F : 0x11111111 */
       1,  /* U+2170 - U+2177 : 0x11111111 */
       1,  /* U+2178 - U+217F : 0x11111111 */
       1,  /* U+2180 - U+2187 : 0x11111111 */
-      1,  /* U+2188 - U+218F : 0x11111111 */
+    147,  /* U+2188 - U+218F : 0x11111191 */
       9,  /* U+2190 - U+2197 : 0x99999999 */
       9,  /* U+2198 - U+219F : 0x99999999 */
       9,  /* U+21A0 - U+21A7 : 0x99999999 */
       9,  /* U+21A8 - U+21AF : 0x99999999 */
       9,  /* U+21B0 - U+21B7 : 0x99999999 */
       9,  /* U+21B8 - U+21BF : 0x99999999 */
       9,  /* U+21C0 - U+21C7 : 0x99999999 */
       9,  /* U+21C8 - U+21CF : 0x99999999 */
       9,  /* U+21D0 - U+21D7 : 0x99999999 */
       9,  /* U+21D8 - U+21DF : 0x99999999 */
       9,  /* U+21E0 - U+21E7 : 0x99999999 */
       9,  /* U+21E8 - U+21EF : 0x99999999 */
       9,  /* U+21F0 - U+21F7 : 0x99999999 */
       9,  /* U+21F8 - U+21FF : 0x99999999 */
       9,  /* U+2200 - U+2207 : 0x99999999 */
       9,  /* U+2208 - U+220F : 0x99999999 */
-    137,  /* U+2210 - U+2217 : 0x99997699 */
+    148,  /* U+2210 - U+2217 : 0x99997699 */
       9,  /* U+2218 - U+221F : 0x99999999 */
       9,  /* U+2220 - U+2227 : 0x99999999 */
       9,  /* U+2228 - U+222F : 0x99999999 */
       9,  /* U+2230 - U+2237 : 0x99999999 */
       9,  /* U+2238 - U+223F : 0x99999999 */
       9,  /* U+2240 - U+2247 : 0x99999999 */
       9,  /* U+2248 - U+224F : 0x99999999 */
       9,  /* U+2250 - U+2257 : 0x99999999 */
@@ -1136,62 +1165,62 @@ static PRUint8 gBidiCatIdx2[1376] = {
       9,  /* U+22F0 - U+22F7 : 0x99999999 */
       9,  /* U+22F8 - U+22FF : 0x99999999 */
       9,  /* U+2300 - U+2307 : 0x99999999 */
       9,  /* U+2308 - U+230F : 0x99999999 */
       9,  /* U+2310 - U+2317 : 0x99999999 */
       9,  /* U+2318 - U+231F : 0x99999999 */
       9,  /* U+2320 - U+2327 : 0x99999999 */
       9,  /* U+2328 - U+232F : 0x99999999 */
-    138,  /* U+2330 - U+2337 : 0x11999999 */
+    149,  /* U+2330 - U+2337 : 0x11999999 */
       1,  /* U+2338 - U+233F : 0x11111111 */
       1,  /* U+2340 - U+2347 : 0x11111111 */
       1,  /* U+2348 - U+234F : 0x11111111 */
       1,  /* U+2350 - U+2357 : 0x11111111 */
       1,  /* U+2358 - U+235F : 0x11111111 */
       1,  /* U+2360 - U+2367 : 0x11111111 */
       1,  /* U+2368 - U+236F : 0x11111111 */
       1,  /* U+2370 - U+2377 : 0x11111111 */
      22,  /* U+2378 - U+237F : 0x99999111 */
       9,  /* U+2380 - U+2387 : 0x99999999 */
       9,  /* U+2388 - U+238F : 0x99999999 */
-    139,  /* U+2390 - U+2397 : 0x99199999 */
+    150,  /* U+2390 - U+2397 : 0x99199999 */
       9,  /* U+2398 - U+239F : 0x99999999 */
       9,  /* U+23A0 - U+23A7 : 0x99999999 */
       9,  /* U+23A8 - U+23AF : 0x99999999 */
       9,  /* U+23B0 - U+23B7 : 0x99999999 */
       9,  /* U+23B8 - U+23BF : 0x99999999 */
       9,  /* U+23C0 - U+23C7 : 0x99999999 */
       9,  /* U+23C8 - U+23CF : 0x99999999 */
       9,  /* U+23D0 - U+23D7 : 0x99999999 */
       9,  /* U+23D8 - U+23DF : 0x99999999 */
       9,  /* U+23E0 - U+23E7 : 0x99999999 */
-      1,  /* U+23E8 - U+23EF : 0x11111111 */
+     21,  /* U+23E8 - U+23EF : 0x11111119 */
       1,  /* U+23F0 - U+23F7 : 0x11111111 */
       1,  /* U+23F8 - U+23FF : 0x11111111 */
       9,  /* U+2400 - U+2407 : 0x99999999 */
       9,  /* U+2408 - U+240F : 0x99999999 */
       9,  /* U+2410 - U+2417 : 0x99999999 */
       9,  /* U+2418 - U+241F : 0x99999999 */
-     83,  /* U+2420 - U+2427 : 0x19999999 */
+     90,  /* U+2420 - U+2427 : 0x19999999 */
       1,  /* U+2428 - U+242F : 0x11111111 */
       1,  /* U+2430 - U+2437 : 0x11111111 */
       1,  /* U+2438 - U+243F : 0x11111111 */
       9,  /* U+2440 - U+2447 : 0x99999999 */
-    140,  /* U+2448 - U+244F : 0x11111999 */
+    151,  /* U+2448 - U+244F : 0x11111999 */
       1,  /* U+2450 - U+2457 : 0x11111111 */
       1,  /* U+2458 - U+245F : 0x11111111 */
       9,  /* U+2460 - U+2467 : 0x99999999 */
       9,  /* U+2468 - U+246F : 0x99999999 */
       9,  /* U+2470 - U+2477 : 0x99999999 */
       9,  /* U+2478 - U+247F : 0x99999999 */
       9,  /* U+2480 - U+2487 : 0x99999999 */
       5,  /* U+2488 - U+248F : 0x55555555 */
       5,  /* U+2490 - U+2497 : 0x55555555 */
-    141,  /* U+2498 - U+249F : 0x11115555 */
+    152,  /* U+2498 - U+249F : 0x11115555 */
       1,  /* U+24A0 - U+24A7 : 0x11111111 */
       1,  /* U+24A8 - U+24AF : 0x11111111 */
       1,  /* U+24B0 - U+24B7 : 0x11111111 */
       1,  /* U+24B8 - U+24BF : 0x11111111 */
       1,  /* U+24C0 - U+24C7 : 0x11111111 */
       1,  /* U+24C8 - U+24CF : 0x11111111 */
       1,  /* U+24D0 - U+24D7 : 0x11111111 */
       1,  /* U+24D8 - U+24DF : 0x11111111 */
@@ -1245,55 +1274,55 @@ static PRUint8 gBidiCatIdx2[1376] = {
       9,  /* U+2658 - U+265F : 0x99999999 */
       9,  /* U+2660 - U+2667 : 0x99999999 */
       9,  /* U+2668 - U+266F : 0x99999999 */
       9,  /* U+2670 - U+2677 : 0x99999999 */
       9,  /* U+2678 - U+267F : 0x99999999 */
       9,  /* U+2680 - U+2687 : 0x99999999 */
       9,  /* U+2688 - U+268F : 0x99999999 */
       9,  /* U+2690 - U+2697 : 0x99999999 */
-    138,  /* U+2698 - U+269F : 0x11999999 */
+      9,  /* U+2698 - U+269F : 0x99999999 */
       9,  /* U+26A0 - U+26A7 : 0x99999999 */
-    142,  /* U+26A8 - U+26AF : 0x99919999 */
+    153,  /* U+26A8 - U+26AF : 0x99919999 */
       9,  /* U+26B0 - U+26B7 : 0x99999999 */
-    135,  /* U+26B8 - U+26BF : 0x11199999 */
-    143,  /* U+26C0 - U+26C7 : 0x11119999 */
-      1,  /* U+26C8 - U+26CF : 0x11111111 */
-      1,  /* U+26D0 - U+26D7 : 0x11111111 */
-      1,  /* U+26D8 - U+26DF : 0x11111111 */
-      1,  /* U+26E0 - U+26E7 : 0x11111111 */
-      1,  /* U+26E8 - U+26EF : 0x11111111 */
-      1,  /* U+26F0 - U+26F7 : 0x11111111 */
-      1,  /* U+26F8 - U+26FF : 0x11111111 */
-    144,  /* U+2700 - U+2707 : 0x99199991 */
-    145,  /* U+2708 - U+270F : 0x99991199 */
+      9,  /* U+26B8 - U+26BF : 0x99999999 */
+      9,  /* U+26C0 - U+26C7 : 0x99999999 */
+     33,  /* U+26C8 - U+26CF : 0x91999999 */
+      9,  /* U+26D0 - U+26D7 : 0x99999999 */
+      9,  /* U+26D8 - U+26DF : 0x99999999 */
+    154,  /* U+26E0 - U+26E7 : 0x11119199 */
+      9,  /* U+26E8 - U+26EF : 0x99999999 */
+      9,  /* U+26F0 - U+26F7 : 0x99999999 */
+      9,  /* U+26F8 - U+26FF : 0x99999999 */
+    155,  /* U+2700 - U+2707 : 0x99199991 */
+    156,  /* U+2708 - U+270F : 0x99991199 */
       9,  /* U+2710 - U+2717 : 0x99999999 */
       9,  /* U+2718 - U+271F : 0x99999999 */
       9,  /* U+2720 - U+2727 : 0x99999999 */
-    146,  /* U+2728 - U+272F : 0x99999991 */
+    157,  /* U+2728 - U+272F : 0x99999991 */
       9,  /* U+2730 - U+2737 : 0x99999999 */
       9,  /* U+2738 - U+273F : 0x99999999 */
       9,  /* U+2740 - U+2747 : 0x99999999 */
-    132,  /* U+2748 - U+274F : 0x91919999 */
-    147,  /* U+2750 - U+2757 : 0x19111999 */
-     83,  /* U+2758 - U+275F : 0x19999999 */
-    146,  /* U+2760 - U+2767 : 0x99999991 */
+    142,  /* U+2748 - U+274F : 0x91919999 */
+    158,  /* U+2750 - U+2757 : 0x99111999 */
+     90,  /* U+2758 - U+275F : 0x19999999 */
+    157,  /* U+2760 - U+2767 : 0x99999991 */
       9,  /* U+2768 - U+276F : 0x99999999 */
       9,  /* U+2770 - U+2777 : 0x99999999 */
       9,  /* U+2778 - U+277F : 0x99999999 */
       9,  /* U+2780 - U+2787 : 0x99999999 */
       9,  /* U+2788 - U+278F : 0x99999999 */
-    135,  /* U+2790 - U+2797 : 0x11199999 */
+    145,  /* U+2790 - U+2797 : 0x11199999 */
       9,  /* U+2798 - U+279F : 0x99999999 */
       9,  /* U+27A0 - U+27A7 : 0x99999999 */
       9,  /* U+27A8 - U+27AF : 0x99999999 */
-    146,  /* U+27B0 - U+27B7 : 0x99999991 */
-     83,  /* U+27B8 - U+27BF : 0x19999999 */
+    157,  /* U+27B0 - U+27B7 : 0x99999991 */
+     90,  /* U+27B8 - U+27BF : 0x19999999 */
       9,  /* U+27C0 - U+27C7 : 0x99999999 */
-    148,  /* U+27C8 - U+27CF : 0x11191999 */
+    159,  /* U+27C8 - U+27CF : 0x11191999 */
       9,  /* U+27D0 - U+27D7 : 0x99999999 */
       9,  /* U+27D8 - U+27DF : 0x99999999 */
       9,  /* U+27E0 - U+27E7 : 0x99999999 */
       9,  /* U+27E8 - U+27EF : 0x99999999 */
       9,  /* U+27F0 - U+27F7 : 0x99999999 */
       9,  /* U+27F8 - U+27FF : 0x99999999 */
       1,  /* U+2800 - U+2807 : 0x11111111 */
       1,  /* U+2808 - U+280F : 0x11111111 */
@@ -1395,19 +1424,19 @@ static PRUint8 gBidiCatIdx2[1376] = {
       9,  /* U+2B08 - U+2B0F : 0x99999999 */
       9,  /* U+2B10 - U+2B17 : 0x99999999 */
       9,  /* U+2B18 - U+2B1F : 0x99999999 */
       9,  /* U+2B20 - U+2B27 : 0x99999999 */
       9,  /* U+2B28 - U+2B2F : 0x99999999 */
       9,  /* U+2B30 - U+2B37 : 0x99999999 */
       9,  /* U+2B38 - U+2B3F : 0x99999999 */
       9,  /* U+2B40 - U+2B47 : 0x99999999 */
-    135,  /* U+2B48 - U+2B4F : 0x11199999 */
-    135,  /* U+2B50 - U+2B57 : 0x11199999 */
-      1,  /* U+2B58 - U+2B5F : 0x11111111 */
+    145,  /* U+2B48 - U+2B4F : 0x11199999 */
+      9,  /* U+2B50 - U+2B57 : 0x99999999 */
+    108,  /* U+2B58 - U+2B5F : 0x11111199 */
       1,  /* U+2B60 - U+2B67 : 0x11111111 */
       1,  /* U+2B68 - U+2B6F : 0x11111111 */
       1,  /* U+2B70 - U+2B77 : 0x11111111 */
       1,  /* U+2B78 - U+2B7F : 0x11111111 */
       1,  /* U+2B80 - U+2B87 : 0x11111111 */
       1,  /* U+2B88 - U+2B8F : 0x11111111 */
       1,  /* U+2B90 - U+2B97 : 0x11111111 */
       1,  /* U+2B98 - U+2B9F : 0x11111111 */
@@ -1447,19 +1476,19 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+2CA8 - U+2CAF : 0x11111111 */
       1,  /* U+2CB0 - U+2CB7 : 0x11111111 */
       1,  /* U+2CB8 - U+2CBF : 0x11111111 */
       1,  /* U+2CC0 - U+2CC7 : 0x11111111 */
       1,  /* U+2CC8 - U+2CCF : 0x11111111 */
       1,  /* U+2CD0 - U+2CD7 : 0x11111111 */
       1,  /* U+2CD8 - U+2CDF : 0x11111111 */
      32,  /* U+2CE0 - U+2CE7 : 0x99911111 */
-    140,  /* U+2CE8 - U+2CEF : 0x11111999 */
-      1,  /* U+2CF0 - U+2CF7 : 0x11111111 */
-    146,  /* U+2CF8 - U+2CFF : 0x99999991 */
+    160,  /* U+2CE8 - U+2CEF : 0xA1111999 */
+     38,  /* U+2CF0 - U+2CF7 : 0x111111AA */
+    157,  /* U+2CF8 - U+2CFF : 0x99999991 */
       1,  /* U+2D00 - U+2D07 : 0x11111111 */
       1,  /* U+2D08 - U+2D0F : 0x11111111 */
       1,  /* U+2D10 - U+2D17 : 0x11111111 */
       1,  /* U+2D18 - U+2D1F : 0x11111111 */
       1,  /* U+2D20 - U+2D27 : 0x11111111 */
       1,  /* U+2D28 - U+2D2F : 0x11111111 */
       1,  /* U+2D30 - U+2D37 : 0x11111111 */
       1,  /* U+2D38 - U+2D3F : 0x11111111 */
@@ -1488,41 +1517,41 @@ static PRUint8 gBidiCatIdx2[1376] = {
      10,  /* U+2DF0 - U+2DF7 : 0xAAAAAAAA */
      10,  /* U+2DF8 - U+2DFF : 0xAAAAAAAA */
       9,  /* U+2E00 - U+2E07 : 0x99999999 */
       9,  /* U+2E08 - U+2E0F : 0x99999999 */
       9,  /* U+2E10 - U+2E17 : 0x99999999 */
       9,  /* U+2E18 - U+2E1F : 0x99999999 */
       9,  /* U+2E20 - U+2E27 : 0x99999999 */
       9,  /* U+2E28 - U+2E2F : 0x99999999 */
-     21,  /* U+2E30 - U+2E37 : 0x11111119 */
+    108,  /* U+2E30 - U+2E37 : 0x11111199 */
       1,  /* U+2E38 - U+2E3F : 0x11111111 */
       1,  /* U+2E40 - U+2E47 : 0x11111111 */
       1,  /* U+2E48 - U+2E4F : 0x11111111 */
       1,  /* U+2E50 - U+2E57 : 0x11111111 */
       1,  /* U+2E58 - U+2E5F : 0x11111111 */
       1,  /* U+2E60 - U+2E67 : 0x11111111 */
       1,  /* U+2E68 - U+2E6F : 0x11111111 */
       1,  /* U+2E70 - U+2E77 : 0x11111111 */
       1,  /* U+2E78 - U+2E7F : 0x11111111 */
       9,  /* U+2E80 - U+2E87 : 0x99999999 */
       9,  /* U+2E88 - U+2E8F : 0x99999999 */
       9,  /* U+2E90 - U+2E97 : 0x99999999 */
-    149,  /* U+2E98 - U+2E9F : 0x99999199 */
+    161,  /* U+2E98 - U+2E9F : 0x99999199 */
       9,  /* U+2EA0 - U+2EA7 : 0x99999999 */
       9,  /* U+2EA8 - U+2EAF : 0x99999999 */
       9,  /* U+2EB0 - U+2EB7 : 0x99999999 */
       9,  /* U+2EB8 - U+2EBF : 0x99999999 */
       9,  /* U+2EC0 - U+2EC7 : 0x99999999 */
       9,  /* U+2EC8 - U+2ECF : 0x99999999 */
       9,  /* U+2ED0 - U+2ED7 : 0x99999999 */
       9,  /* U+2ED8 - U+2EDF : 0x99999999 */
       9,  /* U+2EE0 - U+2EE7 : 0x99999999 */
       9,  /* U+2EE8 - U+2EEF : 0x99999999 */
-    143,  /* U+2EF0 - U+2EF7 : 0x11119999 */
+    162,  /* U+2EF0 - U+2EF7 : 0x11119999 */
       1,  /* U+2EF8 - U+2EFF : 0x11111111 */
       9,  /* U+2F00 - U+2F07 : 0x99999999 */
       9,  /* U+2F08 - U+2F0F : 0x99999999 */
       9,  /* U+2F10 - U+2F17 : 0x99999999 */
       9,  /* U+2F18 - U+2F1F : 0x99999999 */
       9,  /* U+2F20 - U+2F27 : 0x99999999 */
       9,  /* U+2F28 - U+2F2F : 0x99999999 */
       9,  /* U+2F30 - U+2F37 : 0x99999999 */
@@ -1540,54 +1569,54 @@ static PRUint8 gBidiCatIdx2[1376] = {
       9,  /* U+2F90 - U+2F97 : 0x99999999 */
       9,  /* U+2F98 - U+2F9F : 0x99999999 */
       9,  /* U+2FA0 - U+2FA7 : 0x99999999 */
       9,  /* U+2FA8 - U+2FAF : 0x99999999 */
       9,  /* U+2FB0 - U+2FB7 : 0x99999999 */
       9,  /* U+2FB8 - U+2FBF : 0x99999999 */
       9,  /* U+2FC0 - U+2FC7 : 0x99999999 */
       9,  /* U+2FC8 - U+2FCF : 0x99999999 */
-    138,  /* U+2FD0 - U+2FD7 : 0x11999999 */
+    149,  /* U+2FD0 - U+2FD7 : 0x11999999 */
       1,  /* U+2FD8 - U+2FDF : 0x11111111 */
       1,  /* U+2FE0 - U+2FE7 : 0x11111111 */
       1,  /* U+2FE8 - U+2FEF : 0x11111111 */
       9,  /* U+2FF0 - U+2FF7 : 0x99999999 */
-    143,  /* U+2FF8 - U+2FFF : 0x11119999 */
-    150,  /* U+3000 - U+3007 : 0x1119999E */
+    162,  /* U+2FF8 - U+2FFF : 0x11119999 */
+    163,  /* U+3000 - U+3007 : 0x1119999E */
       9,  /* U+3008 - U+300F : 0x99999999 */
       9,  /* U+3010 - U+3017 : 0x99999999 */
       9,  /* U+3018 - U+301F : 0x99999999 */
      21,  /* U+3020 - U+3027 : 0x11111119 */
-    151,  /* U+3028 - U+302F : 0xAAAAAA11 */
-    131,  /* U+3030 - U+3037 : 0x99111119 */
+    164,  /* U+3028 - U+302F : 0xAAAAAA11 */
+    141,  /* U+3030 - U+3037 : 0x99111119 */
      32,  /* U+3038 - U+303F : 0x99911111 */
       1,  /* U+3040 - U+3047 : 0x11111111 */
       1,  /* U+3048 - U+304F : 0x11111111 */
       1,  /* U+3050 - U+3057 : 0x11111111 */
       1,  /* U+3058 - U+305F : 0x11111111 */
       1,  /* U+3060 - U+3067 : 0x11111111 */
       1,  /* U+3068 - U+306F : 0x11111111 */
       1,  /* U+3070 - U+3077 : 0x11111111 */
       1,  /* U+3078 - U+307F : 0x11111111 */
       1,  /* U+3080 - U+3087 : 0x11111111 */
       1,  /* U+3088 - U+308F : 0x11111111 */
       1,  /* U+3090 - U+3097 : 0x11111111 */
-    152,  /* U+3098 - U+309F : 0x11199AA1 */
+    165,  /* U+3098 - U+309F : 0x11199AA1 */
      21,  /* U+30A0 - U+30A7 : 0x11111119 */
       1,  /* U+30A8 - U+30AF : 0x11111111 */
       1,  /* U+30B0 - U+30B7 : 0x11111111 */
       1,  /* U+30B8 - U+30BF : 0x11111111 */
       1,  /* U+30C0 - U+30C7 : 0x11111111 */
       1,  /* U+30C8 - U+30CF : 0x11111111 */
       1,  /* U+30D0 - U+30D7 : 0x11111111 */
       1,  /* U+30D8 - U+30DF : 0x11111111 */
       1,  /* U+30E0 - U+30E7 : 0x11111111 */
       1,  /* U+30E8 - U+30EF : 0x11111111 */
       1,  /* U+30F0 - U+30F7 : 0x11111111 */
-    153,  /* U+30F8 - U+30FF : 0x11119111 */
+    166,  /* U+30F8 - U+30FF : 0x11119111 */
       1,  /* U+3100 - U+3107 : 0x11111111 */
       1,  /* U+3108 - U+310F : 0x11111111 */
       1,  /* U+3110 - U+3117 : 0x11111111 */
       1,  /* U+3118 - U+311F : 0x11111111 */
       1,  /* U+3120 - U+3127 : 0x11111111 */
       1,  /* U+3128 - U+312F : 0x11111111 */
       1,  /* U+3130 - U+3137 : 0x11111111 */
       1,  /* U+3138 - U+313F : 0x11111111 */
@@ -1606,46 +1635,46 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+31A0 - U+31A7 : 0x11111111 */
       1,  /* U+31A8 - U+31AF : 0x11111111 */
       1,  /* U+31B0 - U+31B7 : 0x11111111 */
       1,  /* U+31B8 - U+31BF : 0x11111111 */
       9,  /* U+31C0 - U+31C7 : 0x99999999 */
       9,  /* U+31C8 - U+31CF : 0x99999999 */
       9,  /* U+31D0 - U+31D7 : 0x99999999 */
       9,  /* U+31D8 - U+31DF : 0x99999999 */
-    143,  /* U+31E0 - U+31E7 : 0x11119999 */
+    162,  /* U+31E0 - U+31E7 : 0x11119999 */
       1,  /* U+31E8 - U+31EF : 0x11111111 */
       1,  /* U+31F0 - U+31F7 : 0x11111111 */
       1,  /* U+31F8 - U+31FF : 0x11111111 */
       1,  /* U+3200 - U+3207 : 0x11111111 */
       1,  /* U+3208 - U+320F : 0x11111111 */
       1,  /* U+3210 - U+3217 : 0x11111111 */
-    118,  /* U+3218 - U+321F : 0x19911111 */
+    128,  /* U+3218 - U+321F : 0x19911111 */
       1,  /* U+3220 - U+3227 : 0x11111111 */
       1,  /* U+3228 - U+322F : 0x11111111 */
       1,  /* U+3230 - U+3237 : 0x11111111 */
       1,  /* U+3238 - U+323F : 0x11111111 */
       1,  /* U+3240 - U+3247 : 0x11111111 */
       1,  /* U+3248 - U+324F : 0x11111111 */
       9,  /* U+3250 - U+3257 : 0x99999999 */
       9,  /* U+3258 - U+325F : 0x99999999 */
       1,  /* U+3260 - U+3267 : 0x11111111 */
       1,  /* U+3268 - U+326F : 0x11111111 */
       1,  /* U+3270 - U+3277 : 0x11111111 */
-    154,  /* U+3278 - U+327F : 0x19991111 */
+    167,  /* U+3278 - U+327F : 0x19991111 */
       1,  /* U+3280 - U+3287 : 0x11111111 */
       1,  /* U+3288 - U+328F : 0x11111111 */
       1,  /* U+3290 - U+3297 : 0x11111111 */
       1,  /* U+3298 - U+329F : 0x11111111 */
       1,  /* U+32A0 - U+32A7 : 0x11111111 */
       1,  /* U+32A8 - U+32AF : 0x11111111 */
-    146,  /* U+32B0 - U+32B7 : 0x99999991 */
+    157,  /* U+32B0 - U+32B7 : 0x99999991 */
       9,  /* U+32B8 - U+32BF : 0x99999999 */
       1,  /* U+32C0 - U+32C7 : 0x11111111 */
-    155,  /* U+32C8 - U+32CF : 0x99991111 */
+    168,  /* U+32C8 - U+32CF : 0x99991111 */
       1,  /* U+32D0 - U+32D7 : 0x11111111 */
       1,  /* U+32D8 - U+32DF : 0x11111111 */
       1,  /* U+32E0 - U+32E7 : 0x11111111 */
       1,  /* U+32E8 - U+32EF : 0x11111111 */
       1,  /* U+32F0 - U+32F7 : 0x11111111 */
       1,  /* U+32F8 - U+32FF : 0x11111111 */
       1,  /* U+3300 - U+3307 : 0x11111111 */
       1,  /* U+3308 - U+330F : 0x11111111 */
@@ -1657,47 +1686,47 @@ static PRUint8 gBidiCatIdx2[1376] = {
       1,  /* U+3338 - U+333F : 0x11111111 */
       1,  /* U+3340 - U+3347 : 0x11111111 */
       1,  /* U+3348 - U+334F : 0x11111111 */
       1,  /* U+3350 - U+3357 : 0x11111111 */
       1,  /* U+3358 - U+335F : 0x11111111 */
       1,  /* U+3360 - U+3367 : 0x11111111 */
       1,  /* U+3368 - U+336F : 0x11111111 */
      29,  /* U+3370 - U+3377 : 0x91111111 */
-    140,  /* U+3378 - U+337F : 0x11111999 */
+    151,  /* U+3378 - U+337F : 0x11111999 */
       1,  /* U+3380 - U+3387 : 0x11111111 */
       1,  /* U+3388 - U+338F : 0x11111111 */
       1,  /* U+3390 - U+3397 : 0x11111111 */
       1,  /* U+3398 - U+339F : 0x11111111 */
       1,  /* U+33A0 - U+33A7 : 0x11111111 */
       1,  /* U+33A8 - U+33AF : 0x11111111 */
       1,  /* U+33B0 - U+33B7 : 0x11111111 */
       1,  /* U+33B8 - U+33BF : 0x11111111 */
       1,  /* U+33C0 - U+33C7 : 0x11111111 */
       1,  /* U+33C8 - U+33CF : 0x11111111 */
       1,  /* U+33D0 - U+33D7 : 0x11111111 */
-    111,  /* U+33D8 - U+33DF : 0x99111111 */
+    118,  /* U+33D8 - U+33DF : 0x99111111 */
       1,  /* U+33E0 - U+33E7 : 0x11111111 */
       1,  /* U+33E8 - U+33EF : 0x11111111 */
       1,  /* U+33F0 - U+33F7 : 0x11111111 */
      29,  /* U+33F8 - U+33FF : 0x91111111 */
 };
 
-static PRUint8 gBidiCatIdx3[8] = {
+static PRUint8 gBidiCatIdx2[8] = {
       9,  /* U+4DC0 - U+4DC7 : 0x99999999 */
       9,  /* U+4DC8 - U+4DCF : 0x99999999 */
       9,  /* U+4DD0 - U+4DD7 : 0x99999999 */
       9,  /* U+4DD8 - U+4DDF : 0x99999999 */
       9,  /* U+4DE0 - U+4DE7 : 0x99999999 */
       9,  /* U+4DE8 - U+4DEF : 0x99999999 */
       9,  /* U+4DF0 - U+4DF7 : 0x99999999 */
       9,  /* U+4DF8 - U+4DFF : 0x99999999 */
 };
 
-static PRUint8 gBidiCatIdx4[336] = {
+static PRUint8 gBidiCatIdx3[384] = {
       1,  /* U+A000 - U+A007 : 0x11111111 */
       1,  /* U+A008 - U+A00F : 0x11111111 */
       1,  /* U+A010 - U+A017 : 0x11111111 */
       1,  /* U+A018 - U+A01F : 0x11111111 */
       1,  /* U+A020 - U+A027 : 0x11111111 */
       1,  /* U+A028 - U+A02F : 0x11111111 */
       1,  /* U+A030 - U+A037 : 0x11111111 */
       1,  /* U+A038 - U+A03F : 0x11111111 */
@@ -1840,17 +1869,17 @@ static PRUint8 gBidiCatIdx4[336] = {
       1,  /* U+A480 - U+A487 : 0x11111111 */
       1,  /* U+A488 - U+A48F : 0x11111111 */
       9,  /* U+A490 - U+A497 : 0x99999999 */
       9,  /* U+A498 - U+A49F : 0x99999999 */
       9,  /* U+A4A0 - U+A4A7 : 0x99999999 */
       9,  /* U+A4A8 - U+A4AF : 0x99999999 */
       9,  /* U+A4B0 - U+A4B7 : 0x99999999 */
       9,  /* U+A4B8 - U+A4BF : 0x99999999 */
-     83,  /* U+A4C0 - U+A4C7 : 0x19999999 */
+     90,  /* U+A4C0 - U+A4C7 : 0x19999999 */
       1,  /* U+A4C8 - U+A4CF : 0x11111111 */
       1,  /* U+A4D0 - U+A4D7 : 0x11111111 */
       1,  /* U+A4D8 - U+A4DF : 0x11111111 */
       1,  /* U+A4E0 - U+A4E7 : 0x11111111 */
       1,  /* U+A4E8 - U+A4EF : 0x11111111 */
       1,  /* U+A4F0 - U+A4F7 : 0x11111111 */
       1,  /* U+A4F8 - U+A4FF : 0x11111111 */
       1,  /* U+A500 - U+A507 : 0x11111111 */
@@ -1893,40 +1922,40 @@ static PRUint8 gBidiCatIdx4[336] = {
       1,  /* U+A628 - U+A62F : 0x11111111 */
       1,  /* U+A630 - U+A637 : 0x11111111 */
       1,  /* U+A638 - U+A63F : 0x11111111 */
       1,  /* U+A640 - U+A647 : 0x11111111 */
       1,  /* U+A648 - U+A64F : 0x11111111 */
       1,  /* U+A650 - U+A657 : 0x11111111 */
       1,  /* U+A658 - U+A65F : 0x11111111 */
       1,  /* U+A660 - U+A667 : 0x11111111 */
-     88,  /* U+A668 - U+A66F : 0xA1111111 */
-    156,  /* U+A670 - U+A677 : 0x11119AAA */
-    157,  /* U+A678 - U+A67F : 0x99AA1111 */
+     95,  /* U+A668 - U+A66F : 0xA1111111 */
+    169,  /* U+A670 - U+A677 : 0x11119AAA */
+    170,  /* U+A678 - U+A67F : 0x99AA1111 */
       1,  /* U+A680 - U+A687 : 0x11111111 */
       1,  /* U+A688 - U+A68F : 0x11111111 */
       1,  /* U+A690 - U+A697 : 0x11111111 */
       1,  /* U+A698 - U+A69F : 0x11111111 */
       1,  /* U+A6A0 - U+A6A7 : 0x11111111 */
       1,  /* U+A6A8 - U+A6AF : 0x11111111 */
       1,  /* U+A6B0 - U+A6B7 : 0x11111111 */
       1,  /* U+A6B8 - U+A6BF : 0x11111111 */
       1,  /* U+A6C0 - U+A6C7 : 0x11111111 */
       1,  /* U+A6C8 - U+A6CF : 0x11111111 */
       1,  /* U+A6D0 - U+A6D7 : 0x11111111 */
       1,  /* U+A6D8 - U+A6DF : 0x11111111 */
       1,  /* U+A6E0 - U+A6E7 : 0x11111111 */
       1,  /* U+A6E8 - U+A6EF : 0x11111111 */
-      1,  /* U+A6F0 - U+A6F7 : 0x11111111 */
+     38,  /* U+A6F0 - U+A6F7 : 0x111111AA */
       1,  /* U+A6F8 - U+A6FF : 0x11111111 */
       9,  /* U+A700 - U+A707 : 0x99999999 */
       9,  /* U+A708 - U+A70F : 0x99999999 */
       9,  /* U+A710 - U+A717 : 0x99999999 */
       9,  /* U+A718 - U+A71F : 0x99999999 */
-    101,  /* U+A720 - U+A727 : 0x11111199 */
+    108,  /* U+A720 - U+A727 : 0x11111199 */
       1,  /* U+A728 - U+A72F : 0x11111111 */
       1,  /* U+A730 - U+A737 : 0x11111111 */
       1,  /* U+A738 - U+A73F : 0x11111111 */
       1,  /* U+A740 - U+A747 : 0x11111111 */
       1,  /* U+A748 - U+A74F : 0x11111111 */
       1,  /* U+A750 - U+A757 : 0x11111111 */
       1,  /* U+A758 - U+A75F : 0x11111111 */
       1,  /* U+A760 - U+A767 : 0x11111111 */
@@ -1944,96 +1973,157 @@ static PRUint8 gBidiCatIdx4[336] = {
       1,  /* U+A7C0 - U+A7C7 : 0x11111111 */
       1,  /* U+A7C8 - U+A7CF : 0x11111111 */
       1,  /* U+A7D0 - U+A7D7 : 0x11111111 */
       1,  /* U+A7D8 - U+A7DF : 0x11111111 */
       1,  /* U+A7E0 - U+A7E7 : 0x11111111 */
       1,  /* U+A7E8 - U+A7EF : 0x11111111 */
       1,  /* U+A7F0 - U+A7F7 : 0x11111111 */
       1,  /* U+A7F8 - U+A7FF : 0x11111111 */
-    158,  /* U+A800 - U+A807 : 0x1A111A11 */
-    159,  /* U+A808 - U+A80F : 0x1111A111 */
+    171,  /* U+A800 - U+A807 : 0x1A111A11 */
+    172,  /* U+A808 - U+A80F : 0x1111A111 */
       1,  /* U+A810 - U+A817 : 0x11111111 */
       1,  /* U+A818 - U+A81F : 0x11111111 */
-     82,  /* U+A820 - U+A827 : 0x1AA11111 */
-    143,  /* U+A828 - U+A82F : 0x11119999 */
+     89,  /* U+A820 - U+A827 : 0x1AA11111 */
+    162,  /* U+A828 - U+A82F : 0x11119999 */
       1,  /* U+A830 - U+A837 : 0x11111111 */
-      1,  /* U+A838 - U+A83F : 0x11111111 */
+    173,  /* U+A838 - U+A83F : 0x11111177 */
       1,  /* U+A840 - U+A847 : 0x11111111 */
       1,  /* U+A848 - U+A84F : 0x11111111 */
       1,  /* U+A850 - U+A857 : 0x11111111 */
       1,  /* U+A858 - U+A85F : 0x11111111 */
       1,  /* U+A860 - U+A867 : 0x11111111 */
       1,  /* U+A868 - U+A86F : 0x11111111 */
-    155,  /* U+A870 - U+A877 : 0x99991111 */
+    168,  /* U+A870 - U+A877 : 0x99991111 */
       1,  /* U+A878 - U+A87F : 0x11111111 */
       1,  /* U+A880 - U+A887 : 0x11111111 */
       1,  /* U+A888 - U+A88F : 0x11111111 */
       1,  /* U+A890 - U+A897 : 0x11111111 */
       1,  /* U+A898 - U+A89F : 0x11111111 */
       1,  /* U+A8A0 - U+A8A7 : 0x11111111 */
       1,  /* U+A8A8 - U+A8AF : 0x11111111 */
       1,  /* U+A8B0 - U+A8B7 : 0x11111111 */
       1,  /* U+A8B8 - U+A8BF : 0x11111111 */
-     61,  /* U+A8C0 - U+A8C7 : 0x111A1111 */
+     65,  /* U+A8C0 - U+A8C7 : 0x111A1111 */
       1,  /* U+A8C8 - U+A8CF : 0x11111111 */
       1,  /* U+A8D0 - U+A8D7 : 0x11111111 */
       1,  /* U+A8D8 - U+A8DF : 0x11111111 */
-      1,  /* U+A8E0 - U+A8E7 : 0x11111111 */
-      1,  /* U+A8E8 - U+A8EF : 0x11111111 */
-      1,  /* U+A8F0 - U+A8F7 : 0x11111111 */
+     10,  /* U+A8E0 - U+A8E7 : 0xAAAAAAAA */
+     10,  /* U+A8E8 - U+A8EF : 0xAAAAAAAA */
+     38,  /* U+A8F0 - U+A8F7 : 0x111111AA */
       1,  /* U+A8F8 - U+A8FF : 0x11111111 */
       1,  /* U+A900 - U+A907 : 0x11111111 */
       1,  /* U+A908 - U+A90F : 0x11111111 */
       1,  /* U+A910 - U+A917 : 0x11111111 */
       1,  /* U+A918 - U+A91F : 0x11111111 */
-     79,  /* U+A920 - U+A927 : 0xAA111111 */
-     91,  /* U+A928 - U+A92F : 0x11AAAAAA */
+     86,  /* U+A920 - U+A927 : 0xAA111111 */
+     98,  /* U+A928 - U+A92F : 0x11AAAAAA */
       1,  /* U+A930 - U+A937 : 0x11111111 */
       1,  /* U+A938 - U+A93F : 0x11111111 */
-     88,  /* U+A940 - U+A947 : 0xA1111111 */
+     95,  /* U+A940 - U+A947 : 0xA1111111 */
      10,  /* U+A948 - U+A94F : 0xAAAAAAAA */
      38,  /* U+A950 - U+A957 : 0x111111AA */
       1,  /* U+A958 - U+A95F : 0x11111111 */
       1,  /* U+A960 - U+A967 : 0x11111111 */
       1,  /* U+A968 - U+A96F : 0x11111111 */
       1,  /* U+A970 - U+A977 : 0x11111111 */
       1,  /* U+A978 - U+A97F : 0x11111111 */
-      1,  /* U+A980 - U+A987 : 0x11111111 */
+     64,  /* U+A980 - U+A987 : 0x11111AAA */
       1,  /* U+A988 - U+A98F : 0x11111111 */
       1,  /* U+A990 - U+A997 : 0x11111111 */
       1,  /* U+A998 - U+A99F : 0x11111111 */
       1,  /* U+A9A0 - U+A9A7 : 0x11111111 */
       1,  /* U+A9A8 - U+A9AF : 0x11111111 */
-      1,  /* U+A9B0 - U+A9B7 : 0x11111111 */
-      1,  /* U+A9B8 - U+A9BF : 0x11111111 */
+    174,  /* U+A9B0 - U+A9B7 : 0xAA11A111 */
+    175,  /* U+A9B8 - U+A9BF : 0x111A11AA */
       1,  /* U+A9C0 - U+A9C7 : 0x11111111 */
       1,  /* U+A9C8 - U+A9CF : 0x11111111 */
       1,  /* U+A9D0 - U+A9D7 : 0x11111111 */
       1,  /* U+A9D8 - U+A9DF : 0x11111111 */
       1,  /* U+A9E0 - U+A9E7 : 0x11111111 */
       1,  /* U+A9E8 - U+A9EF : 0x11111111 */
       1,  /* U+A9F0 - U+A9F7 : 0x11111111 */
       1,  /* U+A9F8 - U+A9FF : 0x11111111 */
       1,  /* U+AA00 - U+AA07 : 0x11111111 */
       1,  /* U+AA08 - U+AA0F : 0x11111111 */
       1,  /* U+AA10 - U+AA17 : 0x11111111 */
       1,  /* U+AA18 - U+AA1F : 0x11111111 */
       1,  /* U+AA20 - U+AA27 : 0x11111111 */
-    160,  /* U+AA28 - U+AA2F : 0x1AAAAAA1 */
-     98,  /* U+AA30 - U+AA37 : 0x1AA11AA1 */
+    176,  /* U+AA28 - U+AA2F : 0x1AAAAAA1 */
+    105,  /* U+AA30 - U+AA37 : 0x1AA11AA1 */
       1,  /* U+AA38 - U+AA3F : 0x11111111 */
-    159,  /* U+AA40 - U+AA47 : 0x1111A111 */
-     61,  /* U+AA48 - U+AA4F : 0x111A1111 */
+    172,  /* U+AA40 - U+AA47 : 0x1111A111 */
+     65,  /* U+AA48 - U+AA4F : 0x111A1111 */
       1,  /* U+AA50 - U+AA57 : 0x11111111 */
       1,  /* U+AA58 - U+AA5F : 0x11111111 */
       1,  /* U+AA60 - U+AA67 : 0x11111111 */
       1,  /* U+AA68 - U+AA6F : 0x11111111 */
       1,  /* U+AA70 - U+AA77 : 0x11111111 */
       1,  /* U+AA78 - U+AA7F : 0x11111111 */
+      1,  /* U+AA80 - U+AA87 : 0x11111111 */
+      1,  /* U+AA88 - U+AA8F : 0x11111111 */
+      1,  /* U+AA90 - U+AA97 : 0x11111111 */
+      1,  /* U+AA98 - U+AA9F : 0x11111111 */
+      1,  /* U+AAA0 - U+AAA7 : 0x11111111 */
+      1,  /* U+AAA8 - U+AAAF : 0x11111111 */
+    177,  /* U+AAB0 - U+AAB7 : 0xA11AAA1A */
+     87,  /* U+AAB8 - U+AABF : 0xAA11111A */
+     70,  /* U+AAC0 - U+AAC7 : 0x111111A1 */
+      1,  /* U+AAC8 - U+AACF : 0x11111111 */
+      1,  /* U+AAD0 - U+AAD7 : 0x11111111 */
+      1,  /* U+AAD8 - U+AADF : 0x11111111 */
+      1,  /* U+AAE0 - U+AAE7 : 0x11111111 */
+      1,  /* U+AAE8 - U+AAEF : 0x11111111 */
+      1,  /* U+AAF0 - U+AAF7 : 0x11111111 */
+      1,  /* U+AAF8 - U+AAFF : 0x11111111 */
+      1,  /* U+AB00 - U+AB07 : 0x11111111 */
+      1,  /* U+AB08 - U+AB0F : 0x11111111 */
+      1,  /* U+AB10 - U+AB17 : 0x11111111 */
+      1,  /* U+AB18 - U+AB1F : 0x11111111 */
+      1,  /* U+AB20 - U+AB27 : 0x11111111 */
+      1,  /* U+AB28 - U+AB2F : 0x11111111 */
+      1,  /* U+AB30 - U+AB37 : 0x11111111 */
+      1,  /* U+AB38 - U+AB3F : 0x11111111 */
+      1,  /* U+AB40 - U+AB47 : 0x11111111 */
+      1,  /* U+AB48 - U+AB4F : 0x11111111 */
+      1,  /* U+AB50 - U+AB57 : 0x11111111 */
+      1,  /* U+AB58 - U+AB5F : 0x11111111 */
+      1,  /* U+AB60 - U+AB67 : 0x11111111 */
+      1,  /* U+AB68 - U+AB6F : 0x11111111 */
+      1,  /* U+AB70 - U+AB77 : 0x11111111 */
+      1,  /* U+AB78 - U+AB7F : 0x11111111 */
+      1,  /* U+AB80 - U+AB87 : 0x11111111 */
+      1,  /* U+AB88 - U+AB8F : 0x11111111 */
+      1,  /* U+AB90 - U+AB97 : 0x11111111 */
+      1,  /* U+AB98 - U+AB9F : 0x11111111 */
+      1,  /* U+ABA0 - U+ABA7 : 0x11111111 */
+      1,  /* U+ABA8 - U+ABAF : 0x11111111 */
+      1,  /* U+ABB0 - U+ABB7 : 0x11111111 */
+      1,  /* U+ABB8 - U+ABBF : 0x11111111 */
+      1,  /* U+ABC0 - U+ABC7 : 0x11111111 */
+      1,  /* U+ABC8 - U+ABCF : 0x11111111 */
+      1,  /* U+ABD0 - U+ABD7 : 0x11111111 */
+      1,  /* U+ABD8 - U+ABDF : 0x11111111 */
+     72,  /* U+ABE0 - U+ABE7 : 0x11A11111 */
+     67,  /* U+ABE8 - U+ABEF : 0x11A1111A */
+      1,  /* U+ABF0 - U+ABF7 : 0x11111111 */
+      1,  /* U+ABF8 - U+ABFF : 0x11111111 */
+};
+
+static PRUint8 gBidiCatIdx4[10] = {
+      1,  /* U+D7B0 - U+D7B7 : 0x11111111 */
+      1,  /* U+D7B8 - U+D7BF : 0x11111111 */
+      1,  /* U+D7C0 - U+D7C7 : 0x11111111 */
+      1,  /* U+D7C8 - U+D7CF : 0x11111111 */
+      1,  /* U+D7D0 - U+D7D7 : 0x11111111 */
+      1,  /* U+D7D8 - U+D7DF : 0x11111111 */
+      1,  /* U+D7E0 - U+D7E7 : 0x11111111 */
+      1,  /* U+D7E8 - U+D7EF : 0x11111111 */
+      1,  /* U+D7F0 - U+D7F7 : 0x11111111 */
+      1,  /* U+D7F8 - U+D7FF : 0x11111111 */
 };
 
 static PRUint8 gBidiCatIdx5[276] = {
       1,  /* U+F900 - U+F907 : 0x11111111 */
       1,  /* U+F908 - U+F90F : 0x11111111 */
       1,  /* U+F910 - U+F917 : 0x11111111 */
       1,  /* U+F918 - U+F91F : 0x11111111 */
       1,  /* U+F920 - U+F927 : 0x11111111 */
@@ -2094,19 +2184,19 @@ static PRUint8 gBidiCatIdx5[276] = {
       1,  /* U+FAD8 - U+FADF : 0x11111111 */
       1,  /* U+FAE0 - U+FAE7 : 0x11111111 */
       1,  /* U+FAE8 - U+FAEF : 0x11111111 */
       1,  /* U+FAF0 - U+FAF7 : 0x11111111 */
       1,  /* U+FAF8 - U+FAFF : 0x11111111 */
       1,  /* U+FB00 - U+FB07 : 0x11111111 */
       1,  /* U+FB08 - U+FB0F : 0x11111111 */
       1,  /* U+FB10 - U+FB17 : 0x11111111 */
-    161,  /* U+FB18 - U+FB1F : 0x2A211111 */
+    178,  /* U+FB18 - U+FB1F : 0x2A211111 */
       2,  /* U+FB20 - U+FB27 : 0x22222222 */
-    162,  /* U+FB28 - U+FB2F : 0x22222262 */
+    179,  /* U+FB28 - U+FB2F : 0x22222262 */
       2,  /* U+FB30 - U+FB37 : 0x22222222 */
       2,  /* U+FB38 - U+FB3F : 0x22222222 */
       2,  /* U+FB40 - U+FB47 : 0x22222222 */
       2,  /* U+FB48 - U+FB4F : 0x22222222 */
       3,  /* U+FB50 - U+FB57 : 0x33333333 */
       3,  /* U+FB58 - U+FB5F : 0x33333333 */
       3,  /* U+FB60 - U+FB67 : 0x33333333 */
       3,  /* U+FB68 - U+FB6F : 0x33333333 */
@@ -2162,17 +2252,17 @@ static PRUint8 gBidiCatIdx5[276] = {
       3,  /* U+FCF8 - U+FCFF : 0x33333333 */
       3,  /* U+FD00 - U+FD07 : 0x33333333 */
       3,  /* U+FD08 - U+FD0F : 0x33333333 */
       3,  /* U+FD10 - U+FD17 : 0x33333333 */
       3,  /* U+FD18 - U+FD1F : 0x33333333 */
       3,  /* U+FD20 - U+FD27 : 0x33333333 */
       3,  /* U+FD28 - U+FD2F : 0x33333333 */
       3,  /* U+FD30 - U+FD37 : 0x33333333 */
-    163,  /* U+FD38 - U+FD3F : 0x99333333 */
+    180,  /* U+FD38 - U+FD3F : 0x99333333 */
       3,  /* U+FD40 - U+FD47 : 0x33333333 */
       3,  /* U+FD48 - U+FD4F : 0x33333333 */
       3,  /* U+FD50 - U+FD57 : 0x33333333 */
       3,  /* U+FD58 - U+FD5F : 0x33333333 */
       3,  /* U+FD60 - U+FD67 : 0x33333333 */
       3,  /* U+FD68 - U+FD6F : 0x33333333 */
       3,  /* U+FD70 - U+FD77 : 0x33333333 */
       3,  /* U+FD78 - U+FD7F : 0x33333333 */
@@ -2186,31 +2276,31 @@ static PRUint8 gBidiCatIdx5[276] = {
       3,  /* U+FDB8 - U+FDBF : 0x33333333 */
       3,  /* U+FDC0 - U+FDC7 : 0x33333333 */
       3,  /* U+FDC8 - U+FDCF : 0x33333333 */
       3,  /* U+FDD0 - U+FDD7 : 0x33333333 */
       3,  /* U+FDD8 - U+FDDF : 0x33333333 */
       3,  /* U+FDE0 - U+FDE7 : 0x33333333 */
       3,  /* U+FDE8 - U+FDEF : 0x33333333 */
       3,  /* U+FDF0 - U+FDF7 : 0x33333333 */
-    164,  /* U+FDF8 - U+FDFF : 0x33933333 */
+    181,  /* U+FDF8 - U+FDFF : 0x33933333 */
      10,  /* U+FE00 - U+FE07 : 0xAAAAAAAA */
      10,  /* U+FE08 - U+FE0F : 0xAAAAAAAA */
       9,  /* U+FE10 - U+FE17 : 0x99999999 */
-    101,  /* U+FE18 - U+FE1F : 0x11111199 */
-     89,  /* U+FE20 - U+FE27 : 0x1AAAAAAA */
+    108,  /* U+FE18 - U+FE1F : 0x11111199 */
+     96,  /* U+FE20 - U+FE27 : 0x1AAAAAAA */
       1,  /* U+FE28 - U+FE2F : 0x11111111 */
       9,  /* U+FE30 - U+FE37 : 0x99999999 */
       9,  /* U+FE38 - U+FE3F : 0x99999999 */
       9,  /* U+FE40 - U+FE47 : 0x99999999 */
       9,  /* U+FE48 - U+FE4F : 0x99999999 */
-    165,  /* U+FE50 - U+FE57 : 0x99891898 */
-    166,  /* U+FE58 - U+FE5F : 0x79999999 */
-    167,  /* U+FE60 - U+FE67 : 0x19996699 */
-    168,  /* U+FE68 - U+FE6F : 0x11119779 */
+    182,  /* U+FE50 - U+FE57 : 0x99891898 */
+    183,  /* U+FE58 - U+FE5F : 0x79999999 */
+    184,  /* U+FE60 - U+FE67 : 0x19996699 */
+    185,  /* U+FE68 - U+FE6F : 0x11119779 */
       3,  /* U+FE70 - U+FE77 : 0x33333333 */
       3,  /* U+FE78 - U+FE7F : 0x33333333 */
       3,  /* U+FE80 - U+FE87 : 0x33333333 */
       3,  /* U+FE88 - U+FE8F : 0x33333333 */
       3,  /* U+FE90 - U+FE97 : 0x33333333 */
       3,  /* U+FE98 - U+FE9F : 0x33333333 */
       3,  /* U+FEA0 - U+FEA7 : 0x33333333 */
       3,  /* U+FEA8 - U+FEAF : 0x33333333 */
@@ -2219,48 +2309,48 @@ static PRUint8 gBidiCatIdx5[276] = {
       3,  /* U+FEC0 - U+FEC7 : 0x33333333 */
       3,  /* U+FEC8 - U+FECF : 0x33333333 */
       3,  /* U+FED0 - U+FED7 : 0x33333333 */
       3,  /* U+FED8 - U+FEDF : 0x33333333 */
       3,  /* U+FEE0 - U+FEE7 : 0x33333333 */
       3,  /* U+FEE8 - U+FEEF : 0x33333333 */
       3,  /* U+FEF0 - U+FEF7 : 0x33333333 */
      55,  /* U+FEF8 - U+FEFF : 0xB3333333 */
-    169,  /* U+FF00 - U+FF07 : 0x99777991 */
+    186,  /* U+FF00 - U+FF07 : 0x99777991 */
      19,  /* U+FF08 - U+FF0F : 0x88686999 */
       5,  /* U+FF10 - U+FF17 : 0x55555555 */
      20,  /* U+FF18 - U+FF1F : 0x99999855 */
      21,  /* U+FF20 - U+FF27 : 0x11111119 */
       1,  /* U+FF28 - U+FF2F : 0x11111111 */
       1,  /* U+FF30 - U+FF37 : 0x11111111 */
      22,  /* U+FF38 - U+FF3F : 0x99999111 */
      21,  /* U+FF40 - U+FF47 : 0x11111119 */
       1,  /* U+FF48 - U+FF4F : 0x11111111 */
       1,  /* U+FF50 - U+FF57 : 0x11111111 */
      22,  /* U+FF58 - U+FF5F : 0x99999111 */
-    138,  /* U+FF60 - U+FF67 : 0x11999999 */
+    149,  /* U+FF60 - U+FF67 : 0x11999999 */
       1,  /* U+FF68 - U+FF6F : 0x11111111 */
       1,  /* U+FF70 - U+FF77 : 0x11111111 */
       1,  /* U+FF78 - U+FF7F : 0x11111111 */
       1,  /* U+FF80 - U+FF87 : 0x11111111 */
       1,  /* U+FF88 - U+FF8F : 0x11111111 */
       1,  /* U+FF90 - U+FF97 : 0x11111111 */
       1,  /* U+FF98 - U+FF9F : 0x11111111 */
       1,  /* U+FFA0 - U+FFA7 : 0x11111111 */
       1,  /* U+FFA8 - U+FFAF : 0x11111111 */
       1,  /* U+FFB0 - U+FFB7 : 0x11111111 */
       1,  /* U+FFB8 - U+FFBF : 0x11111111 */
       1,  /* U+FFC0 - U+FFC7 : 0x11111111 */
       1,  /* U+FFC8 - U+FFCF : 0x11111111 */
       1,  /* U+FFD0 - U+FFD7 : 0x11111111 */
       1,  /* U+FFD8 - U+FFDF : 0x11111111 */
-    170,  /* U+FFE0 - U+FFE7 : 0x17799977 */
-     83,  /* U+FFE8 - U+FFEF : 0x19999999 */
+    187,  /* U+FFE0 - U+FFE7 : 0x17799977 */
+     90,  /* U+FFE8 - U+FFEF : 0x19999999 */
       1,  /* U+FFF0 - U+FFF7 : 0x11111111 */
-    171,  /* U+FFF8 - U+FFFF : 0x11999991 */
+    188,  /* U+FFF8 - U+FFFF : 0x11999991 */
       1,  /* U+10000 - U+10007 : 0x11111111 */
       1,  /* U+10008 - U+1000F : 0x11111111 */
       1,  /* U+10010 - U+10017 : 0x11111111 */
       1,  /* U+10018 - U+1001F : 0x11111111 */
       1,  /* U+10020 - U+10027 : 0x11111111 */
       1,  /* U+10028 - U+1002F : 0x11111111 */
       1,  /* U+10030 - U+10037 : 0x11111111 */
       1,  /* U+10038 - U+1003F : 0x11111111 */
@@ -2283,45 +2373,45 @@ static PRUint8 gBidiCatIdx5[276] = {
       1,  /* U+100C0 - U+100C7 : 0x11111111 */
       1,  /* U+100C8 - U+100CF : 0x11111111 */
       1,  /* U+100D0 - U+100D7 : 0x11111111 */
       1,  /* U+100D8 - U+100DF : 0x11111111 */
       1,  /* U+100E0 - U+100E7 : 0x11111111 */
       1,  /* U+100E8 - U+100EF : 0x11111111 */
       1,  /* U+100F0 - U+100F7 : 0x11111111 */
       1,  /* U+100F8 - U+100FF : 0x11111111 */
-    172,  /* U+10100 - U+10107 : 0x11111191 */
+    147,  /* U+10100 - U+10107 : 0x11111191 */
       1,  /* U+10108 - U+1010F : 0x11111111 */
       1,  /* U+10110 - U+10117 : 0x11111111 */
       1,  /* U+10118 - U+1011F : 0x11111111 */
       1,  /* U+10120 - U+10127 : 0x11111111 */
       1,  /* U+10128 - U+1012F : 0x11111111 */
       1,  /* U+10130 - U+10137 : 0x11111111 */
       1,  /* U+10138 - U+1013F : 0x11111111 */
       9,  /* U+10140 - U+10147 : 0x99999999 */
       9,  /* U+10148 - U+1014F : 0x99999999 */
       9,  /* U+10150 - U+10157 : 0x99999999 */
       9,  /* U+10158 - U+1015F : 0x99999999 */
       9,  /* U+10160 - U+10167 : 0x99999999 */
       9,  /* U+10168 - U+1016F : 0x99999999 */
       9,  /* U+10170 - U+10177 : 0x99999999 */
       9,  /* U+10178 - U+1017F : 0x99999999 */
       9,  /* U+10180 - U+10187 : 0x99999999 */
-    140,  /* U+10188 - U+1018F : 0x11111999 */
+    151,  /* U+10188 - U+1018F : 0x11111999 */
       9,  /* U+10190 - U+10197 : 0x99999999 */
-    143,  /* U+10198 - U+1019F : 0x11119999 */
+    162,  /* U+10198 - U+1019F : 0x11119999 */
 };
 
 static PRUint8 gBidiCatIdx6[6] = {
       1,  /* U+101D0 - U+101D7 : 0x11111111 */
       1,  /* U+101D8 - U+101DF : 0x11111111 */
       1,  /* U+101E0 - U+101E7 : 0x11111111 */
       1,  /* U+101E8 - U+101EF : 0x11111111 */
       1,  /* U+101F0 - U+101F7 : 0x11111111 */
-     67,  /* U+101F8 - U+101FF : 0x11A11111 */
+     72,  /* U+101F8 - U+101FF : 0x11A11111 */
 };
 
 static PRUint8 gBidiCatIdx7[80] = {
       1,  /* U+10280 - U+10287 : 0x11111111 */
       1,  /* U+10288 - U+1028F : 0x11111111 */
       1,  /* U+10290 - U+10297 : 0x11111111 */
       1,  /* U+10298 - U+1029F : 0x11111111 */
       1,  /* U+102A0 - U+102A7 : 0x11111111 */
@@ -2397,54 +2487,114 @@ static PRUint8 gBidiCatIdx7[80] = {
       1,  /* U+104D0 - U+104D7 : 0x11111111 */
       1,  /* U+104D8 - U+104DF : 0x11111111 */
       1,  /* U+104E0 - U+104E7 : 0x11111111 */
       1,  /* U+104E8 - U+104EF : 0x11111111 */
       1,  /* U+104F0 - U+104F7 : 0x11111111 */
       1,  /* U+104F8 - U+104FF : 0x11111111 */
 };
 
-static PRUint8 gBidiCatIdx8[8] = {
+static PRUint8 gBidiCatIdx8[12] = {
       2,  /* U+10800 - U+10807 : 0x22222222 */
       2,  /* U+10808 - U+1080F : 0x22222222 */
       2,  /* U+10810 - U+10817 : 0x22222222 */
       2,  /* U+10818 - U+1081F : 0x22222222 */
       2,  /* U+10820 - U+10827 : 0x22222222 */
       2,  /* U+10828 - U+1082F : 0x22222222 */
       2,  /* U+10830 - U+10837 : 0x22222222 */
       2,  /* U+10838 - U+1083F : 0x22222222 */
+      2,  /* U+10840 - U+10847 : 0x22222222 */
+      2,  /* U+10848 - U+1084F : 0x22222222 */
+      2,  /* U+10850 - U+10857 : 0x22222222 */
+      2,  /* U+10858 - U+1085F : 0x22222222 */
 };
 
 static PRUint8 gBidiCatIdx9[8] = {
       2,  /* U+10900 - U+10907 : 0x22222222 */
       2,  /* U+10908 - U+1090F : 0x22222222 */
       2,  /* U+10910 - U+10917 : 0x22222222 */
-    173,  /* U+10918 - U+1091F : 0x92222222 */
+    189,  /* U+10918 - U+1091F : 0x92222222 */
       2,  /* U+10920 - U+10927 : 0x22222222 */
       2,  /* U+10928 - U+1092F : 0x22222222 */
       2,  /* U+10930 - U+10937 : 0x22222222 */
       2,  /* U+10938 - U+1093F : 0x22222222 */
 };
 
-static PRUint8 gBidiCatIdx10[12] = {
-    174,  /* U+10A00 - U+10A07 : 0x2AA2AAA2 */
-    175,  /* U+10A08 - U+10A0F : 0xAAAA2222 */
+static PRUint8 gBidiCatIdx10[16] = {
+    190,  /* U+10A00 - U+10A07 : 0x2AA2AAA2 */
+    191,  /* U+10A08 - U+10A0F : 0xAAAA2222 */
       2,  /* U+10A10 - U+10A17 : 0x22222222 */
       2,  /* U+10A18 - U+10A1F : 0x22222222 */
       2,  /* U+10A20 - U+10A27 : 0x22222222 */
       2,  /* U+10A28 - U+10A2F : 0x22222222 */
       2,  /* U+10A30 - U+10A37 : 0x22222222 */
-    176,  /* U+10A38 - U+10A3F : 0xA2222AAA */
+    192,  /* U+10A38 - U+10A3F : 0xA2222AAA */
       2,  /* U+10A40 - U+10A47 : 0x22222222 */
       2,  /* U+10A48 - U+10A4F : 0x22222222 */
       2,  /* U+10A50 - U+10A57 : 0x22222222 */
       2,  /* U+10A58 - U+10A5F : 0x22222222 */
+      2,  /* U+10A60 - U+10A67 : 0x22222222 */
+      2,  /* U+10A68 - U+10A6F : 0x22222222 */
+      2,  /* U+10A70 - U+10A77 : 0x22222222 */
+      2,  /* U+10A78 - U+10A7F : 0x22222222 */
+};
+
+static PRUint8 gBidiCatIdx11[16] = {
+      2,  /* U+10B00 - U+10B07 : 0x22222222 */
+      2,  /* U+10B08 - U+10B0F : 0x22222222 */
+      2,  /* U+10B10 - U+10B17 : 0x22222222 */
+      2,  /* U+10B18 - U+10B1F : 0x22222222 */
+      2,  /* U+10B20 - U+10B27 : 0x22222222 */
+      2,  /* U+10B28 - U+10B2F : 0x22222222 */
+      2,  /* U+10B30 - U+10B37 : 0x22222222 */
+    193,  /* U+10B38 - U+10B3F : 0x99999992 */
+      2,  /* U+10B40 - U+10B47 : 0x22222222 */
+      2,  /* U+10B48 - U+10B4F : 0x22222222 */
+      2,  /* U+10B50 - U+10B57 : 0x22222222 */
+      2,  /* U+10B58 - U+10B5F : 0x22222222 */
+      2,  /* U+10B60 - U+10B67 : 0x22222222 */
+      2,  /* U+10B68 - U+10B6F : 0x22222222 */
+      2,  /* U+10B70 - U+10B77 : 0x22222222 */
+      2,  /* U+10B78 - U+10B7F : 0x22222222 */
 };
 
-static PRUint8 gBidiCatIdx11[144] = {
+static PRUint8 gBidiCatIdx12[10] = {
+      2,  /* U+10C00 - U+10C07 : 0x22222222 */
+      2,  /* U+10C08 - U+10C0F : 0x22222222 */
+      2,  /* U+10C10 - U+10C17 : 0x22222222 */
+      2,  /* U+10C18 - U+10C1F : 0x22222222 */
+      2,  /* U+10C20 - U+10C27 : 0x22222222 */
+      2,  /* U+10C28 - U+10C2F : 0x22222222 */
+      2,  /* U+10C30 - U+10C37 : 0x22222222 */
+      2,  /* U+10C38 - U+10C3F : 0x22222222 */
+      2,  /* U+10C40 - U+10C47 : 0x22222222 */
+      2,  /* U+10C48 - U+10C4F : 0x22222222 */
+};
+
+static PRUint8 gBidiCatIdx13[4] = {
+      4,  /* U+10E60 - U+10E67 : 0x44444444 */
+      4,  /* U+10E68 - U+10E6F : 0x44444444 */
+      4,  /* U+10E70 - U+10E77 : 0x44444444 */
+    194,  /* U+10E78 - U+10E7F : 0x24444444 */
+};
+
+static PRUint8 gBidiCatIdx14[10] = {
+     38,  /* U+11080 - U+11087 : 0x111111AA */
+      1,  /* U+11088 - U+1108F : 0x11111111 */
+      1,  /* U+11090 - U+11097 : 0x11111111 */
+      1,  /* U+11098 - U+1109F : 0x11111111 */
+      1,  /* U+110A0 - U+110A7 : 0x11111111 */
+      1,  /* U+110A8 - U+110AF : 0x11111111 */
+    195,  /* U+110B0 - U+110B7 : 0x1AAAA111 */
+     75,  /* U+110B8 - U+110BF : 0x11111AA1 */
+      1,  /* U+110C0 - U+110C7 : 0x11111111 */
+      1,  /* U+110C8 - U+110CF : 0x11111111 */
+};
+
+static PRUint8 gBidiCatIdx15[144] = {
       1,  /* U+12000 - U+12007 : 0x11111111 */
       1,  /* U+12008 - U+1200F : 0x11111111 */
       1,  /* U+12010 - U+12017 : 0x11111111 */
       1,  /* U+12018 - U+1201F : 0x11111111 */
       1,  /* U+12020 - U+12027 : 0x11111111 */
       1,  /* U+12028 - U+1202F : 0x11111111 */
       1,  /* U+12030 - U+12037 : 0x11111111 */
       1,  /* U+12038 - U+1203F : 0x11111111 */
@@ -2581,17 +2731,154 @@ static PRUint8 gBidiCatIdx11[144] = {
       1,  /* U+12450 - U+12457 : 0x11111111 */
       1,  /* U+12458 - U+1245F : 0x11111111 */
       1,  /* U+12460 - U+12467 : 0x11111111 */
       1,  /* U+12468 - U+1246F : 0x11111111 */
       1,  /* U+12470 - U+12477 : 0x11111111 */
       1,  /* U+12478 - U+1247F : 0x11111111 */
 };
 
-static PRUint8 gBidiCatIdx12[256] = {
+static PRUint8 gBidiCatIdx16[134] = {
+      1,  /* U+13000 - U+13007 : 0x11111111 */
+      1,  /* U+13008 - U+1300F : 0x11111111 */
+      1,  /* U+13010 - U+13017 : 0x11111111 */
+      1,  /* U+13018 - U+1301F : 0x11111111 */
+      1,  /* U+13020 - U+13027 : 0x11111111 */
+      1,  /* U+13028 - U+1302F : 0x11111111 */
+      1,  /* U+13030 - U+13037 : 0x11111111 */
+      1,  /* U+13038 - U+1303F : 0x11111111 */
+      1,  /* U+13040 - U+13047 : 0x11111111 */
+      1,  /* U+13048 - U+1304F : 0x11111111 */
+      1,  /* U+13050 - U+13057 : 0x11111111 */
+      1,  /* U+13058 - U+1305F : 0x11111111 */
+      1,  /* U+13060 - U+13067 : 0x11111111 */
+      1,  /* U+13068 - U+1306F : 0x11111111 */
+      1,  /* U+13070 - U+13077 : 0x11111111 */
+      1,  /* U+13078 - U+1307F : 0x11111111 */
+      1,  /* U+13080 - U+13087 : 0x11111111 */
+      1,  /* U+13088 - U+1308F : 0x11111111 */
+      1,  /* U+13090 - U+13097 : 0x11111111 */
+      1,  /* U+13098 - U+1309F : 0x11111111 */
+      1,  /* U+130A0 - U+130A7 : 0x11111111 */
+      1,  /* U+130A8 - U+130AF : 0x11111111 */
+      1,  /* U+130B0 - U+130B7 : 0x11111111 */
+      1,  /* U+130B8 - U+130BF : 0x11111111 */
+      1,  /* U+130C0 - U+130C7 : 0x11111111 */
+      1,  /* U+130C8 - U+130CF : 0x11111111 */
+      1,  /* U+130D0 - U+130D7 : 0x11111111 */
+      1,  /* U+130D8 - U+130DF : 0x11111111 */
+      1,  /* U+130E0 - U+130E7 : 0x11111111 */
+      1,  /* U+130E8 - U+130EF : 0x11111111 */
+      1,  /* U+130F0 - U+130F7 : 0x11111111 */
+      1,  /* U+130F8 - U+130FF : 0x11111111 */
+      1,  /* U+13100 - U+13107 : 0x11111111 */
+      1,  /* U+13108 - U+1310F : 0x11111111 */
+      1,  /* U+13110 - U+13117 : 0x11111111 */
+      1,  /* U+13118 - U+1311F : 0x11111111 */
+      1,  /* U+13120 - U+13127 : 0x11111111 */
+      1,  /* U+13128 - U+1312F : 0x11111111 */
+      1,  /* U+13130 - U+13137 : 0x11111111 */
+      1,  /* U+13138 - U+1313F : 0x11111111 */
+      1,  /* U+13140 - U+13147 : 0x11111111 */
+      1,  /* U+13148 - U+1314F : 0x11111111 */
+      1,  /* U+13150 - U+13157 : 0x11111111 */
+      1,  /* U+13158 - U+1315F : 0x11111111 */
+      1,  /* U+13160 - U+13167 : 0x11111111 */
+      1,  /* U+13168 - U+1316F : 0x11111111 */
+      1,  /* U+13170 - U+13177 : 0x11111111 */
+      1,  /* U+13178 - U+1317F : 0x11111111 */
+      1,  /* U+13180 - U+13187 : 0x11111111 */
+      1,  /* U+13188 - U+1318F : 0x11111111 */
+      1,  /* U+13190 - U+13197 : 0x11111111 */
+      1,  /* U+13198 - U+1319F : 0x11111111 */
+      1,  /* U+131A0 - U+131A7 : 0x11111111 */
+      1,  /* U+131A8 - U+131AF : 0x11111111 */
+      1,  /* U+131B0 - U+131B7 : 0x11111111 */
+      1,  /* U+131B8 - U+131BF : 0x11111111 */
+      1,  /* U+131C0 - U+131C7 : 0x11111111 */
+      1,  /* U+131C8 - U+131CF : 0x11111111 */
+      1,  /* U+131D0 - U+131D7 : 0x11111111 */
+      1,  /* U+131D8 - U+131DF : 0x11111111 */
+      1,  /* U+131E0 - U+131E7 : 0x11111111 */
+      1,  /* U+131E8 - U+131EF : 0x11111111 */
+      1,  /* U+131F0 - U+131F7 : 0x11111111 */
+      1,  /* U+131F8 - U+131FF : 0x11111111 */
+      1,  /* U+13200 - U+13207 : 0x11111111 */
+      1,  /* U+13208 - U+1320F : 0x11111111 */
+      1,  /* U+13210 - U+13217 : 0x11111111 */
+      1,  /* U+13218 - U+1321F : 0x11111111 */
+      1,  /* U+13220 - U+13227 : 0x11111111 */
+      1,  /* U+13228 - U+1322F : 0x11111111 */
+      1,  /* U+13230 - U+13237 : 0x11111111 */
+      1,  /* U+13238 - U+1323F : 0x11111111 */
+      1,  /* U+13240 - U+13247 : 0x11111111 */
+      1,  /* U+13248 - U+1324F : 0x11111111 */
+      1,  /* U+13250 - U+13257 : 0x11111111 */
+      1,  /* U+13258 - U+1325F : 0x11111111 */
+      1,  /* U+13260 - U+13267 : 0x11111111 */
+      1,  /* U+13268 - U+1326F : 0x11111111 */
+      1,  /* U+13270 - U+13277 : 0x11111111 */
+      1,  /* U+13278 - U+1327F : 0x11111111 */
+      1,  /* U+13280 - U+13287 : 0x11111111 */
+      1,  /* U+13288 - U+1328F : 0x11111111 */
+      1,  /* U+13290 - U+13297 : 0x11111111 */
+      1,  /* U+13298 - U+1329F : 0x11111111 */
+      1,  /* U+132A0 - U+132A7 : 0x11111111 */
+      1,  /* U+132A8 - U+132AF : 0x11111111 */
+      1,  /* U+132B0 - U+132B7 : 0x11111111 */
+      1,  /* U+132B8 - U+132BF : 0x11111111 */
+      1,  /* U+132C0 - U+132C7 : 0x11111111 */
+      1,  /* U+132C8 - U+132CF : 0x11111111 */
+      1,  /* U+132D0 - U+132D7 : 0x11111111 */
+      1,  /* U+132D8 - U+132DF : 0x11111111 */
+      1,  /* U+132E0 - U+132E7 : 0x11111111 */
+      1,  /* U+132E8 - U+132EF : 0x11111111 */
+      1,  /* U+132F0 - U+132F7 : 0x11111111 */
+      1,  /* U+132F8 - U+132FF : 0x11111111 */
+      1,  /* U+13300 - U+13307 : 0x11111111 */
+      1,  /* U+13308 - U+1330F : 0x11111111 */
+      1,  /* U+13310 - U+13317 : 0x11111111 */
+      1,  /* U+13318 - U+1331F : 0x11111111 */
+      1,  /* U+13320 - U+13327 : 0x11111111 */
+      1,  /* U+13328 - U+1332F : 0x11111111 */
+      1,  /* U+13330 - U+13337 : 0x11111111 */
+      1,  /* U+13338 - U+1333F : 0x11111111 */
+      1,  /* U+13340 - U+13347 : 0x11111111 */
+      1,  /* U+13348 - U+1334F : 0x11111111 */
+      1,  /* U+13350 - U+13357 : 0x11111111 */
+      1,  /* U+13358 - U+1335F : 0x11111111 */
+      1,  /* U+13360 - U+13367 : 0x11111111 */
+      1,  /* U+13368 - U+1336F : 0x11111111 */
+      1,  /* U+13370 - U+13377 : 0x11111111 */
+      1,  /* U+13378 - U+1337F : 0x11111111 */
+      1,  /* U+13380 - U+13387 : 0x11111111 */
+      1,  /* U+13388 - U+1338F : 0x11111111 */
+      1,  /* U+13390 - U+13397 : 0x11111111 */
+      1,  /* U+13398 - U+1339F : 0x11111111 */
+      1,  /* U+133A0 - U+133A7 : 0x11111111 */
+      1,  /* U+133A8 - U+133AF : 0x11111111 */
+      1,  /* U+133B0 - U+133B7 : 0x11111111 */
+      1,  /* U+133B8 - U+133BF : 0x11111111 */
+      1,  /* U+133C0 - U+133C7 : 0x11111111 */
+      1,  /* U+133C8 - U+133CF : 0x11111111 */
+      1,  /* U+133D0 - U+133D7 : 0x11111111 */
+      1,  /* U+133D8 - U+133DF : 0x11111111 */
+      1,  /* U+133E0 - U+133E7 : 0x11111111 */
+      1,  /* U+133E8 - U+133EF : 0x11111111 */
+      1,  /* U+133F0 - U+133F7 : 0x11111111 */
+      1,  /* U+133F8 - U+133FF : 0x11111111 */
+      1,  /* U+13400 - U+13407 : 0x11111111 */
+      1,  /* U+13408 - U+1340F : 0x11111111 */
+      1,  /* U+13410 - U+13417 : 0x11111111 */
+      1,  /* U+13418 - U+1341F : 0x11111111 */
+      1,  /* U+13420 - U+13427 : 0x11111111 */
+      1,  /* U+13428 - U+1342F : 0x11111111 */
+};
+
+static PRUint8 gBidiCatIdx17[256] = {
       1,  /* U+1D000 - U+1D007 : 0x11111111 */
       1,  /* U+1D008 - U+1D00F : 0x11111111 */
       1,  /* U+1D010 - U+1D017 : 0x11111111 */
       1,  /* U+1D018 - U+1D01F : 0x11111111 */
       1,  /* U+1D020 - U+1D027 : 0x11111111 */
       1,  /* U+1D028 - U+1D02F : 0x11111111 */
       1,  /* U+1D030 - U+1D037 : 0x11111111 */
       1,  /* U+1D038 - U+1D03F : 0x11111111 */
@@ -2626,26 +2913,26 @@ static PRUint8 gBidiCatIdx12[256] = {
       1,  /* U+1D120 - U+1D127 : 0x11111111 */
       1,  /* U+1D128 - U+1D12F : 0x11111111 */
       1,  /* U+1D130 - U+1D137 : 0x11111111 */
       1,  /* U+1D138 - U+1D13F : 0x11111111 */
       1,  /* U+1D140 - U+1D147 : 0x11111111 */
       1,  /* U+1D148 - U+1D14F : 0x11111111 */
       1,  /* U+1D150 - U+1D157 : 0x11111111 */
       1,  /* U+1D158 - U+1D15F : 0x11111111 */
-     88,  /* U+1D160 - U+1D167 : 0xA1111111 */
+     95,  /* U+1D160 - U+1D167 : 0xA1111111 */
      38,  /* U+1D168 - U+1D16F : 0x111111AA */
-    177,  /* U+1D170 - U+1D177 : 0xBBBBB111 */
-    178,  /* U+1D178 - U+1D17F : 0xAAAAABBB */
-    179,  /* U+1D180 - U+1D187 : 0xAAA11AAA */
-    105,  /* U+1D188 - U+1D18F : 0x1111AAAA */
+    196,  /* U+1D170 - U+1D177 : 0xBBBBB111 */
+    197,  /* U+1D178 - U+1D17F : 0xAAAAABBB */
+    198,  /* U+1D180 - U+1D187 : 0xAAA11AAA */
+    112,  /* U+1D188 - U+1D18F : 0x1111AAAA */
       1,  /* U+1D190 - U+1D197 : 0x11111111 */
       1,  /* U+1D198 - U+1D19F : 0x11111111 */
       1,  /* U+1D1A0 - U+1D1A7 : 0x11111111 */
-    114,  /* U+1D1A8 - U+1D1AF : 0x11AAAA11 */
+    123,  /* U+1D1A8 - U+1D1AF : 0x11AAAA11 */
       1,  /* U+1D1B0 - U+1D1B7 : 0x11111111 */
       1,  /* U+1D1B8 - U+1D1BF : 0x11111111 */
       1,  /* U+1D1C0 - U+1D1C7 : 0x11111111 */
       1,  /* U+1D1C8 - U+1D1CF : 0x11111111 */
       1,  /* U+1D1D0 - U+1D1D7 : 0x11111111 */
       1,  /* U+1D1D8 - U+1D1DF : 0x11111111 */
       1,  /* U+1D1E0 - U+1D1E7 : 0x11111111 */
       1,  /* U+1D1E8 - U+1D1EF : 0x11111111 */
@@ -2654,17 +2941,17 @@ static PRUint8 gBidiCatIdx12[256] = {
       9,  /* U+1D200 - U+1D207 : 0x99999999 */
       9,  /* U+1D208 - U+1D20F : 0x99999999 */
       9,  /* U+1D210 - U+1D217 : 0x99999999 */
       9,  /* U+1D218 - U+1D21F : 0x99999999 */
       9,  /* U+1D220 - U+1D227 : 0x99999999 */
       9,  /* U+1D228 - U+1D22F : 0x99999999 */
       9,  /* U+1D230 - U+1D237 : 0x99999999 */
       9,  /* U+1D238 - U+1D23F : 0x99999999 */
-    180,  /* U+1D240 - U+1D247 : 0x119AAA99 */
+    199,  /* U+1D240 - U+1D247 : 0x119AAA99 */
       1,  /* U+1D248 - U+1D24F : 0x11111111 */
       1,  /* U+1D250 - U+1D257 : 0x11111111 */
       1,  /* U+1D258 - U+1D25F : 0x11111111 */
       1,  /* U+1D260 - U+1D267 : 0x11111111 */
       1,  /* U+1D268 - U+1D26F : 0x11111111 */
       1,  /* U+1D270 - U+1D277 : 0x11111111 */
       1,  /* U+1D278 - U+1D27F : 0x11111111 */
       1,  /* U+1D280 - U+1D287 : 0x11111111 */
@@ -2688,17 +2975,17 @@ static PRUint8 gBidiCatIdx12[256] = {
       9,  /* U+1D310 - U+1D317 : 0x99999999 */
       9,  /* U+1D318 - U+1D31F : 0x99999999 */
       9,  /* U+1D320 - U+1D327 : 0x99999999 */
       9,  /* U+1D328 - U+1D32F : 0x99999999 */
       9,  /* U+1D330 - U+1D337 : 0x99999999 */
       9,  /* U+1D338 - U+1D33F : 0x99999999 */
       9,  /* U+1D340 - U+1D347 : 0x99999999 */
       9,  /* U+1D348 - U+1D34F : 0x99999999 */
-     83,  /* U+1D350 - U+1D357 : 0x19999999 */
+     90,  /* U+1D350 - U+1D357 : 0x19999999 */
       1,  /* U+1D358 - U+1D35F : 0x11111111 */
       1,  /* U+1D360 - U+1D367 : 0x11111111 */
       1,  /* U+1D368 - U+1D36F : 0x11111111 */
       1,  /* U+1D370 - U+1D377 : 0x11111111 */
       1,  /* U+1D378 - U+1D37F : 0x11111111 */
       1,  /* U+1D380 - U+1D387 : 0x11111111 */
       1,  /* U+1D388 - U+1D38F : 0x11111111 */
       1,  /* U+1D390 - U+1D397 : 0x11111111 */
@@ -2801,90 +3088,90 @@ static PRUint8 gBidiCatIdx12[256] = {
       1,  /* U+1D698 - U+1D69F : 0x11111111 */
       1,  /* U+1D6A0 - U+1D6A7 : 0x11111111 */
       1,  /* U+1D6A8 - U+1D6AF : 0x11111111 */
       1,  /* U+1D6B0 - U+1D6B7 : 0x11111111 */
       1,  /* U+1D6B8 - U+1D6BF : 0x11111111 */
       1,  /* U+1D6C0 - U+1D6C7 : 0x11111111 */
       1,  /* U+1D6C8 - U+1D6CF : 0x11111111 */
       1,  /* U+1D6D0 - U+1D6D7 : 0x11111111 */
-      1,  /* U+1D6D8 - U+1D6DF : 0x11111111 */
+    166,  /* U+1D6D8 - U+1D6DF : 0x11119111 */
       1,  /* U+1D6E0 - U+1D6E7 : 0x11111111 */
       1,  /* U+1D6E8 - U+1D6EF : 0x11111111 */
       1,  /* U+1D6F0 - U+1D6F7 : 0x11111111 */
       1,  /* U+1D6F8 - U+1D6FF : 0x11111111 */
       1,  /* U+1D700 - U+1D707 : 0x11111111 */
       1,  /* U+1D708 - U+1D70F : 0x11111111 */
-      1,  /* U+1D710 - U+1D717 : 0x11111111 */
+    200,  /* U+1D710 - U+1D717 : 0x11911111 */
       1,  /* U+1D718 - U+1D71F : 0x11111111 */
       1,  /* U+1D720 - U+1D727 : 0x11111111 */
       1,  /* U+1D728 - U+1D72F : 0x11111111 */
       1,  /* U+1D730 - U+1D737 : 0x11111111 */
       1,  /* U+1D738 - U+1D73F : 0x11111111 */
       1,  /* U+1D740 - U+1D747 : 0x11111111 */
-      1,  /* U+1D748 - U+1D74F : 0x11111111 */
+     29,  /* U+1D748 - U+1D74F : 0x91111111 */
       1,  /* U+1D750 - U+1D757 : 0x11111111 */
       1,  /* U+1D758 - U+1D75F : 0x11111111 */
       1,  /* U+1D760 - U+1D767 : 0x11111111 */
       1,  /* U+1D768 - U+1D76F : 0x11111111 */
       1,  /* U+1D770 - U+1D777 : 0x11111111 */
       1,  /* U+1D778 - U+1D77F : 0x11111111 */
       1,  /* U+1D780 - U+1D787 : 0x11111111 */
-      1,  /* U+1D788 - U+1D78F : 0x11111111 */
+    147,  /* U+1D788 - U+1D78F : 0x11111191 */
       1,  /* U+1D790 - U+1D797 : 0x11111111 */
       1,  /* U+1D798 - U+1D79F : 0x11111111 */
       1,  /* U+1D7A0 - U+1D7A7 : 0x11111111 */
       1,  /* U+1D7A8 - U+1D7AF : 0x11111111 */
       1,  /* U+1D7B0 - U+1D7B7 : 0x11111111 */
       1,  /* U+1D7B8 - U+1D7BF : 0x11111111 */
-      1,  /* U+1D7C0 - U+1D7C7 : 0x11111111 */
-    181,  /* U+1D7C8 - U+1D7CF : 0x55111111 */
+    166,  /* U+1D7C0 - U+1D7C7 : 0x11119111 */
+    201,  /* U+1D7C8 - U+1D7CF : 0x55111111 */
       5,  /* U+1D7D0 - U+1D7D7 : 0x55555555 */
       5,  /* U+1D7D8 - U+1D7DF : 0x55555555 */
       5,  /* U+1D7E0 - U+1D7E7 : 0x55555555 */
       5,  /* U+1D7E8 - U+1D7EF : 0x55555555 */
       5,  /* U+1D7F0 - U+1D7F7 : 0x55555555 */
       5,  /* U+1D7F8 - U+1D7FF : 0x55555555 */
 };
 
-static PRUint8 gBidiCatIdx13[64] = {
+static PRUint8 gBidiCatIdx18[74] = {
       9,  /* U+1F000 - U+1F007 : 0x99999999 */
       9,  /* U+1F008 - U+1F00F : 0x99999999 */
       9,  /* U+1F010 - U+1F017 : 0x99999999 */
       9,  /* U+1F018 - U+1F01F : 0x99999999 */
       9,  /* U+1F020 - U+1F027 : 0x99999999 */
-    143,  /* U+1F028 - U+1F02F : 0x11119999 */
+    162,  /* U+1F028 - U+1F02F : 0x11119999 */
       9,  /* U+1F030 - U+1F037 : 0x99999999 */
       9,  /* U+1F038 - U+1F03F : 0x99999999 */
       9,  /* U+1F040 - U+1F047 : 0x99999999 */
       9,  /* U+1F048 - U+1F04F : 0x99999999 */
       9,  /* U+1F050 - U+1F057 : 0x99999999 */
       9,  /* U+1F058 - U+1F05F : 0x99999999 */
       9,  /* U+1F060 - U+1F067 : 0x99999999 */
       9,  /* U+1F068 - U+1F06F : 0x99999999 */
       9,  /* U+1F070 - U+1F077 : 0x99999999 */
       9,  /* U+1F078 - U+1F07F : 0x99999999 */
       9,  /* U+1F080 - U+1F087 : 0x99999999 */
       9,  /* U+1F088 - U+1F08F : 0x99999999 */
-    143,  /* U+1F090 - U+1F097 : 0x11119999 */
+    162,  /* U+1F090 - U+1F097 : 0x11119999 */
       1,  /* U+1F098 - U+1F09F : 0x11111111 */
       1,  /* U+1F0A0 - U+1F0A7 : 0x11111111 */
       1,  /* U+1F0A8 - U+1F0AF : 0x11111111 */
       1,  /* U+1F0B0 - U+1F0B7 : 0x11111111 */
       1,  /* U+1F0B8 - U+1F0BF : 0x11111111 */
       1,  /* U+1F0C0 - U+1F0C7 : 0x11111111 */
       1,  /* U+1F0C8 - U+1F0CF : 0x11111111 */
       1,  /* U+1F0D0 - U+1F0D7 : 0x11111111 */
       1,  /* U+1F0D8 - U+1F0DF : 0x11111111 */
       1,  /* U+1F0E0 - U+1F0E7 : 0x11111111 */
       1,  /* U+1F0E8 - U+1F0EF : 0x11111111 */
       1,  /* U+1F0F0 - U+1F0F7 : 0x11111111 */
       1,  /* U+1F0F8 - U+1F0FF : 0x11111111 */
-      1,  /* U+1F100 - U+1F107 : 0x11111111 */
-      1,  /* U+1F108 - U+1F10F : 0x11111111 */
+      5,  /* U+1F100 - U+1F107 : 0x55555555 */
+    202,  /* U+1F108 - U+1F10F : 0x11111555 */
       1,  /* U+1F110 - U+1F117 : 0x11111111 */
       1,  /* U+1F118 - U+1F11F : 0x11111111 */
       1,  /* U+1F120 - U+1F127 : 0x11111111 */
       1,  /* U+1F128 - U+1F12F : 0x11111111 */
       1,  /* U+1F130 - U+1F137 : 0x11111111 */
       1,  /* U+1F138 - U+1F13F : 0x11111111 */
       1,  /* U+1F140 - U+1F147 : 0x11111111 */
       1,  /* U+1F148 - U+1F14F : 0x11111111 */
@@ -2905,19 +3192,29 @@ static PRUint8 gBidiCatIdx13[64] = {
       1,  /* U+1F1C0 - U+1F1C7 : 0x11111111 */
       1,  /* U+1F1C8 - U+1F1CF : 0x11111111 */
       1,  /* U+1F1D0 - U+1F1D7 : 0x11111111 */
       1,  /* U+1F1D8 - U+1F1DF : 0x11111111 */
       1,  /* U+1F1E0 - U+1F1E7 : 0x11111111 */
       1,  /* U+1F1E8 - U+1F1EF : 0x11111111 */
       1,  /* U+1F1F0 - U+1F1F7 : 0x11111111 */
       1,  /* U+1F1F8 - U+1F1FF : 0x11111111 */
+      1,  /* U+1F200 - U+1F207 : 0x11111111 */
+      1,  /* U+1F208 - U+1F20F : 0x11111111 */
+      1,  /* U+1F210 - U+1F217 : 0x11111111 */
+      1,  /* U+1F218 - U+1F21F : 0x11111111 */
+      1,  /* U+1F220 - U+1F227 : 0x11111111 */
+      1,  /* U+1F228 - U+1F22F : 0x11111111 */
+      1,  /* U+1F230 - U+1F237 : 0x11111111 */
+      1,  /* U+1F238 - U+1F23F : 0x11111111 */
+      1,  /* U+1F240 - U+1F247 : 0x11111111 */
+      1,  /* U+1F248 - U+1F24F : 0x11111111 */
 };
 
-static PRUint8 gBidiCatIdx14[68] = {
+static PRUint8 gBidiCatIdx19[68] = {
       1,  /* U+2F800 - U+2F807 : 0x11111111 */
       1,  /* U+2F808 - U+2F80F : 0x11111111 */
       1,  /* U+2F810 - U+2F817 : 0x11111111 */
       1,  /* U+2F818 - U+2F81F : 0x11111111 */
       1,  /* U+2F820 - U+2F827 : 0x11111111 */
       1,  /* U+2F828 - U+2F82F : 0x11111111 */
       1,  /* U+2F830 - U+2F837 : 0x11111111 */
       1,  /* U+2F838 - U+2F83F : 0x11111111 */
@@ -2978,18 +3275,18 @@ static PRUint8 gBidiCatIdx14[68] = {
       1,  /* U+2F9F0 - U+2F9F7 : 0x11111111 */
       1,  /* U+2F9F8 - U+2F9FF : 0x11111111 */
       1,  /* U+2FA00 - U+2FA07 : 0x11111111 */
       1,  /* U+2FA08 - U+2FA0F : 0x11111111 */
       1,  /* U+2FA10 - U+2FA17 : 0x11111111 */
       1,  /* U+2FA18 - U+2FA1F : 0x11111111 */
 };
 
-static PRUint8 gBidiCatIdx15[64] = {
-    182,  /* U+E0000 - U+E0007 : 0x111111B1 */
+static PRUint8 gBidiCatIdx20[64] = {
+    203,  /* U+E0000 - U+E0007 : 0x111111B1 */
       1,  /* U+E0008 - U+E000F : 0x11111111 */
       1,  /* U+E0010 - U+E0017 : 0x11111111 */
       1,  /* U+E0018 - U+E001F : 0x11111111 */
      11,  /* U+E0020 - U+E0027 : 0xBBBBBBBB */
      11,  /* U+E0028 - U+E002F : 0xBBBBBBBB */
      11,  /* U+E0030 - U+E0037 : 0xBBBBBBBB */
      11,  /* U+E0038 - U+E003F : 0xBBBBBBBB */
      11,  /* U+E0040 - U+E0047 : 0xBBBBBBBB */
@@ -3045,17 +3342,17 @@ static PRUint8 gBidiCatIdx15[64] = {
      10,  /* U+E01D0 - U+E01D7 : 0xAAAAAAAA */
      10,  /* U+E01D8 - U+E01DF : 0xAAAAAAAA */
      10,  /* U+E01E0 - U+E01E7 : 0xAAAAAAAA */
      10,  /* U+E01E8 - U+E01EF : 0xAAAAAAAA */
       1,  /* U+E01F0 - U+E01F7 : 0x11111111 */
       1,  /* U+E01F8 - U+E01FF : 0x11111111 */
 };
 
-static PRUint32 gBidiCatPat[183] = {
+static PRUint32 gBidiCatPat[204] = {
     0x00000000,  /* 0 */
     0x11111111,  /* 1 */
     0x22222222,  /* 2 */
     0x33333333,  /* 3 */
     0x44444444,  /* 4 */
     0x55555555,  /* 5 */
     0x66666666,  /* 6 */
     0x77777777,  /* 7 */
@@ -3106,166 +3403,187 @@ static PRUint32 gBidiCatPat[183] = {
     0xA33AAAAA,  /* 52 */
     0x33AAAA9A,  /* 53 */
     0x33333355,  /* 54 */
     0xB3333333,  /* 55 */
     0x333333A3,  /* 56 */
     0xAAAAA222,  /* 57 */
     0x9922AAAA,  /* 58 */
     0x22222299,  /* 59 */
-    0x11111AA1,  /* 60 */
-    0x111A1111,  /* 61 */
-    0xAAAAAAA1,  /* 62 */
-    0x11A1111A,  /* 63 */
-    0x111AAAA1,  /* 64 */
-    0x1111AA11,  /* 65 */
-    0x111111A1,  /* 66 */
-    0x11A11111,  /* 67 */
-    0x11117711,  /* 68 */
-    0xA1111AA1,  /* 69 */
-    0x11AAA11A,  /* 70 */
-    0x11A111AA,  /* 71 */
-    0xA1AAAAA1,  /* 72 */
-    0x11111171,  /* 73 */
-    0xA11A1111,  /* 74 */
-    0x1A111111,  /* 75 */
-    0x11111A11,  /* 76 */
-    0x1111111A,  /* 77 */
-    0x11111979,  /* 78 */
-    0xAA111111,  /* 79 */
-    0xAA11111A,  /* 80 */
-    0x11AAAA1A,  /* 81 */
-    0x1AA11111,  /* 82 */
-    0x19999999,  /* 83 */
-    0x11AA1111,  /* 84 */
-    0x1A1AAA11,  /* 85 */
-    0xAAAA11A1,  /* 86 */
-    0x71111AAA,  /* 87 */
-    0xA1111111,  /* 88 */
-    0x1AAAAAAA,  /* 89 */
-    0x111AA1AA,  /* 90 */
-    0x11AAAAAA,  /* 91 */
-    0xA1A11111,  /* 92 */
-    0x119999A1,  /* 93 */
-    0xAA1AAAAA,  /* 94 */
-    0x111AAAAA,  /* 95 */
-    0xAAA11111,  /* 96 */
-    0xAAAAAA1A,  /* 97 */
-    0x1AA11AA1,  /* 98 */
-    0xAA1111AA,  /* 99 */
-    0x1AA11A11,  /* 100 */
-    0x11111199,  /* 101 */
-    0x1111111E,  /* 102 */
-    0x11199111,  /* 103 */
-    0x111AAA11,  /* 104 */
-    0x1111AAAA,  /* 105 */
-    0x11A17111,  /* 106 */
-    0x1EAAA999,  /* 107 */
-    0xA1111AAA,  /* 108 */
-    0x1111AAA1,  /* 109 */
-    0x11991119,  /* 110 */
-    0x99111111,  /* 111 */
-    0xAA1A1111,  /* 112 */
-    0x111A1AAA,  /* 113 */
-    0x11AAAA11,  /* 114 */
-    0xAAAA1111,  /* 115 */
-    0xAA11AAAA,  /* 116 */
-    0x91911111,  /* 117 */
-    0x19911111,  /* 118 */
-    0x21BBBEEE,  /* 119 */
-    0x8FFFFFCE,  /* 120 */
-    0x99977777,  /* 121 */
-    0x99989999,  /* 122 */
-    0xE9999999,  /* 123 */
-    0x111BBBBB,  /* 124 */
-    0xBBBBBB11,  /* 125 */
-    0x55551115,  /* 126 */
-    0x19996655,  /* 127 */
-    0x11777777,  /* 128 */
-    0x19999199,  /* 129 */
-    0x99191111,  /* 130 */
-    0x99111119,  /* 131 */
-    0x91919999,  /* 132 */
-    0x17111191,  /* 133 */
-    0x11119911,  /* 134 */
-    0x11199999,  /* 135 */
-    0x11999911,  /* 136 */
-    0x99997699,  /* 137 */
-    0x11999999,  /* 138 */
-    0x99199999,  /* 139 */
-    0x11111999,  /* 140 */
-    0x11115555,  /* 141 */
-    0x99919999,  /* 142 */
-    0x11119999,  /* 143 */
-    0x99199991,  /* 144 */
-    0x99991199,  /* 145 */
-    0x99999991,  /* 146 */
-    0x19111999,  /* 147 */
-    0x11191999,  /* 148 */
-    0x99999199,  /* 149 */
-    0x1119999E,  /* 150 */
-    0xAAAAAA11,  /* 151 */
-    0x11199AA1,  /* 152 */
-    0x11119111,  /* 153 */
-    0x19991111,  /* 154 */
-    0x99991111,  /* 155 */
-    0x11119AAA,  /* 156 */
-    0x99AA1111,  /* 157 */
-    0x1A111A11,  /* 158 */
-    0x1111A111,  /* 159 */
-    0x1AAAAAA1,  /* 160 */
-    0x2A211111,  /* 161 */
-    0x22222262,  /* 162 */
-    0x99333333,  /* 163 */
-    0x33933333,  /* 164 */
-    0x99891898,  /* 165 */
-    0x79999999,  /* 166 */
-    0x19996699,  /* 167 */
-    0x11119779,  /* 168 */
-    0x99777991,  /* 169 */
-    0x17799977,  /* 170 */
-    0x11999991,  /* 171 */
-    0x11111191,  /* 172 */
-    0x92222222,  /* 173 */
-    0x2AA2AAA2,  /* 174 */
-    0xAAAA2222,  /* 175 */
-    0xA2222AAA,  /* 176 */
-    0xBBBBB111,  /* 177 */
-    0xAAAAABBB,  /* 178 */
-    0xAAA11AAA,  /* 179 */
-    0x119AAA99,  /* 180 */
-    0x55111111,  /* 181 */
-    0x111111B1,  /* 182 */
+    0xAA222222,  /* 60 */
+    0xAAAAA2AA,  /* 61 */
+    0xAAA2AAAA,  /* 62 */
+    0x22AAAAA2,  /* 63 */
+    0x11111AAA,  /* 64 */
+    0x111A1111,  /* 65 */
+    0xAAAAAAA1,  /* 66 */
+    0x11A1111A,  /* 67 */
+    0x11AAAAA1,  /* 68 */
+    0x1111AA11,  /* 69 */
+    0x111111A1,  /* 70 */
+    0x111AAAA1,  /* 71 */
+    0x11A11111,  /* 72 */
+    0x11117711,  /* 73 */
+    0x11117111,  /* 74 */
+    0x11111AA1,  /* 75 */
+    0xA1111AA1,  /* 76 */
+    0x11AAA11A,  /* 77 */
+    0x11A111AA,  /* 78 */
+    0xA1AAAAA1,  /* 79 */
+    0x11111171,  /* 80 */
+    0xA11A1111,  /* 81 */
+    0x1A111111,  /* 82 */
+    0x11111A11,  /* 83 */
+    0x1111111A,  /* 84 */
+    0x11111979,  /* 85 */
+    0xAA111111,  /* 86 */
+    0xAA11111A,  /* 87 */
+    0x11AAAA1A,  /* 88 */
+    0x1AA11111,  /* 89 */
+    0x19999999,  /* 90 */
+    0x11AA1111,  /* 91 */
+    0x1A1AAA11,  /* 92 */
+    0xAAAA11A1,  /* 93 */
+    0x71111AAA,  /* 94 */
+    0xA1111111,  /* 95 */
+    0x1AAAAAAA,  /* 96 */
+    0x111AA1AA,  /* 97 */
+    0x11AAAAAA,  /* 98 */
+    0xA1A11111,  /* 99 */
+    0x119999A1,  /* 100 */
+    0xAA1AAAAA,  /* 101 */
+    0x111AAAAA,  /* 102 */
+    0xAAA11111,  /* 103 */
+    0xAAAAAA1A,  /* 104 */
+    0x1AA11AA1,  /* 105 */
+    0xAA1111AA,  /* 106 */
+    0x1AA11A11,  /* 107 */
+    0x11111199,  /* 108 */
+    0x1111111E,  /* 109 */
+    0x11199111,  /* 110 */
+    0x111AAA11,  /* 111 */
+    0x1111AAAA,  /* 112 */
+    0x11A17111,  /* 113 */
+    0x1EAAA999,  /* 114 */
+    0xA1111AAA,  /* 115 */
+    0x1111AAA1,  /* 116 */
+    0x11991119,  /* 117 */
+    0x99111111,  /* 118 */
+    0xAAA11A1A,  /* 119 */
+    0xA11AAAAA,  /* 120 */
+    0xAA1A1111,  /* 121 */
+    0x111A1AAA,  /* 122 */
+    0x11AAAA11,  /* 123 */
+    0xAAAA1111,  /* 124 */
+    0xAA11AAAA,  /* 125 */
+    0xAAAA1AAA,  /* 126 */
+    0x91911111,  /* 127 */
+    0x19911111,  /* 128 */
+    0x21BBBEEE,  /* 129 */
+    0x8FFFFFCE,  /* 130 */
+    0x99977777,  /* 131 */
+    0x99989999,  /* 132 */
+    0xE9999999,  /* 133 */
+    0x111BBBBB,  /* 134 */
+    0xBBBBBB11,  /* 135 */
+    0x55551115,  /* 136 */
+    0x19996655,  /* 137 */
+    0x11111117,  /* 138 */
+    0x19999199,  /* 139 */
+    0x99191111,  /* 140 */
+    0x99111119,  /* 141 */
+    0x91919999,  /* 142 */
+    0x17111191,  /* 143 */
+    0x11119911,  /* 144 */
+    0x11199999,  /* 145 */
+    0x11999911,  /* 146 */
+    0x11111191,  /* 147 */
+    0x99997699,  /* 148 */
+    0x11999999,  /* 149 */
+    0x99199999,  /* 150 */
+    0x11111999,  /* 151 */
+    0x11115555,  /* 152 */
+    0x99919999,  /* 153 */
+    0x11119199,  /* 154 */
+    0x99199991,  /* 155 */
+    0x99991199,  /* 156 */
+    0x99999991,  /* 157 */
+    0x99111999,  /* 158 */
+    0x11191999,  /* 159 */
+    0xA1111999,  /* 160 */
+    0x99999199,  /* 161 */
+    0x11119999,  /* 162 */
+    0x1119999E,  /* 163 */
+    0xAAAAAA11,  /* 164 */
+    0x11199AA1,  /* 165 */
+    0x11119111,  /* 166 */
+    0x19991111,  /* 167 */
+    0x99991111,  /* 168 */
+    0x11119AAA,  /* 169 */
+    0x99AA1111,  /* 170 */
+    0x1A111A11,  /* 171 */
+    0x1111A111,  /* 172 */
+    0x11111177,  /* 173 */
+    0xAA11A111,  /* 174 */
+    0x111A11AA,  /* 175 */
+    0x1AAAAAA1,  /* 176 */
+    0xA11AAA1A,  /* 177 */
+    0x2A211111,  /* 178 */
+    0x22222262,  /* 179 */
+    0x99333333,  /* 180 */
+    0x33933333,  /* 181 */
+    0x99891898,  /* 182 */
+    0x79999999,  /* 183 */
+    0x19996699,  /* 184 */
+    0x11119779,  /* 185 */
+    0x99777991,  /* 186 */
+    0x17799977,  /* 187 */
+    0x11999991,  /* 188 */
+    0x92222222,  /* 189 */
+    0x2AA2AAA2,  /* 190 */
+    0xAAAA2222,  /* 191 */
+    0xA2222AAA,  /* 192 */
+    0x99999992,  /* 193 */
+    0x24444444,  /* 194 */
+    0x1AAAA111,  /* 195 */
+    0xBBBBB111,  /* 196 */
+    0xAAAAABBB,  /* 197 */
+    0xAAA11AAA,  /* 198 */
+    0x119AAA99,  /* 199 */
+    0x11911111,  /* 200 */
+    0x55111111,  /* 201 */
+    0x11111555,  /* 202 */
+    0x111111B1,  /* 203 */
 };
 
 static eBidiCategory GetBidiCat(PRUint32 u)
 {
     PRUint32 pat;
     PRUint16 patidx;
 
     /*  Handle blocks which use index table mapping */   
 
-    /* Handle U+0000 to U+07FF */
-    if (u<=((PRUint32)0x07FF)) {
+    /* Handle U+0000 to U+33FF */
+    if (u<=((PRUint32)0x33FF)) {
         patidx = gBidiCatIdx1 [( u  >> 3 )];
     }
 
-    /* Handle U+0900 to U+33FF */
-    else if ((((PRUint32)0x0900)<=u)&&(u<=((PRUint32)0x33FF))) {
-        patidx = gBidiCatIdx2 [( (u -(PRUint32) 0x0900) >> 3 )];
-    }
-
     /* Handle U+4DC0 to U+4DFF */
     else if ((((PRUint32)0x4DC0)<=u)&&(u<=((PRUint32)0x4DFF))) {
-        patidx = gBidiCatIdx3 [( (u -(PRUint32) 0x4DC0) >> 3 )];
+        patidx = gBidiCatIdx2 [( (u -(PRUint32) 0x4DC0) >> 3 )];
     }
 
-    /* Handle U+A000 to U+AA7F */
-    else if ((((PRUint32)0xA000)<=u)&&(u<=((PRUint32)0xAA7F))) {
-        patidx = gBidiCatIdx4 [( (u -(PRUint32) 0xA000) >> 3 )];
+    /* Handle U+A000 to U+ABFF */
+    else if ((((PRUint32)0xA000)<=u)&&(u<=((PRUint32)0xABFF))) {
+        patidx = gBidiCatIdx3 [( (u -(PRUint32) 0xA000) >> 3 )];
+    }
+
+    /* Handle U+D7B0 to U+D7FF */
+    else if ((((PRUint32)0xD7B0)<=u)&&(u<=((PRUint32)0xD7FF))) {
+        patidx = gBidiCatIdx4 [( (u -(PRUint32) 0xD7B0) >> 3 )];
     }
 
     /* Handle U+F900 to U+1019F */
     else if ((((PRUint32)0xF900)<=u)&&(u<=((PRUint32)0x1019F))) {
         patidx = gBidiCatIdx5 [( (u -(PRUint32) 0xF900) >> 3 )];
     }
 
     /* Handle U+101D0 to U+101FF */
@@ -3273,54 +3591,79 @@ static eBidiCategory GetBidiCat(PRUint32
         patidx = gBidiCatIdx6 [( (u -(PRUint32) 0x101D0) >> 3 )];
     }
 
     /* Handle U+10280 to U+104FF */
     else if ((((PRUint32)0x10280)<=u)&&(u<=((PRUint32)0x104FF))) {
         patidx = gBidiCatIdx7 [( (u -(PRUint32) 0x10280) >> 3 )];
     }
 
-    /* Handle U+10800 to U+1083F */
-    else if ((((PRUint32)0x10800)<=u)&&(u<=((PRUint32)0x1083F))) {
+    /* Handle U+10800 to U+1085F */
+    else if ((((PRUint32)0x10800)<=u)&&(u<=((PRUint32)0x1085F))) {
         patidx = gBidiCatIdx8 [( (u -(PRUint32) 0x10800) >> 3 )];
     }
 
     /* Handle U+10900 to U+1093F */
     else if ((((PRUint32)0x10900)<=u)&&(u<=((PRUint32)0x1093F))) {
         patidx = gBidiCatIdx9 [( (u -(PRUint32) 0x10900) >> 3 )];
     }
 
-    /* Handle U+10A00 to U+10A5F */
-    else if ((((PRUint32)0x10A00)<=u)&&(u<=((PRUint32)0x10A5F))) {
+    /* Handle U+10A00 to U+10A7F */
+    else if ((((PRUint32)0x10A00)<=u)&&(u<=((PRUint32)0x10A7F))) {
         patidx = gBidiCatIdx10 [( (u -(PRUint32) 0x10A00) >> 3 )];
     }
 
+    /* Handle U+10B00 to U+10B7F */
+    else if ((((PRUint32)0x10B00)<=u)&&(u<=((PRUint32)0x10B7F))) {
+        patidx = gBidiCatIdx11 [( (u -(PRUint32) 0x10B00) >> 3 )];
+    }
+
+    /* Handle U+10C00 to U+10C4F */
+    else if ((((PRUint32)0x10C00)<=u)&&(u<=((PRUint32)0x10C4F))) {
+        patidx = gBidiCatIdx12 [( (u -(PRUint32) 0x10C00) >> 3 )];
+    }
+
+    /* Handle U+10E60 to U+10E7F */
+    else if ((((PRUint32)0x10E60)<=u)&&(u<=((PRUint32)0x10E7F))) {
+        patidx = gBidiCatIdx13 [( (u -(PRUint32) 0x10E60) >> 3 )];
+    }
+
+    /* Handle U+11080 to U+110CF */
+    else if ((((PRUint32)0x11080)<=u)&&(u<=((PRUint32)0x110CF))) {
+        patidx = gBidiCatIdx14 [( (u -(PRUint32) 0x11080) >> 3 )];
+    }
+
     /* Handle U+12000 to U+1247F */
     else if ((((PRUint32)0x12000)<=u)&&(u<=((PRUint32)0x1247F))) {
-        patidx = gBidiCatIdx11 [( (u -(PRUint32) 0x12000) >> 3 )];
+        patidx = gBidiCatIdx15 [( (u -(PRUint32) 0x12000) >> 3 )];
+    }
+
+    /* Handle U+13000 to U+1342F */
+    else if ((((PRUint32)0x13000)<=u)&&(u<=((PRUint32)0x1342F))) {
+        patidx = gBidiCatIdx16 [( (u -(PRUint32) 0x13000) >> 3 )];
     }
 
     /* Handle U+1D000 to U+1D7FF */
     else if ((((PRUint32)0x1D000)<=u)&&(u<=((PRUint32)0x1D7FF))) {
-        patidx = gBidiCatIdx12 [( (u -(PRUint32) 0x1D000) >> 3 )];
+        patidx = gBidiCatIdx17 [( (u -(PRUint32) 0x1D000) >> 3 )];
     }
 
-    /* Handle U+1F000 to U+1F1FF */
-    else if ((((PRUint32)0x1F000)<=u)&&(u<=((PRUint32)0x1F1FF))) {
-        patidx = gBidiCatIdx13 [( (u -(PRUint32) 0x1F000) >> 3 )];
+    /* Handle U+1F000 to U+1F24F */
+    else if ((((PRUint32)0x1F000)<=u)&&(u<=((PRUint32)0x1F24F))) {
+        patidx = gBidiCatIdx18 [( (u -(PRUint32) 0x1F000) >> 3 )];
     }
 
     /* Handle U+2F800 to U+2FA1F */
     else if ((((PRUint32)0x2F800)<=u)&&(u<=((PRUint32)0x2FA1F))) {
-        patidx = gBidiCatIdx14 [( (u -(PRUint32) 0x2F800) >> 3 )];
+        patidx = gBidiCatIdx19 [( (u -(PRUint32) 0x2F800) >> 3 )];
     }
 
     /* Handle U+E0000 to U+E01FF */
     else if ((((PRUint32)0xE0000)<=u)&&(u<=((PRUint32)0xE01FF))) {
-        patidx = gBidiCatIdx15 [( (u -(PRUint32) 0xE0000) >> 3 )];
+        patidx = gBidiCatIdx20 [( (u -(PRUint32) 0xE0000) >> 3 )];
     }
 
     else {
       /* defaults for unassigned characters
        * see http://www.unicode.org/Public/UNIDATA/extracted/DerivedBidiClass.txt
        * and http://www.unicode.org/Public/UNIDATA/Blocks.txt
        */
       if (((u >= 0x0590) && (u <= 0x05FF)) ||
@@ -3339,9 +3682,9 @@ static eBidiCategory GetBidiCat(PRUint32
     if (patidx < 0x10)
         return (eBidiCategory)patidx;
     else {
         pat = gBidiCatPat[patidx];
         return (eBidiCategory)((pat  >> ((u % 8) * 4)) & 0x0F);
     }
 }
 
-/* total data size = 3694 */
+/* total data size = 4060 */
--- a/intl/unicharutil/util/genbidicattable.pl
+++ b/intl/unicharutil/util/genbidicattable.pl
@@ -188,29 +188,34 @@ while(<UNICODATA>) {
          print "WARNING !!!! error in handling special block\n\n";
       }
    }
 }
 
 # XXX - How can this be made more flexible as new blocks are added to the UCDB?
 
 @range = (
-  0x0000,   0x07ff, 
-  0x0900,   0x33ff,
+  0x0000,   0x33ff,
   0x4dc0,   0x4dff,
-  0xa000,   0xaa7f,
+  0xa000,   0xabff,
+  0xd7b0,   0xd7ff,
   0xf900,  0x1019f,
   0x101d0, 0x101ff,
   0x10280, 0x104ff,
-  0x10800, 0x1083f,
+  0x10800, 0x1085f,
   0x10900, 0x1093f,
-  0x10a00, 0x10a5f,
+  0x10a00, 0x10a7f,
+  0x10b00, 0x10b7f,
+  0x10c00, 0x10c4f,
+  0x10e60, 0x10e7f,
+  0x11080, 0x110cf,
   0x12000, 0x1247f,
+  0x13000, 0x1342f,
   0x1d000, 0x1d7ff,
-  0x1f000, 0x1f1ff,
+  0x1f000, 0x1f24f,
   0x2f800, 0x2fa1f,
   0xe0000, 0xe01ff  
 );
 
 
 $totaldata = 0;
 
 $tt=($#range+1) / 2;
--- a/intl/unicharutil/util/symmtable.h
+++ b/intl/unicharutil/util/symmtable.h
@@ -121,17 +121,17 @@ const static PRUint16 symmtable[13] [256
 /* D_ */ 0x16d0, 0x16d1, 0x16d2, 0x16d3, 0x16d4, 0x16d5, 0x16d6, 0x16d7, 0x16d8, 0x16d9, 0x16da, 0x16db, 0x16dc, 0x16dd, 0x16de, 0x16df, 
 /* E_ */ 0x16e0, 0x16e1, 0x16e2, 0x16e3, 0x16e4, 0x16e5, 0x16e6, 0x16e7, 0x16e8, 0x16e9, 0x16ea, 0x16eb, 0x16ec, 0x16ed, 0x16ee, 0x16ef, 
 /* F_ */ 0x16f0, 0x16f1, 0x16f2, 0x16f3, 0x16f4, 0x16f5, 0x16f6, 0x16f7, 0x16f8, 0x16f9, 0x16fa, 0x16fb, 0x16fc, 0x16fd, 0x16fe, 0x16ff
  },
  {
 /* Block U20__ */
 /*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
 /* 0_ */ 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 
-/* 1_ */ 0x2010, 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2019, 0x2018, 0x201a, 0x201b, 0x201d, 0x201c, 0x201e, 0x201f, 
+/* 1_ */ 0x2010, 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018, 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 
 /* 2_ */ 0x2020, 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028, 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 
 /* 3_ */ 0x2030, 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038, 0x203a, 0x2039, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 
 /* 4_ */ 0x2040, 0x2041, 0x2042, 0x2043, 0x2044, 0x2046, 0x2045, 0x2047, 0x2048, 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 
 /* 5_ */ 0x2050, 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058, 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 
 /* 6_ */ 0x2060, 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068, 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 
 /* 7_ */ 0x2070, 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x207a, 0x207b, 0x207c, 0x207e, 0x207d, 0x207f, 
 /* 8_ */ 0x2080, 0x2081, 0x2082, 0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0x208a, 0x208b, 0x208c, 0x208e, 0x208d, 0x208f, 
 /* 9_ */ 0x2090, 0x2091, 0x2092, 0x2093, 0x2094, 0x2095, 0x2096, 0x2097, 0x2098, 0x2099, 0x209a, 0x209b, 0x209c, 0x209d, 0x209e, 0x209f, 
@@ -192,19 +192,19 @@ const static PRUint16 symmtable[13] [256
 /* 4_ */ 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274c, 0x274d, 0x274e, 0x274f, 
 /* 5_ */ 0x2750, 0x2751, 0x2752, 0x2753, 0x2754, 0x2755, 0x2756, 0x2757, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, 0x275e, 0x275f, 
 /* 6_ */ 0x2760, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x2769, 0x2768, 0x276b, 0x276a, 0x276d, 0x276c, 0x276f, 0x276e, 
 /* 7_ */ 0x2771, 0x2770, 0x2773, 0x2772, 0x2775, 0x2774, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c, 0x277d, 0x277e, 0x277f, 
 /* 8_ */ 0x2780, 0x2781, 0x2782, 0x2783, 0x2784, 0x2785, 0x2786, 0x2787, 0x2788, 0x2789, 0x278a, 0x278b, 0x278c, 0x278d, 0x278e, 0x278f, 
 /* 9_ */ 0x2790, 0x2791, 0x2792, 0x2793, 0x2794, 0x2795, 0x2796, 0x2797, 0x2798, 0x2799, 0x279a, 0x279b, 0x279c, 0x279d, 0x279e, 0x279f, 
 /* A_ */ 0x27a0, 0x27a1, 0x27a2, 0x27a3, 0x27a4, 0x27a5, 0x27a6, 0x27a7, 0x27a8, 0x27a9, 0x27aa, 0x27ab, 0x27ac, 0x27ad, 0x27ae, 0x27af, 
 /* B_ */ 0x27b0, 0x27b1, 0x27b2, 0x27b3, 0x27b4, 0x27b5, 0x27b6, 0x27b7, 0x27b8, 0x27b9, 0x27ba, 0x27bb, 0x27bc, 0x27bd, 0x27be, 0x27bf, 
-/* C_ */ 0x27c0, 0x27c1, 0x27c2, 0x27c4, 0x27c3, 0x27c6, 0x27c5, 0x27c7, 0x27c8, 0x27c9, 0x27ca, 0x27cb, 0x27cc, 0x27cd, 0x27ce, 0x27cf, 
+/* C_ */ 0x27c0, 0x27c1, 0x27c2, 0x27c4, 0x27c3, 0x27c6, 0x27c5, 0x27c7, 0x27c9, 0x27c8, 0x27ca, 0x27cb, 0x27cc, 0x27cd, 0x27ce, 0x27cf, 
 /* D_ */ 0x27d0, 0x27d1, 0x27d2, 0x27d3, 0x27d4, 0x27d6, 0x27d5, 0x27d7, 0x27d8, 0x27d9, 0x27da, 0x27db, 0x27dc, 0x27de, 0x27dd, 0x27df, 
-/* E_ */ 0x27e0, 0x27e1, 0x27e3, 0x27e2, 0x27e5, 0x27e4, 0x27e7, 0x27e6, 0x27e9, 0x27e8, 0x27eb, 0x27ea, 0x27ec, 0x27ed, 0x27ee, 0x27ef, 
+/* E_ */ 0x27e0, 0x27e1, 0x27e3, 0x27e2, 0x27e5, 0x27e4, 0x27e7, 0x27e6, 0x27e9, 0x27e8, 0x27eb, 0x27ea, 0x27ed, 0x27ec, 0x27ef, 0x27ee, 
 /* F_ */ 0x27f0, 0x27f1, 0x27f2, 0x27f3, 0x27f4, 0x27f5, 0x27f6, 0x27f7, 0x27f8, 0x27f9, 0x27fa, 0x27fb, 0x27fc, 0x27fd, 0x27fe, 0x27ff
  },
  {
 /* Block U29__ */
 /*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
 /* 0_ */ 0x2900, 0x2901, 0x2902, 0x2903, 0x2904, 0x2905, 0x2906, 0x2907, 0x2908, 0x2909, 0x290a, 0x290b, 0x290c, 0x290d, 0x290e, 0x290f, 
 /* 1_ */ 0x2910, 0x2911, 0x2912, 0x2913, 0x2914, 0x2915, 0x2916, 0x2917, 0x2918, 0x2919, 0x291a, 0x291b, 0x291c, 0x291d, 0x291e, 0x291f, 
 /* 2_ */ 0x2920, 0x2921, 0x2922, 0x2923, 0x2924, 0x2925, 0x2926, 0x2927, 0x2928, 0x2929, 0x292a, 0x292b, 0x292c, 0x292d, 0x292e, 0x292f, 
@@ -242,17 +242,17 @@ const static PRUint16 symmtable[13] [256
 /* E_ */ 0x2ae0, 0x2ae1, 0x2ae2, 0x22a9, 0x22a8, 0x22ab, 0x2ae6, 0x2ae7, 0x2ae8, 0x2ae9, 0x2aea, 0x2aeb, 0x2aed, 0x2aec, 0x2aee, 0x2aef, 
 /* F_ */ 0x2af0, 0x2af1, 0x2af2, 0x2af3, 0x2af4, 0x2af5, 0x2af6, 0x2af8, 0x2af7, 0x2afa, 0x2af9, 0x2afb, 0x2afc, 0x2afd, 0x2afe, 0x2aff
  },
  {
 /* Block U2E__ */
 /*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
 /* 0_ */ 0x2e00, 0x2e01, 0x2e03, 0x2e02, 0x2e05, 0x2e04, 0x2e06, 0x2e07, 0x2e08, 0x2e0a, 0x2e09, 0x2e0b, 0x2e0d, 0x2e0c, 0x2e0e, 0x2e0f, 
 /* 1_ */ 0x2e10, 0x2e11, 0x2e12, 0x2e13, 0x2e14, 0x2e15, 0x2e16, 0x2e17, 0x2e18, 0x2e19, 0x2e1a, 0x2e1b, 0x2e1d, 0x2e1c, 0x2e1e, 0x2e1f, 
-/* 2_ */ 0x2e20, 0x2e21, 0x2e22, 0x2e23, 0x2e24, 0x2e25, 0x2e26, 0x2e27, 0x2e28, 0x2e29, 0x2e2a, 0x2e2b, 0x2e2c, 0x2e2d, 0x2e2e, 0x2e2f, 
+/* 2_ */ 0x2e21, 0x2e20, 0x2e23, 0x2e22, 0x2e25, 0x2e24, 0x2e27, 0x2e26, 0x2e29, 0x2e28, 0x2e2a, 0x2e2b, 0x2e2c, 0x2e2d, 0x2e2e, 0x2e2f, 
 /* 3_ */ 0x2e30, 0x2e31, 0x2e32, 0x2e33, 0x2e34, 0x2e35, 0x2e36, 0x2e37, 0x2e38, 0x2e39, 0x2e3a, 0x2e3b, 0x2e3c, 0x2e3d, 0x2e3e, 0x2e3f, 
 /* 4_ */ 0x2e40, 0x2e41, 0x2e42, 0x2e43, 0x2e44, 0x2e45, 0x2e46, 0x2e47, 0x2e48, 0x2e49, 0x2e4a, 0x2e4b, 0x2e4c, 0x2e4d, 0x2e4e, 0x2e4f, 
 /* 5_ */ 0x2e50, 0x2e51, 0x2e52, 0x2e53, 0x2e54, 0x2e55, 0x2e56, 0x2e57, 0x2e58, 0x2e59, 0x2e5a, 0x2e5b, 0x2e5c, 0x2e5d, 0x2e5e, 0x2e5f, 
 /* 6_ */ 0x2e60, 0x2e61, 0x2e62, 0x2e63, 0x2e64, 0x2e65, 0x2e66, 0x2e67, 0x2e68, 0x2e69, 0x2e6a, 0x2e6b, 0x2e6c, 0x2e6d, 0x2e6e, 0x2e6f, 
 /* 7_ */ 0x2e70, 0x2e71, 0x2e72, 0x2e73, 0x2e74, 0x2e75, 0x2e76, 0x2e77, 0x2e78, 0x2e79, 0x2e7a, 0x2e7b, 0x2e7c, 0x2e7d, 0x2e7e, 0x2e7f, 
 /* 8_ */ 0x2e80, 0x2e81, 0x2e82, 0x2e83, 0x2e84, 0x2e85, 0x2e86, 0x2e87, 0x2e88, 0x2e89, 0x2e8a, 0x2e8b, 0x2e8c, 0x2e8d, 0x2e8e, 0x2e8f, 
 /* 9_ */ 0x2e90, 0x2e91, 0x2e92, 0x2e93, 0x2e94, 0x2e95, 0x2e96, 0x2e97, 0x2e98, 0x2e99, 0x2e9a, 0x2e9b, 0x2e9c, 0x2e9d, 0x2e9e, 0x2e9f, 
 /* A_ */ 0x2ea0, 0x2ea1, 0x2ea2, 0x2ea3, 0x2ea4, 0x2ea5, 0x2ea6, 0x2ea7, 0x2ea8, 0x2ea9, 0x2eaa, 0x2eab, 0x2eac, 0x2ead, 0x2eae, 0x2eaf, 
@@ -261,17 +261,17 @@ const static PRUint16 symmtable[13] [256
 /* D_ */ 0x2ed0, 0x2ed1, 0x2ed2, 0x2ed3, 0x2ed4, 0x2ed5, 0x2ed6, 0x2ed7, 0x2ed8, 0x2ed9, 0x2eda, 0x2edb, 0x2edc, 0x2edd, 0x2ede, 0x2edf, 
 /* E_ */ 0x2ee0, 0x2ee1, 0x2ee2, 0x2ee3, 0x2ee4, 0x2ee5, 0x2ee6, 0x2ee7, 0x2ee8, 0x2ee9, 0x2eea, 0x2eeb, 0x2eec, 0x2eed, 0x2eee, 0x2eef, 
 /* F_ */ 0x2ef0, 0x2ef1, 0x2ef2, 0x2ef3, 0x2ef4, 0x2ef5, 0x2ef6, 0x2ef7, 0x2ef8, 0x2ef9, 0x2efa, 0x2efb, 0x2efc, 0x2efd, 0x2efe, 0x2eff
  },
  {
 /* Block U30__ */
 /*           _0      _1      _2      _3      _4      _5      _6      _7      _8      _9      _A      _B      _C      _D      _E      _F */
 /* 0_ */ 0x3000, 0x3001, 0x3002, 0x3003, 0x3004, 0x3005, 0x3006, 0x3007, 0x3009, 0x3008, 0x300b, 0x300a, 0x300d, 0x300c, 0x300f, 0x300e, 
-/* 1_ */ 0x3011, 0x3010, 0x3012, 0x3013, 0x3015, 0x3014, 0x3017, 0x3016, 0x3019, 0x3018, 0x301b, 0x301a, 0x301c, 0x301e, 0x301d, 0x301f, 
+/* 1_ */ 0x3011, 0x3010, 0x3012, 0x3013, 0x3015, 0x3014, 0x3017, 0x3016, 0x3019, 0x3018, 0x301b, 0x301a, 0x301c, 0x301d, 0x301e, 0x301f, 
 /* 2_ */ 0x3020, 0x3021, 0x3022, 0x3023, 0x3024, 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c, 0x302d, 0x302e, 0x302f, 
 /* 3_ */ 0x3030, 0x3031, 0x3032, 0x3033, 0x3034, 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x303a, 0x303b, 0x303c, 0x303d, 0x303e, 0x303f, 
 /* 4_ */ 0x3040, 0x3041, 0x3042, 0x3043, 0x3044, 0x3045, 0x3046, 0x3047, 0x3048, 0x3049, 0x304a, 0x304b, 0x304c, 0x304d, 0x304e, 0x304f, 
 /* 5_ */ 0x3050, 0x3051, 0x3052, 0x3053, 0x3054, 0x3055, 0x3056, 0x3057, 0x3058, 0x3059, 0x305a, 0x305b, 0x305c, 0x305d, 0x305e, 0x305f, 
 /* 6_ */ 0x3060, 0x3061, 0x3062, 0x3063, 0x3064, 0x3065, 0x3066, 0x3067, 0x3068, 0x3069, 0x306a, 0x306b, 0x306c, 0x306d, 0x306e, 0x306f, 
 /* 7_ */ 0x3070, 0x3071, 0x3072, 0x3073, 0x3074, 0x3075, 0x3076, 0x3077, 0x3078, 0x3079, 0x307a, 0x307b, 0x307c, 0x307d, 0x307e, 0x307f, 
 /* 8_ */ 0x3080, 0x3081, 0x3082, 0x3083, 0x3084, 0x3085, 0x3086, 0x3087, 0x3088, 0x3089, 0x308a, 0x308b, 0x308c, 0x308d, 0x308e, 0x308f, 
 /* 9_ */ 0x3090, 0x3091, 0x3092, 0x3093, 0x3094, 0x3095, 0x3096, 0x3097, 0x3098, 0x3099, 0x309a, 0x309b, 0x309c, 0x309d, 0x309e, 0x309f, 
--- a/layout/generic/punct_marks.x-ccmap
+++ b/layout/generic/punct_marks.x-ccmap
@@ -67,17 +67,17 @@
   in macros for the array initializer and the array size. 
 
   (see bug 180266, bug 167136, and bug 224337)
 
   Additional notes: 
   The input file for this ccmap file was generated with the following shell commands:
   (see bug 263411 for details)
 
-  cut -d ';' -f 1-3 UnicodeData-4.0.1.txt | egrep 'Ps|Pe|Po|Pf|Pi' | cut -d ';' -f 1-2 \
+  cut -d ';' -f 1-3 UnicodeData-Latest.txt | egrep 'Ps|Pe|Po|Pf|Pi' | cut -d ';' -f 1-2 \
    | sed -e 's/;/ : /'  -e 's/^/  0X/'
  */
 
 /*
    VARIABLE:: gPuncCharsCCMapExt
    CLASS:: punct_marks
    DESCRIPTION:: Punctuation Marks (Unicode char. classes: Ps, Pe, Po, Pi, Pf)
 
@@ -145,16 +145,31 @@
    0X000709 : SYRIAC SUBLINEAR COLON SKEWED RIGHT
    0X00070A : SYRIAC CONTRACTION
    0X00070B : SYRIAC HARKLEAN OBELUS
    0X00070C : SYRIAC HARKLEAN METOBELUS
    0X00070D : SYRIAC HARKLEAN ASTERISCUS
    0X0007F7 : NKO SYMBOL GBAKURUNEN
    0X0007F8 : NKO COMMA
    0X0007F9 : NKO EXCLAMATION MARK
+   0X000830 : SAMARITAN PUNCTUATION NEQUDAA
+   0X000831 : SAMARITAN PUNCTUATION AFSAAQ
+   0X000832 : SAMARITAN PUNCTUATION ANGED
+   0X000833 : SAMARITAN PUNCTUATION BAU
+   0X000834 : SAMARITAN PUNCTUATION ATMAAU
+   0X000835 : SAMARITAN PUNCTUATION SHIYYAALAA
+   0X000836 : SAMARITAN ABBREVIATION MARK
+   0X000837 : SAMARITAN PUNCTUATION MELODIC QITSA
+   0X000838 : SAMARITAN PUNCTUATION ZIQAA
+   0X000839 : SAMARITAN PUNCTUATION QITSA
+   0X00083A : SAMARITAN PUNCTUATION ZAEF
+   0X00083B : SAMARITAN PUNCTUATION TURU
+   0X00083C : SAMARITAN PUNCTUATION ARKAANU
+   0X00083D : SAMARITAN PUNCTUATION SOF MASHFAAT
+   0X00083E : SAMARITAN PUNCTUATION ANNAAU
    0X000964 : DEVANAGARI DANDA
    0X000965 : DEVANAGARI DOUBLE DANDA
    0X000970 : DEVANAGARI ABBREVIATION SIGN
    0X000DF4 : SINHALA PUNCTUATION KUNDDALIYA
    0X000E4F : THAI CHARACTER FONGMAN
    0X000E5A : THAI CHARACTER ANGKHANKHU
    0X000E5B : THAI CHARACTER KHOMUT
    0X000F04 : TIBETAN MARK INITIAL YIG MGO MDUN MA
@@ -223,30 +238,44 @@
    0X001809 : MONGOLIAN MANCHU FULL STOP
    0X00180A : MONGOLIAN NIRUGU
    0X001944 : LIMBU EXCLAMATION MARK
    0X001945 : LIMBU QUESTION MARK
    0X0019DE : NEW TAI LUE SIGN LAE
    0X0019DF : NEW TAI LUE SIGN LAEV
    0X001A1E : BUGINESE PALLAWA
    0X001A1F : BUGINESE END OF SECTION
+   0X001AA0 : TAI THAM SIGN WIANG
+   0X001AA1 : TAI THAM SIGN WIANGWAAK
+   0X001AA2 : TAI THAM SIGN SAWAN
+   0X001AA3 : TAI THAM SIGN KEOW
+   0X001AA4 : TAI THAM SIGN HOY
+   0X001AA5 : TAI THAM SIGN DOKMAI
+   0X001AA6 : TAI THAM SIGN REVERSED ROTATED RANA
+   0X001AA8 : TAI THAM SIGN KAAN
+   0X001AA9 : TAI THAM SIGN KAANKUU
+   0X001AAA : TAI THAM SIGN SATKAAN
+   0X001AAB : TAI THAM SIGN SATKAANKUU
+   0X001AAC : TAI THAM SIGN HANG
+   0X001AAD : TAI THAM SIGN CAANG
    0X001B5A : BALINESE PANTI
    0X001B5B : BALINESE PAMADA
    0X001B5C : BALINESE WINDU
    0X001B5D : BALINESE CARIK PAMUNGKAH
    0X001B5E : BALINESE CARIK SIKI
    0X001B5F : BALINESE CARIK PAREREN
    0X001B60 : BALINESE PAMENENG
    0X001C3B : LEPCHA PUNCTUATION TA-ROL
    0X001C3C : LEPCHA PUNCTUATION NYET THYOOM TA-ROL
    0X001C3D : LEPCHA PUNCTUATION CER-WA
    0X001C3E : LEPCHA PUNCTUATION TSHOOK CER-WA
    0X001C3F : LEPCHA PUNCTUATION TSHOOK
    0X001C7E : OL CHIKI PUNCTUATION MUCAAD
    0X001C7F : OL CHIKI PUNCTUATION DOUBLE MUCAAD
+   0X001CD3 : VEDIC SIGN NIHSHVASA
    0X002016 : DOUBLE VERTICAL LINE
    0X002017 : DOUBLE LOW LINE
    0X002018 : LEFT SINGLE QUOTATION MARK
    0X002019 : RIGHT SINGLE QUOTATION MARK
    0X00201A : SINGLE LOW-9 QUOTATION MARK
    0X00201B : SINGLE HIGH-REVERSED-9 QUOTATION MARK
    0X00201C : LEFT DOUBLE QUOTATION MARK
    0X00201D : RIGHT DOUBLE QUOTATION MARK
@@ -409,16 +438,17 @@
    0X002E28 : LEFT DOUBLE PARENTHESIS
    0X002E29 : RIGHT DOUBLE PARENTHESIS
    0X002E2A : TWO DOTS OVER ONE DOT PUNCTUATION
    0X002E2B : ONE DOT OVER TWO DOTS PUNCTUATION
    0X002E2C : SQUARED FOUR DOT PUNCTUATION
    0X002E2D : FIVE DOT MARK
    0X002E2E : REVERSED QUESTION MARK
    0X002E30 : RING POINT
+   0X002E31 : WORD SEPARATOR MIDDLE DOT
    0X003001 : IDEOGRAPHIC COMMA
    0X003002 : IDEOGRAPHIC FULL STOP
    0X003003 : DITTO MARK
    0X003008 : LEFT ANGLE BRACKET
    0X003009 : RIGHT ANGLE BRACKET
    0X00300A : LEFT DOUBLE ANGLE BRACKET
    0X00300B : RIGHT DOUBLE ANGLE BRACKET
    0X00300C : LEFT CORNER BRACKET
@@ -435,34 +465,63 @@
    0X003019 : RIGHT WHITE TORTOISE SHELL BRACKET
    0X00301A : LEFT WHITE SQUARE BRACKET
    0X00301B : RIGHT WHITE SQUARE BRACKET
    0X00301D : REVERSED DOUBLE PRIME QUOTATION MARK
    0X00301E : DOUBLE PRIME QUOTATION MARK
    0X00301F : LOW DOUBLE PRIME QUOTATION MARK
    0X00303D : PART ALTERNATION MARK
    0X0030FB : KATAKANA MIDDLE DOT
+   0X00A4FE : LISU PUNCTUATION COMMA
+   0X00A4FF : LISU PUNCTUATION FULL STOP
    0X00A60D : VAI COMMA
    0X00A60E : VAI FULL STOP
    0X00A60F : VAI QUESTION MARK
    0X00A673 : SLAVONIC ASTERISK
    0X00A67E : CYRILLIC KAVYKA
+   0X00A6F2 : BAMUM NJAEMLI
+   0X00A6F3 : BAMUM FULL STOP
+   0X00A6F4 : BAMUM COLON
+   0X00A6F5 : BAMUM COMMA
+   0X00A6F6 : BAMUM SEMICOLON
+   0X00A6F7 : BAMUM QUESTION MARK
    0X00A874 : PHAGS-PA SINGLE HEAD MARK
    0X00A875 : PHAGS-PA DOUBLE HEAD MARK
    0X00A876 : PHAGS-PA MARK SHAD
    0X00A877 : PHAGS-PA MARK DOUBLE SHAD
    0X00A8CE : SAURASHTRA DANDA
    0X00A8CF : SAURASHTRA DOUBLE DANDA
+   0X00A8F8 : DEVANAGARI SIGN PUSHPIKA
+   0X00A8F9 : DEVANAGARI GAP FILLER
+   0X00A8FA : DEVANAGARI CARET
    0X00A92E : KAYAH LI SIGN CWI
    0X00A92F : KAYAH LI SIGN SHYA
    0X00A95F : REJANG SECTION MARK
+   0X00A9C1 : JAVANESE LEFT RERENGGAN
+   0X00A9C2 : JAVANESE RIGHT RERENGGAN
+   0X00A9C3 : JAVANESE PADA ANDAP
+   0X00A9C4 : JAVANESE PADA MADYA
+   0X00A9C5 : JAVANESE PADA LUHUR
+   0X00A9C6 : JAVANESE PADA WINDU
+   0X00A9C7 : JAVANESE PADA PANGKAT
+   0X00A9C8 : JAVANESE PADA LINGSA
+   0X00A9C9 : JAVANESE PADA LUNGSI
+   0X00A9CA : JAVANESE PADA ADEG
+   0X00A9CB : JAVANESE PADA ADEG ADEG
+   0X00A9CC : JAVANESE PADA PISELEH
+   0X00A9CD : JAVANESE TURNED PADA PISELEH
+   0X00A9DE : JAVANESE PADA TIRTA TUMETES
+   0X00A9DF : JAVANESE PADA ISEN-ISEN
    0X00AA5C : CHAM PUNCTUATION SPIRAL
    0X00AA5D : CHAM PUNCTUATION DANDA
    0X00AA5E : CHAM PUNCTUATION DOUBLE DANDA
    0X00AA5F : CHAM PUNCTUATION TRIPLE DANDA
+   0X00AADE : TAI VIET SYMBOL HO HOI
+   0X00AADF : TAI VIET SYMBOL KOI KOI
+   0X00ABEB : MEETEI MAYEK CHEIKHEI
    0X00FD3E : ORNATE LEFT PARENTHESIS
    0X00FD3F : ORNATE RIGHT PARENTHESIS
    0X00FE10 : PRESENTATION FORM FOR VERTICAL COMMA
    0X00FE11 : PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA
    0X00FE12 : PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP
    0X00FE13 : PRESENTATION FORM FOR VERTICAL COLON
    0X00FE14 : PRESENTATION FORM FOR VERTICAL SEMICOLON
    0X00FE15 : PRESENTATION FORM FOR VERTICAL EXCLAMATION MARK
@@ -541,594 +600,679 @@
    0X00FF62 : HALFWIDTH LEFT CORNER BRACKET
    0X00FF63 : HALFWIDTH RIGHT CORNER BRACKET
    0X00FF64 : HALFWIDTH IDEOGRAPHIC COMMA
    0X00FF65 : HALFWIDTH KATAKANA MIDDLE DOT
    0X010100 : AEGEAN WORD SEPARATOR LINE
    0X010101 : AEGEAN WORD SEPARATOR DOT
    0X01039F : UGARITIC WORD DIVIDER
    0X0103D0 : OLD PERSIAN WORD DIVIDER
+   0X010857 : IMPERIAL ARAMAIC SECTION SIGN
    0X01091F : PHOENICIAN WORD SEPARATOR
    0X01093F : LYDIAN TRIANGULAR MARK
    0X010A50 : KHAROSHTHI PUNCTUATION DOT
    0X010A51 : KHAROSHTHI PUNCTUATION SMALL CIRCLE
    0X010A52 : KHAROSHTHI PUNCTUATION CIRCLE
    0X010A53 : KHAROSHTHI PUNCTUATION CRESCENT BAR
    0X010A54 : KHAROSHTHI PUNCTUATION MANGALAM
    0X010A55 : KHAROSHTHI PUNCTUATION LOTUS
    0X010A56 : KHAROSHTHI PUNCTUATION DANDA
    0X010A57 : KHAROSHTHI PUNCTUATION DOUBLE DANDA
    0X010A58 : KHAROSHTHI PUNCTUATION LINES
+   0X010A7F : OLD SOUTH ARABIAN NUMERIC INDICATOR
+   0X010B39 : AVESTAN ABBREVIATION MARK
+   0X010B3A : TINY TWO DOTS OVER ONE DOT PUNCTUATION
+   0X010B3B : SMALL TWO DOTS OVER ONE DOT PUNCTUATION
+   0X010B3C : LARGE TWO DOTS OVER ONE DOT PUNCTUATION
+   0X010B3D : LARGE ONE DOT OVER TWO DOTS PUNCTUATION
+   0X010B3E : LARGE TWO RINGS OVER ONE RING PUNCTUATION
+   0X010B3F : LARGE ONE RING OVER TWO RINGS PUNCTUATION
+   0X0110BB : KAITHI ABBREVIATION SIGN
+   0X0110BC : KAITHI ENUMERATION SIGN
+   0X0110BE : KAITHI SECTION MARK
+   0X0110BF : KAITHI DOUBLE SECTION MARK
+   0X0110C0 : KAITHI DANDA
+   0X0110C1 : KAITHI DOUBLE DANDA
    0X012470 : CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
    0X012471 : CUNEIFORM PUNCTUATION SIGN VERTICAL COLON
    0X012472 : CUNEIFORM PUNCTUATION SIGN DIAGONAL COLON
    0X012473 : CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
 */
 
 #if (defined(IS_LITTLE_ENDIAN) && ALU_SIZE == 64)
 // Precompiled CCMap for Little Endian(64bit)
-#define gPuncCharsCCMapExt_SIZE 868
+#define gPuncCharsCCMapExt_SIZE 980
 #define gPuncCharsCCMapExt_INITIALIZER    \
-/* EXTFLG */ 0x0000,0x0000,0x0001,0x0290,    \
-/* 000000 */ 0x0030,0x00D0,0x0170,0x01E0,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0200,0x0010,0x0010,0x0010,0x0010,0x0250,    \
+/* EXTFLG */ 0x0000,0x0000,0x0001,0x02C0,    \
+/* 000000 */ 0x0030,0x00E0,0x0180,0x01F0,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0210,0x0010,0x0010,0x0010,0x0010,0x0280,    \
 /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
 /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000030 */ 0x0040,0x0020,0x0020,0x0050,0x0020,0x0060,0x0070,0x0080,    \
-             0x0020,0x0090,0x0020,0x0020,0x0020,0x00A0,0x00B0,0x00C0,    \
+             0x0090,0x00A0,0x0020,0x0020,0x0020,0x00B0,0x00C0,0x00D0,    \
 /* 000040 */ 0x0000,0x0000,0xD7EE,0x8C00,0x0001,0x3800,0x0000,0x2800,    \
              0x0000,0x0000,0x0802,0x8880,0x0000,0x0000,0x0000,0x0000,    \
 /* 000050 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4000,    \
              0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,    \
              0x0200,0x0000,0x0000,0x0000,0x0049,0x0000,0x0000,0x0018,    \
 /* 000070 */ 0x3600,0xC800,0x0000,0x0000,0x0000,0x0000,0x3C00,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,0x0000,    \
 /* 000080 */ 0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,    \
-/* 000090 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0001,    \
+/* 000090 */ 0x0000,0x0000,0x0000,0x7FFF,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0001,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,    \
-/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0C00,0x0000,0x0000,    \
+/* 0000c0 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0C00,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000c0 */ 0xFFF0,0x0007,0x0000,0x3C00,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000d0 */ 0xFFF0,0x0007,0x0000,0x3C00,0x0000,0x0000,0x0000,0x0000,    \
              0x0020,0x0000,0x0000,0x0000,0x0000,0x001F,0x0000,0x0000,    \
-/* 0000d0 */ 0x00E0,0x0020,0x0020,0x00F0,0x0020,0x0020,0x0100,0x0110,    \
-             0x0120,0x0130,0x0140,0x0150,0x0160,0x0020,0x0020,0x0020,    \
-/* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0000,    \
+/* 0000e0 */ 0x00F0,0x0020,0x0020,0x0100,0x0020,0x0020,0x0110,0x0120,    \
+             0x0130,0x0140,0x0150,0x0160,0x0170,0x0020,0x0020,0x0020,    \
+/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
-/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,    \
+/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,    \
+/* 000110 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,    \
              0x0000,0x1800,0x0000,0x0000,0x0000,0x0000,0x3800,0x0000,    \
-/* 000110 */ 0x0000,0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,    \
+/* 000120 */ 0x0000,0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0770,0x0000,0x0000,    \
-/* 000120 */ 0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000130 */ 0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000130 */ 0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,0x0000,    \
+/* 000140 */ 0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,    \
-/* 000140 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000150 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0001,0x0000,    \
+/* 000150 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x3F7F,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000160 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0001,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000160 */ 0x0000,0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,    \
+/* 000170 */ 0x0000,0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0008,0x0000,0x0000,    \
+/* 000180 */ 0x0190,0x0020,0x0020,0x01A0,0x0020,0x0020,0x0020,0x01B0,    \
+             0x0020,0x01C0,0x0020,0x0020,0x01D0,0x0020,0x01E0,0x0020,    \
+/* 000190 */ 0x0000,0xFFC0,0x00FF,0x7FFF,0xFFEE,0x7FEB,0x0000,0x6000,    \
+             0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001a0 */ 0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000170 */ 0x0180,0x0020,0x0020,0x0190,0x0020,0x0020,0x0020,0x01A0,    \
-             0x0020,0x01B0,0x0020,0x0020,0x01C0,0x0020,0x01D0,0x0020,    \
-/* 000180 */ 0x0000,0xFFC0,0x00FF,0x7FFF,0xFFEE,0x7FEB,0x0000,0x6000,    \
-             0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000190 */ 0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFF00,0x003F,    \
+/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFF00,0x003F,    \
              0x0000,0x0000,0x0000,0x0000,0x0060,0x0000,0xFFC0,0x0000,    \
-/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0xFFF8,0x01FF,0x0000,0x0000,0x0000,0x0F00,0x0000,0x3000,    \
-/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xDE00,    \
-/* 0001d0 */ 0xFFFF,0xFB7F,0x7FFF,0x0001,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001e0 */ 0x01F0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 0001f0 */ 0xFF0E,0xEFF3,0x0000,0x2000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
-/* 000200 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0210,0x0020,    \
-             0x0220,0x0230,0x0240,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000210 */ 0xE000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,    \
-             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
-/* 000230 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x8000,0x0000,0x0000,    \
+/* 0001e0 */ 0xFFFF,0xFB7F,0x7FFF,0x0003,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000250 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0260,0x0270,0x0280,    \
-/* 000260 */ 0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000270 */ 0x0000,0x03FF,0x0000,0xFFE1,0x1FFF,0xFEF7,0x0D03,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000280 */ 0xD7EE,0x8C00,0x0001,0x3800,0x0000,0xA800,0x003F,0x0000,    \
+/* 0001f0 */ 0x0200,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000200 */ 0xFF0E,0xEFF3,0x0000,0x2000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
+/* 000210 */ 0x0020,0x0020,0x0020,0x0020,0x0220,0x0020,0x0230,0x0020,    \
+             0x0240,0x0250,0x0260,0x0270,0x0020,0x0020,0x0020,0x0020,    \
+/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,    \
+/* 000230 */ 0xE000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00FC,    \
+/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,    \
+             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0700,    \
+/* 000250 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x8000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x3FFE,0xC000,0x0000,0x0000,    \
+/* 000260 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,    \
+/* 000270 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,    \
+/* 000280 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0290,0x02A0,0x02B0,    \
+/* 000290 */ 0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000290 */ 0x02C0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-             0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-/* 0002a0 */ 0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-             0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-/* 0002b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002a0 */ 0x0000,0x03FF,0x0000,0xFFE1,0x1FFF,0xFEF7,0x0D03,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002b0 */ 0xD7EE,0x8C00,0x0001,0x3800,0x0000,0xA800,0x003F,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002c0 */ 0x0030,0x0010,0x0080,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-/* 0002d0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0002c0 */ 0x02F0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
+             0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
+/* 0002d0 */ 0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
+             0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
 /* 0002e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002f0 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0060,0x0070,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000300 */ 0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002f0 */ 0x0030,0x00A0,0x00C0,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+/* 000300 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000320 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
+             0x0060,0x0070,0x0080,0x0090,0x0020,0x0020,0x0020,0x0020,    \
+/* 000330 */ 0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000340 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x8000,0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,    \
-/* 000320 */ 0x0000,0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000360 */ 0x0000,0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000330 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x0000,    \
+/* 000370 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x8000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000380 */ 0x0000,0x0000,0x0000,0xFE00,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000340 */ 0x0020,0x0020,0x0020,0x0020,0x0090,0x0020,0x0020,0x0020,    \
+/* 000390 */ 0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,    \
+/* 0003a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0xD800,0x0003,0x0000,0x0000,0x0000,    \
+/* 0003b0 */ 0x0020,0x0020,0x0020,0x0020,0x00D0,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0003c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
 #elif defined(IS_LITTLE_ENDIAN)
 // Precompiled CCMap for Little Endian(16/32bit) 
-#define gPuncCharsCCMapExt_SIZE 866
+#define gPuncCharsCCMapExt_SIZE 978
 #define gPuncCharsCCMapExt_INITIALIZER    \
-/* EXTFLG */ 0x0001,0x0290,    \
-/* 000000 */ 0x0030,0x00D0,0x0170,0x01E0,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0200,0x0010,0x0010,0x0010,0x0010,0x0250,    \
+/* EXTFLG */ 0x0001,0x02C0,    \
+/* 000000 */ 0x0030,0x00E0,0x0180,0x01F0,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0210,0x0010,0x0010,0x0010,0x0010,0x0280,    \
 /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
 /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000030 */ 0x0040,0x0020,0x0020,0x0050,0x0020,0x0060,0x0070,0x0080,    \
-             0x0020,0x0090,0x0020,0x0020,0x0020,0x00A0,0x00B0,0x00C0,    \
+             0x0090,0x00A0,0x0020,0x0020,0x0020,0x00B0,0x00C0,0x00D0,    \
 /* 000040 */ 0x0000,0x0000,0xD7EE,0x8C00,0x0001,0x3800,0x0000,0x2800,    \
              0x0000,0x0000,0x0802,0x8880,0x0000,0x0000,0x0000,0x0000,    \
 /* 000050 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4000,    \
              0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,    \
              0x0200,0x0000,0x0000,0x0000,0x0049,0x0000,0x0000,0x0018,    \
 /* 000070 */ 0x3600,0xC800,0x0000,0x0000,0x0000,0x0000,0x3C00,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,0x0000,    \
 /* 000080 */ 0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,    \
-/* 000090 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0001,    \
+/* 000090 */ 0x0000,0x0000,0x0000,0x7FFF,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0001,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,    \
-/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0C00,0x0000,0x0000,    \
+/* 0000c0 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0C00,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000c0 */ 0xFFF0,0x0007,0x0000,0x3C00,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000d0 */ 0xFFF0,0x0007,0x0000,0x3C00,0x0000,0x0000,0x0000,0x0000,    \
              0x0020,0x0000,0x0000,0x0000,0x0000,0x001F,0x0000,0x0000,    \
-/* 0000d0 */ 0x00E0,0x0020,0x0020,0x00F0,0x0020,0x0020,0x0100,0x0110,    \
-             0x0120,0x0130,0x0140,0x0150,0x0160,0x0020,0x0020,0x0020,    \
-/* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0000,    \
+/* 0000e0 */ 0x00F0,0x0020,0x0020,0x0100,0x0020,0x0020,0x0110,0x0120,    \
+             0x0130,0x0140,0x0150,0x0160,0x0170,0x0020,0x0020,0x0020,    \
+/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
-/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,    \
+/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,    \
+/* 000110 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,    \
              0x0000,0x1800,0x0000,0x0000,0x0000,0x0000,0x3800,0x0000,    \
-/* 000110 */ 0x0000,0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,    \
+/* 000120 */ 0x0000,0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0770,0x0000,0x0000,    \
-/* 000120 */ 0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000130 */ 0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000130 */ 0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,0x0000,    \
+/* 000140 */ 0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,    \
-/* 000140 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000150 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0001,0x0000,    \
+/* 000150 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x3F7F,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000160 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0001,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000160 */ 0x0000,0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,    \
+/* 000170 */ 0x0000,0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0008,0x0000,0x0000,    \
+/* 000180 */ 0x0190,0x0020,0x0020,0x01A0,0x0020,0x0020,0x0020,0x01B0,    \
+             0x0020,0x01C0,0x0020,0x0020,0x01D0,0x0020,0x01E0,0x0020,    \
+/* 000190 */ 0x0000,0xFFC0,0x00FF,0x7FFF,0xFFEE,0x7FEB,0x0000,0x6000,    \
+             0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001a0 */ 0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000170 */ 0x0180,0x0020,0x0020,0x0190,0x0020,0x0020,0x0020,0x01A0,    \
-             0x0020,0x01B0,0x0020,0x0020,0x01C0,0x0020,0x01D0,0x0020,    \
-/* 000180 */ 0x0000,0xFFC0,0x00FF,0x7FFF,0xFFEE,0x7FEB,0x0000,0x6000,    \
-             0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000190 */ 0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFF00,0x003F,    \
+/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFF00,0x003F,    \
              0x0000,0x0000,0x0000,0x0000,0x0060,0x0000,0xFFC0,0x0000,    \
-/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0xFFF8,0x01FF,0x0000,0x0000,0x0000,0x0F00,0x0000,0x3000,    \
-/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xDE00,    \
-/* 0001d0 */ 0xFFFF,0xFB7F,0x7FFF,0x0001,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001e0 */ 0x01F0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 0001f0 */ 0xFF0E,0xEFF3,0x0000,0x2000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
-/* 000200 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0210,0x0020,    \
-             0x0220,0x0230,0x0240,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000210 */ 0xE000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,    \
-             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
-/* 000230 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x8000,0x0000,0x0000,    \
+/* 0001e0 */ 0xFFFF,0xFB7F,0x7FFF,0x0003,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000250 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0260,0x0270,0x0280,    \
-/* 000260 */ 0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000270 */ 0x0000,0x03FF,0x0000,0xFFE1,0x1FFF,0xFEF7,0x0D03,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000280 */ 0xD7EE,0x8C00,0x0001,0x3800,0x0000,0xA800,0x003F,0x0000,    \
+/* 0001f0 */ 0x0200,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000200 */ 0xFF0E,0xEFF3,0x0000,0x2000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
+/* 000210 */ 0x0020,0x0020,0x0020,0x0020,0x0220,0x0020,0x0230,0x0020,    \
+             0x0240,0x0250,0x0260,0x0270,0x0020,0x0020,0x0020,0x0020,    \
+/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,    \
+/* 000230 */ 0xE000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00FC,    \
+/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,    \
+             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0700,    \
+/* 000250 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x8000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x3FFE,0xC000,0x0000,0x0000,    \
+/* 000260 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,    \
+/* 000270 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,    \
+/* 000280 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0290,0x02A0,0x02B0,    \
+/* 000290 */ 0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000290 */ 0x02C0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-             0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-/* 0002a0 */ 0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-             0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,    \
-/* 0002b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002a0 */ 0x0000,0x03FF,0x0000,0xFFE1,0x1FFF,0xFEF7,0x0D03,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002b0 */ 0xD7EE,0x8C00,0x0001,0x3800,0x0000,0xA800,0x003F,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002c0 */ 0x0030,0x0010,0x0080,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-/* 0002d0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0002c0 */ 0x02F0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
+             0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
+/* 0002d0 */ 0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
+             0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,    \
 /* 0002e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002f0 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0060,0x0070,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000300 */ 0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002f0 */ 0x0030,0x00A0,0x00C0,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+/* 000300 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000320 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
+             0x0060,0x0070,0x0080,0x0090,0x0020,0x0020,0x0020,0x0020,    \
+/* 000330 */ 0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000340 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x8000,0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,    \
-/* 000320 */ 0x0000,0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000360 */ 0x0000,0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000330 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x0000,    \
+/* 000370 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x8000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000380 */ 0x0000,0x0000,0x0000,0xFE00,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000340 */ 0x0020,0x0020,0x0020,0x0020,0x0090,0x0020,0x0020,0x0020,    \
+/* 000390 */ 0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,    \
+/* 0003a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0xD800,0x0003,0x0000,0x0000,0x0000,    \
+/* 0003b0 */ 0x0020,0x0020,0x0020,0x0020,0x00D0,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0003c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
 #elif (ALU_SIZE == 16)
 // Precompiled CCMap for Big Endian(16bit)
-#define gPuncCharsCCMapExt_SIZE 866
+#define gPuncCharsCCMapExt_SIZE 978
 #define gPuncCharsCCMapExt_INITIALIZER    \
-/* EXTFLG */ 0x0001,0x0290,    \
-/* 000000 */ 0x0030,0x00D0,0x0170,0x01E0,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0200,0x0010,0x0010,0x0010,0x0010,0x0250,    \
+/* EXTFLG */ 0x0001,0x02C0,    \
+/* 000000 */ 0x0030,0x00E0,0x0180,0x01F0,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0210,0x0010,0x0010,0x0010,0x0010,0x0280,    \
 /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
 /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000030 */ 0x0040,0x0020,0x0020,0x0050,0x0020,0x0060,0x0070,0x0080,    \
-             0x0020,0x0090,0x0020,0x0020,0x0020,0x00A0,0x00B0,0x00C0,    \
+             0x0090,0x00A0,0x0020,0x0020,0x0020,0x00B0,0x00C0,0x00D0,    \
 /* 000040 */ 0x0000,0x0000,0xD7EE,0x8C00,0x0001,0x3800,0x0000,0x2800,    \
              0x0000,0x0000,0x0802,0x8880,0x0000,0x0000,0x0000,0x0000,    \
 /* 000050 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4000,    \
              0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,    \
              0x0200,0x0000,0x0000,0x0000,0x0049,0x0000,0x0000,0x0018,    \
 /* 000070 */ 0x3600,0xC800,0x0000,0x0000,0x0000,0x0000,0x3C00,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,0x0000,    \
 /* 000080 */ 0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,    \
-/* 000090 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0001,    \
+/* 000090 */ 0x0000,0x0000,0x0000,0x7FFF,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0001,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,    \
-/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0C00,0x0000,0x0000,    \
+/* 0000c0 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0C00,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000c0 */ 0xFFF0,0x0007,0x0000,0x3C00,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000d0 */ 0xFFF0,0x0007,0x0000,0x3C00,0x0000,0x0000,0x0000,0x0000,    \
              0x0020,0x0000,0x0000,0x0000,0x0000,0x001F,0x0000,0x0000,    \
-/* 0000d0 */ 0x00E0,0x0020,0x0020,0x00F0,0x0020,0x0020,0x0100,0x0110,    \
-             0x0120,0x0130,0x0140,0x0150,0x0160,0x0020,0x0020,0x0020,    \
-/* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0000,    \
+/* 0000e0 */ 0x00F0,0x0020,0x0020,0x0100,0x0020,0x0020,0x0110,0x0120,    \
+             0x0130,0x0140,0x0150,0x0160,0x0170,0x0020,0x0020,0x0020,    \
+/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
-/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,    \
+/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,    \
+/* 000110 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,    \
              0x0000,0x1800,0x0000,0x0000,0x0000,0x0000,0x3800,0x0000,    \
-/* 000110 */ 0x0000,0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,    \
+/* 000120 */ 0x0000,0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0770,0x0000,0x0000,    \
-/* 000120 */ 0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000130 */ 0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000130 */ 0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,0x0000,    \
+/* 000140 */ 0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,    \
-/* 000140 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000150 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0001,0x0000,    \
+/* 000150 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x3F7F,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000160 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0001,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000160 */ 0x0000,0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,    \
+/* 000170 */ 0x0000,0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0008,0x0000,0x0000,    \
+/* 000180 */ 0x0190,0x0020,0x0020,0x01A0,0x0020,0x0020,0x0020,0x01B0,    \
+             0x0020,0x01C0,0x0020,0x0020,0x01D0,0x0020,0x01E0,0x0020,    \
+/* 000190 */ 0x0000,0xFFC0,0x00FF,0x7FFF,0xFFEE,0x7FEB,0x0000,0x6000,    \
+             0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001a0 */ 0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000170 */ 0x0180,0x0020,0x0020,0x0190,0x0020,0x0020,0x0020,0x01A0,    \
-             0x0020,0x01B0,0x0020,0x0020,0x01C0,0x0020,0x01D0,0x0020,    \
-/* 000180 */ 0x0000,0xFFC0,0x00FF,0x7FFF,0xFFEE,0x7FEB,0x0000,0x6000,    \
-             0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000190 */ 0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFF00,0x003F,    \
+/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFF00,0x003F,    \
              0x0000,0x0000,0x0000,0x0000,0x0060,0x0000,0xFFC0,0x0000,    \
-/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0xFFF8,0x01FF,0x0000,0x0000,0x0000,0x0F00,0x0000,0x3000,    \
-/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xDE00,    \
-/* 0001d0 */ 0xFFFF,0xFB7F,0x7FFF,0x0001,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001e0 */ 0x01F0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 0001f0 */ 0xFF0E,0xEFF3,0x0000,0x2000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
-/* 000200 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0210,0x0020,    \
-             0x0220,0x0230,0x0240,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000210 */ 0xE000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,    \
-             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
-/* 000230 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x8000,0x0000,0x0000,    \
+/* 0001e0 */ 0xFFFF,0xFB7F,0x7FFF,0x0003,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000250 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0260,0x0270,0x0280,    \
-/* 000260 */ 0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000270 */ 0x0000,0x03FF,0x0000,0xFFE1,0x1FFF,0xFEF7,0x0D03,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000280 */ 0xD7EE,0x8C00,0x0001,0x3800,0x0000,0xA800,0x003F,0x0000,    \
+/* 0001f0 */ 0x0200,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000200 */ 0xFF0E,0xEFF3,0x0000,0x2000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
+/* 000210 */ 0x0020,0x0020,0x0020,0x0020,0x0220,0x0020,0x0230,0x0020,    \
+             0x0240,0x0250,0x0260,0x0270,0x0020,0x0020,0x0020,0x0020,    \
+/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,    \
+/* 000230 */ 0xE000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4008,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00FC,    \
+/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,    \
+             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0700,    \
+/* 000250 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x8000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x3FFE,0xC000,0x0000,0x0000,    \
+/* 000260 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,    \
+/* 000270 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,    \
+/* 000280 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0290,0x02A0,0x02B0,    \
+/* 000290 */ 0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000290 */ 0x0000,0x02C0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-             0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-/* 0002a0 */ 0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-             0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-/* 0002b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002a0 */ 0x0000,0x03FF,0x0000,0xFFE1,0x1FFF,0xFEF7,0x0D03,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002b0 */ 0xD7EE,0x8C00,0x0001,0x3800,0x0000,0xA800,0x003F,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002c0 */ 0x0030,0x0010,0x0080,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-/* 0002d0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0002c0 */ 0x0000,0x02F0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+             0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+/* 0002d0 */ 0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+             0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
 /* 0002e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002f0 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0060,0x0070,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000300 */ 0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002f0 */ 0x0030,0x00A0,0x00C0,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+/* 000300 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000320 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
+             0x0060,0x0070,0x0080,0x0090,0x0020,0x0020,0x0020,0x0020,    \
+/* 000330 */ 0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000340 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x8000,0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,    \
-/* 000320 */ 0x0000,0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000360 */ 0x0000,0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000330 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x0000,    \
+/* 000370 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x8000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000380 */ 0x0000,0x0000,0x0000,0xFE00,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000340 */ 0x0020,0x0020,0x0020,0x0020,0x0090,0x0020,0x0020,0x0020,    \
+/* 000390 */ 0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,    \
+/* 0003a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0xD800,0x0003,0x0000,0x0000,0x0000,    \
+/* 0003b0 */ 0x0020,0x0020,0x0020,0x0020,0x00D0,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0003c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
 #elif (ALU_SIZE == 32)
 // Precompiled CCMap for  Big Endian(32bit)
-#define gPuncCharsCCMapExt_SIZE 866
+#define gPuncCharsCCMapExt_SIZE 978
 #define gPuncCharsCCMapExt_INITIALIZER    \
-/* EXTFLG */ 0x0001,0x0290,    \
-/* 000000 */ 0x0030,0x00D0,0x0170,0x01E0,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0200,0x0010,0x0010,0x0010,0x0010,0x0250,    \
+/* EXTFLG */ 0x0001,0x02C0,    \
+/* 000000 */ 0x0030,0x00E0,0x0180,0x01F0,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0210,0x0010,0x0010,0x0010,0x0010,0x0280,    \
 /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
 /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000030 */ 0x0040,0x0020,0x0020,0x0050,0x0020,0x0060,0x0070,0x0080,    \
-             0x0020,0x0090,0x0020,0x0020,0x0020,0x00A0,0x00B0,0x00C0,    \
+             0x0090,0x00A0,0x0020,0x0020,0x0020,0x00B0,0x00C0,0x00D0,    \
 /* 000040 */ 0x0000,0x0000,0x8C00,0xD7EE,0x3800,0x0001,0x2800,0x0000,    \
              0x0000,0x0000,0x8880,0x0802,0x0000,0x0000,0x0000,0x0000,    \
 /* 000050 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,    \
              0x0000,0x0080,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0000,    \
              0x0000,0x0200,0x0000,0x0000,0x0000,0x0049,0x0018,0x0000,    \
 /* 000070 */ 0xC800,0x3600,0x0000,0x0000,0x0000,0x0000,0x0000,0x3C00,    \
              0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,0x0000,0x0000,    \
 /* 000080 */ 0x0000,0x3FFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0380,0x0000,    \
-/* 000090 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0030,    \
+/* 000090 */ 0x0000,0x0000,0x7FFF,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0030,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,    \
-/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0C00,0x8000,0x0000,0x0000,    \
+/* 0000c0 */ 0x0000,0x0000,0x0000,0x0000,0x0C00,0x8000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000c0 */ 0x0007,0xFFF0,0x3C00,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000d0 */ 0x0007,0xFFF0,0x3C00,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0020,0x0000,0x0000,0x001F,0x0000,0x0000,0x0000,    \
-/* 0000d0 */ 0x00E0,0x0020,0x0020,0x00F0,0x0020,0x0020,0x0100,0x0110,    \
-             0x0120,0x0130,0x0140,0x0150,0x0160,0x0020,0x0020,0x0020,    \
-/* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,    \
+/* 0000e0 */ 0x00F0,0x0020,0x0020,0x0100,0x0020,0x0020,0x0110,0x0120,    \
+             0x0130,0x0140,0x0150,0x0160,0x0170,0x0020,0x0020,0x0020,    \
+/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,    \
-/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,    \
+/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,    \
+/* 000110 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,    \
              0x1800,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x3800,    \
-/* 000110 */ 0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000120 */ 0x0000,0x0000,0x0060,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0770,0x0000,0x0000,0x0000,    \
-/* 000120 */ 0x0000,0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000130 */ 0x0000,0x07BF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000130 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,    \
+/* 000140 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
-/* 000140 */ 0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000150 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0001,    \
+/* 000150 */ 0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x3F7F,0x0000,0x0000,0x0000,0x0000,    \
+/* 000160 */ 0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,0x0000,0x0001,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000160 */ 0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,0x0000,    \
+/* 000170 */ 0x0000,0x0000,0xF800,0x0000,0x0000,0x0000,0xC000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0008,0x0000,0x0000,0x0000,    \
+/* 000180 */ 0x0190,0x0020,0x0020,0x01A0,0x0020,0x0020,0x0020,0x01B0,    \
+             0x0020,0x01C0,0x0020,0x0020,0x01D0,0x0020,0x01E0,0x0020,    \
+/* 000190 */ 0xFFC0,0x0000,0x7FFF,0x00FF,0x7FEB,0xFFEE,0x6000,0x0000,    \
+             0x0000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001a0 */ 0x0000,0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000170 */ 0x0180,0x0020,0x0020,0x0190,0x0020,0x0020,0x0020,0x01A0,    \
-             0x0020,0x01B0,0x0020,0x0020,0x01C0,0x0020,0x01D0,0x0020,    \
-/* 000180 */ 0xFFC0,0x0000,0x7FFF,0x00FF,0x7FEB,0xFFEE,0x6000,0x0000,    \
-             0x0000,0x6000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000190 */ 0x0000,0x0000,0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x003F,0xFF00,    \
+/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x003F,0xFF00,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0060,0x0000,0xFFC0,    \
-/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x01FF,0xFFF8,0x0000,0x0000,0x0F00,0x0000,0x3000,0x0000,    \
-/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xDE00,0x0000,    \
-/* 0001d0 */ 0xFB7F,0xFFFF,0x0001,0x7FFF,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001e0 */ 0x01F0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 0001f0 */ 0xEFF3,0xFF0E,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,    \
-/* 000200 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0210,0x0020,    \
-             0x0220,0x0230,0x0240,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000210 */ 0x0000,0xE000,0x0000,0x0000,0x0000,0x0000,0x4008,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,    \
-/* 000230 */ 0x0000,0x0000,0x0000,0xC000,0x8000,0x0000,0x0000,0x0000,    \
+/* 0001e0 */ 0xFB7F,0xFFFF,0x0003,0x7FFF,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000250 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0260,0x0270,0x0280,    \
-/* 000260 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000270 */ 0x03FF,0x0000,0xFFE1,0x0000,0xFEF7,0x1FFF,0x0000,0x0D03,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000280 */ 0x8C00,0xD7EE,0x3800,0x0001,0xA800,0x0000,0x0000,0x003F,    \
+/* 0001f0 */ 0x0200,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000200 */ 0xEFF3,0xFF0E,0x2000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,    \
+/* 000210 */ 0x0020,0x0020,0x0020,0x0020,0x0220,0x0020,0x0230,0x0020,    \
+             0x0240,0x0250,0x0260,0x0270,0x0020,0x0020,0x0020,0x0020,    \
+/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,    \
+/* 000230 */ 0x0000,0xE000,0x0000,0x0000,0x0000,0x0000,0x4008,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00FC,0x0000,    \
+/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x00F0,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0700,0x0000,    \
+/* 000250 */ 0x0000,0x0000,0x0000,0xC000,0x8000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0xC000,0x3FFE,0x0000,0x0000,    \
+/* 000260 */ 0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
+/* 000270 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,    \
+/* 000280 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0290,0x02A0,0x02B0,    \
+/* 000290 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000290 */ 0x0000,0x02C0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-             0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-/* 0002a0 */ 0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-             0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-/* 0002b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002a0 */ 0x03FF,0x0000,0xFFE1,0x0000,0xFEF7,0x1FFF,0x0000,0x0D03,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002b0 */ 0x8C00,0xD7EE,0x3800,0x0001,0xA800,0x0000,0x0000,0x003F,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002c0 */ 0x0030,0x0010,0x0080,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-/* 0002d0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0002c0 */ 0x0000,0x02F0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+             0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+/* 0002d0 */ 0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+             0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
 /* 0002e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002f0 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0060,0x0070,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000300 */ 0x0000,0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002f0 */ 0x0030,0x00A0,0x00C0,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+/* 000300 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000320 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
+             0x0060,0x0070,0x0080,0x0090,0x0020,0x0020,0x0020,0x0020,    \
+/* 000330 */ 0x0000,0x0003,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000340 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x8000,0x0000,0x0000,0x0000,0x0001,0x0000,0x0000,0x0000,    \
-/* 000320 */ 0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000360 */ 0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000330 */ 0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x0000,0x0000,    \
+/* 000370 */ 0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,0x8000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000380 */ 0x0000,0x0000,0xFE00,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000340 */ 0x0020,0x0020,0x0020,0x0020,0x0090,0x0020,0x0020,0x0020,    \
+/* 000390 */ 0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,0x0000,    \
+/* 0003a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0xD800,0x0000,0x0000,0x0003,0x0000,0x0000,    \
+/* 0003b0 */ 0x0020,0x0020,0x0020,0x0020,0x00D0,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0003c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x000F,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
 #elif (ALU_SIZE == 64)
 // Precompiled CCMap for Big Endian(64bit)
-#define gPuncCharsCCMapExt_SIZE 868
+#define gPuncCharsCCMapExt_SIZE 980
 #define gPuncCharsCCMapExt_INITIALIZER    \
-/* EXTFLG */ 0x0000,0x0000,0x0001,0x0290,    \
-/* 000000 */ 0x0030,0x00D0,0x0170,0x01E0,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0200,0x0010,0x0010,0x0010,0x0010,0x0250,    \
+/* EXTFLG */ 0x0000,0x0000,0x0001,0x02C0,    \
+/* 000000 */ 0x0030,0x00E0,0x0180,0x01F0,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0210,0x0010,0x0010,0x0010,0x0010,0x0280,    \
 /* 000010 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
 /* 000020 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000030 */ 0x0040,0x0020,0x0020,0x0050,0x0020,0x0060,0x0070,0x0080,    \
-             0x0020,0x0090,0x0020,0x0020,0x0020,0x00A0,0x00B0,0x00C0,    \
+             0x0090,0x00A0,0x0020,0x0020,0x0020,0x00B0,0x00C0,0x00D0,    \
 /* 000040 */ 0x8C00,0xD7EE,0x0000,0x0000,0x2800,0x0000,0x3800,0x0001,    \
              0x8880,0x0802,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
 /* 000050 */ 0x0000,0x0000,0x0000,0x0000,0x4000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0080,0x0000,0x0000,0x0000,0x0000,    \
 /* 000060 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,0x0000,    \
              0x0000,0x0000,0x0000,0x0200,0x0018,0x0000,0x0000,0x0049,    \
 /* 000070 */ 0x0000,0x0000,0xC800,0x3600,0x0000,0x3C00,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,    \
 /* 000080 */ 0x0000,0x0000,0x0000,0x3FFF,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0380,0x0000,0x0000,0x0000,    \
-/* 000090 */ 0x0000,0x0000,0x0000,0x0000,0x0001,0x0030,0x0000,0x0000,    \
+/* 000090 */ 0x7FFF,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000a0 */ 0x0000,0x0000,0x0000,0x0000,0x0001,0x0030,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0010,0x0000,0x0000,0x0000,    \
-/* 0000b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0C00,0x8000,    \
+/* 0000c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0C00,0x8000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0000c0 */ 0x3C00,0x0000,0x0007,0xFFF0,0x0000,0x0000,0x0000,0x0000,    \
+/* 0000d0 */ 0x3C00,0x0000,0x0007,0xFFF0,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0020,0x0000,0x0000,0x001F,0x0000,    \
-/* 0000d0 */ 0x00E0,0x0020,0x0020,0x00F0,0x0020,0x0020,0x0100,0x0110,    \
-             0x0120,0x0130,0x0140,0x0150,0x0160,0x0020,0x0020,0x0020,    \
-/* 0000e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,    \
+/* 0000e0 */ 0x00F0,0x0020,0x0020,0x0100,0x0020,0x0020,0x0110,0x0120,    \
+             0x0130,0x0140,0x0150,0x0160,0x0170,0x0020,0x0020,0x0020,    \
+/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xFC00,    \
              0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,0x0000,0x0000,    \
-/* 0000f0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,0x0000,    \
+/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x01FE,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000100 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,0x0000,    \
+/* 000110 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x6000,0x0000,0x0000,    \
              0x0000,0x0000,0x1800,0x0000,0x0000,0x3800,0x0000,0x0000,    \
-/* 000110 */ 0x0060,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000120 */ 0x0060,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0770,0x0000,    \
-/* 000120 */ 0x0000,0x0000,0x0000,0x07BF,0x0000,0x0000,0x0000,0x0000,    \
+/* 000130 */ 0x0000,0x0000,0x0000,0x07BF,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000130 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,    \
+/* 000140 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0030,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,    \
-/* 000140 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000150 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0xFC00,0x0000,    \
+/* 000150 */ 0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x3F7F,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000160 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0xFC00,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000160 */ 0xF800,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
+/* 000170 */ 0xF800,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0008,0x0000,    \
+/* 000180 */ 0x0190,0x0020,0x0020,0x01A0,0x0020,0x0020,0x0020,0x01B0,    \
+             0x0020,0x01C0,0x0020,0x0020,0x01D0,0x0020,0x01E0,0x0020,    \
+/* 000190 */ 0x7FFF,0x00FF,0xFFC0,0x0000,0x6000,0x0000,0x7FEB,0xFFEE,    \
+             0x0000,0x0000,0x0000,0x6000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001a0 */ 0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000170 */ 0x0180,0x0020,0x0020,0x0190,0x0020,0x0020,0x0020,0x01A0,    \
-             0x0020,0x01B0,0x0020,0x0020,0x01C0,0x0020,0x01D0,0x0020,    \
-/* 000180 */ 0x7FFF,0x00FF,0xFFC0,0x0000,0x6000,0x0000,0x7FEB,0xFFEE,    \
-             0x0000,0x0000,0x0000,0x6000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000190 */ 0x0000,0x0600,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001a0 */ 0x0000,0x0000,0x0000,0x0000,0x003F,0xFF00,0x0000,0x0000,    \
+/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x003F,0xFF00,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0xFFC0,0x0000,0x0060,    \
-/* 0001b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x01FF,0xFFF8,0x3000,0x0000,0x0F00,0x0000,    \
-/* 0001c0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0001d0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0xDE00,0x0000,0x0000,0x0000,    \
-/* 0001d0 */ 0x0001,0x7FFF,0xFB7F,0xFFFF,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0001e0 */ 0x01F0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 0001f0 */ 0x2000,0x0000,0xEFF3,0xFF0E,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,0x0000,0x0000,    \
-/* 000200 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0210,0x0020,    \
-             0x0220,0x0230,0x0240,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000210 */ 0x0000,0x0000,0x0000,0xE000,0x4008,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x00F0,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,    \
-/* 000230 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x8000,0x0000,    \
+/* 0001e0 */ 0x0003,0x7FFF,0xFB7F,0xFFFF,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000250 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0260,0x0270,0x0280,    \
-/* 000260 */ 0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000270 */ 0xFFE1,0x0000,0x03FF,0x0000,0x0000,0x0D03,0xFEF7,0x1FFF,    \
-             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000280 */ 0x3800,0x0001,0x8C00,0xD7EE,0x0000,0x003F,0xA800,0x0000,    \
+/* 0001f0 */ 0x0200,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000200 */ 0x2000,0x0000,0xEFF3,0xFF0E,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,0x0000,0x0000,    \
+/* 000210 */ 0x0020,0x0020,0x0020,0x0020,0x0220,0x0020,0x0230,0x0020,    \
+             0x0240,0x0250,0x0260,0x0270,0x0020,0x0020,0x0020,0x0020,    \
+/* 000220 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,0x0000,0x0000,    \
+/* 000230 */ 0x0000,0x0000,0x0000,0xE000,0x4008,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x00FC,0x0000,0x0000,0x0000,    \
+/* 000240 */ 0x0000,0x0000,0x0000,0x0000,0x00F0,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0700,0x0000,0x0000,0xC000,    \
+/* 000250 */ 0x0000,0xC000,0x0000,0x0000,0x0000,0x0000,0x8000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x3FFE,    \
+/* 000260 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xF000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0xC000,0x0000,    \
+/* 000270 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0800,0x0000,0x0000,    \
+/* 000280 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0290,0x02A0,0x02B0,    \
+/* 000290 */ 0xC000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000290 */ 0x0000,0x02C0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-             0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-/* 0002a0 */ 0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-             0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,0x0000,0x02B0,    \
-/* 0002b0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002a0 */ 0xFFE1,0x0000,0x03FF,0x0000,0x0000,0x0D03,0xFEF7,0x1FFF,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002b0 */ 0x3800,0x0001,0x8C00,0xD7EE,0x0000,0x003F,0xA800,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002c0 */ 0x0030,0x0010,0x0080,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
-/* 0002d0 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0002c0 */ 0x0000,0x02F0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+             0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+/* 0002d0 */ 0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
+             0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,0x0000,0x02E0,    \
 /* 0002e0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 0002f0 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
-             0x0020,0x0060,0x0070,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000300 */ 0x0000,0x0000,0x0000,0x0003,0x0000,0x0000,0x0000,0x0000,    \
+/* 0002f0 */ 0x0030,0x00A0,0x00C0,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+             0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,0x0010,    \
+/* 000300 */ 0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000310 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000320 */ 0x0020,0x0040,0x0020,0x0050,0x0020,0x0020,0x0020,0x0020,    \
+             0x0060,0x0070,0x0080,0x0090,0x0020,0x0020,0x0020,0x0020,    \
+/* 000330 */ 0x0000,0x0000,0x0000,0x0003,0x0000,0x0000,0x0000,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000340 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0001,0x0000,    \
-/* 000320 */ 0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0080,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000360 */ 0x8000,0x0000,0x8000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000330 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x01FF,0x0000,    \
+/* 000370 */ 0x0000,0x0000,0x0000,0x0000,0x8000,0x0000,0x01FF,0x0000,    \
+             0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+/* 000380 */ 0xFE00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
-/* 000340 */ 0x0020,0x0020,0x0020,0x0020,0x0090,0x0020,0x0020,0x0020,    \
+/* 000390 */ 0x00B0,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
              0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
-/* 000350 */ 0x0000,0x0000,0x0000,0x0000,0x000F,0x0000,0x0000,0x0000,    \
+/* 0003a0 */ 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,    \
+             0xD800,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0003,    \
+/* 0003b0 */ 0x0020,0x0020,0x0020,0x0020,0x00D0,0x0020,0x0020,0x0020,    \
+             0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,0x0020,    \
+/* 0003c0 */ 0x0000,0x0000,0x0000,0x0000,0x000F,0x0000,0x0000,0x0000,    \
              0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
 #else
 #error "We don't support this architecture."
 #endif
 
--- a/layout/reftests/text-transform/all-lower-ref.html
+++ b/layout/reftests/text-transform/all-lower-ref.html
@@ -424,16 +424,17 @@
 &#x0515;
 &#x0517;
 &#x0519;
 &#x051B;
 &#x051D;
 &#x051F;
 &#x0521;
 &#x0523;
+&#x0525;
 &#x0561;
 &#x0562;
 &#x0563;
 &#x0564;
 &#x0565;
 &#x0566;
 &#x0567;
 &#x0568;
@@ -824,18 +825,21 @@
 &#x1D7D;
 &#x027D;
 &#x2C68;
 &#x2C6A;
 &#x2C6C;
 &#x0251;
 &#x0271;
 &#x0250;
+&#x0252;
 &#x2C73;
 &#x2C76;
+&#x023F;
+&#x0240;
 &#x2C81;
 &#x2C83;
 &#x2C85;
 &#x2C87;
 &#x2C89;
 &#x2C8B;
 &#x2C8D;
 &#x2C8F;
@@ -876,16 +880,18 @@
 &#x2CD5;
 &#x2CD7;
 &#x2CD9;
 &#x2CDB;
 &#x2CDD;
 &#x2CDF;
 &#x2CE1;
 &#x2CE3;
+&#x2CEC;
+&#x2CEE;
 &#xA641;
 &#xA643;
 &#xA645;
 &#xA647;
 &#xA649;
 &#xA64B;
 &#xA64D;
 &#xA64F;
--- a/layout/reftests/text-transform/all-lower.html
+++ b/layout/reftests/text-transform/all-lower.html
@@ -427,16 +427,17 @@
 &#x0514;
 &#x0516;
 &#x0518;
 &#x051A;
 &#x051C;
 &#x051E;
 &#x0520;
 &#x0522;
+&#x0524;
 &#x0531;
 &#x0532;
 &#x0533;
 &#x0534;
 &#x0535;
 &#x0536;
 &#x0537;
 &#x0538;
@@ -827,18 +828,21 @@
 &#x2C63;
 &#x2C64;
 &#x2C67;
 &#x2C69;
 &#x2C6B;
 &#x2C6D;
 &#x2C6E;
 &#x2C6F;
+&#x2C70;
 &#x2C72;
 &#x2C75;
+&#x2C7E;
+&#x2C7F;
 &#x2C80;
 &#x2C82;
 &#x2C84;
 &#x2C86;
 &#x2C88;
 &#x2C8A;
 &#x2C8C;
 &#x2C8E;
@@ -879,16 +883,18 @@
 &#x2CD4;
 &#x2CD6;
 &#x2CD8;
 &#x2CDA;
 &#x2CDC;
 &#x2CDE;
 &#x2CE0;
 &#x2CE2;
+&#x2CEB;
+&#x2CED;
 &#xA640;
 &#xA642;
 &#xA644;
 &#xA646;
 &#xA648;
 &#xA64A;
 &#xA64C;
 &#xA64E;
--- a/layout/reftests/text-transform/all-title-ref.html
+++ b/layout/reftests/text-transform/all-title-ref.html
@@ -203,24 +203,27 @@
 &#x0226;x
 &#x0228;x
 &#x022A;x
 &#x022C;x
 &#x022E;x
 &#x0230;x
 &#x0232;x
 &#x023B;x
+&#x2C7E;x
+&#x2C7F;x
 &#x0241;x
 &#x0246;x
 &#x0248;x
 &#x024A;x
 &#x024C;x
 &#x024E;x
 &#x2C6F;x
 &#x2C6D;x
+&#x2C70;x
 &#x0181;x
 &#x0186;x
 &#x0189;x
 &#x018A;x
 &#x018F;x
 &#x0190;x
 &#x0193;x
 &#x0194;x
@@ -441,16 +444,17 @@
 &#x0514;x
 &#x0516;x
 &#x0518;x
 &#x051A;x
 &#x051C;x
 &#x051E;x
 &#x0520;x
 &#x0522;x
+&#x0524;x
 &#x0531;x
 &#x0532;x
 &#x0533;x
 &#x0534;x
 &#x0535;x
 &#x0536;x
 &#x0537;x
 &#x0538;x
@@ -851,16 +855,18 @@
 &#x2CD4;x
 &#x2CD6;x
 &#x2CD8;x
 &#x2CDA;x
 &#x2CDC;x
 &#x2CDE;x
 &#x2CE0;x
 &#x2CE2;x
+&#x2CEB;x
+&#x2CED;x
 &#x10A0;x
 &#x10A1;x
 &#x10A2;x
 &#x10A3;x
 &#x10A4;x
 &#x10A5;x
 &#x10A6;x
 &#x10A7;x
--- a/layout/reftests/text-transform/all-title.html
+++ b/layout/reftests/text-transform/all-title.html
@@ -206,24 +206,27 @@
 &#x0227;x
 &#x0229;x
 &#x022B;x
 &#x022D;x
 &#x022F;x
 &#x0231;x
 &#x0233;x
 &#x023C;x
+&#x023F;x
+&#x0240;x
 &#x0242;x
 &#x0247;x
 &#x0249;x
 &#x024B;x
 &#x024D;x
 &#x024F;x
 &#x0250;x
 &#x0251;x
+&#x0252;x
 &#x0253;x
 &#x0254;x
 &#x0256;x
 &#x0257;x
 &#x0259;x
 &#x025B;x
 &#x0260;x
 &#x0263;x
@@ -444,16 +447,17 @@
 &#x0515;x
 &#x0517;x
 &#x0519;x
 &#x051B;x
 &#x051D;x
 &#x051F;x
 &#x0521;x
 &#x0523;x
+&#x0525;x
 &#x0561;x
 &#x0562;x
 &#x0563;x
 &#x0564;x
 &#x0565;x
 &#x0566;x
 &#x0567;x
 &#x0568;x
@@ -854,16 +858,18 @@
 &#x2CD5;x
 &#x2CD7;x
 &#x2CD9;x
 &#x2CDB;x
 &#x2CDD;x
 &#x2CDF;x
 &#x2CE1;x
 &#x2CE3;x
+&#x2CEC;x
+&#x2CEE;x
 &#x2D00;x
 &#x2D01;x
 &#x2D02;x
 &#x2D03;x
 &#x2D04;x
 &#x2D05;x
 &#x2D06;x
 &#x2D07;x
--- a/layout/reftests/text-transform/all-upper-ref.html
+++ b/layout/reftests/text-transform/all-upper-ref.html
@@ -199,24 +199,27 @@
 &#x0226;
 &#x0228;
 &#x022A;
 &#x022C;
 &#x022E;
 &#x0230;
 &#x0232;
 &#x023B;
+&#x2C7E;
+&#x2C7F;
 &#x0241;
 &#x0246;
 &#x0248;
 &#x024A;
 &#x024C;
 &#x024E;
 &#x2C6F;
 &#x2C6D;
+&#x2C70;
 &#x0181;
 &#x0186;
 &#x0189;
 &#x018A;
 &#x018F;
 &#x0190;
 &#x0193;
 &#x0194;
@@ -437,16 +440,17 @@
 &#x0514;
 &#x0516;
 &#x0518;
 &#x051A;
 &#x051C;
 &#x051E;
 &#x0520;
 &#x0522;
+&#x0524;
 &#x0531;
 &#x0532;
 &#x0533;
 &#x0534;
 &#x0535;
 &#x0536;
 &#x0537;
 &#x0538;
@@ -847,16 +851,18 @@
 &#x2CD4;
 &#x2CD6;
 &#x2CD8;
 &#x2CDA;
 &#x2CDC;
 &#x2CDE;
 &#x2CE0;
 &#x2CE2;
+&#x2CEB;
+&#x2CED;
 &#x10A0;
 &#x10A1;
 &#x10A2;
 &#x10A3;
 &#x10A4;
 &#x10A5;
 &#x10A6;
 &#x10A7;
--- a/layout/reftests/text-transform/all-upper.html
+++ b/layout/reftests/text-transform/all-upper.html
@@ -202,24 +202,27 @@
 &#x0227;
 &#x0229;
 &#x022B;
 &#x022D;
 &#x022F;
 &#x0231;
 &#x0233;
 &#x023C;
+&#x023F;
+&#x0240;
 &#x0242;
 &#x0247;
 &#x0249;
 &#x024B;
 &#x024D;
 &#x024F;
 &#x0250;
 &#x0251;
+&#x0252;
 &#x0253;
 &#x0254;
 &#x0256;
 &#x0257;
 &#x0259;
 &#x025B;
 &#x0260;
 &#x0263;
@@ -440,16 +443,17 @@
 &#x0515;
 &#x0517;
 &#x0519;
 &#x051B;
 &#x051D;
 &#x051F;
 &#x0521;
 &#x0523;
+&#x0525;
 &#x0561;
 &#x0562;
 &#x0563;
 &#x0564;
 &#x0565;
 &#x0566;
 &#x0567;
 &#x0568;
@@ -850,16 +854,18 @@
 &#x2CD5;
 &#x2CD7;
 &#x2CD9;
 &#x2CDB;
 &#x2CDD;
 &#x2CDF;
 &#x2CE1;
 &#x2CE3;
+&#x2CEC;
+&#x2CEE;
 &#x2D00;
 &#x2D01;
 &#x2D02;
 &#x2D03;
 &#x2D04;
 &#x2D05;
 &#x2D06;
 &#x2D07;