changeset 3520:2adc6cce69d4

Merge
author asaha
date Mon, 06 Jul 2009 11:16:03 -0700
parents 75fcf3cd3bad d22867c5f1b2
children 89ade57c2e87
files jdk/src/share/classes/java/nio/file/DirectoryStreamFilters.java jdk/src/share/classes/java/nio/file/FileAction.java jdk/src/share/classes/java/nio/file/spi/AbstractPath.java jdk/src/share/classes/sun/io/ByteToCharMS932DB.java jdk/src/share/classes/sun/io/CharToByteMS932DB.java jdk/src/share/classes/sun/nio/cs/ext/EUC_CN.java jdk/src/share/classes/sun/nio/cs/ext/EUC_KR.java jdk/src/share/classes/sun/nio/cs/ext/GBK.java jdk/src/share/classes/sun/nio/cs/ext/Johab.java jdk/src/share/classes/sun/nio/cs/ext/MS932.java jdk/src/share/classes/sun/nio/cs/ext/MS932DB.java jdk/src/share/classes/sun/nio/cs/ext/MS936.java jdk/src/share/classes/sun/nio/cs/ext/MS949.java jdk/src/share/classes/sun/nio/cs/ext/MS950.java jdk/src/share/classes/sun/nio/fs/AbstractFileStoreSpaceAttributeView.java jdk/src/share/classes/sun/nio/fs/MimeType.java jdk/src/share/classes/sun/swing/AccessibleMethod.java jdk/test/java/nio/file/DirectoryStream/Filters.java jdk/test/java/nio/file/Files/content_type.sh jdk/test/java/nio/file/Path/temporary_files.sh jdk/test/java/nio/file/attribute/Attributes/Basic.java
diffstat 697 files changed, 210470 insertions(+), 58692 deletions(-) [+]
line wrap: on
line diff
--- a/.hgtags	Tue Jun 30 16:23:54 2009 -0700
+++ b/.hgtags	Mon Jul 06 11:16:03 2009 -0700
@@ -36,3 +36,5 @@
 c33e7d38c9210741dbc285507403a4b20bd802a0 jdk7-b59
 5a10e4d0b14d7beac53a7b2213ae6864afe1fd3e jdk7-b60
 dbb955b1ee59b876dd1f133952b557b48b1d7732 jdk7-b61
+6107cbff3130c747d243c25a7874cd59db5744a8 jdk7-b62
+dfd8506f74c3731bb169ce93c72612d78ee0413b jdk7-b63
--- a/.hgtags-top-repo	Tue Jun 30 16:23:54 2009 -0700
+++ b/.hgtags-top-repo	Mon Jul 06 11:16:03 2009 -0700
@@ -36,3 +36,5 @@
 030142474602b4a067662fffc0c8e541de5a78df jdk7-b59
 39565502682c7085369bd09e51640919dc741097 jdk7-b60
 472c21584cfd7e9c0229ad6a100366a5c03d2976 jdk7-b61
+c7ed15ab92ce36a09d264a5e34025884b2d7607f jdk7-b62
+57f7e028c7ad1806500ae89eb3f4cd9a51b10e18 jdk7-b63
--- a/corba/.hgtags	Tue Jun 30 16:23:54 2009 -0700
+++ b/corba/.hgtags	Mon Jul 06 11:16:03 2009 -0700
@@ -36,3 +36,5 @@
 7e6b2b55c00cc523b468272353ada3979adbbf16 jdk7-b59
 f1e1cccbd13aa96d2d8bd872782ff764010bc22c jdk7-b60
 e906b16a12a9a63b615898afa5d9673cbd1c5ab8 jdk7-b61
+65b66117dbd70a493e9644aeb4033cf95a4e3c99 jdk7-b62
+d20e45cd539f20405ff843652069cfd7550c5ab3 jdk7-b63
--- a/corba/make/common/Defs-windows.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/corba/make/common/Defs-windows.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -365,10 +365,10 @@
     COPYRIGHT_YEAR = 2007 
 endif
 
-RC_FLAGS += -d "J2SE_BUILD_ID=$(FULL_VERSION)" \
-            -d "J2SE_COMPANY=$(COMPANY_NAME)" \
-            -d "J2SE_COMPONENT=$(PRODUCT_NAME) Platform SE binary" \
-            -d "J2SE_VER=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(J2SE_UPDATE_VER).$(COOKED_BUILD_NUMBER)" \
-            -d "J2SE_COPYRIGHT=Copyright \xA9 $(COPYRIGHT_YEAR)" \
-            -d "J2SE_NAME=$(PRODUCT_NAME) Platform SE $(JDK_MINOR_VERSION) $(J2SE_UPDATE_META_TAG)" \
-            -d "J2SE_FVER=$(JDK_VERSION)"
+RC_FLAGS += -d "JDK_BUILD_ID=$(FULL_VERSION)" \
+            -d "JDK_COMPANY=$(COMPANY_NAME)" \
+            -d "JDK_COMPONENT=$(PRODUCT_NAME) Platform SE binary" \
+            -d "JDK_VER=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)" \
+            -d "JDK_COPYRIGHT=Copyright \xA9 $(COPYRIGHT_YEAR)" \
+            -d "JDK_NAME=$(PRODUCT_NAME) Platform SE $(JDK_MINOR_VERSION) $(JDK_UPDATE_META_TAG)" \
+            -d "JDK_FVER=$(JDK_VERSION)"
--- a/corba/make/common/Library.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/corba/make/common/Library.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -158,9 +158,9 @@
 endif
 	@$(ECHO) Created $@ 
 
-RC_FLAGS += /D "J2SE_FNAME=$(LIBRARY).dll" \
-            /D "J2SE_INTERNAL_NAME=$(LIBRARY)" \
-            /D "J2SE_FTYPE=0x2L"
+RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
+            /D "JDK_INTERNAL_NAME=$(LIBRARY)" \
+            /D "JDK_FTYPE=0x2L"
 
 $(OBJDIR)/$(LIBRARY).res: $(VERSIONINFO_RESOURCE)
 ifndef LOCAL_RESOURCE_FILE
--- a/corba/make/org/omg/idl/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/corba/make/org/omg/idl/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -32,6 +32,12 @@
 PRODUCT = sun
 include $(BUILDDIR)/common/Defs.gmk
 
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
 #
 # Files
 #
--- a/corba/src/windows/resource/version.rc	Tue Jun 30 16:23:54 2009 -0700
+++ b/corba/src/windows/resource/version.rc	Mon Jul 06 11:16:03 2009 -0700
@@ -37,8 +37,8 @@
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION    J2SE_FVER
- PRODUCTVERSION J2SE_FVER
+ FILEVERSION    JDK_FVER
+ PRODUCTVERSION JDK_FVER
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -48,22 +48,22 @@
  // FILEOS 0x4 is Win32, 0x40004 is Win32 NT only
  FILEOS 0x4L
  // FILETYPE should be 0x1 for .exe and 0x2 for .dll
- FILETYPE J2SE_FTYPE
+ FILETYPE JDK_FTYPE
  FILESUBTYPE 0x0L
 BEGIN
     BLOCK "StringFileInfo"
     BEGIN
         BLOCK "000004b0"
         BEGIN
-            VALUE "CompanyName",      XSTR(J2SE_COMPANY)       "\0"
-            VALUE "FileDescription",  XSTR(J2SE_COMPONENT)     "\0"
-            VALUE "FileVersion",      XSTR(J2SE_VER)           "\0"
-            VALUE "Full Version",     XSTR(J2SE_BUILD_ID)      "\0"
-	    VALUE "InternalName",     XSTR(J2SE_INTERNAL_NAME) "\0"
-            VALUE "LegalCopyright",   XSTR(J2SE_COPYRIGHT)     "\0"
-            VALUE "OriginalFilename", XSTR(J2SE_FNAME)         "\0"
-            VALUE "ProductName",      XSTR(J2SE_NAME)          "\0"
-            VALUE "ProductVersion",   XSTR(J2SE_VER)           "\0"
+            VALUE "CompanyName",      XSTR(JDK_COMPANY)       "\0"
+            VALUE "FileDescription",  XSTR(JDK_COMPONENT)     "\0"
+            VALUE "FileVersion",      XSTR(JDK_VER)           "\0"
+            VALUE "Full Version",     XSTR(JDK_BUILD_ID)      "\0"
+	    VALUE "InternalName",     XSTR(JDK_INTERNAL_NAME) "\0"
+            VALUE "LegalCopyright",   XSTR(JDK_COPYRIGHT)     "\0"
+            VALUE "OriginalFilename", XSTR(JDK_FNAME)         "\0"
+            VALUE "ProductName",      XSTR(JDK_NAME)          "\0"
+            VALUE "ProductVersion",   XSTR(JDK_VER)           "\0"
         END
     END
     BLOCK "VarFileInfo"
--- a/hotspot/.hgtags	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/.hgtags	Mon Jul 06 11:16:03 2009 -0700
@@ -36,3 +36,5 @@
 c55be0c7bd32c016c52218eb4c8b5da8a75450b5 jdk7-b59
 a77eddcd510c3972717c025cfcef9a60bfa4ecac jdk7-b60
 27b728fd1281ab62e9d7e4424f8bbb6ca438d803 jdk7-b61
+a88386380bdaaa5ab4ffbedf22c57bac5dbec034 jdk7-b62
+32c83fb84370a35344676991a48440378e6b6c8a jdk7-b63
--- a/hotspot/make/hotspot_version	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/make/hotspot_version	Mon Jul 06 11:16:03 2009 -0700
@@ -35,7 +35,7 @@
 
 HS_MAJOR_VER=16
 HS_MINOR_VER=0
-HS_BUILD_NUMBER=04
+HS_BUILD_NUMBER=05
 
 JDK_MAJOR_VER=1
 JDK_MINOR_VER=7
--- a/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -1157,6 +1157,13 @@
   } else {
     // We're done with marking.
     JavaThread::satb_mark_queue_set().set_active_all_threads(false);
+
+    if (VerifyDuringGC) {
+      g1h->prepare_for_verify();
+      g1h->verify(/* allow_dirty */      true,
+                  /* silent */           false,
+                  /* use_prev_marking */ false);
+    }
   }
 
 #if VERIFY_OBJS_PROCESSED
@@ -1747,12 +1754,12 @@
   // races with it goes around and waits for completeCleanup to finish.
   g1h->increment_total_collections();
 
-#ifndef PRODUCT
   if (VerifyDuringGC) {
-    G1CollectedHeap::heap()->prepare_for_verify();
-    G1CollectedHeap::heap()->verify(true,false);
+    g1h->prepare_for_verify();
+    g1h->verify(/* allow_dirty */      true,
+                /* silent */           false,
+                /* use_prev_marking */ true);
   }
-#endif
 }
 
 void ConcurrentMark::completeCleanup() {
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -1535,6 +1535,15 @@
   guarantee(_hrs != NULL, "Couldn't allocate HeapRegionSeq");
   guarantee(_cur_alloc_region == NULL, "from constructor");
 
+  // 6843694 - ensure that the maximum region index can fit
+  // in the remembered set structures.
+  const size_t max_region_idx = ((size_t)1 << (sizeof(RegionIdx_t)*BitsPerByte-1)) - 1;
+  guarantee((max_regions() - 1) <= max_region_idx, "too many regions");
+
+  const size_t cards_per_region = HeapRegion::GrainBytes >> CardTableModRefBS::card_shift;
+  size_t max_cards_per_region = ((size_t)1 << (sizeof(CardIdx_t)*BitsPerByte-1)) - 1;
+  guarantee(cards_per_region < max_cards_per_region, "too many cards per region");
+
   _bot_shared = new G1BlockOffsetSharedArray(_reserved,
                                              heap_word_size(init_byte_size));
 
@@ -2127,17 +2136,22 @@
 };
 
 class VerifyObjsInRegionClosure: public ObjectClosure {
+private:
   G1CollectedHeap* _g1h;
   size_t _live_bytes;
   HeapRegion *_hr;
+  bool _use_prev_marking;
 public:
-  VerifyObjsInRegionClosure(HeapRegion *hr) : _live_bytes(0), _hr(hr) {
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyObjsInRegionClosure(HeapRegion *hr, bool use_prev_marking)
+    : _live_bytes(0), _hr(hr), _use_prev_marking(use_prev_marking) {
     _g1h = G1CollectedHeap::heap();
   }
   void do_object(oop o) {
     VerifyLivenessOopClosure isLive(_g1h);
     assert(o != NULL, "Huh?");
-    if (!_g1h->is_obj_dead(o)) {
+    if (!_g1h->is_obj_dead_cond(o, _use_prev_marking)) {
       o->oop_iterate(&isLive);
       if (!_hr->obj_allocated_since_prev_marking(o))
         _live_bytes += (o->size() * HeapWordSize);
@@ -2176,17 +2190,22 @@
 };
 
 class VerifyRegionClosure: public HeapRegionClosure {
-public:
+private:
   bool _allow_dirty;
   bool _par;
-  VerifyRegionClosure(bool allow_dirty, bool par = false)
-    : _allow_dirty(allow_dirty), _par(par) {}
+  bool _use_prev_marking;
+public:
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyRegionClosure(bool allow_dirty, bool par, bool use_prev_marking)
+    : _allow_dirty(allow_dirty), _par(par),
+      _use_prev_marking(use_prev_marking) {}
   bool doHeapRegion(HeapRegion* r) {
     guarantee(_par || r->claim_value() == HeapRegion::InitialClaimValue,
               "Should be unclaimed at verify points.");
     if (!r->continuesHumongous()) {
-      VerifyObjsInRegionClosure not_dead_yet_cl(r);
-      r->verify(_allow_dirty);
+      VerifyObjsInRegionClosure not_dead_yet_cl(r, _use_prev_marking);
+      r->verify(_allow_dirty, _use_prev_marking);
       r->object_iterate(&not_dead_yet_cl);
       guarantee(r->max_live_bytes() >= not_dead_yet_cl.live_bytes(),
                 "More live objects than counted in last complete marking.");
@@ -2199,10 +2218,13 @@
 private:
   G1CollectedHeap* _g1h;
   bool             _failures;
-
+  bool             _use_prev_marking;
 public:
-  VerifyRootsClosure() :
-    _g1h(G1CollectedHeap::heap()), _failures(false) { }
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyRootsClosure(bool use_prev_marking) :
+    _g1h(G1CollectedHeap::heap()), _failures(false),
+    _use_prev_marking(use_prev_marking) { }
 
   bool failures() { return _failures; }
 
@@ -2213,7 +2235,7 @@
   void do_oop(oop* p) {
     oop obj = *p;
     if (obj != NULL) {
-      if (_g1h->is_obj_dead(obj)) {
+      if (_g1h->is_obj_dead_cond(obj, _use_prev_marking)) {
         gclog_or_tty->print_cr("Root location "PTR_FORMAT" "
                                "points to dead obj "PTR_FORMAT, p, (void*) obj);
         obj->print_on(gclog_or_tty);
@@ -2229,24 +2251,35 @@
 private:
   G1CollectedHeap* _g1h;
   bool _allow_dirty;
+  bool _use_prev_marking;
 
 public:
-  G1ParVerifyTask(G1CollectedHeap* g1h, bool allow_dirty) :
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  G1ParVerifyTask(G1CollectedHeap* g1h, bool allow_dirty,
+                  bool use_prev_marking) :
     AbstractGangTask("Parallel verify task"),
-    _g1h(g1h), _allow_dirty(allow_dirty) { }
+    _g1h(g1h), _allow_dirty(allow_dirty),
+    _use_prev_marking(use_prev_marking) { }
 
   void work(int worker_i) {
     HandleMark hm;
-    VerifyRegionClosure blk(_allow_dirty, true);
+    VerifyRegionClosure blk(_allow_dirty, true, _use_prev_marking);
     _g1h->heap_region_par_iterate_chunked(&blk, worker_i,
                                           HeapRegion::ParVerifyClaimValue);
   }
 };
 
 void G1CollectedHeap::verify(bool allow_dirty, bool silent) {
+  verify(allow_dirty, silent, /* use_prev_marking */ true);
+}
+
+void G1CollectedHeap::verify(bool allow_dirty,
+                             bool silent,
+                             bool use_prev_marking) {
   if (SafepointSynchronize::is_at_safepoint() || ! UseTLAB) {
     if (!silent) { gclog_or_tty->print("roots "); }
-    VerifyRootsClosure rootsCl;
+    VerifyRootsClosure rootsCl(use_prev_marking);
     process_strong_roots(false,
                          SharedHeap::SO_AllClasses,
                          &rootsCl,
@@ -2257,7 +2290,7 @@
       assert(check_heap_region_claim_values(HeapRegion::InitialClaimValue),
              "sanity check");
 
-      G1ParVerifyTask task(this, allow_dirty);
+      G1ParVerifyTask task(this, allow_dirty, use_prev_marking);
       int n_workers = workers()->total_workers();
       set_par_threads(n_workers);
       workers()->run_task(&task);
@@ -2271,7 +2304,7 @@
       assert(check_heap_region_claim_values(HeapRegion::InitialClaimValue),
              "sanity check");
     } else {
-      VerifyRegionClosure blk(allow_dirty);
+      VerifyRegionClosure blk(allow_dirty, false, use_prev_marking);
       _hrs->iterate(&blk);
     }
     if (!silent) gclog_or_tty->print("remset ");
--- a/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -59,6 +59,9 @@
 typedef GenericTaskQueue<oop*>    RefToScanQueue;
 typedef GenericTaskQueueSet<oop*> RefToScanQueueSet;
 
+typedef int RegionIdx_t;   // needs to hold [ 0..max_regions() )
+typedef int CardIdx_t;     // needs to hold [ 0..CardsPerRegion )
+
 enum G1GCThreadGroups {
   G1CRGroup = 0,
   G1ZFGroup = 1,
@@ -1046,6 +1049,17 @@
   virtual void prepare_for_verify();
 
   // Perform verification.
+
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  // NOTE: Only the "prev" marking information is guaranteed to be
+  // consistent most of the time, so most calls to this should use
+  // use_prev_marking == true. Currently, there is only one case where
+  // this is called with use_prev_marking == false, which is to verify
+  // the "next" marking information at the end of remark.
+  void verify(bool allow_dirty, bool silent, bool use_prev_marking);
+
+  // Override; it uses the "prev" marking information
   virtual void verify(bool allow_dirty, bool silent);
   virtual void print() const;
   virtual void print_on(outputStream* st) const;
@@ -1122,6 +1136,18 @@
   bool isMarkedPrev(oop obj) const;
   bool isMarkedNext(oop obj) const;
 
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  bool is_obj_dead_cond(const oop obj,
+                        const HeapRegion* hr,
+                        const bool use_prev_marking) const {
+    if (use_prev_marking) {
+      return is_obj_dead(obj, hr);
+    } else {
+      return is_obj_ill(obj, hr);
+    }
+  }
+
   // Determine if an object is dead, given the object and also
   // the region to which the object belongs. An object is dead
   // iff a) it was not allocated since the last mark and b) it
@@ -1159,8 +1185,19 @@
   // Added if it is in permanent gen it isn't dead.
   // Added if it is NULL it isn't dead.
 
-  bool is_obj_dead(oop obj) {
-    HeapRegion* hr = heap_region_containing(obj);
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  bool is_obj_dead_cond(const oop obj,
+                        const bool use_prev_marking) {
+    if (use_prev_marking) {
+      return is_obj_dead(obj);
+    } else {
+      return is_obj_ill(obj);
+    }
+  }
+
+  bool is_obj_dead(const oop obj) {
+    const HeapRegion* hr = heap_region_containing(obj);
     if (hr == NULL) {
       if (Universe::heap()->is_in_permanent(obj))
         return false;
@@ -1170,8 +1207,8 @@
     else return is_obj_dead(obj, hr);
   }
 
-  bool is_obj_ill(oop obj) {
-    HeapRegion* hr = heap_region_containing(obj);
+  bool is_obj_ill(const oop obj) {
+    const HeapRegion* hr = heap_region_containing(obj);
     if (hr == NULL) {
       if (Universe::heap()->is_in_permanent(obj))
         return false;
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -40,15 +40,19 @@
 {}
 
 class VerifyLiveClosure: public OopClosure {
+private:
   G1CollectedHeap* _g1h;
   CardTableModRefBS* _bs;
   oop _containing_obj;
   bool _failures;
   int _n_failures;
+  bool _use_prev_marking;
 public:
-  VerifyLiveClosure(G1CollectedHeap* g1h) :
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  VerifyLiveClosure(G1CollectedHeap* g1h, bool use_prev_marking) :
     _g1h(g1h), _bs(NULL), _containing_obj(NULL),
-    _failures(false), _n_failures(0)
+    _failures(false), _n_failures(0), _use_prev_marking(use_prev_marking)
   {
     BarrierSet* bs = _g1h->barrier_set();
     if (bs->is_a(BarrierSet::CardTableModRef))
@@ -68,11 +72,13 @@
 
   void do_oop(oop* p) {
     assert(_containing_obj != NULL, "Precondition");
-    assert(!_g1h->is_obj_dead(_containing_obj), "Precondition");
+    assert(!_g1h->is_obj_dead_cond(_containing_obj, _use_prev_marking),
+           "Precondition");
     oop obj = *p;
     if (obj != NULL) {
       bool failed = false;
-      if (!_g1h->is_in_closed_subset(obj) || _g1h->is_obj_dead(obj)) {
+      if (!_g1h->is_in_closed_subset(obj) ||
+          _g1h->is_obj_dead_cond(obj, _use_prev_marking)) {
         if (!_failures) {
           gclog_or_tty->print_cr("");
           gclog_or_tty->print_cr("----------");
@@ -647,19 +653,23 @@
   G1OffsetTableContigSpace::print_on(st);
 }
 
+void HeapRegion::verify(bool allow_dirty) const {
+  verify(allow_dirty, /* use_prev_marking */ true);
+}
+
 #define OBJ_SAMPLE_INTERVAL 0
 #define BLOCK_SAMPLE_INTERVAL 100
 
 // This really ought to be commoned up into OffsetTableContigSpace somehow.
 // We would need a mechanism to make that code skip dead objects.
 
-void HeapRegion::verify(bool allow_dirty) const {
+void HeapRegion::verify(bool allow_dirty, bool use_prev_marking) const {
   G1CollectedHeap* g1 = G1CollectedHeap::heap();
   HeapWord* p = bottom();
   HeapWord* prev_p = NULL;
   int objs = 0;
   int blocks = 0;
-  VerifyLiveClosure vl_cl(g1);
+  VerifyLiveClosure vl_cl(g1, use_prev_marking);
   while (p < top()) {
     size_t size = oop(p)->size();
     if (blocks == BLOCK_SAMPLE_INTERVAL) {
@@ -671,7 +681,7 @@
     }
     if (objs == OBJ_SAMPLE_INTERVAL) {
       oop obj = oop(p);
-      if (!g1->is_obj_dead(obj, this)) {
+      if (!g1->is_obj_dead_cond(obj, this, use_prev_marking)) {
         obj->verify();
         vl_cl.set_containing_obj(obj);
         obj->oop_iterate(&vl_cl);
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegion.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -782,7 +782,16 @@
   void print() const;
   void print_on(outputStream* st) const;
 
-  // Override
+  // use_prev_marking == true  -> use "prev" marking information,
+  // use_prev_marking == false -> use "next" marking information
+  // NOTE: Only the "prev" marking information is guaranteed to be
+  // consistent most of the time, so most calls to this should use
+  // use_prev_marking == true. Currently, there is only one case where
+  // this is called with use_prev_marking == false, which is to verify
+  // the "next" marking information at the end of remark.
+  void verify(bool allow_dirty, bool use_prev_marking) const;
+
+  // Override; it uses the "prev" marking information
   virtual void verify(bool allow_dirty) const;
 
 #ifdef DEBUG
--- a/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/heapRegionRemSet.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -109,7 +109,7 @@
     return new PerRegionTable(hr);
   }
 
-  void add_card_work(short from_card, bool par) {
+  void add_card_work(CardIdx_t from_card, bool par) {
     if (!_bm.at(from_card)) {
       if (par) {
         if (_bm.par_at_put(from_card, 1)) {
@@ -141,11 +141,11 @@
     // and adding a bit to the new table is never incorrect.
     if (loc_hr->is_in_reserved(from)) {
       size_t hw_offset = pointer_delta((HeapWord*)from, loc_hr->bottom());
-      size_t from_card =
-        hw_offset >>
-        (CardTableModRefBS::card_shift - LogHeapWordSize);
+      CardIdx_t from_card = (CardIdx_t)
+          hw_offset >> (CardTableModRefBS::card_shift - LogHeapWordSize);
 
-      add_card_work((short) from_card, par);
+      assert(0 <= from_card && from_card < CardsPerRegion, "Must be in range.");
+      add_card_work(from_card, par);
     }
   }
 
@@ -190,11 +190,11 @@
 #endif
   }
 
-  void add_card(short from_card_index) {
+  void add_card(CardIdx_t from_card_index) {
     add_card_work(from_card_index, /*parallel*/ true);
   }
 
-  void seq_add_card(short from_card_index) {
+  void seq_add_card(CardIdx_t from_card_index) {
     add_card_work(from_card_index, /*parallel*/ false);
   }
 
@@ -604,7 +604,7 @@
 
   // Note that this may be a continued H region.
   HeapRegion* from_hr = _g1h->heap_region_containing_raw(from);
-  size_t from_hrs_ind = (size_t)from_hr->hrs_index();
+  RegionIdx_t from_hrs_ind = (RegionIdx_t) from_hr->hrs_index();
 
   // If the region is already coarsened, return.
   if (_coarse_map.at(from_hrs_ind)) {
@@ -627,11 +627,11 @@
       uintptr_t from_hr_bot_card_index =
         uintptr_t(from_hr->bottom())
           >> CardTableModRefBS::card_shift;
-      int card_index = from_card - from_hr_bot_card_index;
+      CardIdx_t card_index = from_card - from_hr_bot_card_index;
       assert(0 <= card_index && card_index < PosParPRT::CardsPerRegion,
              "Must be in range.");
       if (G1HRRSUseSparseTable &&
-          _sparse_table.add_card((short) from_hrs_ind, card_index)) {
+          _sparse_table.add_card(from_hrs_ind, card_index)) {
         if (G1RecordHRRSOops) {
           HeapRegionRemSet::record(hr(), from);
 #if HRRS_VERBOSE
@@ -656,9 +656,9 @@
       }
 
       // Otherwise, transfer from sparse to fine-grain.
-      short cards[SparsePRTEntry::CardsPerEntry];
+      CardIdx_t cards[SparsePRTEntry::CardsPerEntry];
       if (G1HRRSUseSparseTable) {
-        bool res = _sparse_table.get_cards((short) from_hrs_ind, &cards[0]);
+        bool res = _sparse_table.get_cards(from_hrs_ind, &cards[0]);
         assert(res, "There should have been an entry");
       }
 
@@ -679,13 +679,13 @@
       // Add in the cards from the sparse table.
       if (G1HRRSUseSparseTable) {
         for (int i = 0; i < SparsePRTEntry::CardsPerEntry; i++) {
-          short c = cards[i];
+          CardIdx_t c = cards[i];
           if (c != SparsePRTEntry::NullEntry) {
             prt->add_card(c);
           }
         }
         // Now we can delete the sparse entry.
-        bool res = _sparse_table.delete_entry((short) from_hrs_ind);
+        bool res = _sparse_table.delete_entry(from_hrs_ind);
         assert(res, "It should have been there.");
       }
     }
@@ -1030,7 +1030,7 @@
 bool OtherRegionsTable::contains_reference_locked(oop* from) const {
   HeapRegion* hr = _g1h->heap_region_containing_raw(from);
   if (hr == NULL) return false;
-  size_t hr_ind = hr->hrs_index();
+  RegionIdx_t hr_ind = (RegionIdx_t) hr->hrs_index();
   // Is this region in the coarse map?
   if (_coarse_map.at(hr_ind)) return true;
 
@@ -1045,8 +1045,9 @@
     uintptr_t hr_bot_card_index =
       uintptr_t(hr->bottom()) >> CardTableModRefBS::card_shift;
     assert(from_card >= hr_bot_card_index, "Inv");
-    int card_index = from_card - hr_bot_card_index;
-    return _sparse_table.contains_card((short)hr_ind, card_index);
+    CardIdx_t card_index = from_card - hr_bot_card_index;
+    assert(0 <= card_index && card_index < PosParPRT::CardsPerRegion, "Must be in range.");
+    return _sparse_table.contains_card(hr_ind, card_index);
   }
 
 
--- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -33,7 +33,7 @@
     sprt_iter->init(this);
 }
 
-void SparsePRTEntry::init(short region_ind) {
+void SparsePRTEntry::init(RegionIdx_t region_ind) {
   _region_ind = region_ind;
   _next_index = NullEntry;
 #if UNROLL_CARD_LOOPS
@@ -43,11 +43,12 @@
   _cards[2] = NullEntry;
   _cards[3] = NullEntry;
 #else
-  for (int i = 0; i < CardsPerEntry; i++) _cards[i] = NullEntry;
+  for (int i = 0; i < CardsPerEntry; i++)
+    _cards[i] = NullEntry;
 #endif
 }
 
-bool SparsePRTEntry::contains_card(short card_index) const {
+bool SparsePRTEntry::contains_card(CardIdx_t card_index) const {
 #if UNROLL_CARD_LOOPS
   assert(CardsPerEntry == 4, "Assumption.  If changes, un-unroll.");
   if (_cards[0] == card_index) return true;
@@ -80,10 +81,10 @@
   return sum;
 }
 
-SparsePRTEntry::AddCardResult SparsePRTEntry::add_card(short card_index) {
+SparsePRTEntry::AddCardResult SparsePRTEntry::add_card(CardIdx_t card_index) {
 #if UNROLL_CARD_LOOPS
   assert(CardsPerEntry == 4, "Assumption.  If changes, un-unroll.");
-  short c = _cards[0];
+  CardIdx_t c = _cards[0];
   if (c == card_index) return found;
   if (c == NullEntry) { _cards[0] = card_index; return added; }
   c = _cards[1];
@@ -97,16 +98,19 @@
   if (c == NullEntry) { _cards[3] = card_index; return added; }
 #else
   for (int i = 0; i < CardsPerEntry; i++) {
-    short c = _cards[i];
+    CardIdx_t c = _cards[i];
     if (c == card_index) return found;
-    if (c == NullEntry) { _cards[i] = card_index; return added; }
+    if (c == NullEntry) {
+      _cards[i] = card_index;
+      return added;
+    }
   }
 #endif
   // Otherwise, we're full.
   return overflow;
 }
 
-void SparsePRTEntry::copy_cards(short* cards) const {
+void SparsePRTEntry::copy_cards(CardIdx_t* cards) const {
 #if UNROLL_CARD_LOOPS
   assert(CardsPerEntry == 4, "Assumption.  If changes, un-unroll.");
   cards[0] = _cards[0];
@@ -130,7 +134,7 @@
   _capacity(capacity), _capacity_mask(capacity-1),
   _occupied_entries(0), _occupied_cards(0),
   _entries(NEW_C_HEAP_ARRAY(SparsePRTEntry, capacity)),
-  _buckets(NEW_C_HEAP_ARRAY(short, capacity)),
+  _buckets(NEW_C_HEAP_ARRAY(int, capacity)),
   _next_deleted(NULL), _deleted(false),
   _free_list(NullEntry), _free_region(0)
 {
@@ -143,7 +147,7 @@
     _entries = NULL;
   }
   if (_buckets != NULL) {
-    FREE_C_HEAP_ARRAY(short, _buckets);
+    FREE_C_HEAP_ARRAY(int, _buckets);
     _buckets = NULL;
   }
 }
@@ -153,14 +157,18 @@
   _occupied_cards = 0;
   guarantee(_entries != NULL, "INV");
   guarantee(_buckets != NULL, "INV");
+
+  guarantee(_capacity <= ((size_t)1 << (sizeof(int)*BitsPerByte-1)) - 1,
+                "_capacity too large");
+
   // This will put -1 == NullEntry in the key field of all entries.
   memset(_entries, -1, _capacity * sizeof(SparsePRTEntry));
-  memset(_buckets, -1, _capacity * sizeof(short));
+  memset(_buckets, -1, _capacity * sizeof(int));
   _free_list = NullEntry;
   _free_region = 0;
 }
 
-bool RSHashTable::add_card(short region_ind, short card_index) {
+bool RSHashTable::add_card(RegionIdx_t region_ind, CardIdx_t card_index) {
   SparsePRTEntry* e = entry_for_region_ind_create(region_ind);
   assert(e != NULL && e->r_ind() == region_ind,
          "Postcondition of call above.");
@@ -175,9 +183,9 @@
   return res != SparsePRTEntry::overflow;
 }
 
-bool RSHashTable::get_cards(short region_ind, short* cards) {
-  short ind = (short) (region_ind & capacity_mask());
-  short cur_ind = _buckets[ind];
+bool RSHashTable::get_cards(RegionIdx_t region_ind, CardIdx_t* cards) {
+  int ind = (int) (region_ind & capacity_mask());
+  int cur_ind = _buckets[ind];
   SparsePRTEntry* cur;
   while (cur_ind != NullEntry &&
          (cur = entry(cur_ind))->r_ind() != region_ind) {
@@ -192,10 +200,10 @@
   return true;
 }
 
-bool RSHashTable::delete_entry(short region_ind) {
-  short ind = (short) (region_ind & capacity_mask());
-  short* prev_loc = &_buckets[ind];
-  short cur_ind = *prev_loc;
+bool RSHashTable::delete_entry(RegionIdx_t region_ind) {
+  int ind = (int) (region_ind & capacity_mask());
+  int* prev_loc = &_buckets[ind];
+  int cur_ind = *prev_loc;
   SparsePRTEntry* cur;
   while (cur_ind != NullEntry &&
          (cur = entry(cur_ind))->r_ind() != region_ind) {
@@ -212,10 +220,11 @@
   return true;
 }
 
-SparsePRTEntry* RSHashTable::entry_for_region_ind(short region_ind) const {
+SparsePRTEntry*
+RSHashTable::entry_for_region_ind(RegionIdx_t region_ind) const {
   assert(occupied_entries() < capacity(), "Precondition");
-  short ind = (short) (region_ind & capacity_mask());
-  short cur_ind = _buckets[ind];
+  int ind = (int) (region_ind & capacity_mask());
+  int cur_ind = _buckets[ind];
   SparsePRTEntry* cur;
   // XXX
   // int k = 0;
@@ -242,15 +251,16 @@
   }
 }
 
-SparsePRTEntry* RSHashTable::entry_for_region_ind_create(short region_ind) {
+SparsePRTEntry*
+RSHashTable::entry_for_region_ind_create(RegionIdx_t region_ind) {
   SparsePRTEntry* res = entry_for_region_ind(region_ind);
   if (res == NULL) {
-    short new_ind = alloc_entry();
+    int new_ind = alloc_entry();
     assert(0 <= new_ind && (size_t)new_ind < capacity(), "There should be room.");
     res = entry(new_ind);
     res->init(region_ind);
     // Insert at front.
-    short ind = (short) (region_ind & capacity_mask());
+    int ind = (int) (region_ind & capacity_mask());
     res->set_next_index(_buckets[ind]);
     _buckets[ind] = new_ind;
     _occupied_entries++;
@@ -258,8 +268,8 @@
   return res;
 }
 
-short RSHashTable::alloc_entry() {
-  short res;
+int RSHashTable::alloc_entry() {
+  int res;
   if (_free_list != NullEntry) {
     res = _free_list;
     _free_list = entry(res)->next_index();
@@ -273,13 +283,11 @@
   }
 }
 
-
-void RSHashTable::free_entry(short fi) {
+void RSHashTable::free_entry(int fi) {
   entry(fi)->set_next_index(_free_list);
   _free_list = fi;
 }
 
-
 void RSHashTable::add_entry(SparsePRTEntry* e) {
   assert(e->num_valid_cards() > 0, "Precondition.");
   SparsePRTEntry* e2 = entry_for_region_ind_create(e->r_ind());
@@ -322,8 +330,8 @@
   return NULL;
 }
 
-short /* RSHashTable:: */ RSHashTableIter::find_first_card_in_list() {
-  short res;
+CardIdx_t /* RSHashTable:: */ RSHashTableIter::find_first_card_in_list() {
+  CardIdx_t res;
   while (_bl_ind != RSHashTable::NullEntry) {
     res = _rsht->entry(_bl_ind)->card(0);
     if (res != SparsePRTEntry::NullEntry) {
@@ -336,7 +344,7 @@
   return SparsePRTEntry::NullEntry;
 }
 
-size_t /* RSHashTable:: */ RSHashTableIter::compute_card_ind(short ci) {
+size_t /* RSHashTable:: */ RSHashTableIter::compute_card_ind(CardIdx_t ci) {
   return
     _heap_bot_card_ind
     + (_rsht->entry(_bl_ind)->r_ind() * CardsPerRegion)
@@ -345,7 +353,7 @@
 
 bool /* RSHashTable:: */ RSHashTableIter::has_next(size_t& card_index) {
   _card_ind++;
-  short ci;
+  CardIdx_t ci;
   if (_card_ind < SparsePRTEntry::CardsPerEntry &&
       ((ci = _rsht->entry(_bl_ind)->card(_card_ind)) !=
        SparsePRTEntry::NullEntry)) {
@@ -379,16 +387,16 @@
   return false;
 }
 
-bool RSHashTable::contains_card(short region_index, short card_index) const {
+bool RSHashTable::contains_card(RegionIdx_t region_index, CardIdx_t card_index) const {
   SparsePRTEntry* e = entry_for_region_ind(region_index);
   return (e != NULL && e->contains_card(card_index));
 }
 
 size_t RSHashTable::mem_size() const {
-  return sizeof(this) + capacity() * (sizeof(SparsePRTEntry) + sizeof(short));
+  return sizeof(this) +
+    capacity() * (sizeof(SparsePRTEntry) + sizeof(int));
 }
 
-
 // ----------------------------------------------------------------------
 
 SparsePRT* SparsePRT::_head_expanded_list = NULL;
@@ -408,6 +416,7 @@
   }
 }
 
+
 SparsePRT* SparsePRT::get_from_expanded_list() {
   SparsePRT* hd = _head_expanded_list;
   while (hd != NULL) {
@@ -452,6 +461,7 @@
   _next = _cur;
 }
 
+
 SparsePRT::~SparsePRT() {
   assert(_next != NULL && _cur != NULL, "Inv");
   if (_cur != _next) { delete _cur; }
@@ -465,7 +475,7 @@
   return sizeof(this) + _next->mem_size();
 }
 
-bool SparsePRT::add_card(short region_id, short card_index) {
+bool SparsePRT::add_card(RegionIdx_t region_id, CardIdx_t card_index) {
 #if SPARSE_PRT_VERBOSE
   gclog_or_tty->print_cr("  Adding card %d from region %d to region %d sparse.",
                 card_index, region_id, _hr->hrs_index());
@@ -476,11 +486,11 @@
   return _next->add_card(region_id, card_index);
 }
 
-bool SparsePRT::get_cards(short region_id, short* cards) {
+bool SparsePRT::get_cards(RegionIdx_t region_id, CardIdx_t* cards) {
   return _next->get_cards(region_id, cards);
 }
 
-bool SparsePRT::delete_entry(short region_id) {
+bool SparsePRT::delete_entry(RegionIdx_t region_id) {
   return _next->delete_entry(region_id);
 }
 
--- a/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/g1/sparsePRT.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -35,32 +35,32 @@
 
 class SparsePRTEntry: public CHeapObj {
 public:
+
   enum SomePublicConstants {
-    CardsPerEntry = (short)4,
-    NullEntry = (short)-1,
-    DeletedEntry = (short)-2
+    CardsPerEntry =  4,
+    NullEntry     = -1
   };
 
 private:
-  short _region_ind;
-  short _next_index;
-  short _cards[CardsPerEntry];
+  RegionIdx_t _region_ind;
+  int         _next_index;
+  CardIdx_t   _cards[CardsPerEntry];
 
 public:
 
   // Set the region_ind to the given value, and delete all cards.
-  inline void init(short region_ind);
+  inline void init(RegionIdx_t region_ind);
 
-  short r_ind() const { return _region_ind; }
+  RegionIdx_t r_ind() const { return _region_ind; }
   bool valid_entry() const { return r_ind() >= 0; }
-  void set_r_ind(short rind) { _region_ind = rind; }
+  void set_r_ind(RegionIdx_t rind) { _region_ind = rind; }
 
-  short next_index() const { return _next_index; }
-  short* next_index_addr() { return &_next_index; }
-  void set_next_index(short ni) { _next_index = ni; }
+  int next_index() const { return _next_index; }
+  int* next_index_addr() { return &_next_index; }
+  void set_next_index(int ni) { _next_index = ni; }
 
   // Returns "true" iff the entry contains the given card index.
-  inline bool contains_card(short card_index) const;
+  inline bool contains_card(CardIdx_t card_index) const;
 
   // Returns the number of non-NULL card entries.
   inline int num_valid_cards() const;
@@ -73,14 +73,14 @@
     found,
     added
   };
-  inline AddCardResult add_card(short card_index);
+  inline AddCardResult add_card(CardIdx_t card_index);
 
   // Copy the current entry's cards into "cards".
-  inline void copy_cards(short* cards) const;
+  inline void copy_cards(CardIdx_t* cards) const;
   // Copy the current entry's cards into the "_card" array of "e."
   inline void copy_cards(SparsePRTEntry* e) const;
 
-  inline short card(int i) const { return _cards[i]; }
+  inline CardIdx_t card(int i) const { return _cards[i]; }
 };
 
 
@@ -98,9 +98,9 @@
   size_t _occupied_cards;
 
   SparsePRTEntry* _entries;
-  short* _buckets;
-  short  _free_region;
-  short  _free_list;
+  int* _buckets;
+  int  _free_region;
+  int  _free_list;
 
   static RSHashTable* _head_deleted_list;
   RSHashTable* _next_deleted;
@@ -113,20 +113,20 @@
   // operations, and that the the table be less than completely full.  If
   // an entry for "region_ind" is already in the table, finds it and
   // returns its address; otherwise returns "NULL."
-  SparsePRTEntry* entry_for_region_ind(short region_ind) const;
+  SparsePRTEntry* entry_for_region_ind(RegionIdx_t region_ind) const;
 
   // Requires that the caller hold a lock preventing parallel modifying
   // operations, and that the the table be less than completely full.  If
   // an entry for "region_ind" is already in the table, finds it and
   // returns its address; otherwise allocates, initializes, inserts and
   // returns a new entry for "region_ind".
-  SparsePRTEntry* entry_for_region_ind_create(short region_ind);
+  SparsePRTEntry* entry_for_region_ind_create(RegionIdx_t region_ind);
 
   // Returns the index of the next free entry in "_entries".
-  short alloc_entry();
+  int alloc_entry();
   // Declares the entry "fi" to be free.  (It must have already been
   // deleted from any bucket lists.
-  void free_entry(short fi);
+  void free_entry(int fi);
 
 public:
   RSHashTable(size_t capacity);
@@ -138,12 +138,12 @@
   // Otherwise, returns "false" to indicate that the addition would
   // overflow the entry for the region.  The caller must transfer these
   // entries to a larger-capacity representation.
-  bool add_card(short region_id, short card_index);
+  bool add_card(RegionIdx_t region_id, CardIdx_t card_index);
 
-  bool get_cards(short region_id, short* cards);
-  bool delete_entry(short region_id);
+  bool get_cards(RegionIdx_t region_id, CardIdx_t* cards);
+  bool delete_entry(RegionIdx_t region_id);
 
-  bool contains_card(short region_id, short card_index) const;
+  bool contains_card(RegionIdx_t region_id, CardIdx_t card_index) const;
 
   void add_entry(SparsePRTEntry* e);
 
@@ -162,51 +162,49 @@
 
   static void add_to_deleted_list(RSHashTable* rsht);
   static RSHashTable* get_from_deleted_list();
-
-
 };
 
-  // ValueObj because will be embedded in HRRS iterator.
+// ValueObj because will be embedded in HRRS iterator.
 class RSHashTableIter VALUE_OBJ_CLASS_SPEC {
-    short _tbl_ind;
-    short _bl_ind;
-    short _card_ind;
-    RSHashTable* _rsht;
-    size_t _heap_bot_card_ind;
+  int _tbl_ind;         // [-1, 0.._rsht->_capacity)
+  int _bl_ind;          // [-1, 0.._rsht->_capacity)
+  short _card_ind;      // [0..CardsPerEntry)
+  RSHashTable* _rsht;
+  size_t _heap_bot_card_ind;
 
-    enum SomePrivateConstants {
-      CardsPerRegion = HeapRegion::GrainBytes >> CardTableModRefBS::card_shift
-    };
+  enum SomePrivateConstants {
+    CardsPerRegion = HeapRegion::GrainBytes >> CardTableModRefBS::card_shift
+  };
 
-    // If the bucket list pointed to by _bl_ind contains a card, sets
-    // _bl_ind to the index of that entry, and returns the card.
-    // Otherwise, returns SparseEntry::NullEnty.
-    short find_first_card_in_list();
-    // Computes the proper card index for the card whose offset in the
-    // current region (as indicated by _bl_ind) is "ci".
-    // This is subject to errors when there is iteration concurrent with
-    // modification, but these errors should be benign.
-    size_t compute_card_ind(short ci);
+  // If the bucket list pointed to by _bl_ind contains a card, sets
+  // _bl_ind to the index of that entry, and returns the card.
+  // Otherwise, returns SparseEntry::NullEntry.
+  CardIdx_t find_first_card_in_list();
 
-  public:
-    RSHashTableIter(size_t heap_bot_card_ind) :
-      _tbl_ind(RSHashTable::NullEntry),
-      _bl_ind(RSHashTable::NullEntry),
-      _card_ind((SparsePRTEntry::CardsPerEntry-1)),
-      _rsht(NULL),
-      _heap_bot_card_ind(heap_bot_card_ind)
-    {}
+  // Computes the proper card index for the card whose offset in the
+  // current region (as indicated by _bl_ind) is "ci".
+  // This is subject to errors when there is iteration concurrent with
+  // modification, but these errors should be benign.
+  size_t compute_card_ind(CardIdx_t ci);
 
-    void init(RSHashTable* rsht) {
-      _rsht = rsht;
-      _tbl_ind = -1; // So that first increment gets to 0.
-      _bl_ind = RSHashTable::NullEntry;
-      _card_ind = (SparsePRTEntry::CardsPerEntry-1);
-    }
+public:
+  RSHashTableIter(size_t heap_bot_card_ind) :
+    _tbl_ind(RSHashTable::NullEntry),
+    _bl_ind(RSHashTable::NullEntry),
+    _card_ind((SparsePRTEntry::CardsPerEntry-1)),
+    _rsht(NULL),
+    _heap_bot_card_ind(heap_bot_card_ind)
+  {}
 
-    bool has_next(size_t& card_index);
+  void init(RSHashTable* rsht) {
+    _rsht = rsht;
+    _tbl_ind = -1; // So that first increment gets to 0.
+    _bl_ind = RSHashTable::NullEntry;
+    _card_ind = (SparsePRTEntry::CardsPerEntry-1);
+  }
 
-  };
+  bool has_next(size_t& card_index);
+};
 
 // Concurrent accesss to a SparsePRT must be serialized by some external
 // mutex.
@@ -238,7 +236,6 @@
   SparsePRT* next_expanded() { return _next_expanded; }
   void set_next_expanded(SparsePRT* nxt) { _next_expanded = nxt; }
 
-
   static SparsePRT* _head_expanded_list;
 
 public:
@@ -255,16 +252,16 @@
   // Otherwise, returns "false" to indicate that the addition would
   // overflow the entry for the region.  The caller must transfer these
   // entries to a larger-capacity representation.
-  bool add_card(short region_id, short card_index);
+  bool add_card(RegionIdx_t region_id, CardIdx_t card_index);
 
   // If the table hold an entry for "region_ind",  Copies its
   // cards into "cards", which must be an array of length at least
   // "CardsPerEntry", and returns "true"; otherwise, returns "false".
-  bool get_cards(short region_ind, short* cards);
+  bool get_cards(RegionIdx_t region_ind, CardIdx_t* cards);
 
   // If there is an entry for "region_ind", removes it and return "true";
   // otherwise returns "false."
-  bool delete_entry(short region_ind);
+  bool delete_entry(RegionIdx_t region_ind);
 
   // Clear the table, and reinitialize to initial capacity.
   void clear();
@@ -276,13 +273,12 @@
   static void cleanup_all();
   RSHashTable* cur() const { return _cur; }
 
-
   void init_iterator(SparsePRTIter* sprt_iter);
 
   static void add_to_expanded_list(SparsePRT* sprt);
   static SparsePRT* get_from_expanded_list();
 
-  bool contains_card(short region_id, short card_index) const {
+  bool contains_card(RegionIdx_t region_id, CardIdx_t card_index) const {
     return _next->contains_card(region_id, card_index);
   }
 
--- a/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/includeDB_gc_g1	Mon Jul 06 11:16:03 2009 -0700
@@ -51,7 +51,6 @@
 concurrentG1Refine.hpp			allocation.hpp
 concurrentG1Refine.hpp			thread.hpp
 
-
 concurrentG1RefineThread.cpp		concurrentG1Refine.hpp
 concurrentG1RefineThread.cpp		concurrentG1RefineThread.hpp
 concurrentG1RefineThread.cpp		g1CollectedHeap.inline.hpp
@@ -334,6 +333,7 @@
 sparsePRT.hpp				allocation.hpp
 sparsePRT.hpp				cardTableModRefBS.hpp
 sparsePRT.hpp				globalDefinitions.hpp
+sparsePRT.hpp                           g1CollectedHeap.inline.hpp
 sparsePRT.hpp				heapRegion.hpp
 sparsePRT.hpp				mutex.hpp
 
--- a/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/gc_implementation/parallelScavenge/parMarkBitMap.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -177,6 +177,7 @@
   // are double-word aligned in 32-bit VMs, but not in 64-bit VMs, so the 32-bit
   // granularity is 2, 64-bit is 1.
   static inline size_t obj_granularity() { return size_t(MinObjAlignment); }
+  static inline int obj_granularity_shift() { return LogMinObjAlignment; }
 
   HeapWord*       _region_start;
   size_t          _region_size;
@@ -299,13 +300,13 @@
 inline size_t
 ParMarkBitMap::bits_to_words(idx_t bits)
 {
-  return bits * obj_granularity();
+  return bits << obj_granularity_shift();
 }
 
 inline ParMarkBitMap::idx_t
 ParMarkBitMap::words_to_bits(size_t words)
 {
-  return words / obj_granularity();
+  return words >> obj_granularity_shift();
 }
 
 inline size_t ParMarkBitMap::obj_size(idx_t beg_bit, idx_t end_bit) const
--- a/hotspot/src/share/vm/includeDB_compiler1	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/includeDB_compiler1	Mon Jul 06 11:16:03 2009 -0700
@@ -387,7 +387,7 @@
 c1_ValueSet.cpp                         c1_ValueSet.hpp
 
 c1_ValueSet.hpp                         allocation.hpp
-c1_ValueSet.hpp                         bitMap.hpp
+c1_ValueSet.hpp                         bitMap.inline.hpp
 c1_ValueSet.hpp                         c1_Instruction.hpp
 
 c1_ValueStack.cpp                       c1_IR.hpp
--- a/hotspot/src/share/vm/memory/gcLocker.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/memory/gcLocker.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -242,6 +242,31 @@
 #endif
 };
 
+// A SkipGCALot object is used to elide the usual effect of gc-a-lot
+// over a section of execution by a thread. Currently, it's used only to
+// prevent re-entrant calls to GC.
+class SkipGCALot : public StackObj {
+  private:
+   bool _saved;
+   Thread* _t;
+
+  public:
+#ifdef ASSERT
+    SkipGCALot(Thread* t) : _t(t) {
+      _saved = _t->skip_gcalot();
+      _t->set_skip_gcalot(true);
+    }
+
+    ~SkipGCALot() {
+      assert(_t->skip_gcalot(), "Save-restore protocol invariant");
+      _t->set_skip_gcalot(_saved);
+    }
+#else
+    SkipGCALot(Thread* t) { }
+    ~SkipGCALot() { }
+#endif
+};
+
 // JRT_LEAF currently can be called from either _thread_in_Java or
 // _thread_in_native mode. In _thread_in_native, it is ok
 // for another thread to trigger GC. The rest of the JRT_LEAF
--- a/hotspot/src/share/vm/runtime/interfaceSupport.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/runtime/interfaceSupport.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -66,11 +66,14 @@
 
 void InterfaceSupport::gc_alot() {
   Thread *thread = Thread::current();
-  if (thread->is_VM_thread()) return; // Avoid concurrent calls
+  if (!thread->is_Java_thread()) return; // Avoid concurrent calls
   // Check for new, not quite initialized thread. A thread in new mode cannot initiate a GC.
   JavaThread *current_thread = (JavaThread *)thread;
   if (current_thread->active_handles() == NULL) return;
 
+  // Short-circuit any possible re-entrant gc-a-lot attempt
+  if (thread->skip_gcalot()) return;
+
   if (is_init_completed()) {
 
     if (++_fullgc_alot_invocation < FullGCALotStart) {
--- a/hotspot/src/share/vm/runtime/thread.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/runtime/thread.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -127,6 +127,7 @@
   debug_only(_owned_locks = NULL;)
   debug_only(_allow_allocation_count = 0;)
   NOT_PRODUCT(_allow_safepoint_count = 0;)
+  NOT_PRODUCT(_skip_gcalot = false;)
   CHECK_UNHANDLED_OOPS_ONLY(_gc_locked_out_count = 0;)
   _jvmti_env_iteration_count = 0;
   _vm_operation_started_count = 0;
@@ -784,7 +785,6 @@
       // We could enter a safepoint here and thus have a gc
       InterfaceSupport::check_gc_alot();
     }
-
 #endif
 }
 #endif
--- a/hotspot/src/share/vm/runtime/thread.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/runtime/thread.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -191,6 +191,9 @@
   NOT_PRODUCT(int _allow_safepoint_count;)       // If 0, thread allow a safepoint to happen
   debug_only (int _allow_allocation_count;)      // If 0, the thread is allowed to allocate oops.
 
+  // Used by SkipGCALot class.
+  NOT_PRODUCT(bool _skip_gcalot;)                // Should we elide gc-a-lot?
+
   // Record when GC is locked out via the GC_locker mechanism
   CHECK_UNHANDLED_OOPS_ONLY(int _gc_locked_out_count;)
 
@@ -308,6 +311,11 @@
   bool is_gc_locked_out() { return _gc_locked_out_count > 0; }
 #endif // CHECK_UNHANDLED_OOPS
 
+#ifndef PRODUCT
+  bool skip_gcalot()           { return _skip_gcalot; }
+  void set_skip_gcalot(bool v) { _skip_gcalot = v;    }
+#endif
+
  public:
   // Installs a pending exception to be inserted later
   static void send_async_exception(oop thread_oop, oop java_throwable);
--- a/hotspot/src/share/vm/runtime/vmThread.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/runtime/vmThread.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -531,6 +531,7 @@
   Thread* t = Thread::current();
 
   if (!t->is_VM_thread()) {
+    SkipGCALot sgcalot(t);    // avoid re-entrant attempts to gc-a-lot
     // JavaThread or WatcherThread
     t->check_for_valid_safepoint_state(true);
 
--- a/hotspot/src/share/vm/utilities/bitMap.cpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/utilities/bitMap.cpp	Mon Jul 06 11:16:03 2009 -0700
@@ -41,19 +41,6 @@
   resize(size_in_bits, in_resource_area);
 }
 
-
-void BitMap::verify_index(idx_t index) const {
-    assert(index < _size, "BitMap index out of bounds");
-}
-
-void BitMap::verify_range(idx_t beg_index, idx_t end_index) const {
-#ifdef ASSERT
-    assert(beg_index <= end_index, "BitMap range error");
-    // Note that [0,0) and [size,size) are both valid ranges.
-    if (end_index != _size)  verify_index(end_index);
-#endif
-}
-
 void BitMap::resize(idx_t size_in_bits, bool in_resource_area) {
   assert(size_in_bits >= 0, "just checking");
   idx_t old_size_in_words = size_in_words();
--- a/hotspot/src/share/vm/utilities/bitMap.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/utilities/bitMap.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -93,10 +93,12 @@
   // The index of the first full word in a range.
   idx_t word_index_round_up(idx_t bit) const;
 
-  // Verification, statistics.
-  void verify_index(idx_t index) const;
-  void verify_range(idx_t beg_index, idx_t end_index) const;
+  // Verification.
+  inline void verify_index(idx_t index) const NOT_DEBUG_RETURN;
+  inline void verify_range(idx_t beg_index, idx_t end_index) const
+    NOT_DEBUG_RETURN;
 
+  // Statistics.
   static idx_t* _pop_count_table;
   static void init_pop_count_table();
   static idx_t num_set_bits(bm_word_t w);
@@ -287,7 +289,6 @@
 #endif
 };
 
-
 // Convenience class wrapping BitMap which provides multiple bits per slot.
 class BitMap2D VALUE_OBJ_CLASS_SPEC {
  public:
--- a/hotspot/src/share/vm/utilities/bitMap.inline.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/utilities/bitMap.inline.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -22,6 +22,17 @@
  *
  */
 
+#ifdef ASSERT
+inline void BitMap::verify_index(idx_t index) const {
+  assert(index < _size, "BitMap index out of bounds");
+}
+
+inline void BitMap::verify_range(idx_t beg_index, idx_t end_index) const {
+  assert(beg_index <= end_index, "BitMap range error");
+  // Note that [0,0) and [size,size) are both valid ranges.
+  if (end_index != _size) verify_index(end_index);
+}
+#endif // #ifdef ASSERT
 
 inline void BitMap::set_bit(idx_t bit) {
   verify_index(bit);
--- a/hotspot/src/share/vm/utilities/macros.hpp	Tue Jun 30 16:23:54 2009 -0700
+++ b/hotspot/src/share/vm/utilities/macros.hpp	Mon Jul 06 11:16:03 2009 -0700
@@ -106,11 +106,13 @@
 #ifdef ASSERT
 #define DEBUG_ONLY(code) code
 #define NOT_DEBUG(code)
+#define NOT_DEBUG_RETURN  /*next token must be ;*/
 // Historical.
 #define debug_only(code) code
 #else // ASSERT
 #define DEBUG_ONLY(code)
 #define NOT_DEBUG(code) code
+#define NOT_DEBUG_RETURN {}
 #define debug_only(code)
 #endif // ASSERT
 
--- a/jaxp/.hgtags	Tue Jun 30 16:23:54 2009 -0700
+++ b/jaxp/.hgtags	Mon Jul 06 11:16:03 2009 -0700
@@ -36,3 +36,5 @@
 75113d7ce083048e7576b9d0d60a4e80db6b181f jdk7-b59
 259aef5045a155eb6a2f8dd0e2429c6dbe0f652f jdk7-b60
 f1ac756616eaaad795f77f7f5e7f7c7bfdc9c1de jdk7-b61
+a97dd57a62604c35c79bc2fa77a612ed547f6135 jdk7-b62
+ae449e9c04c1fe651bd30f0f4d4cc24ba794e0c4 jdk7-b63
--- a/jaxws/.hgtags	Tue Jun 30 16:23:54 2009 -0700
+++ b/jaxws/.hgtags	Mon Jul 06 11:16:03 2009 -0700
@@ -36,3 +36,5 @@
 f64566bf4c2bc92e65ab2b9fab51b119f0d493d1 jdk7-b59
 3b054db3e277ca224fe6576c59ed6f4ab5ed0bb5 jdk7-b60
 aeabf802f2a1ca72b87d7397c5ece58058e000a9 jdk7-b61
+75c801c13ea1ddebc58b1a8c8da9318d72750e62 jdk7-b62
+b8a6e883c0a6708f6d818815040525d472262495 jdk7-b63
--- a/jdk/.hgtags	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/.hgtags	Mon Jul 06 11:16:03 2009 -0700
@@ -36,3 +36,5 @@
 2a5a1b269e89f27ebe419ef4cf6e66a3face0df1 jdk7-b59
 0c3ef2d612a47667829eb17a192decef23f1c536 jdk7-b60
 f72c0dc047b9b2e797beee68ae0b50decb1f020d jdk7-b61
+12e11fab9a839a9666a996a8f9a02fd8fa03aab6 jdk7-b62
+2ed6ed6b5bfc7dd724925b90dbb31223df59c25d jdk7-b63
--- a/jdk/make/com/sun/java/pack/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/com/sun/java/pack/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -91,10 +91,10 @@
   CXXFLAGS_COMMON += $(MS_RUNTIME_OPTION)
   LDOUTPUT = -Fe
 
-  # J2SE name required here
-  RC_FLAGS += /D "J2SE_FNAME=$(PGRM).exe" \
-	/D "J2SE_INTERNAL_NAME=$(PGRM)" \
-	/D "J2SE_FTYPE=0x1L"
+  # JDK name required here
+  RC_FLAGS += /D "JDK_FNAME=$(PGRM).exe" \
+	/D "JDK_INTERNAL_NAME=$(PGRM)" \
+	/D "JDK_FTYPE=0x1L"
 
   RES = $(OBJDIR)/$(PGRM).res
 else
@@ -133,13 +133,19 @@
 	$(MAKE) $(UNPACK_EXE) STANDALONE=true LDMAPFLAGS_OPT= LDMAPFLAGS_DBG=
 
 ifeq ($(PLATFORM), windows)
+IMVERSIONVALUE=$(JDK_MINOR_VERSION).$(JDK_MICRO_VERSION).$(JDK_UPDATE_VER).$(COOKED_BUILD_NUMBER)
+SED_ALL_MANIFEST=$(SED) -e 's%IMVERSION%$(IMVERSIONVALUE)%g'
+updatefiles:: 
+	$(CAT) $(TOPDIR)/src/windows/resource/unpack200_proto.exe.manifest | $(SED_ALL_MANIFEST) > $(OBJDIR)/unpack200.exe.manifest
 winres::  $(RES)
 else
+updatefiles::
+	$(ECHO) "Manifest not required for Unix"
 winres::
 	$(ECHO) "Resource files not required for Unix"
 endif
 
-$(UNPACK_EXE): $(UNPACK_EXE_FILES_o) winres 
+$(UNPACK_EXE): $(UNPACK_EXE_FILES_o) updatefiles winres
 	$(prep-target)
 	$(LINKER)  $(LDDFLAGS) $(UNPACK_EXE_FILES_o) $(RES) $(LIBCXX) $(LDOUTPUT)$(TEMPDIR)/unpack200$(EXE_SUFFIX)
 ifdef MT
--- a/jdk/make/com/sun/nio/sctp/mapfile-vers	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/com/sun/nio/sctp/mapfile-vers	Mon Jul 06 11:16:03 2009 -0700
@@ -27,6 +27,7 @@
 	global:
 		Java_sun_nio_ch_SctpNet_socket0;
 		Java_sun_nio_ch_SctpNet_bindx;
+		Java_sun_nio_ch_SctpNet_branch0;
 		Java_sun_nio_ch_SctpNet_getLocalAddresses0;
 		Java_sun_nio_ch_SctpNet_getRemoteAddresses0;
 		Java_sun_nio_ch_SctpNet_getPrimAddrOption0;
--- a/jdk/make/common/Defs-windows.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/Defs-windows.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -1,5 +1,5 @@
 #
-# Copyright 1999-2008 Sun Microsystems, Inc.  All Rights Reserved.
+# Copyright 1999-2009 Sun Microsystems, Inc.  All Rights Reserved.
 # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 #
 # This code is free software; you can redistribute it and/or modify it
@@ -464,11 +464,48 @@
 JDK_RC_FVER = \
     $(JDK_MINOR_VERSION),$(JDK_MICRO_VERSION),$(JDK_UPDATE_VER),$(COOKED_BUILD_NUMBER)
 
-# J2SE name required here
-RC_FLAGS += -d "J2SE_BUILD_ID=$(JDK_RC_BUILD_ID)" \
-            -d "J2SE_COMPANY=$(JDK_RC_COMPANY)" \
-            -d "J2SE_COMPONENT=$(JDK_RC_COMPONENT)" \
-            -d "J2SE_VER=$(JDK_RC_VER)" \
-            -d "J2SE_COPYRIGHT=$(JDK_RC_COPYRIGHT)" \
-            -d "J2SE_NAME=$(JDK_RC_NAME)" \
-            -d "J2SE_FVER=$(JDK_RC_FVER)"
+# JDK name required here
+RC_FLAGS += -d "JDK_BUILD_ID=$(JDK_RC_BUILD_ID)" \
+            -d "JDK_COMPANY=$(JDK_RC_COMPANY)" \
+            -d "JDK_COMPONENT=$(JDK_RC_COMPONENT)" \
+            -d "JDK_VER=$(JDK_RC_VER)" \
+            -d "JDK_COPYRIGHT=$(JDK_RC_COPYRIGHT)" \
+            -d "JDK_NAME=$(JDK_RC_NAME)" \
+            -d "JDK_FVER=$(JDK_RC_FVER)"
+
+# Enable 7-Zip LZMA file (de)compression for Java Kernel if it is available
+ifeq ($(ARCH_DATA_MODEL), 32)
+  ifneq ($(KERNEL), off)
+    # This is a hack to use until  7-Zip (and UPX) bundles can be put
+    # under /java/devtools.
+    ifndef DEPLOY_TOPDIR
+      DEPLOY_TOPDIR=$(JDK_TOPDIR)/../deploy
+    endif
+    # Uncomment this block to cause build failure if above assumption false
+    #DCHK = $(shell if [ ! -d $(DEPLOY_TOPDIR) ] ; then \
+    #  $(ECHO) deploy_not_a_peer_of_j2se ; \
+    #fi )
+    #ifeq ($(DCHK), deploy_not_a_peer_of_j2se)
+    #  If a build failure points to control coming here it means
+    #  it means deploy is not in the same directory
+    #  as j2se. Java Kernel can't tolerate that for the time being.
+    #endif
+    EC_TMP = $(shell if [ -d $(DEPLOY_TOPDIR)/make/lzma ] ; then \
+      $(ECHO) true ; \
+    else \
+      $(ECHO) false ; \
+    fi )
+    ifeq ($(EC_TMP), true)
+      EXTRA_COMP_INSTALL_PATH = lib\\\\deploy\\\\lzma.dll
+      # Crazy but true: deploy/make/plugin/jinstall/Makefile.jkernel does
+      # not include deploy/make/common/Defs-windows.gmk, either directly
+      # or indirectly. But it does include this file, so redundantly declare
+      # these variables that are in deploy/make/common/Defs-windows.gmk for
+      # the sake of the Java Kernel part of the deploy build. Whew!
+      EXTRA_COMP_LIB_NAME = lzma.dll
+      EXTRA_COMP_PATH = $(OUTPUTDIR)/tmp/deploy/lzma/win32/obj
+      EXTRA_COMP_CMD_PATH = $(EXTRA_COMP_PATH)/lzma.exe
+      EXTRA_COMP_LIB_PATH = $(EXTRA_COMP_PATH)/$(EXTRA_COMP_LIB_NAME)
+    endif
+  endif
+endif
--- a/jdk/make/common/Library.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/Library.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -207,10 +207,10 @@
 endif
 	@$(ECHO) Created $@ 
 
-# J2SE name required here
-RC_FLAGS += /D "J2SE_FNAME=$(LIBRARY).dll" \
-            /D "J2SE_INTERNAL_NAME=$(LIBRARY)" \
-            /D "J2SE_FTYPE=0x2L"
+# JDK name required here
+RC_FLAGS += /D "JDK_FNAME=$(LIBRARY).dll" \
+            /D "JDK_INTERNAL_NAME=$(LIBRARY)" \
+            /D "JDK_FTYPE=0x2L"
 
 $(OBJDIR)/$(LIBRARY).res: $(VERSIONINFO_RESOURCE)
 ifndef LOCAL_RESOURCE_FILE
--- a/jdk/make/common/Program.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/Program.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -123,10 +123,10 @@
 #
 ifeq ($(PLATFORM), windows)
 
-# J2SE name required here
-RC_FLAGS += /D "J2SE_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
-	    /D "J2SE_INTERNAL_NAME=$(PROGRAM)" \
-	    /D "J2SE_FTYPE=0x1L"
+# JDK name required here
+RC_FLAGS += /D "JDK_FNAME=$(PROGRAM)$(EXE_SUFFIX)" \
+	    /D "JDK_INTERNAL_NAME=$(PROGRAM)" \
+	    /D "JDK_FTYPE=0x1L"
 
 $(OBJDIR)/$(PROGRAM).res: $(VERSIONINFO_RESOURCE)
 	@$(prep-target)
--- a/jdk/make/common/Release.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/Release.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -97,7 +97,7 @@
   ifeq ($(PLATFORM), windows)
     LICENSE_DOCLIST_JDK = $(subst $(LICENSE_VERSION),,\
 		   $(shell $(CD) $(SHARE_JDK_DOC_SRC) && \
- 		           $(LS) *LICENSE*$(LICENSE_VERSION)))
+		           $(LS) *LICENSE*$(LICENSE_VERSION)))
     LICENSE_DOCLIST_JRE = $(subst $(LICENSE_VERSION),,\
 		   $(shell $(CD) $(SHARE_JRE_DOC_SRC) && \
 		           $(LS) *LICENSE*$(LICENSE_VERSION)))
@@ -401,7 +401,7 @@
 	sun/tools/jstack        \
 	sun/tools/jinfo         \
 	sun/tools/jmap
-	
+
 # classes that go into jsse.jar
 JSSE_CLASSES_DIRS = \
 	sun/security/provider/Sun.class \
@@ -645,7 +645,7 @@
 	@$(java-vm-cleanup)
 
 # Create the manifest file.
-JAR_MANIFEST_FILE=$(TEMPDIR)/manifest.tmp
+JAR_MANIFEST_FILE=$(ABS_TEMPDIR)/manifest.tmp
 $(JAR_MANIFEST_FILE): $(MAINMANIFEST) $(BEANMANIFEST)
 	$(prep-target)
 	$(SED) -e "s/@@RELEASE@@/$(RELEASE)/" $(MAINMANIFEST) >> $@
@@ -653,25 +653,22 @@
 	$(CAT) $(BEANMANIFEST) >> $@
 
 # Create resources.jar containing non-class files
-RESOURCES_JAR=$(TEMPDIR)/resources-orig.jar
-RES_JAR_ARGLIST=$(RES_JAR_FILELIST)_args
-$(RES_JAR_ARGLIST): $(RES_JAR_FILELIST)
+RESOURCES_JAR=$(ABS_TEMPDIR)/resources-orig.jar
+$(RESOURCES_JAR): $(RES_JAR_FILELIST) $(JAR_MANIFEST_FILE)
 	$(prep-target)
-	$(SED) -e "s@^@-C $(CLASSBINDIR) @" $< > $@
-$(RESOURCES_JAR): $(RES_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
-	$(prep-target)
-	$(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
-	    @$(RES_JAR_ARGLIST) $(BOOT_JAR_JFLAGS)
-	@$(java-vm-cleanup)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
+	        @$(RES_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
 
 # Create jsse.jar containing SunJSSE implementation classes
-JSSE_JAR=$(TEMPDIR)/jsse-orig.jar
+JSSE_JAR=$(ABS_TEMPDIR)/jsse-orig.jar
 $(JSSE_JAR): $(JAR_MANIFEST_FILE)
 	$(prep-target)
-	$(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
-		$(JSSE_CLASSES_DIRS:%=-C $(CLASSBINDIR) %) \
-		$(BOOT_JAR_JFLAGS)
-	@$(java-vm-cleanup)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
+		$(JSSE_CLASSES_DIRS) $(BOOT_JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
 
 # Create sec-bin.zip
 SEC_FILES_ZIP=$(ABS_TEMPDIR)/sec-bin.zip
@@ -713,15 +710,12 @@
 
 # Create rt.jar
 RT_JAR=$(ABS_TEMPDIR)/rt-orig.jar
-RT_JAR_ARGLIST=$(RT_JAR_FILELIST)_args
-$(RT_JAR_ARGLIST): $(RT_JAR_FILELIST)
+$(RT_JAR): $(RT_JAR_FILELIST) $(JAR_MANIFEST_FILE)
 	$(prep-target)
-	$(SED) -e "s@^@-C $(CLASSBINDIR) @" $< > $@
-$(RT_JAR): $(RT_JAR_ARGLIST) $(JAR_MANIFEST_FILE)
-	$(prep-target)
-	$(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
-	    @$(RT_JAR_ARGLIST) $(BOOT_JAR_JFLAGS)
-	@$(java-vm-cleanup)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) c0mf $(JAR_MANIFEST_FILE) $@ \
+	        @$(RT_JAR_FILELIST) $(BOOT_JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
 
 # Meta-index construction to make core class loaders lazier
 
@@ -795,6 +789,11 @@
 	$(CD) $(JRE_IMAGE_DIR)/lib && \
             $(RM) java.$(LIB_SUFFIX) jvm.$(LIB_SUFFIX) \
                   hpi.$(LIB_SUFFIX) awt.$(LIB_SUFFIX) jawt.$(LIB_SUFFIX)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+	@# The Java Kernel JRE image ships with a special VM.  It is not included
+	@# in the full JRE image, so remove it.  Also, is it only for 32-bit windows.
+	$(CD) $(JRE_IMAGE_DIR)/bin && $(RM) -r kernel
+  endif
 endif # Windows
 ifneq ($(PLATFORM), windows)
 	$(call copy-man-pages,$(JRE_IMAGE_DIR),$(JRE_MAN_PAGES))
@@ -944,10 +943,10 @@
 	@#
 	@# lib/tools.jar
 	@#
-	$(BOOT_JAR_CMD) c0f $(LIBDIR)/tools.jar $(addprefix \
-		-C $(CLASSBINDIR) , $(TOOLS)) \
-	        $(BOOT_JAR_JFLAGS)
-	@$(java-vm-cleanup)
+	$(CD) $(CLASSBINDIR) && \
+	    $(BOOT_JAR_CMD) c0f $(ABS_LIBDIR)/tools.jar \
+	        $(TOOLS) $(BOOT_JAR_JFLAGS)
+	@$(CD) $(CLASSBINDIR) && $(java-vm-cleanup)
 	$(CP) $(LIBDIR)/tools.jar $(JDK_IMAGE_DIR)/lib/tools.jar
 	@#
 	@# lib/ct.sym
--- a/jdk/make/common/shared/Compiler-msvc.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/shared/Compiler-msvc.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -35,8 +35,8 @@
   LIBEXE       = $(COMPILER_PATH)lib
   LINK         = $(COMPILER_PATH)link
   RC           = $(MSDEVTOOLS_PATH)rc
+  RSC          = $(MSDEVTOOLS_PATH)rc
   LINK32       = $(LINK)
-  RSC          = $(RC)
  
   # Fill in unknown values
   COMPILER_NAME=Unknown MSVC Compiler
@@ -98,6 +98,9 @@
     endif
     ifeq ($(CC_MAJORVER), 14)
       ifeq ($(ARCH), amd64)
+        #rebase and midl moved out of Visual Studio into the SDK:
+        REBASE     = $(MSDEVTOOLS_PATH)/rebase
+        MTL        = $(MSDEVTOOLS_PATH)/midl.exe
         ifeq ($(CC_MICROVER), 30701)
           # This should be: CC_VER=14.00.30701 LINK_VER=8.00.30701
 	  # WARNING: it says 14, but it is such an early build it doesn't
@@ -110,6 +113,8 @@
 	  COMPILER_NAME=Microsoft Platform SDK - April 2005 Edition (3790.1830)
           COMPILER_VERSION=VS2005
         endif
+      else
+        REBASE         = $(COMPILER_PATH)../rebase
       endif
     endif
     ifeq ($(CC_MAJORVER), 15)
@@ -120,7 +125,6 @@
     endif
     # This will cause problems if ALT_COMPILER_PATH is defined to ""
     # which is a directive to use the PATH.
-    REBASE         = $(COMPILER_PATH)../REBASE
     ifndef COMPILER_PATH
       COMPILER_PATH := $(error COMPILER_PATH cannot be empty here)
     endif
--- a/jdk/make/common/shared/Defs-utils.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/shared/Defs-utils.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -72,6 +72,7 @@
 AR             = $(UTILS_CCS_BIN_PATH)ar
 AS             = $(UTILS_CCS_BIN_PATH)as
 BASENAME       = $(UTILS_COMMAND_PATH)basename
+BZIP2          = $(UTILS_COMMAND_PATH)bzip2
 CAT            = $(UTILS_COMMAND_PATH)cat
 CHMOD          = $(UTILS_COMMAND_PATH)chmod
 CMP            = $(UTILS_USR_BIN_PATH)cmp
@@ -157,6 +158,7 @@
   endif
   # Re-define some utilities
   LEX            =# override GNU Make intrinsic: no lex on windows
+  SHA1SUM        = $(UNIXCOMMAND_PATH)openssl sha1
 endif
 
 # Linux specific
--- a/jdk/make/common/shared/Defs-windows.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/shared/Defs-windows.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -520,7 +520,7 @@
   xALT_INSTALL_MSSDK :="$(subst \,/,$(ALT_INSTALL_MSSDK))"
   INSTALL_MSSDK      :=$(call FullPath,$(xALT_INSTALL_MSSDK))
 else
-  INSTALL_MSSDK      :=$(_psdk)
+  INSTALL_MSSDK      :=$(_ms_sdk)
 endif
 INSTALL_MSSDK:=$(call AltCheckSpaces,INSTALL_MSSDK)
 
@@ -631,7 +631,12 @@
 ifdef ALT_HOTSPOT_IMPORT_PATH
   HOTSPOT_IMPORT_PATH :=$(call FullPath,$(ALT_HOTSPOT_IMPORT_PATH))
 else
-  HOTSPOT_IMPORT_PATH =$(JDK_IMPORT_PATH)
+  # Default locations include the current $OUTPUTDIR, RE Promotions,
+  # and a JDK.  Please be aware the JDK does not include a Kernel VM.
+  _HOTSPOT_IMPORT_PATH1 = $(OUTPUTDIR)/hotspot/import
+  _HOTSPOT_IMPORT_PATH2 = $(PROMOTED_BUILD_DISTDIR)/hotspot/import
+  _HOTSPOT_IMPORT_PATH3 = $(JDK_IMPORT_PATH)
+   HOTSPOT_IMPORT_PATH := $(call DirExists,$(_HOTSPOT_IMPORT_PATH1),$(_HOTSPOT_IMPORT_PATH2),$(_HOTSPOT_IMPORT_PATH3))
 endif
 HOTSPOT_IMPORT_PATH:=$(call AltCheckSpaces,HOTSPOT_IMPORT_PATH)
 HOTSPOT_IMPORT_PATH:=$(call AltCheckValue,HOTSPOT_IMPORT_PATH)
@@ -665,4 +670,3 @@
 endif
 HOTSPOT_LIB_PATH:=$(call AltCheckSpaces,HOTSPOT_LIB_PATH)
 HOTSPOT_LIB_PATH:=$(call AltCheckValue,HOTSPOT_LIB_PATH)
-
--- a/jdk/make/common/shared/Defs.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/shared/Defs.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -292,6 +292,7 @@
 PROMOTED_RE_AREA = $(SLASH_JAVA)/re/jdk/$(JDK_VERSION)/promoted
 PROMOTED_BUILD_LATEST = latest
 PROMOTED_BUILD_BASEDIR = $(PROMOTED_RE_AREA)/$(PROMOTED_BUILD_LATEST)
+PROMOTED_BUILD_DISTDIR = $(PROMOTED_BUILD_BASEDIR)/dist/$(PLATFORM)-$(ARCH)
 PROMOTED_BUILD_BINARIES = $(PROMOTED_BUILD_BASEDIR)/binaries
 
 # PARALLEL_COMPILE_JOBS: is the number of compiles done in parallel.
--- a/jdk/make/common/shared/Sanity.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/common/shared/Sanity.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -1568,10 +1568,50 @@
 	    "" >> $(ERROR_FILE) ; \
 	fi
   endif
+	@#
+	@# Check for presence of headers required for new Java Plug-In ("plugin2")
+	@#
+	@if [ ! -r $(subst \,/,$(MOZILLA_HEADERS_PATH))/plugin2_mozilla_headers/npapi.h ]; then \
+	  $(ECHO) "ERROR: You do not have access to valid Mozilla header files for the new Java Plug-In. \n" \
+	    "      Please check your access to \n" \
+	    "          $(subst \,/,$(MOZILLA_HEADERS_PATH))/plugin2_mozilla_headers/npapi.h \n" \
+	    "      and/or check your value of ALT_JDK_DEVTOOLS_DIR, ALT_MOZILLA_HEADERS_PATH, \n" \
+	    "" >> $(ERROR_FILE) ; \
+	fi
 endif
 
 
 ######################################################
+# Make sure Java Kernel VM is accessible
+######################################################
+sane-kernel-vm:
+ifeq ($(PLATFORM), windows)
+  ifeq ($(ARCH_DATA_MODEL), 32)
+	@if [ ! -r $(HOTSPOT_KERNEL_PATH)/jvm.dll ]; then \
+	    $(ECHO) "WARNING: Your HOTSPOT_IMPORT_PATH does not include a Kernel VM... \n" \
+		    "     The kernel installer may not be built (unless hotspot is also). \n" \
+		    "     $(HOTSPOT_KERNEL_PATH)/jvm.dll \n" \
+		    "     Please check the value of ALT_HOTSPOT_IMPORT_PATH. \n" \
+		    >> $(WARNING_FILE) ; \
+	fi
+  endif
+endif
+
+
+######################################################
+# SECURITY_BASELINE_131 test
+######################################################
+security_baseline_131:
+ifeq ($(PLATFORM), windows)
+	@if [ -z "$(SECURITY_BASELINE_131)" ]; then \
+	    $(ECHO) "WARNING: Your SECURITY_BASELINE_131 setting is empty.\n" \
+		"        Setting it to the default value of 1.3.1_20.\n" \
+		"        It is recommended to set SECURITY_BASELINE_131.\n" \
+		"" >> $(WARNING_FILE) ; \
+	fi
+endif
+
+######################################################
 # SECURITY_BASELINE_142 test
 ######################################################
 security_baseline_142:
@@ -1597,6 +1637,19 @@
 	fi
 endif
 
+######################################################
+# SECURITY_BASELINE_160 test
+######################################################
+security_baseline_160:
+ifeq ($(PLATFORM), windows)
+	@if [ -z "$(SECURITY_BASELINE_160)" ]; then \
+	    $(ECHO) "WARNING: Your SECURITY_BASELINE_160 setting is empty.\n" \
+		"        Setting it to the default value of 1.6.0_11.\n" \
+		"        It is recommended to set SECURITY_BASELINE_160.\n" \
+		"" >> $(WARNING_FILE) ; \
+	fi
+endif
+
 
 ######################################################
 # this should be the last rule in any target's sanity rule.
--- a/jdk/make/docs/CORE_PKGS.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/docs/CORE_PKGS.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -217,6 +217,7 @@
   javax.swing.plaf.basic                         \
   javax.swing.plaf.metal                         \
   javax.swing.plaf.multi                         \
+  javax.swing.plaf.nimbus                        \
   javax.swing.plaf.synth                         \
   javax.tools                                    \
   javax.transaction                              \
--- a/jdk/make/java/java/FILES_c.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/java/FILES_c.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -64,6 +64,7 @@
 	jio.c \
 	logging.c \
 	jni_util.c \
+	jni_util_md.c \
 	jdk_util.c \
 	jdk_util_md.c \
 	check_version.c \
--- a/jdk/make/java/java/FILES_java.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/java/FILES_java.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -412,6 +412,7 @@
             java/io/FileReader.java \
         java/io/PipedReader.java \
         java/io/StringReader.java \
+    java/io/TempFileHelper.java \
     java/io/Writer.java \
 	java/io/BufferedWriter.java \
 	    java/io/PrintWriter.java \
--- a/jdk/make/java/java/mapfile-vers	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/java/mapfile-vers	Mon Jul 06 11:16:03 2009 -0700
@@ -280,6 +280,9 @@
                 Java_sun_misc_VM_initialize;
 		Java_sun_misc_VMSupport_initAgentProperties;
 
+                # ZipFile.c needs this one
+		throwFileNotFoundException;
+
 #		Java_sun_misc_VM_getState;			threads.c
 #		Java_sun_misc_VM_threadsSuspended;		threads.c
 #		Java_sun_misc_VM_unsuspendSomeThreads;		threads.c
--- a/jdk/make/java/nio/FILES_java.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/nio/FILES_java.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -86,8 +86,6 @@
 	java/nio/file/CopyOption.java \
 	java/nio/file/DirectoryNotEmptyException.java \
 	java/nio/file/DirectoryStream.java \
-	java/nio/file/DirectoryStreamFilters.java \
-	java/nio/file/FileAction.java \
 	java/nio/file/FileAlreadyExistsException.java \
 	java/nio/file/FileRef.java \
 	java/nio/file/FileStore.java \
@@ -141,6 +139,7 @@
 	java/nio/file/attribute/FileStoreAttributeView.java \
 	java/nio/file/attribute/FileStoreSpaceAttributeView.java \
 	java/nio/file/attribute/FileStoreSpaceAttributes.java \
+	java/nio/file/attribute/FileTime.java \
 	java/nio/file/attribute/GroupPrincipal.java \
 	java/nio/file/attribute/UserDefinedFileAttributeView.java \
 	java/nio/file/attribute/PosixFileAttributeView.java \
@@ -151,7 +150,6 @@
 	java/nio/file/attribute/UserPrincipalLookupService.java \
 	java/nio/file/attribute/UserPrincipalNotFoundException.java \
 	\
-	java/nio/file/spi/AbstractPath.java \
 	java/nio/file/spi/FileSystemProvider.java \
 	java/nio/file/spi/FileTypeDetector.java \
 	\
@@ -248,8 +246,8 @@
 	\
 	sun/nio/fs/AbstractAclFileAttributeView.java \
 	sun/nio/fs/AbstractBasicFileAttributeView.java \
-	sun/nio/fs/AbstractFileStoreSpaceAttributeView.java \
 	sun/nio/fs/AbstractFileTypeDetector.java \
+	sun/nio/fs/AbstractPath.java \
 	sun/nio/fs/AbstractPoller.java \
 	sun/nio/fs/AbstractUserDefinedFileAttributeView.java \
 	sun/nio/fs/AbstractWatchKey.java \
@@ -258,12 +256,13 @@
 	sun/nio/fs/Cancellable.java \
 	sun/nio/fs/DefaultFileSystemProvider.java \
 	sun/nio/fs/DefaultFileTypeDetector.java \
+	sun/nio/fs/DynamicFileAttributeView.java \
 	sun/nio/fs/FileOwnerAttributeViewImpl.java \
 	sun/nio/fs/Globs.java \
-	sun/nio/fs/MimeType.java \
 	sun/nio/fs/NativeBuffer.java \
 	sun/nio/fs/NativeBuffers.java \
 	sun/nio/fs/Reflect.java \
+	sun/nio/fs/Util.java \
 	\
 	java/net/DatagramSocket.java \
 	java/net/DatagramSocketImpl.java \
--- a/jdk/make/java/nio/mapfile-linux	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/nio/mapfile-linux	Mon Jul 06 11:16:03 2009 -0700
@@ -142,7 +142,7 @@
 		Java_sun_nio_fs_LinuxNativeDispatcher_fremovexattr0;
 		Java_sun_nio_fs_LinuxNativeDispatcher_setmntent0;
 		Java_sun_nio_fs_LinuxNativeDispatcher_endmntent;
-		Java_sun_nio_fs_UnixNativeDispatcher_initIDs;
+		Java_sun_nio_fs_UnixNativeDispatcher_init;
 		Java_sun_nio_fs_UnixNativeDispatcher_getcwd;
 		Java_sun_nio_fs_UnixNativeDispatcher_strerror;
 		Java_sun_nio_fs_UnixNativeDispatcher_dup;
--- a/jdk/make/java/nio/mapfile-solaris	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/nio/mapfile-solaris	Mon Jul 06 11:16:03 2009 -0700
@@ -120,7 +120,7 @@
 		Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGio;
 		Java_sun_nio_fs_GnomeFileTypeDetector_initializeGnomeVfs;
 		Java_sun_nio_fs_GnomeFileTypeDetector_probeUsingGnomeVfs;
-		Java_sun_nio_fs_UnixNativeDispatcher_initIDs;
+		Java_sun_nio_fs_UnixNativeDispatcher_init;
 		Java_sun_nio_fs_UnixNativeDispatcher_getcwd;
 		Java_sun_nio_fs_UnixNativeDispatcher_strerror;
 		Java_sun_nio_fs_UnixNativeDispatcher_dup;
--- a/jdk/make/java/redist/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/redist/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -119,10 +119,15 @@
 	$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME) \
 	$(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME)
 
-# Hotspot client is only available on 32-bit builds
+# Add .map and .pdb files to the import path for client and kernel VMs. 
+# These are only available on 32-bit windows builds. 
 ifeq ($(ARCH_DATA_MODEL), 32)
   IMPORT_LIST += $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMMAP_NAME) \
                  $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVMPDB_NAME)
+  ifeq ($(DO_KERNEL), true)
+    IMPORT_LIST += $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME) \
+                   $(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME)
+  endif
 endif
 
 $(LIBDIR)/$(JVMLIB_NAME): $(HOTSPOT_LIB_PATH)/$(JVMLIB_NAME)
@@ -134,6 +139,10 @@
 	@$(prep-target)
 	-$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMMAP_NAME)  $@
 
+$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMMAP_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMMAP_NAME)  $@
+
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMMAP_NAME):
 	@$(prep-target)
 	-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMMAP_NAME) $@
@@ -142,6 +151,10 @@
 	@$(prep-target)
 	-$(CP) $(HOTSPOT_CLIENT_PATH)/$(JVMPDB_NAME)  $@
 
+$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVMPDB_NAME):
+	@$(prep-target)
+	-$(CP) $(HOTSPOT_KERNEL_PATH)/$(JVMPDB_NAME)  $@
+
 $(LIB_LOCATION)/$(SERVER_LOCATION)/$(JVMPDB_NAME): 
 	@$(prep-target)
 	-$(CP) $(HOTSPOT_SERVER_PATH)/$(JVMPDB_NAME) $@
@@ -195,6 +208,9 @@
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/$(JVM_NAME): $(HOTSPOT_CLIENT_PATH)/$(JVM_NAME)
 	$(install-import-file)
 
+$(LIB_LOCATION)/$(KERNEL_LOCATION)/$(JVM_NAME): $(HOTSPOT_KERNEL_PATH)/$(JVM_NAME)
+	$(install-file)
+
 $(LIB_LOCATION)/$(LIBJSIG_NAME): $(HOTSPOT_SERVER_PATH)/$(LIBJSIG_NAME)
 	$(install-import-file)
 
@@ -224,6 +240,9 @@
 $(LIB_LOCATION)/$(CLIENT_LOCATION)/Xusage.txt : $(HOTSPOT_CLIENT_PATH)/Xusage.txt
 	$(install-import-file)
 
+$(LIB_LOCATION)/$(KERNEL_LOCATION)/Xusage.txt : $(HOTSPOT_KERNEL_PATH)/Xusage.txt
+	$(install-file)
+
 ifeq ($(INCLUDE_SA), true)
 # The Serviceability Agent is built in the Hotspot workspace.
 # It contains two files:
--- a/jdk/make/java/zip/mapfile-vers	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/java/zip/mapfile-vers	Mon Jul 06 11:16:03 2009 -0700
@@ -51,6 +51,7 @@
 		Java_java_util_zip_Inflater_reset;
 		Java_java_util_zip_Inflater_setDictionary;
 		Java_java_util_zip_ZipFile_close;
+		Java_java_util_zip_ZipFile_getCommentBytes;
 		Java_java_util_zip_ZipFile_freeEntry;
 		Java_java_util_zip_ZipFile_getEntry;
 		Java_java_util_zip_ZipFile_getEntryBytes;
--- a/jdk/make/jpda/tty/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/jpda/tty/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -33,6 +33,12 @@
 PROGRAM = jdb
 include $(BUILDDIR)/common/Defs.gmk
 
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
 #
 # Java Files to compile are found automatically.
 #
--- a/jdk/make/sun/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -59,7 +59,7 @@
   RENDER_SUBDIR = dcpr
 endif
 # nio need to be compiled before awt to have all charsets ready
-SUBDIRS = jar security javazic misc net audio $(RENDER_SUBDIR) image \
+SUBDIRS = jar security javazic misc jkernel net audio $(RENDER_SUBDIR) image \
 	  nio awt splashscreen $(XAWT_SUBDIR) \
           $(HEADLESS_SUBDIR) $(DGA_SUBDIR) \
 	  font jpeg cmm applet rmi beans $(JDBC_SUBDIR) \
--- a/jdk/make/sun/applet/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/applet/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -32,6 +32,12 @@
 PRODUCT = sun
 include $(BUILDDIR)/common/Defs.gmk
 
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
 #
 # Files to compile.
 #
--- a/jdk/make/sun/jar/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/jar/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -32,6 +32,13 @@
 PRODUCT = sun
 include $(BUILDDIR)/common/Defs.gmk
 
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
+
 #
 # Files
 #
--- a/jdk/make/sun/javazic/tzdata_jdk/jdk11_full_backward	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/javazic/tzdata_jdk/jdk11_full_backward	Mon Jul 06 11:16:03 2009 -0700
@@ -54,9 +54,9 @@
 Link Pacific/Guadalcanal SST
 Link Asia/Saigon VST
 
-# The follwong link is required to generate J2SE 1.2.x and 1.3.x
+# The follwong link is required to generate JDK 1.2.x and 1.3.x
 # compatible zones. In the Olson public source, MET is defined as
-# GMT+1:00 with the C-Eur rules. In J2SE, MET is defined as an alias
+# GMT+1:00 with the C-Eur rules. In JDK, MET is defined as an alias
 # of Asia/Tehran. This line must be removed if a full set of Olson
 # zones is generated. Otherwise, MET appears twice in the
 # ZoneInfoMappings.IDs table.
--- a/jdk/make/sun/jconsole/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/jconsole/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -32,6 +32,13 @@
 PRODUCT = sun
 include $(BUILDDIR)/common/Defs.gmk
 
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
+
 JARFILE = $(LIBDIR)/jconsole.jar
 
 OTHER_JAVACFLAGS += -encoding iso8859-1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/sun/jkernel/FILES_c_windows.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -0,0 +1,42 @@
+#
+# Copyright 2008 - 2009 Sun Microsystems, Inc.  All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+FILES_cpp = \
+	stdafx.cpp \
+	kernel.cpp \
+	DownloadDialog.cpp \
+	DownloadHelper.cpp \
+	DownloadHelper.cpp
+
+
+FILES_rc = kernel.rc
+
+# FILES_export definitions for Win32
+
+FILES_export = \
+	sun/jkernel/DownloadManager.java \
+	sun/jkernel/Mutex.java \
+	sun/jkernel/Bundle.java \
+	sun/jkernel/BackgroundDownloader.java \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/sun/jkernel/FILES_java.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -0,0 +1,41 @@
+#
+# Copyright 2008 - 2009 Sun Microsystems, Inc.  All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+FILES_java = \
+	$(TARGDIR)sun/jkernel/BackgroundDownloader.java \
+	$(TARGDIR)sun/jkernel/Bundle.java \
+	$(TARGDIR)sun/jkernel/ByteArrayToFromHexDigits.java \
+	$(TARGDIR)sun/jkernel/BundleCheck.java \
+	$(TARGDIR)sun/jkernel/DownloadManager.java \
+	$(TARGDIR)sun/jkernel/Mutex.java \
+	$(TARGDIR)sun/jkernel/StandaloneByteArrayAccess.java \
+	$(TARGDIR)sun/jkernel/StandaloneMessageDigest.java \
+	$(TARGDIR)sun/jkernel/StandaloneSHA.java \
+
+FILES_export = \
+     sun/jkernel/DownloadManager.java \
+     sun/jkernel/Mutex.java \
+     sun/jkernel/Bundle.java \
+     sun/jkernel/BackgroundDownloader.java
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/sun/jkernel/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -0,0 +1,90 @@
+#
+# Copyright 2008 - 2009 Sun Microsystems, Inc.  All Rights Reserved.
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+#
+# This code is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License version 2 only, as
+# published by the Free Software Foundation.  Sun designates this
+# particular file as subject to the "Classpath" exception as provided
+# by Sun in the LICENSE file that accompanied this code.
+#
+# This code is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+# version 2 for more details (a copy is included in the LICENSE file that
+# accompanied this code).
+#
+# You should have received a copy of the GNU General Public License version
+# 2 along with this work; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
+# CA 95054 USA or visit www.sun.com if you need additional information or
+# have any questions.
+#
+
+BUILDDIR = ../..
+PACKAGE = sun.jkernel
+LIBRARY = jkernel
+PRODUCT = sun
+
+include $(BUILDDIR)/common/Defs.gmk
+
+#
+# Use highest optimization level
+#
+_OPT = $(CC_HIGHEST_OPT)
+
+# This re-directs all the class files to a separate location
+CLASSDESTDIR = $(TEMPDIR)/classes
+
+
+#
+# Java source files
+#
+include FILES_java.gmk
+AUTO_FILES_JAVA_DIRS = sun/jkernel
+
+LOCALE_SUFFIXES = $(JDK_LOCALES)
+
+#
+# Native source files
+#
+
+ifeq ($(ARCH_DATA_MODEL), 32) 
+
+ifeq ($(PLATFORM), windows)
+
+include FILES_c_windows.gmk
+
+vpath %.cpp   $(PLATFORM_SRC)/native/sun/jkernel
+
+
+VERSIONINFO_RESOURCE = $(PLATFORM_SRC)/native/sun/jkernel/kernel.rc
+
+LDLIBS += urlmon.lib wininet.lib shlwapi.lib version.lib comctl32.lib gdi32.lib -def:$(PLATFORM_SRC)/native/sun/jkernel/kernel.def
+
+include $(BUILDDIR)/common/Library.gmk
+
+endif
+
+endif
+
+#
+# Resources
+#
+include $(TOPDIR)/make/common/internal/Resources.gmk
+
+#
+# Rules
+#
+include $(BUILDDIR)/common/Classes.gmk
+
+# If extra compression is going to be available in the deploy build enable 
+# its use here by defining the JRE-relative pathname of the shared library
+
+ifeq ($(PLATFORM), windows)
+  ifdef EXTRA_COMP_INSTALL_PATH
+    CPPFLAGS += -DEXTRA_COMP_INSTALL_PATH=$(EXTRA_COMP_INSTALL_PATH)
+  endif
+endif
--- a/jdk/make/sun/native2ascii/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/native2ascii/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -33,6 +33,13 @@
 OTHER_JAVACFLAGS += -Xlint:serial -Werror
 include $(BUILDDIR)/common/Defs.gmk
 
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
+
 #
 # Files
 #
--- a/jdk/make/sun/net/FILES_java.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/net/FILES_java.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -66,6 +66,9 @@
 	sun/net/www/protocol/file/Handler.java \
 	sun/net/www/protocol/file/FileURLConnection.java \
 	sun/net/www/http/HttpClient.java \
+	sun/net/www/http/HttpCapture.java \
+	sun/net/www/http/HttpCaptureInputStream.java \
+	sun/net/www/http/HttpCaptureOutputStream.java \
 	sun/net/www/http/PosterOutputStream.java \
 	sun/net/www/http/ChunkedInputStream.java \
 	sun/net/www/http/ChunkedOutputStream.java \
@@ -75,6 +78,7 @@
 	sun/net/www/http/Hurryable.java \
 	sun/net/www/protocol/http/Handler.java \
 	sun/net/www/protocol/http/HttpURLConnection.java \
+	sun/net/www/protocol/http/HttpLogFormatter.java \
 	sun/net/www/protocol/http/HttpAuthenticator.java \
 	sun/net/www/protocol/http/AuthenticationHeader.java \
 	sun/net/www/protocol/http/AuthenticationInfo.java \
--- a/jdk/make/sun/nio/FILES_java.gmk	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/nio/FILES_java.gmk	Mon Jul 06 11:16:03 2009 -0700
@@ -151,7 +151,6 @@
 	sun/io/ByteToCharJISAutoDetect.java \
 	sun/io/ByteToCharJohab.java \
 	sun/io/ByteToCharMS874.java \
-	sun/io/ByteToCharMS932DB.java \
 	sun/io/ByteToCharMS932.java \
 	sun/io/ByteToCharMS936.java \
 	sun/io/ByteToCharMS949.java \
@@ -283,7 +282,6 @@
 	sun/io/CharToByteISO8859_8.java \
 	sun/io/CharToByteJohab.java \
 	sun/io/CharToByteMS874.java \
-	sun/io/CharToByteMS932DB.java \
 	sun/io/CharToByteMS932.java \
 	sun/io/CharToByteMS936.java \
 	sun/io/CharToByteMS949.java \
@@ -388,7 +386,15 @@
 	sun/nio/cs/ext/IBM948.java \
 	sun/nio/cs/ext/IBM949.java \
 	sun/nio/cs/ext/IBM950.java \
-	sun/nio/cs/ext/IBM970.java
+	sun/nio/cs/ext/IBM970.java \
+	sun/nio/cs/ext/EUC_CN.java \
+	sun/nio/cs/ext/EUC_KR.java \
+	sun/nio/cs/ext/Johab.java \
+	sun/nio/cs/ext/MS932.java \
+	sun/nio/cs/ext/MS936.java \
+	sun/nio/cs/ext/MS949.java \
+	sun/nio/cs/ext/MS950.java \
+	sun/nio/cs/ext/GBK.java
 
 FILES_java = $(FILES_src) $(FILES_gen_extcs)
 
--- a/jdk/make/sun/nio/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/nio/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -105,7 +105,7 @@
 	$(install-file)
 
 $(CHARSETS_JAR): $(FILES_class) $(CLASSDESTDIR)/$(SERVICE_DESCRIPTION_PATH) $(FILES_DAT)
-	$(BOOT_JAR_CMD) cf $(CHARSETS_JAR) \
+	$(BOOT_JAR_CMD) cf0 $(CHARSETS_JAR) \
 	      -C $(CLASSDESTDIR) sun \
 	      -C $(CLASSDESTDIR) $(SERVICE_DESCRIPTION_PATH)  \
 	      $(BOOT_JAR_JFLAGS)
--- a/jdk/make/sun/rmi/rmic/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/rmi/rmic/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -33,6 +33,13 @@
 include $(BUILDDIR)/common/Defs.gmk
 
 #
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
+#
 # Files
 #
 include FILES.gmk
--- a/jdk/make/sun/serialver/Makefile	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/serialver/Makefile	Mon Jul 06 11:16:03 2009 -0700
@@ -33,6 +33,14 @@
 include $(BUILDDIR)/common/Defs.gmk
 
 #
+# This program must contain a manifest that defines the execution level
+# needed to follow standard Vista User Access Control Guidelines
+# This must be set before Program.gmk is included
+#
+BUILD_MANIFEST=true
+
+
+#
 # Files
 #
 AUTO_FILES_JAVA_DIRS = sun/tools/serialver
--- a/jdk/make/sun/xawt/mapfile-vers	Tue Jun 30 16:23:54 2009 -0700
+++ b/jdk/make/sun/xawt/mapfile-vers	Mon Jul 06 11:16:03 2009 -0700
@@ -125,6 +125,7 @@
         Java_sun_awt_X11_XlibWrapper_XFree;
         Java_sun_awt_X11_XlibWrapper_ServerVendor;
         Java_sun_awt_X11_XlibWrapper_VendorRelease;
+        Java_sun_awt_X11_XlibWrapper_IsXsunKPBehavior;
         Java_sun_awt_X11_XlibWrapper_SetToolkitErrorHandler;
         Java_sun_awt_X11_XlibWrapper_XSetErrorHandler;
         Java_sun_awt_X11_XlibWrapper_CallErrorHandler;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/make/tools/CharsetMapping/EUC_CN.map	Mon Jul 06 11:16:03 2009 -0700
@@ -0,0 +1,7578 @@
+#
+#  Copy/Paste of EUC_CN.b2c
+#  1)Added singlebyte 0x00--0x7f
+#
+0x00	0x0000
+0x01	0x0001
+0x02	0x0002
+0x03	0x0003
+0x04	0x0004
+0x05	0x0005
+0x06	0x0006
+0x07	0x0007
+0x08	0x0008
+0x09	0x0009
+0x0a	0x000a
+0x0b	0x000b
+0x0c	0x000c
+0x0d	0x000d
+0x0e	0x000e
+0x0f	0x000f
+0x10	0x0010
+0x11	0x0011
+0x12	0x0012
+0x13	0x0013
+0x14	0x0014
+0x15	0x0015
+0x16	0x0016
+0x17	0x0017
+0x18	0x0018
+0x19	0x0019
+0x1a	0x001a
+0x1b	0x001b
+0x1c	0x001c
+0x1d	0x001d
+0x1e	0x001e
+0x1f	0x001f
+0x20    0x0020  # SPACE
+0x21    0x0021  # EXCLAMATION MARK
+0x22    0x0022  # QUOTATION MARK
+0x23    0x0023  # NUMBER SIGN
+0x24    0x0024  # DOLLAR SIGN
+0x25    0x0025  # PERCENT SIGN
+0x26    0x0026  # AMPERSAND
+0x27    0x0027  # APOSTROPHE
+0x28    0x0028  # LEFT PARENTHESIS
+0x29    0x0029  # RIGHT PARENTHESIS
+0x2A    0x002A  # ASTERISK
+0x2B    0x002B  # PLUS SIGN
+0x2C    0x002C  # COMMA
+0x2D    0x002D  # HYPHEN-MINUS
+0x2E    0x002E  # FULL STOP
+0x2F    0x002F  # SOLIDUS
+0x30    0x0030  # DIGIT ZERO
+0x31    0x0031  # DIGIT ONE
+0x32    0x0032  # DIGIT TWO
+0x33    0x0033  # DIGIT THREE
+0x34    0x0034  # DIGIT FOUR
+0x35    0x0035  # DIGIT FIVE
+0x36    0x0036  # DIGIT SIX
+0x37    0x0037  # DIGIT SEVEN
+0x38    0x0038  # DIGIT EIGHT
+0x39    0x0039  # DIGIT NINE
+0x3A    0x003A  # COLON
+0x3B    0x003B  # SEMICOLON
+0x3C    0x003C  # LESS-THAN SIGN
+0x3D    0x003D  # EQUALS SIGN
+0x3E    0x003E  # GREATER-THAN SIGN
+0x3F    0x003F  # QUESTION MARK
+0x40    0x0040  # COMMERCIAL AT
+0x41    0x0041  # LATIN CAPITAL LETTER A
+0x42    0x0042  # LATIN CAPITAL LETTER B
+0x43    0x0043  # LATIN CAPITAL LETTER C
+0x44    0x0044  # LATIN CAPITAL LETTER D
+0x45    0x0045  # LATIN CAPITAL LETTER E
+0x46    0x0046  # LATIN CAPITAL LETTER F
+0x47    0x0047  # LATIN CAPITAL LETTER G
+0x48    0x0048  # LATIN CAPITAL LETTER H
+0x49    0x0049  # LATIN CAPITAL LETTER I
+0x4A    0x004A  # LATIN CAPITAL LETTER J
+0x4B    0x004B  # LATIN CAPITAL LETTER K
+0x4C    0x004C  # LATIN CAPITAL LETTER L
+0x4D    0x004D  # LATIN CAPITAL LETTER M
+0x4E    0x004E  # LATIN CAPITAL LETTER N
+0x4F    0x004F  # LATIN CAPITAL LETTER O
+0x50    0x0050  # LATIN CAPITAL LETTER P
+0x51    0x0051  # LATIN CAPITAL LETTER Q
+0x52    0x0052  # LATIN CAPITAL LETTER R
+0x53    0x0053  # LATIN CAPITAL LETTER S
+0x54    0x0054  # LATIN CAPITAL LETTER T
+0x55    0x0055  # LATIN CAPITAL LETTER U
+0x56    0x0056  # LATIN CAPITAL LETTER V
+0x57    0x0057  # LATIN CAPITAL LETTER W
+0x58    0x0058  # LATIN CAPITAL LETTER X
+0x59    0x0059  # LATIN CAPITAL LETTER Y
+0x5A    0x005A  # LATIN CAPITAL LETTER Z
+0x5B    0x005B  # LEFT SQUARE BRACKET
+0x5C    0x005C  # WON SIGN
+0x5D    0x005D  # RIGHT SQUARE BRACKET
+0x5E    0x005E  # CIRCUMFLEX ACCENT
+0x5F    0x005F  # LOW LINE
+0x60    0x0060  # GRAVE ACCENT
+0x61    0x0061  # LATIN SMALL LETTER A
+0x62    0x0062  # LATIN SMALL LETTER B
+0x63    0x0063  # LATIN SMALL LETTER C
+0x64    0x0064  # LATIN SMALL LETTER D
+0x65    0x0065  # LATIN SMALL LETTER E
+0x66    0x0066  # LATIN SMALL LETTER F
+0x67    0x0067  # LATIN SMALL LETTER G
+0x68    0x0068  # LATIN SMALL LETTER H
+0x69    0x0069  # LATIN SMALL LETTER I
+0x6A    0x006A  # LATIN SMALL LETTER J
+0x6B    0x006B  # LATIN SMALL LETTER K
+0x6C    0x006C  # LATIN SMALL LETTER L
+0x6D    0x006D  # LATIN SMALL LETTER M
+0x6E    0x006E  # LATIN SMALL LETTER N
+0x6F    0x006F  # LATIN SMALL LETTER O
+0x70    0x0070  # LATIN SMALL LETTER P
+0x71    0x0071  # LATIN SMALL LETTER Q
+0x72    0x0072  # LATIN SMALL LETTER R
+0x73    0x0073  # LATIN SMALL LETTER S
+0x74    0x0074  # LATIN SMALL LETTER T
+0x75    0x0075  # LATIN SMALL LETTER U
+0x76    0x0076  # LATIN SMALL LETTER V
+0x77    0x0077  # LATIN SMALL LETTER W
+0x78    0x0078  # LATIN SMALL LETTER X
+0x79    0x0079  # LATIN SMALL LETTER Y
+0x7A    0x007A  # LATIN SMALL LETTER Z
+0x7B    0x007B  # LEFT CURLY BRACKET
+0x7C    0x007C  # VERTICAL LINE
+0x7D    0x007D  # RIGHT CURLY BRACKET
+0x7E    0x007E  # TILDE
+0x7F    0x007F
+#
+0xA1A1	0x3000	# IDEOGRAPHIC SPACE
+0xA1A2	0x3001	# IDEOGRAPHIC COMMA
+0xA1A3	0x3002	# IDEOGRAPHIC FULL STOP
+0xA1A4	0x30FB	# KATAKANA MIDDLE DOT
+0xA1A5	0x02C9	# MODIFIER LETTER MACRON (Mandarin Chinese first tone)
+0xA1A6	0x02C7	# CARON (Mandarin Chinese third tone)
+0xA1A7	0x00A8	# DIAERESIS
+0xA1A8	0x3003	# DITTO MARK
+0xA1A9	0x3005	# IDEOGRAPHIC ITERATION MARK
+0xA1AA	0x2015	# HORIZONTAL BAR
+0xA1AB	0xFF5E	# FULLWIDTH TILDE
+0xA1AC	0x2016	# PARALLEL TO
+0xA1AD	0x2026	# HORIZONTAL ELLIPSIS
+0xA1AE	0x2018	# LEFT SINGLE QUOTATION MARK
+0xA1AF	0x2019	# RIGHT SINGLE QUOTATION MARK
+0xA1B0	0x201C	# LEFT DOUBLE QUOTATION MARK
+0xA1B1	0x201D	# RIGHT DOUBLE QUOTATION MARK
+0xA1B2	0x3014	# LEFT TORTOISE SHELL BRACKET
+0xA1B3	0x3015	# RIGHT TORTOISE SHELL BRACKET
+0xA1B4	0x3008	# LEFT ANGLE BRACKET
+0xA1B5	0x3009	# RIGHT ANGLE BRACKET
+0xA1B6	0x300A	# LEFT DOUBLE ANGLE BRACKET
+0xA1B7	0x300B	# RIGHT DOUBLE ANGLE BRACKET
+0xA1B8	0x300C	# LEFT CORNER BRACKET
+0xA1B9	0x300D	# RIGHT CORNER BRACKET
+0xA1BA	0x300E	# LEFT WHITE CORNER BRACKET
+0xA1BB	0x300F	# RIGHT WHITE CORNER BRACKET
+0xA1BC	0x3016	# LEFT WHITE LENTICULAR BRACKET
+0xA1BD	0x3017	# RIGHT WHITE LENTICULAR BRACKET
+0xA1BE	0x3010	# LEFT BLACK LENTICULAR BRACKET
+0xA1BF	0x3011	# RIGHT BLACK LENTICULAR BRACKET
+0xA1C0	0x00B1	# PLUS-MINUS SIGN
+0xA1C1	0x00D7	# MULTIPLICATION SIGN
+0xA1C2	0x00F7	# DIVISION SIGN
+0xA1C3	0x2236	# RATIO
+0xA1C4	0x2227	# LOGICAL AND
+0xA1C5	0x2228	# LOGICAL OR
+0xA1C6	0x2211	# N-ARY SUMMATION
+0xA1C7	0x220F	# N-ARY PRODUCT
+0xA1C8	0x222A	# UNION
+0xA1C9	0x2229	# INTERSECTION
+0xA1CA	0x2208	# ELEMENT OF
+0xA1CB	0x2237	# PROPORTION
+0xA1CC	0x221A	# SQUARE ROOT
+0xA1CD	0x22A5	# UP TACK
+0xA1CE	0x2225	# PARALLEL TO
+0xA1CF	0x2220	# ANGLE
+0xA1D0	0x2312	# ARC
+0xA1D1	0x2299	# CIRCLED DOT OPERATOR
+0xA1D2	0x222B	# INTEGRAL
+0xA1D3	0x222E	# CONTOUR INTEGRAL
+0xA1D4	0x2261	# IDENTICAL TO
+0xA1D5	0x224C	# ALL EQUAL TO
+0xA1D6	0x2248	# ALMOST EQUAL TO
+0xA1D7	0x223D	# REVERSED TILDE
+0xA1D8	0x221D	# PROPORTIONAL TO
+0xA1D9	0x2260	# NOT EQUAL TO
+0xA1DA	0x226E	# NOT LESS-THAN
+0xA1DB	0x226F	# NOT GREATER-THAN
+0xA1DC	0x2264	# LESS-THAN OR EQUAL TO
+0xA1DD	0x2265	# GREATER-THAN OR EQUAL TO
+0xA1DE	0x221E	# INFINITY
+0xA1DF	0x2235	# BECAUSE
+0xA1E0	0x2234	# THEREFORE
+0xA1E1	0x2642	# MALE SIGN
+0xA1E2	0x2640	# FEMALE SIGN
+0xA1E3	0x00B0	# DEGREE SIGN
+0xA1E4	0x2032	# PRIME
+0xA1E5	0x2033	# DOUBLE PRIME
+0xA1E6	0x2103	# DEGREE CELSIUS
+0xA1E7	0xFF04	# FULLWIDTH DOLLAR SIGN
+0xA1E8	0x00A4	# CURRENCY SIGN
+0xA1E9	0xFFE0	# FULLWIDTH CENT SIGN
+0xA1EA	0xFFE1	# FULLWIDTH POUND SIGN
+0xA1EB	0x2030	# PER MILLE SIGN
+0xA1EC	0x00A7	# SECTION SIGN
+0xA1ED	0x2116	# NUMERO SIGN
+0xA1EE	0x2606	# WHITE STAR
+0xA1EF	0x2605	# BLACK STAR
+0xA1F0	0x25CB	# WHITE CIRCLE
+0xA1F1	0x25CF	# BLACK CIRCLE
+0xA1F2	0x25CE	# BULLSEYE
+0xA1F3	0x25C7	# WHITE DIAMOND
+0xA1F4	0x25C6	# BLACK DIAMOND
+0xA1F5	0x25A1	# WHITE SQUARE
+0xA1F6	0x25A0	# BLACK SQUARE
+0xA1F7	0x25B3	# WHITE UP-POINTING TRIANGLE
+0xA1F8	0x25B2	# BLACK UP-POINTING TRIANGLE
+0xA1F9	0x203B	# REFERENCE MARK
+0xA1FA	0x2192	# RIGHTWARDS ARROW
+0xA1FB	0x2190	# LEFTWARDS ARROW
+0xA1FC	0x2191	# UPWARDS ARROW
+0xA1FD	0x2193	# DOWNWARDS ARROW
+0xA1FE	0x3013	# GETA MARK
+0xA2B1	0x2488	# DIGIT ONE FULL STOP
+0xA2B2	0x2489	# DIGIT TWO FULL STOP
+0xA2B3	0x248A	# DIGIT THREE FULL STOP
+0xA2B4	0x248B	# DIGIT FOUR FULL STOP
+0xA2B5	0x248C	# DIGIT FIVE FULL STOP
+0xA2B6	0x248D	# DIGIT SIX FULL STOP
+0xA2B7	0x248E	# DIGIT SEVEN FULL STOP
+0xA2B8	0x248F	# DIGIT EIGHT FULL STOP
+0xA2B9	0x2490	# DIGIT NINE FULL STOP
+0xA2BA	0x2491	# NUMBER TEN FULL STOP
+0xA2BB	0x2492	# NUMBER ELEVEN FULL STOP
+0xA2BC	0x2493	# NUMBER TWELVE FULL STOP
+0xA2BD	0x2494	# NUMBER THIRTEEN FULL STOP
+0xA2BE	0x2495	# NUMBER FOURTEEN FULL STOP
+0xA2BF	0x2496	# NUMBER FIFTEEN FULL STOP
+0xA2C0	0x2497	# NUMBER SIXTEEN FULL STOP
+0xA2C1	0x2498	# NUMBER SEVENTEEN FULL STOP
+0xA2C2	0x2499	# NUMBER EIGHTEEN FULL STOP
+0xA2C3	0x249A	# NUMBER NINETEEN FULL STOP
+0xA2C4	0x249B	# NUMBER TWENTY FULL STOP
+0xA2C5	0x2474	# PARENTHESIZED DIGIT ONE
+0xA2C6	0x2475	# PARENTHESIZED DIGIT TWO
+0xA2C7	0x2476	# PARENTHESIZED DIGIT THREE
+0xA2C8	0x2477	# PARENTHESIZED DIGIT FOUR
+0xA2C9	0x2478	# PARENTHESIZED DIGIT FIVE
+0xA2CA	0x2479	# PARENTHESIZED DIGIT SIX
+0xA2CB	0x247A	# PARENTHESIZED DIGIT SEVEN
+0xA2CC	0x247B	# PARENTHESIZED DIGIT EIGHT
+0xA2CD	0x247C	# PARENTHESIZED DIGIT NINE
+0xA2CE	0x247D	# PARENTHESIZED NUMBER TEN
+0xA2CF	0x247E	# PARENTHESIZED NUMBER ELEVEN
+0xA2D0	0x247F	# PARENTHESIZED NUMBER TWELVE
+0xA2D1	0x2480	# PARENTHESIZED NUMBER THIRTEEN
+0xA2D2	0x2481	# PARENTHESIZED NUMBER FOURTEEN
+0xA2D3	0x2482	# PARENTHESIZED NUMBER FIFTEEN
+0xA2D4	0x2483	# PARENTHESIZED NUMBER SIXTEEN
+0xA2D5	0x2484	# PARENTHESIZED NUMBER SEVENTEEN
+0xA2D6	0x2485	# PARENTHESIZED NUMBER EIGHTEEN
+0xA2D7	0x2486	# PARENTHESIZED NUMBER NINETEEN
+0xA2D8	0x2487	# PARENTHESIZED NUMBER TWENTY
+0xA2D9	0x2460	# CIRCLED DIGIT ONE
+0xA2DA	0x2461	# CIRCLED DIGIT TWO
+0xA2DB	0x2462	# CIRCLED DIGIT THREE
+0xA2DC	0x2463	# CIRCLED DIGIT FOUR
+0xA2DD	0x2464	# CIRCLED DIGIT FIVE
+0xA2DE	0x2465	# CIRCLED DIGIT SIX
+0xA2DF	0x2466	# CIRCLED DIGIT SEVEN
+0xA2E0	0x2467	# CIRCLED DIGIT EIGHT
+0xA2E1	0x2468	# CIRCLED DIGIT NINE
+0xA2E2	0x2469	# CIRCLED NUMBER TEN
+0xA2E5	0x3220	# PARENTHESIZED IDEOGRAPH ONE
+0xA2E6	0x3221	# PARENTHESIZED IDEOGRAPH TWO
+0xA2E7	0x3222	# PARENTHESIZED IDEOGRAPH THREE
+0xA2E8	0x3223	# PARENTHESIZED IDEOGRAPH FOUR
+0xA2E9	0x3224	# PARENTHESIZED IDEOGRAPH FIVE
+0xA2EA	0x3225	# PARENTHESIZED IDEOGRAPH SIX
+0xA2EB	0x3226	# PARENTHESIZED IDEOGRAPH SEVEN
+0xA2EC	0x3227	# PARENTHESIZED IDEOGRAPH EIGHT
+0xA2ED	0x3228	# PARENTHESIZED IDEOGRAPH NINE
+0xA2EE	0x3229	# PARENTHESIZED IDEOGRAPH TEN
+0xA2F1	0x2160	# ROMAN NUMERAL ONE
+0xA2F2	0x2161	# ROMAN NUMERAL TWO
+0xA2F3	0x2162	# ROMAN NUMERAL THREE
+0xA2F4	0x2163	# ROMAN NUMERAL FOUR
+0xA2F5	0x2164	# ROMAN NUMERAL FIVE
+0xA2F6	0x2165	# ROMAN NUMERAL SIX
+0xA2F7	0x2166	# ROMAN NUMERAL SEVEN
+0xA2F8	0x2167	# ROMAN NUMERAL EIGHT
+0xA2F9	0x2168	# ROMAN NUMERAL NINE
+0xA2FA	0x2169	# ROMAN NUMERAL TEN
+0xA2FB	0x216A	# ROMAN NUMERAL ELEVEN
+0xA2FC	0x216B	# ROMAN NUMERAL TWELVE
+0xA3A1	0xFF01	# FULLWIDTH EXCLAMATION MARK
+0xA3A2	0xFF02	# FULLWIDTH QUOTATION MARK
+0xA3A3	0xFF03	# FULLWIDTH NUMBER SIGN
+0xA3A4	0xFFE5	# FULLWIDTH YEN SIGN
+0xA3A5	0xFF05	# FULLWIDTH PERCENT SIGN
+0xA3A6	0xFF06	# FULLWIDTH AMPERSAND
+0xA3A7	0xFF07	# FULLWIDTH APOSTROPHE
+0xA3A8	0xFF08	# FULLWIDTH LEFT PARENTHESIS
+0xA3A9	0xFF09	# FULLWIDTH RIGHT PARENTHESIS
+0xA3AA	0xFF0A	# FULLWIDTH ASTERISK
+0xA3AB	0xFF0B	# FULLWIDTH PLUS SIGN
+0xA3AC	0xFF0C	# FULLWIDTH COMMA
+0xA3AD	0xFF0D	# FULLWIDTH HYPHEN-MINUS
+0xA3AE	0xFF0E	# FULLWIDTH FULL STOP
+0xA3AF	0xFF0F	# FULLWIDTH SOLIDUS
+0xA3B0	0xFF10	# FULLWIDTH DIGIT ZERO
+0xA3B1	0xFF11	# FULLWIDTH DIGIT ONE
+0xA3B2	0xFF12	# FULLWIDTH DIGIT TWO
+0xA3B3	0xFF13	# FULLWIDTH DIGIT THREE
+0xA3B4	0xFF14	# FULLWIDTH DIGIT FOUR
+0xA3B5	0xFF15	# FULLWIDTH DIGIT FIVE
+0xA3B6	0xFF16	# FULLWIDTH DIGIT SIX
+0xA3B7	0xFF17	# FULLWIDTH DIGIT SEVEN
+0xA3B8	0xFF18	# FULLWIDTH DIGIT EIGHT
+0xA3B9	0xFF19	# FULLWIDTH DIGIT NINE
+0xA3BA	0xFF1A	# FULLWIDTH COLON
+0xA3BB	0xFF1B	# FULLWIDTH SEMICOLON
+0xA3BC	0xFF1C	# FULLWIDTH LESS-THAN SIGN
+0xA3BD	0xFF1D	# FULLWIDTH EQUALS SIGN
+0xA3BE	0xFF1E	# FULLWIDTH GREATER-THAN SIGN
+0xA3BF	0xFF1F	# FULLWIDTH QUESTION MARK
+0xA3C0	0xFF20	# FULLWIDTH COMMERCIAL AT
+0xA3C1	0xFF21	# FULLWIDTH LATIN CAPITAL LETTER A
+0xA3C2	0xFF22	# FULLWIDTH LATIN CAPITAL LETTER B
+0xA3C3	0xFF23	# FULLWIDTH LATIN CAPITAL LETTER C
+0xA3C4	0xFF24	# FULLWIDTH LATIN CAPITAL LETTER D
+0xA3C5	0xFF25	# FULLWIDTH LATIN CAPITAL LETTER E
+0xA3C6	0xFF26	# FULLWIDTH LATIN CAPITAL LETTER F
+0xA3C7	0xFF27	# FULLWIDTH LATIN CAPITAL LETTER G
+0xA3C8	0xFF28	# FULLWIDTH LATIN CAPITAL LETTER H
+0xA3C9	0xFF29	# FULLWIDTH LATIN CAPITAL LETTER I
+0xA3CA	0xFF2A	# FULLWIDTH LATIN CAPITAL LETTER J
+0xA3CB	0xFF2B	# FULLWIDTH LATIN CAPITAL LETTER K
+0xA3CC	0xFF2C	# FULLWIDTH LATIN CAPITAL LETTER L
+0xA3CD	0xFF2D	# FULLWIDTH LATIN CAPITAL LETTER M
+0xA3CE	0xFF2E	# FULLWIDTH LATIN CAPITAL LETTER N
+0xA3CF	0xFF2F	# FULLWIDTH LATIN CAPITAL LETTER O
+0xA3D0	0xFF30	# FULLWIDTH LATIN CAPITAL LETTER P
+0xA3D1	0xFF31	# FULLWIDTH LATIN CAPITAL LETTER Q
+0xA3D2	0xFF32	# FULLWIDTH LATIN CAPITAL LETTER R
+0xA3D3	0xFF33	# FULLWIDTH LATIN CAPITAL LETTER S
+0xA3D4	0xFF34	# FULLWIDTH LATIN CAPITAL LETTER T
+0xA3D5	0xFF35	# FULLWIDTH LATIN CAPITAL LETTER U
+0xA3D6	0xFF36	# FULLWIDTH LATIN CAPITAL LETTER V
+0xA3D7	0xFF37	# FULLWIDTH LATIN CAPITAL LETTER W
+0xA3D8	0xFF38	# FULLWIDTH LATIN CAPITAL LETTER X
+0xA3D9	0xFF39	# FULLWIDTH LATIN CAPITAL LETTER Y
+0xA3DA	0xFF3A	# FULLWIDTH LATIN CAPITAL LETTER Z
+0xA3DB	0xFF3B	# FULLWIDTH LEFT SQUARE BRACKET
+0xA3DC	0xFF3C	# FULLWIDTH REVERSE SOLIDUS
+0xA3DD	0xFF3D	# FULLWIDTH RIGHT SQUARE BRACKET
+0xA3DE	0xFF3E	# FULLWIDTH CIRCUMFLEX ACCENT
+0xA3DF	0xFF3F	# FULLWIDTH LOW LINE
+0xA3E0	0xFF40	# FULLWIDTH GRAVE ACCENT
+0xA3E1	0xFF41	# FULLWIDTH LATIN SMALL LETTER A
+0xA3E2	0xFF42	# FULLWIDTH LATIN SMALL LETTER B
+0xA3E3	0xFF43	# FULLWIDTH LATIN SMALL LETTER C
+0xA3E4	0xFF44	# FULLWIDTH LATIN SMALL LETTER D
+0xA3E5	0xFF45	# FULLWIDTH LATIN SMALL LETTER E
+0xA3E6	0xFF46	# FULLWIDTH LATIN SMALL LETTER F
+0xA3E7	0xFF47	# FULLWIDTH LATIN SMALL LETTER G
+0xA3E8	0xFF48	# FULLWIDTH LATIN SMALL LETTER H
+0xA3E9	0xFF49	# FULLWIDTH LATIN SMALL LETTER I
+0xA3EA	0xFF4A	# FULLWIDTH LATIN SMALL LETTER J
+0xA3EB	0xFF4B	# FULLWIDTH LATIN SMALL LETTER K
+0xA3EC	0xFF4C	# FULLWIDTH LATIN SMALL LETTER L
+0xA3ED	0xFF4D	# FULLWIDTH LATIN SMALL LETTER M
+0xA3EE	0xFF4E	# FULLWIDTH LATIN SMALL LETTER N
+0xA3EF	0xFF4F	# FULLWIDTH LATIN SMALL LETTER O
+0xA3F0	0xFF50	# FULLWIDTH LATIN SMALL LETTER P
+0xA3F1	0xFF51	# FULLWIDTH LATIN SMALL LETTER Q
+0xA3F2	0xFF52	# FULLWIDTH LATIN SMALL LETTER R
+0xA3F3	0xFF53	# FULLWIDTH LATIN SMALL LETTER S
+0xA3F4	0xFF54	# FULLWIDTH LATIN SMALL LETTER T
+0xA3F5	0xFF55	# FULLWIDTH LATIN SMALL LETTER U
+0xA3F6	0xFF56	# FULLWIDTH LATIN SMALL LETTER V
+0xA3F7	0xFF57	# FULLWIDTH LATIN SMALL LETTER W
+0xA3F8	0xFF58	# FULLWIDTH LATIN SMALL LETTER X
+0xA3F9	0xFF59	# FULLWIDTH LATIN SMALL LETTER Y
+0xA3FA	0xFF5A	# FULLWIDTH LATIN SMALL LETTER Z
+0xA3FB	0xFF5B	# FULLWIDTH LEFT CURLY BRACKET
+0xA3FC	0xFF5C	# FULLWIDTH VERTICAL LINE
+0xA3FD	0xFF5D	# FULLWIDTH RIGHT CURLY BRACKET
+0xA3FE	0xFFE3	# FULLWIDTH MACRON
+0xA4A1	0x3041	# HIRAGANA LETTER SMALL A
+0xA4A2	0x3042	# HIRAGANA LETTER A
+0xA4A3	0x3043	# HIRAGANA LETTER SMALL I
+0xA4A4	0x3044	# HIRAGANA LETTER I
+0xA4A5	0x3045	# HIRAGANA LETTER SMALL U
+0xA4A6	0x3046	# HIRAGANA LETTER U
+0xA4A7	0x3047	# HIRAGANA LETTER SMALL E
+0xA4A8	0x3048	# HIRAGANA LETTER E
+0xA4A9	0x3049	# HIRAGANA LETTER SMALL O
+0xA4AA	0x304A	# HIRAGANA LETTER O
+0xA4AB	0x304B	# HIRAGANA LETTER KA
+0xA4AC	0x304C	# HIRAGANA LETTER GA
+0xA4AD	0x304D	# HIRAGANA LETTER KI
+0xA4AE	0x304E	# HIRAGANA LETTER GI
+0xA4AF	0x304F	# HIRAGANA LETTER KU
+0xA4B0	0x3050	# HIRAGANA LETTER GU
+0xA4B1	0x3051	# HIRAGANA LETTER KE
+0xA4B2	0x3052	# HIRAGANA LETTER GE
+0xA4B3	0x3053	# HIRAGANA LETTER KO
+0xA4B4	0x3054	# HIRAGANA LETTER GO
+0xA4B5	0x3055	# HIRAGANA LETTER SA
+0xA4B6	0x3056	# HIRAGANA LETTER ZA
+0xA4B7	0x3057	# HIRAGANA LETTER SI
+0xA4B8	0x3058	# HIRAGANA LETTER ZI
+0xA4B9	0x3059	# HIRAGANA LETTER SU
+0xA4BA	0x305A	# HIRAGANA LETTER ZU
+0xA4BB	0x305B	# HIRAGANA LETTER SE
+0xA4BC	0x305C	# HIRAGANA LETTER ZE
+0xA4BD	0x305D	# HIRAGANA LETTER SO
+0xA4BE	0x305E	# HIRAGANA LETTER ZO
+0xA4BF	0x305F	# HIRAGANA LETTER TA
+0xA4C0	0x3060	# HIRAGANA LETTER DA
+0xA4C1	0x3061	# HIRAGANA LETTER TI
+0xA4C2	0x3062	# HIRAGANA LETTER DI
+0xA4C3	0x3063	# HIRAGANA LETTER SMALL TU
+0xA4C4	0x3064	# HIRAGANA LETTER TU
+0xA4C5	0x3065	# HIRAGANA LETTER DU
+0xA4C6	0x3066	# HIRAGANA LETTER TE
+0xA4C7	0x3067	# HIRAGANA LETTER DE
+0xA4C8	0x3068	# HIRAGANA LETTER TO
+0xA4C9	0x3069	# HIRAGANA LETTER DO
+0xA4CA	0x306A	# HIRAGANA LETTER NA
+0xA4CB	0x306B	# HIRAGANA LETTER NI
+0xA4CC	0x306C	# HIRAGANA LETTER NU
+0xA4CD	0x306D	# HIRAGANA LETTER NE
+0xA4CE	0x306E	# HIRAGANA LETTER NO
+0xA4CF	0x306F	# HIRAGANA LETTER HA
+0xA4D0	0x3070	# HIRAGANA LETTER BA
+0xA4D1	0x3071	# HIRAGANA LETTER PA
+0xA4D2	0x3072	# HIRAGANA LETTER HI
+0xA4D3	0x3073	# HIRAGANA LETTER BI
+0xA4D4	0x3074	# HIRAGANA LETTER PI
+0xA4D5	0x3075	# HIRAGANA LETTER HU
+0xA4D6	0x3076	# HIRAGANA LETTER BU
+0xA4D7	0x3077	# HIRAGANA LETTER PU
+0xA4D8	0x3078	# HIRAGANA LETTER HE
+0xA4D9	0x3079	# HIRAGANA LETTER BE
+0xA4DA	0x307A	# HIRAGANA LETTER PE
+0xA4DB	0x307B	# HIRAGANA LETTER HO
+0xA4DC	0x307C	# HIRAGANA LETTER BO
+0xA4DD	0x307D	# HIRAGANA LETTER PO
+0xA4DE	0x307E	# HIRAGANA LETTER MA
+0xA4DF	0x307F	# HIRAGANA LETTER MI
+0xA4E0	0x3080	# HIRAGANA LETTER MU
+0xA4E1	0x3081	# HIRAGANA LETTER ME
+0xA4E2	0x3082	# HIRAGANA LETTER MO
+0xA4E3	0x3083	# HIRAGANA LETTER SMALL YA
+0xA4E4	0x3084	# HIRAGANA LETTER YA
+0xA4E5	0x3085	# HIRAGANA LETTER SMALL YU
+0xA4E6	0x3086	# HIRAGANA LETTER YU
+0xA4E7	0x3087	# HIRAGANA LETTER SMALL YO
+0xA4E8	0x3088	# HIRAGANA LETTER YO
+0xA4E9	0x3089	# HIRAGANA LETTER RA
+0xA4EA	0x308A	# HIRAGANA LETTER RI
+0xA4EB	0x308B	# HIRAGANA LETTER RU
+0xA4EC	0x308C	# HIRAGANA LETTER RE
+0xA4ED	0x308D	# HIRAGANA LETTER RO
+0xA4EE	0x308E	# HIRAGANA LETTER SMALL WA
+0xA4EF	0x308F	# HIRAGANA LETTER WA
+0xA4F0	0x3090	# HIRAGANA LETTER WI
+0xA4F1	0x3091	# HIRAGANA LETTER WE
+0xA4F2	0x3092	# HIRAGANA LETTER WO
+0xA4F3	0x3093	# HIRAGANA LETTER N
+0xA5A1	0x30A1	# KATAKANA LETTER SMALL A
+0xA5A2	0x30A2	# KATAKANA LETTER A
+0xA5A3	0x30A3	# KATAKANA LETTER SMALL I
+0xA5A4	0x30A4	# KATAKANA LETTER I
+0xA5A5	0x30A5	# KATAKANA LETTER SMALL U
+0xA5A6	0x30A6	# KATAKANA LETTER U
+0xA5A7	0x30A7	# KATAKANA LETTER SMALL E
+0xA5A8	0x30A8	# KATAKANA LETTER E
+0xA5A9	0x30A9	# KATAKANA LETTER SMALL O
+0xA5AA	0x30AA	# KATAKANA LETTER O
+0xA5AB	0x30AB	# KATAKANA LETTER KA
+0xA5AC	0x30AC	# KATAKANA LETTER GA
+0xA5AD	0x30AD	# KATAKANA LETTER KI
+0xA5AE	0x30AE	# KATAKANA LETTER GI
+0xA5AF	0x30AF	# KATAKANA LETTER KU
+0xA5B0	0x30B0	# KATAKANA LETTER GU
+0xA5B1	0x30B1	# KATAKANA LETTER KE
+0xA5B2	0x30B2	# KATAKANA LETTER GE
+0xA5B3	0x30B3	# KATAKANA LETTER KO
+0xA5B4	0x30B4	# KATAKANA LETTER GO
+0xA5B5	0x30B5	# KATAKANA LETTER SA
+0xA5B6	0x30B6	# KATAKANA LETTER ZA
+0xA5B7	0x30B7	# KATAKANA LETTER SI
+0xA5B8	0x30B8	# KATAKANA LETTER ZI
+0xA5B9	0x30B9	# KATAKANA LETTER SU
+0xA5BA	0x30BA	# KATAKANA LETTER ZU
+0xA5BB	0x30BB	# KATAKANA LETTER SE
+0xA5BC	0x30BC	# KATAKANA LETTER ZE
+0xA5BD	0x30BD	# KATAKANA LETTER SO
+0xA5BE	0x30BE	# KATAKANA LETTER ZO
+0xA5BF	0x30BF	# KATAKANA LETTER TA
+0xA5C0	0x30C0	# KATAKANA LETTER DA
+0xA5C1	0x30C1	# KATAKANA LETTER TI
+0xA5C2	0x30C2	# KATAKANA LETTER DI
+0xA5C3	0x30C3	# KATAKANA LETTER SMALL TU
+0xA5C4	0x30C4	# KATAKANA LETTER TU
+0xA5C5	0x30C5	# KATAKANA LETTER DU
+0xA5C6	0x30C6	# KATAKANA LETTER TE
+0xA5C7	0x30C7	# KATAKANA LETTER DE
+0xA5C8	0x30C8	# KATAKANA LETTER TO
+0xA5C9	0x30C9	# KATAKANA LETTER DO
+0xA5CA	0x30CA	# KATAKANA LETTER NA
+0xA5CB	0x30CB	# KATAKANA LETTER NI
+0xA5CC	0x30CC	# KATAKANA LETTER NU
+0xA5CD	0x30CD	# KATAKANA LETTER NE
+0xA5CE	0x30CE	# KATAKANA LETTER NO
+0xA5CF	0x30CF	# KATAKANA LETTER HA
+0xA5D0	0x30D0	# KATAKANA LETTER BA
+0xA5D1	0x30D1	# KATAKANA LETTER PA
+0xA5D2	0x30D2	# KATAKANA LETTER HI
+0xA5D3	0x30D3	# KATAKANA LETTER BI
+0xA5D4	0x30D4	# KATAKANA LETTER PI
+0xA5D5	0x30D5	# KATAKANA LETTER HU
+0xA5D6	0x30D6	# KATAKANA LETTER BU
+0xA5D7	0x30D7	# KATAKANA LETTER PU
+0xA5D8	0x30D8	# KATAKANA LETTER HE
+0xA5D9	0x30D9	# KATAKANA LETTER BE
+0xA5DA	0x30DA	# KATAKANA LETTER PE
+0xA5DB	0x30DB	# KATAKANA LETTER HO
+0xA5DC	0x30DC	# KATAKANA LETTER BO
+0xA5DD	0x30DD	# KATAKANA LETTER PO
+0xA5DE	0x30DE	# KATAKANA LETTER MA
+0xA5DF	0x30DF	# KATAKANA LETTER MI
+0xA5E0	0x30E0	# KATAKANA LETTER MU
+0xA5E1	0x30E1	# KATAKANA LETTER ME
+0xA5E2	0x30E2	# KATAKANA LETTER MO
+0xA5E3	0x30E3	# KATAKANA LETTER SMALL YA
+0xA5E4	0x30E4	# KATAKANA LETTER YA
+0xA5E5	0x30E5	# KATAKANA LETTER SMALL YU
+0xA5E6	0x30E6	# KATAKANA LETTER YU
+0xA5E7	0x30E7	# KATAKANA LETTER SMALL YO
+0xA5E8	0x30E8	# KATAKANA LETTER YO
+0xA5E9	0x30E9	# KATAKANA LETTER RA
+0xA5EA	0x30EA	# KATAKANA LETTER RI
+0xA5EB	0x30EB	# KATAKANA LETTER RU
+0xA5EC	0x30EC	# KATAKANA LETTER RE
+0xA5ED	0x30ED	# KATAKANA LETTER RO
+0xA5EE	0x30EE	# KATAKANA LETTER SMALL WA
+0xA5EF	0x30EF	# KATAKANA LETTER WA
+0xA5F0	0x30F0	# KATAKANA LETTER WI
+0xA5F1	0x30F1	# KATAKANA LETTER WE
+0xA5F2	0x30F2	# KATAKANA LETTER WO
+0xA5F3	0x30F3	# KATAKANA LETTER N
+0xA5F4	0x30F4	# KATAKANA LETTER VU
+0xA5F5	0x30F5	# KATAKANA LETTER SMALL KA
+0xA5F6	0x30F6	# KATAKANA LETTER SMALL KE
+0xA6A1	0x0391	# GREEK CAPITAL LETTER ALPHA
+0xA6A2	0x0392	# GREEK CAPITAL LETTER BETA
+0xA6A3	0x0393	# GREEK CAPITAL LETTER GAMMA
+0xA6A4	0x0394	# GREEK CAPITAL LETTER DELTA
+0xA6A5	0x0395	# GREEK CAPITAL LETTER EPSILON
+0xA6A6	0x0396	# GREEK CAPITAL LETTER ZETA
+0xA6A7	0x0397	# GREEK CAPITAL LETTER ETA
+0xA6A8	0x0398	# GREEK CAPITAL LETTER THETA
+0xA6A9	0x0399	# GREEK CAPITAL LETTER IOTA
+0xA6AA	0x039A	# GREEK CAPITAL LETTER KAPPA
+0xA6AB	0x039B	# GREEK CAPITAL LETTER LAMDA
+0xA6AC	0x039C	# GREEK CAPITAL LETTER MU
+0xA6AD	0x039D	# GREEK CAPITAL LETTER NU
+0xA6AE	0x039E	# GREEK CAPITAL LETTER XI
+0xA6AF	0x039F	# GREEK CAPITAL LETTER OMICRON
+0xA6B0	0x03A0	# GREEK CAPITAL LETTER PI
+0xA6B1	0x03A1	# GREEK CAPITAL LETTER RHO
+0xA6B2	0x03A3	# GREEK CAPITAL LETTER SIGMA
+0xA6B3	0x03A4	# GREEK CAPITAL LETTER TAU
+0xA6B4	0x03A5	# GREEK CAPITAL LETTER UPSILON
+0xA6B5	0x03A6	# GREEK CAPITAL LETTER PHI
+0xA6B6	0x03A7	# GREEK CAPITAL LETTER CHI
+0xA6B7	0x03A8	# GREEK CAPITAL LETTER PSI
+0xA6B8	0x03A9	# GREEK CAPITAL LETTER OMEGA
+0xA6C1	0x03B1	# GREEK SMALL LETTER ALPHA
+0xA6C2	0x03B2	# GREEK SMALL LETTER BETA
+0xA6C3	0x03B3	# GREEK SMALL LETTER GAMMA
+0xA6C4	0x03B4	# GREEK SMALL LETTER DELTA
+0xA6C5	0x03B5	# GREEK SMALL LETTER EPSILON
+0xA6C6	0x03B6	# GREEK SMALL LETTER ZETA
+0xA6C7	0x03B7	# GREEK SMALL LETTER ETA
+0xA6C8	0x03B8	# GREEK SMALL LETTER THETA
+0xA6C9	0x03B9	# GREEK SMALL LETTER IOTA
+0xA6CA	0x03BA	# GREEK SMALL LETTER KAPPA
+0xA6CB	0x03BB	# GREEK SMALL LETTER LAMDA
+0xA6CC	0x03BC	# GREEK SMALL LETTER MU
+0xA6CD	0x03BD	# GREEK SMALL LETTER NU
+0xA6CE	0x03BE	# GREEK SMALL LETTER XI
+0xA6CF	0x03BF	# GREEK SMALL LETTER OMICRON
+0xA6D0	0x03C0	# GREEK SMALL LETTER PI
+0xA6D1	0x03C1	# GREEK SMALL LETTER RHO
+0xA6D2	0x03C3	# GREEK SMALL LETTER SIGMA
+0xA6D3	0x03C4	# GREEK SMALL LETTER TAU
+0xA6D4	0x03C5	# GREEK SMALL LETTER UPSILON
+0xA6D5	0x03C6	# GREEK SMALL LETTER PHI
+0xA6D6	0x03C7	# GREEK SMALL LETTER CHI
+0xA6D7	0x03C8	# GREEK SMALL LETTER PSI
+0xA6D8	0x03C9	# GREEK SMALL LETTER OMEGA
+0xA7A1	0x0410	# CYRILLIC CAPITAL LETTER A
+0xA7A2	0x0411	# CYRILLIC CAPITAL LETTER BE
+0xA7A3	0x0412	# CYRILLIC CAPITAL LETTER VE
+0xA7A4	0x0413	# CYRILLIC CAPITAL LETTER GHE
+0xA7A5	0x0414	# CYRILLIC CAPITAL LETTER DE
+0xA7A6	0x0415	# CYRILLIC CAPITAL LETTER IE
+0xA7A7	0x0401	# CYRILLIC CAPITAL LETTER IO
+0xA7A8	0x0416	# CYRILLIC CAPITAL LETTER ZHE
+0xA7A9	0x0417	# CYRILLIC CAPITAL LETTER ZE
+0xA7AA	0x0418	# CYRILLIC CAPITAL LETTER I
+0xA7AB	0x0419	# CYRILLIC CAPITAL LETTER SHORT I
+0xA7AC	0x041A	# CYRILLIC CAPITAL LETTER KA
+0xA7AD	0x041B	# CYRILLIC CAPITAL LETTER EL
+0xA7AE	0x041C	# CYRILLIC CAPITAL LETTER EM
+0xA7AF	0x041D	# CYRILLIC CAPITAL LETTER EN
+0xA7B0	0x041E	# CYRILLIC CAPITAL LETTER O
+0xA7B1	0x041F	# CYRILLIC CAPITAL LETTER PE
+0xA7B2	0x0420	# CYRILLIC CAPITAL LETTER ER
+0xA7B3	0x0421	# CYRILLIC CAPITAL LETTER ES
+0xA7B4	0x0422	# CYRILLIC CAPITAL LETTER TE
+0xA7B5	0x0423	# CYRILLIC CAPITAL LETTER U
+0xA7B6	0x0424	# CYRILLIC CAPITAL LETTER EF
+0xA7B7	0x0425	# CYRILLIC CAPITAL LETTER HA
+0xA7B8	0x0426	# CYRILLIC CAPITAL LETTER TSE
+0xA7B9	0x0427	# CYRILLIC CAPITAL LETTER CHE
+0xA7BA	0x0428	# CYRILLIC CAPITAL LETTER SHA
+0xA7BB	0x0429	# CYRILLIC CAPITAL LETTER SHCHA
+0xA7BC	0x042A	# CYRILLIC CAPITAL LETTER HARD SIGN
+0xA7BD	0x042B	# CYRILLIC CAPITAL LETTER YERU
+0xA7BE	0x042C	# CYRILLIC CAPITAL LETTER SOFT SIGN
+0xA7BF	0x042D	# CYRILLIC CAPITAL LETTER E
+0xA7C0	0x042E	# CYRILLIC CAPITAL LETTER YU
+0xA7C1	0x042F	# CYRILLIC CAPITAL LETTER YA
+0xA7D1	0x0430	# CYRILLIC SMALL LETTER A
+0xA7D2	0x0431	# CYRILLIC SMALL LETTER BE
+0xA7D3	0x0432	# CYRILLIC SMALL LETTER VE
+0xA7D4	0x0433	# CYRILLIC SMALL LETTER GHE
+0xA7D5	0x0434	# CYRILLIC SMALL LETTER DE
+0xA7D6	0x0435	# CYRILLIC SMALL LETTER IE
+0xA7D7	0x0451	# CYRILLIC SMALL LETTER IO
+0xA7D8	0x0436	# CYRILLIC SMALL LETTER ZHE
+0xA7D9	0x0437	# CYRILLIC SMALL LETTER ZE
+0xA7DA	0x0438	# CYRILLIC SMALL LETTER I
+0xA7DB	0x0439	# CYRILLIC SMALL LETTER SHORT I
+0xA7DC	0x043A	# CYRILLIC SMALL LETTER KA
+0xA7DD	0x043B	# CYRILLIC SMALL LETTER EL
+0xA7DE	0x043C	# CYRILLIC SMALL LETTER EM
+0xA7DF	0x043D	# CYRILLIC SMALL LETTER EN
+0xA7E0	0x043E	# CYRILLIC SMALL LETTER O
+0xA7E1	0x043F	# CYRILLIC SMALL LETTER PE
+0xA7E2	0x0440	# CYRILLIC SMALL LETTER ER
+0xA7E3	0x0441	# CYRILLIC SMALL LETTER ES
+0xA7E4	0x0442	# CYRILLIC SMALL LETTER TE
+0xA7E5	0x0443	# CYRILLIC SMALL LETTER U
+0xA7E6	0x0444	# CYRILLIC SMALL LETTER EF
+0xA7E7	0x0445	# CYRILLIC SMALL LETTER HA
+0xA7E8	0x0446	# CYRILLIC SMALL LETTER TSE
+0xA7E9	0x0447	# CYRILLIC SMALL LETTER CHE
+0xA7EA	0x0448	# CYRILLIC SMALL LETTER SHA
+0xA7EB	0x0449	# CYRILLIC SMALL LETTER SHCHA
+0xA7EC	0x044A	# CYRILLIC SMALL LETTER HARD SIGN
+0xA7ED	0x044B	# CYRILLIC SMALL LETTER YERU
+0xA7EE	0x044C	# CYRILLIC SMALL LETTER SOFT SIGN
+0xA7EF	0x044D	# CYRILLIC SMALL LETTER E
+0xA7F0	0x044E	# CYRILLIC SMALL LETTER YU
+0xA7F1	0x044F	# CYRILLIC SMALL LETTER YA
+0xA8A1	0x0101	# LATIN SMALL LETTER A WITH MACRON
+0xA8A2	0x00E1	# LATIN SMALL LETTER A WITH ACUTE
+0xA8A3	0x01CE	# LATIN SMALL LETTER A WITH CARON
+0xA8A4	0x00E0	# LATIN SMALL LETTER A WITH GRAVE
+0xA8A5	0x0113	# LATIN SMALL LETTER E WITH MACRON
+0xA8A6	0x00E9	# LATIN SMALL LETTER E WITH ACUTE
+0xA8A7	0x011B	# LATIN SMALL LETTER E WITH CARON
+0xA8A8	0x00E8	# LATIN SMALL LETTER E WITH GRAVE
+0xA8A9	0x012B	# LATIN SMALL LETTER I WITH MACRON
+0xA8AA	0x00ED	# LATIN SMALL LETTER I WITH ACUTE
+0xA8AB	0x01D0	# LATIN SMALL LETTER I WITH CARON
+0xA8AC	0x00EC	# LATIN SMALL LETTER I WITH GRAVE
+0xA8AD	0x014D	# LATIN SMALL LETTER O WITH MACRON
+0xA8AE	0x00F3	# LATIN SMALL LETTER O WITH ACUTE
+0xA8AF	0x01D2	# LATIN SMALL LETTER O WITH CARON
+0xA8B0	0x00F2	# LATIN SMALL LETTER O WITH GRAVE
+0xA8B1	0x016B	# LATIN SMALL LETTER U WITH MACRON
+0xA8B2	0x00FA	# LATIN SMALL LETTER U WITH ACUTE
+0xA8B3	0x01D4	# LATIN SMALL LETTER U WITH CARON
+0xA8B4	0x00F9	# LATIN SMALL LETTER U WITH GRAVE
+0xA8B5	0x01D6	# LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+0xA8B6	0x01D8	# LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+0xA8B7	0x01DA	# LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+0xA8B8	0x01DC	# LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+0xA8B9	0x00FC	# LATIN SMALL LETTER U WITH DIAERESIS
+0xA8BA	0x00EA	# LATIN SMALL LETTER E WITH CIRCUMFLEX
+0xA8C5	0x3105	# BOPOMOFO LETTER B
+0xA8C6	0x3106	# BOPOMOFO LETTER P
+0xA8C7	0x3107	# BOPOMOFO LETTER M
+0xA8C8	0x3108	# BOPOMOFO LETTER F
+0xA8C9	0x3109	# BOPOMOFO LETTER D
+0xA8CA	0x310A	# BOPOMOFO LETTER T
+0xA8CB	0x310B	# BOPOMOFO LETTER N
+0xA8CC	0x310C	# BOPOMOFO LETTER L
+0xA8CD	0x310D	# BOPOMOFO LETTER G
+0xA8CE	0x310E	# BOPOMOFO LETTER K
+0xA8CF	0x310F	# BOPOMOFO LETTER H
+0xA8D0	0x3110	# BOPOMOFO LETTER J
+0xA8D1	0x3111	# BOPOMOFO LETTER Q
+0xA8D2	0x3112	# BOPOMOFO LETTER X
+0xA8D3	0x3113	# BOPOMOFO LETTER ZH
+0xA8D4	0x3114	# BOPOMOFO LETTER CH
+0xA8D5	0x3115	# BOPOMOFO LETTER SH
+0xA8D6	0x3116	# BOPOMOFO LETTER R
+0xA8D7	0x3117	# BOPOMOFO LETTER Z
+0xA8D8	0x3118	# BOPOMOFO LETTER C
+0xA8D9	0x3119	# BOPOMOFO LETTER S
+0xA8DA	0x311A	# BOPOMOFO LETTER A
+0xA8DB	0x311B	# BOPOMOFO LETTER O
+0xA8DC	0x311C	# BOPOMOFO LETTER E
+0xA8DD	0x311D	# BOPOMOFO LETTER EH
+0xA8DE	0x311E	# BOPOMOFO LETTER AI
+0xA8DF	0x311F	# BOPOMOFO LETTER EI
+0xA8E0	0x3120	# BOPOMOFO LETTER AU
+0xA8E1	0x3121	# BOPOMOFO LETTER OU
+0xA8E2	0x3122	# BOPOMOFO LETTER AN
+0xA8E3	0x3123	# BOPOMOFO LETTER EN
+0xA8E4	0x3124	# BOPOMOFO LETTER ANG
+0xA8E5	0x3125	# BOPOMOFO LETTER ENG
+0xA8E6	0x3126	# BOPOMOFO LETTER ER
+0xA8E7	0x3127	# BOPOMOFO LETTER I
+0xA8E8	0x3128	# BOPOMOFO LETTER U
+0xA8E9	0x3129	# BOPOMOFO LETTER IU
+0xA9A4	0x2500	# BOX DRAWINGS LIGHT HORIZONTAL
+0xA9A5	0x2501	# BOX DRAWINGS HEAVY HORIZONTAL
+0xA9A6	0x2502	# BOX DRAWINGS LIGHT VERTICAL
+0xA9A7	0x2503	# BOX DRAWINGS HEAVY VERTICAL
+0xA9A8	0x2504	# BOX DRAWINGS LIGHT TRIPLE DASH HORIZONTAL
+0xA9A9	0x2505	# BOX DRAWINGS HEAVY TRIPLE DASH HORIZONTAL
+0xA9AA	0x2506	# BOX DRAWINGS LIGHT TRIPLE DASH VERTICAL
+0xA9AB	0x2507	# BOX DRAWINGS HEAVY TRIPLE DASH VERTICAL
+0xA9AC	0x2508	# BOX DRAWINGS LIGHT QUADRUPLE DASH HORIZONTAL
+0xA9AD	0x2509	# BOX DRAWINGS HEAVY QUADRUPLE DASH HORIZONTAL
+0xA9AE	0x250A	# BOX DRAWINGS LIGHT QUADRUPLE DASH VERTICAL
+0xA9AF	0x250B	# BOX DRAWINGS HEAVY QUADRUPLE DASH VERTICAL
+0xA9B0	0x250C	# BOX DRAWINGS LIGHT DOWN AND RIGHT
+0xA9B1	0x250D	# BOX DRAWINGS DOWN LIGHT AND RIGHT HEAVY
+0xA9B2	0x250E	# BOX DRAWINGS DOWN HEAVY AND RIGHT LIGHT
+0xA9B3	0x250F	# BOX DRAWINGS HEAVY DOWN AND RIGHT
+0xA9B4	0x2510	# BOX DRAWINGS LIGHT DOWN AND LEFT
+0xA9B5	0x2511	# BOX DRAWINGS DOWN LIGHT AND LEFT HEAVY
+0xA9B6	0x2512	# BOX DRAWINGS DOWN HEAVY AND LEFT LIGHT
+0xA9B7	0x2513	# BOX DRAWINGS HEAVY DOWN AND LEFT
+0xA9B8	0x2514	# BOX DRAWINGS LIGHT UP AND RIGHT
+0xA9B9	0x2515	# BOX DRAWINGS UP LIGHT AND RIGHT HEAVY
+0xA9BA	0x2516	# BOX DRAWINGS UP HEAVY AND RIGHT LIGHT
+0xA9BB	0x2517	# BOX DRAWINGS HEAVY UP AND RIGHT
+0xA9BC	0x2518	# BOX DRAWINGS LIGHT UP AND LEFT
+0xA9BD	0x2519	# BOX DRAWINGS UP LIGHT AND LEFT HEAVY
+0xA9BE	0x251A	# BOX DRAWINGS UP HEAVY AND LEFT LIGHT
+0xA9BF	0x251B	# BOX DRAWINGS HEAVY UP AND LEFT
+0xA9C0	0x251C	# BOX DRAWINGS LIGHT VERTICAL AND RIGHT
+0xA9C1	0x251D	# BOX DRAWINGS VERTICAL LIGHT AND RIGHT HEAVY
+0xA9C2	0x251E	# BOX DRAWINGS UP HEAVY AND RIGHT DOWN LIGHT
+0xA9C3	0x251F	# BOX DRAWINGS DOWN HEAVY AND RIGHT UP LIGHT
+0xA9C4	0x2520	# BOX DRAWINGS VERTICAL HEAVY AND RIGHT LIGHT
+0xA9C5	0x2521	# BOX DRAWINGS DOWN LIGHT AND RIGHT UP HEAVY
+0xA9C6	0x2522	# BOX DRAWINGS UP LIGHT AND RIGHT DOWN HEAVY
+0xA9C7	0x2523	# BOX DRAWINGS HEAVY VERTICAL AND RIGHT
+0xA9C8	0x2524	# BOX DRAWINGS LIGHT VERTICAL AND LEFT
+0xA9C9	0x2525	# BOX DRAWINGS VERTICAL LIGHT AND LEFT HEAVY
+0xA9CA	0x2526	# BOX DRAWINGS UP HEAVY AND LEFT DOWN LIGHT
+0xA9CB	0x2527	# BOX DRAWINGS DOWN HEAVY AND LEFT UP LIGHT
+0xA9CC	0x2528	# BOX DRAWINGS VERTICAL HEAVY AND LEFT LIGHT
+0xA9CD	0x2529	# BOX DRAWINGS DOWN LIGHT AND LEFT UP HEAVY
+0xA9CE	0x252A	# BOX DRAWINGS UP LIGHT AND LEFT DOWN HEAVY
+0xA9CF	0x252B	# BOX DRAWINGS HEAVY VERTICAL AND LEFT
+0xA9D0	0x252C	# BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
+0xA9D1	0x252D	# BOX DRAWINGS LEFT HEAVY AND RIGHT DOWN LIGHT
+0xA9D2	0x252E	# BOX DRAWINGS RIGHT HEAVY AND LEFT DOWN LIGHT
+0xA9D3	0x252F	# BOX DRAWINGS DOWN LIGHT AND HORIZONTAL HEAVY
+0xA9D4	0x2530	# BOX DRAWINGS DOWN HEAVY AND HORIZONTAL LIGHT
+0xA9D5	0x2531	# BOX DRAWINGS RIGHT LIGHT AND LEFT DOWN HEAVY
+0xA9D6	0x2532	# BOX DRAWINGS LEFT LIGHT AND RIGHT DOWN HEAVY
+0xA9D7	0x2533	# BOX DRAWINGS HEAVY DOWN AND HORIZONTAL
+0xA9D8	0x2534	# BOX DRAWINGS LIGHT UP AND HORIZONTAL
+0xA9D9	0x2535	# BOX DRAWINGS LEFT HEAVY AND RIGHT UP LIGHT
+0xA9DA	0x2536	# BOX DRAWINGS RIGHT HEAVY AND LEFT UP LIGHT
+0xA9DB	0x2537	# BOX DRAWINGS UP LIGHT AND HORIZONTAL HEAVY
+0xA9DC	0x2538	# BOX DRAWINGS UP HEAVY AND HORIZONTAL LIGHT
+0xA9DD	0x2539	# BOX DRAWINGS RIGHT LIGHT AND LEFT UP HEAVY
+0xA9DE	0x253A	# BOX DRAWINGS LEFT LIGHT AND RIGHT UP HEAVY
+0xA9DF	0x253B	# BOX DRAWINGS HEAVY UP AND HORIZONTAL
+0xA9E0	0x253C	# BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
+0xA9E1	0x253D	# BOX DRAWINGS LEFT HEAVY AND RIGHT VERTICAL LIGHT
+0xA9E2	0x253E	# BOX DRAWINGS RIGHT HEAVY AND LEFT VERTICAL LIGHT
+0xA9E3	0x253F	# BOX DRAWINGS VERTICAL LIGHT AND HORIZONTAL HEAVY
+0xA9E4	0x2540	# BOX DRAWINGS UP HEAVY AND DOWN HORIZONTAL LIGHT
+0xA9E5	0x2541	# BOX DRAWINGS DOWN HEAVY AND UP HORIZONTAL LIGHT
+0xA9E6	0x2542	# BOX DRAWINGS VERTICAL HEAVY AND HORIZONTAL LIGHT
+0xA9E7	0x2543	# BOX DRAWINGS LEFT UP HEAVY AND RIGHT DOWN LIGHT
+0xA9E8	0x2544	# BOX DRAWINGS RIGHT UP HEAVY AND LEFT DOWN LIGHT
+0xA9E9	0x2545	# BOX DRAWINGS LEFT DOWN HEAVY AND RIGHT UP LIGHT
+0xA9EA	0x2546	# BOX DRAWINGS RIGHT DOWN HEAVY AND LEFT UP LIGHT
+0xA9EB	0x2547	# BOX DRAWINGS DOWN LIGHT AND UP HORIZONTAL HEAVY
+0xA9EC	0x2548	# BOX DRAWINGS UP LIGHT AND DOWN HORIZONTAL HEAVY
+0xA9ED	0x2549	# BOX DRAWINGS RIGHT LIGHT AND LEFT VERTICAL HEAVY
+0xA9EE	0x254A	# BOX DRAWINGS LEFT LIGHT AND RIGHT VERTICAL HEAVY
+0xA9EF	0x254B	# BOX DRAWINGS HEAVY VERTICAL AND HORIZONTAL
+0xB0A1	0x554A	# <CJK>
+0xB0A2	0x963F	# <CJK>
+0xB0A3	0x57C3	# <CJK>
+0xB0A4	0x6328	# <CJK>
+0xB0A5	0x54CE	# <CJK>
+0xB0A6	0x5509	# <CJK>
+0xB0A7	0x54C0	# <CJK>
+0xB0A8	0x7691	# <CJK>
+0xB0A9	0x764C	# <CJK>
+0xB0AA	0x853C	# <CJK>
+0xB0AB	0x77EE	# <CJK>
+0xB0AC	0x827E	# <CJK>
+0xB0AD	0x788D	# <CJK>
+0xB0AE	0x7231	# <CJK>
+0xB0AF	0x9698	# <CJK>
+0xB0B0	0x978D	# <CJK>
+0xB0B1	0x6C28	# <CJK>
+0xB0B2	0x5B89	# <CJK>
+0xB0B3	0x4FFA	# <CJK>
+0xB0B4	0x6309	# <CJK>
+0xB0B5	0x6697	# <CJK>
+0xB0B6	0x5CB8	# <CJK>
+0xB0B7	0x80FA	# <CJK>
+0xB0B8	0x6848	# <CJK>
+0xB0B9	0x80AE	# <CJK>
+0xB0BA	0x6602	# <CJK>
+0xB0BB	0x76CE	# <CJK>
+0xB0BC	0x51F9	# <CJK>
+0xB0BD	0x6556	# <CJK>
+0xB0BE	0x71AC	# <CJK>
+0xB0BF	0x7FF1	# <CJK>
+0xB0C0	0x8884	# <CJK>
+0xB0C1	0x50B2	# <CJK>
+0xB0C2	0x5965	# <CJK>
+0xB0C3	0x61CA	# <CJK>
+0xB0C4	0x6FB3	# <CJK>
+0xB0C5	0x82AD	# <CJK>
+0xB0C6	0x634C	# <CJK>
+0xB0C7	0x6252	# <CJK>
+0xB0C8	0x53ED	# <CJK>
+0xB0C9	0x5427	# <CJK>
+0xB0CA	0x7B06	# <CJK>
+0xB0CB	0x516B	# <CJK>
+0xB0CC	0x75A4	# <CJK>
+0xB0CD	0x5DF4	# <CJK>
+0xB0CE	0x62D4	# <CJK>
+0xB0CF	0x8DCB	# <CJK>
+0xB0D0	0x9776	# <CJK>
+0xB0D1	0x628A	# <CJK>
+0xB0D2	0x8019	# <CJK>
+0xB0D3	0x575D	# <CJK>
+0xB0D4	0x9738	# <CJK>
+0xB0D5	0x7F62	# <CJK>
+0xB0D6	0x7238	# <CJK>
+0xB0D7	0x767D	# <CJK>
+0xB0D8	0x67CF	# <CJK>
+0xB0D9	0x767E	# <CJK>
+0xB0DA	0x6446	# <CJK>
+0xB0DB	0x4F70	# <CJK>
+0xB0DC	0x8D25	# <CJK>
+0xB0DD	0x62DC	# <CJK>
+0xB0DE	0x7A17	# <CJK>
+0xB0DF	0x6591	# <CJK>
+0xB0E0	0x73ED	# <CJK>
+0xB0E1	0x642C	# <CJK>
+0xB0E2	0x6273	# <CJK>
+0xB0E3	0x822C	# <CJK>
+0xB0E4	0x9881	# <CJK>
+0xB0E5	0x677F	# <CJK>
+0xB0E6	0x7248	# <CJK>
+0xB0E7	0x626E	# <CJK>
+0xB0E8	0x62CC	# <CJK>
+0xB0E9	0x4F34	# <CJK>
+0xB0EA	0x74E3	# <CJK>
+0xB0EB	0x534A	# <CJK>
+0xB0EC	0x529E	# <CJK>
+0xB0ED	0x7ECA	# <CJK>
+0xB0EE	0x90A6	# <CJK>
+0xB0EF	0x5E2E	# <CJK>
+0xB0F0	0x6886	# <CJK>
+0xB0F1	0x699C	# <CJK>
+0xB0F2	0x8180	# <CJK>
+0xB0F3	0x7ED1	# <CJK>
+0xB0F4	0x68D2	# <CJK>
+0xB0F5	0x78C5	# <CJK>
+0xB0F6	0x868C	# <CJK>
+0xB0F7	0x9551	# <CJK>
+0xB0F8	0x508D	# <CJK>
+0xB0F9	0x8C24	# <CJK>
+0xB0FA	0x82DE	# <CJK>
+0xB0FB	0x80DE	# <CJK>
+0xB0FC	0x5305	# <CJK>
+0xB0FD	0x8912	# <CJK>
+0xB0FE	0x5265	# <CJK>
+0xB1A1	0x8584	# <CJK>
+0xB1A2	0x96F9	# <CJK>
+0xB1A3	0x4FDD	# <CJK>
+0xB1A4	0x5821	# <CJK>
+0xB1A5	0x9971	# <CJK>
+0xB1A6	0x5B9D	# <CJK>
+0xB1A7	0x62B1	# <CJK>
+0xB1A8	0x62A5	# <CJK>
+0xB1A9	0x66B4	# <CJK>
+0xB1AA	0x8C79	# <CJK>
+0xB1AB	0x9C8D	# <CJK>
+0xB1AC	0x7206	# <CJK>
+0xB1AD	0x676F	# <CJK>
+0xB1AE	0x7891	# <CJK>
+0xB1AF	0x60B2	# <CJK>
+0xB1B0	0x5351	# <CJK>
+0xB1B1	0x5317	# <CJK>
+0xB1B2	0x8F88	# <CJK>
+0xB1B3	0x80CC	# <CJK>
+0xB1B4	0x8D1D	# <CJK>
+0xB1B5	0x94A1	# <CJK>
+0xB1B6	0x500D	# <CJK>
+0xB1B7	0x72C8	# <CJK>
+0xB1B8	0x5907	# <CJK>
+0xB1B9	0x60EB	# <CJK>
+0xB1BA	0x7119	# <CJK>
+0xB1BB	0x88AB	# <CJK>
+0xB1BC	0x5954	# <CJK>
+0xB1BD	0x82EF	# <CJK>
+0xB1BE	0x672C	# <CJK>
+0xB1BF	0x7B28	# <CJK>
+0xB1C0	0x5D29	# <CJK>
+0xB1C1	0x7EF7	# <CJK>
+0xB1C2	0x752D	# <CJK>
+0xB1C3	0x6CF5	# <CJK>
+0xB1C4	0x8E66	# <CJK>
+0xB1C5	0x8FF8	# <CJK>
+0xB1C6	0x903C	# <CJK>
+0xB1C7	0x9F3B	# <CJK>
+0xB1C8	0x6BD4	# <CJK>
+0xB1C9	0x9119	# <CJK>
+0xB1CA	0x7B14	# <CJK>
+0xB1CB	0x5F7C	# <CJK>
+0xB1CC	0x78A7	# <CJK>
+0xB1CD	0x84D6	# <CJK>
+0xB1CE	0x853D	# <CJK>
+0xB1CF	0x6BD5	# <CJK>
+0xB1D0	0x6BD9	# <CJK>
+0xB1D1	0x6BD6	# <CJK>
+0xB1D2	0x5E01	# <CJK>
+0xB1D3	0x5E87	# <CJK>
+0xB1D4	0x75F9	# <CJK>
+0xB1D5	0x95ED	# <CJK>
+0xB1D6	0x655D	# <CJK>
+0xB1D7	0x5F0A	# <CJK>
+0xB1D8	0x5FC5	# <CJK>
+0xB1D9	0x8F9F	# <CJK>
+0xB1DA	0x58C1	# <CJK>
+0xB1DB	0x81C2	# <CJK>
+0xB1DC	0x907F	# <CJK>
+0xB1DD	0x965B	# <CJK>
+0xB1DE	0x97AD	# <CJK>
+0xB1DF	0x8FB9	# <CJK>
+0xB1E0	0x7F16	# <CJK>
+0xB1E1	0x8D2C	# <CJK>
+0xB1E2	0x6241	# <CJK>
+0xB1E3	0x4FBF	# <CJK>
+0xB1E4	0x53D8	# <CJK>
+0xB1E5	0x535E	# <CJK>
+0xB1E6	0x8FA8	# <CJK>
+0xB1E7	0x8FA9	# <CJK>
+0xB1E8	0x8FAB	# <CJK>
+0xB1E9	0x904D	# <CJK>
+0xB1EA	0x6807	# <CJK>
+0xB1EB	0x5F6A	# <CJK>
+0xB1EC	0x8198	# <CJK>
+0xB1ED	0x8868	# <CJK>
+0xB1EE	0x9CD6	# <CJK>
+0xB1EF	0x618B	# <CJK>
+0xB1F0	0x522B	# <CJK>
+0xB1F1	0x762A	# <CJK>
+0xB1F2	0x5F6C	# <CJK>
+0xB1F3	0x658C	# <CJK>
+0xB1F4	0x6FD2	# <CJK>
+0xB1F5	0x6EE8	# <CJK>
+0xB1F6	0x5BBE	# <CJK>
+0xB1F7	0x6448	# <CJK>
+0xB1F8	0x5175	# <CJK>
+0xB1F9	0x51B0	# <CJK>
+0xB1FA	0x67C4	# <CJK>
+0xB1FB	0x4E19	# <CJK>
+0xB1FC	0x79C9	# <CJK>
+0xB1FD	0x997C	# <CJK>
+0xB1FE	0x70B3	# <CJK>
+0xB2A1	0x75C5	# <CJK>
+0xB2A2	0x5E76	# <CJK>
+0xB2A3	0x73BB	# <CJK>
+0xB2A4	0x83E0	# <CJK>
+0xB2A5	0x64AD	# <CJK>
+0xB2A6	0x62E8	# <CJK>
+0xB2A7	0x94B5	# <CJK>
+0xB2A8	0x6CE2	# <CJK>
+0xB2A9	0x535A	# <CJK>
+0xB2AA	0x52C3	# <CJK>
+0xB2AB	0x640F	# <CJK>
+0xB2AC	0x94C2	# <CJK>
+0xB2AD	0x7B94	# <CJK>
+0xB2AE	0x4F2F	# <CJK>
+0xB2AF	0x5E1B	# <CJK>
+0xB2B0	0x8236	# <CJK>
+0xB2B1	0x8116	# <CJK>
+0xB2B2	0x818A	# <CJK>
+0xB2B3	0x6E24	# <CJK>
+0xB2B4	0x6CCA	# <CJK>
+0xB2B5	0x9A73	# <CJK>
+0xB2B6	0x6355	# <CJK>
+0xB2B7	0x535C	# <CJK>
+0xB2B8	0x54FA	# <CJK>
+0xB2B9	0x8865	# <CJK>
+0xB2BA	0x57E0	# <CJK>
+0xB2BB	0x4E0D	# <CJK>
+0xB2BC	0x5E03	# <CJK>
+0xB2BD	0x6B65	# <CJK>
+0xB2BE	0x7C3F	# <CJK>
+0xB2BF	0x90E8	# <CJK>
+0xB2C0	0x6016	# <CJK>
+0xB2C1	0x64E6	# <CJK>
+0xB2C2	0x731C	# <CJK>
+0xB2C3	0x88C1	# <CJK>
+0xB2C4	0x6750	# <CJK>
+0xB2C5	0x624D	# <CJK>
+0xB2C6	0x8D22	# <CJK>
+0xB2C7	0x776C	# <CJK>
+0xB2C8	0x8E29	# <CJK>
+0xB2C9	0x91C7	# <CJK>
+0xB2CA	0x5F69	# <CJK>
+0xB2CB	0x83DC	# <CJK>
+0xB2CC	0x8521	# <CJK>
+0xB2CD	0x9910	# <CJK>
+0xB2CE	0x53C2	# <CJK>
+0xB2CF	0x8695	# <CJK>
+0xB2D0	0x6B8B	# <CJK>
+0xB2D1	0x60ED	# <CJK>
+0xB2D2	0x60E8	# <CJK>
+0xB2D3	0x707F	# <CJK>
+0xB2D4	0x82CD	# <CJK>
+0xB2D5	0x8231	# <CJK>
+0xB2D6	0x4ED3	# <CJK>
+0xB2D7	0x6CA7	# <CJK>
+0xB2D8	0x85CF	# <CJK>
+0xB2D9	0x64CD	# <CJK>
+0xB2DA	0x7CD9	# <CJK>
+0xB2DB	0x69FD	# <CJK>
+0xB2DC	0x66F9	# <CJK>
+0xB2DD	0x8349	# <CJK>
+0xB2DE	0x5395	# <CJK>
+0xB2DF	0x7B56	# <CJK>
+0xB2E0	0x4FA7	# <CJK>
+0xB2E1	0x518C	# <CJK>
+0xB2E2	0x6D4B	# <CJK>
+0xB2E3	0x5C42	# <CJK>
+0xB2E4	0x8E6D	# <CJK>
+0xB2E5	0x63D2	# <CJK>
+0xB2E6	0x53C9	# <CJK>
+0xB2E7	0x832C	# <CJK>
+0xB2E8	0x8336	# <CJK>
+0xB2E9	0x67E5	# <CJK>
+0xB2EA	0x78B4	# <CJK>
+0xB2EB	0x643D	# <CJK>
+0xB2EC	0x5BDF	# <CJK>
+0xB2ED	0x5C94	# <CJK>
+0xB2EE	0x5DEE	# <CJK>
+0xB2EF	0x8BE7	# <CJK>
+0xB2F0	0x62C6	# <CJK>
+0xB2F1	0x67F4	# <CJK>
+0xB2F2	0x8C7A	# <CJK>
+0xB2F3	0x6400	# <CJK>
+0xB2F4	0x63BA	# <CJK>
+0xB2F5	0x8749	# <CJK>
+0xB2F6	0x998B	# <CJK>
+0xB2F7	0x8C17	# <CJK>
+0xB2F8	0x7F20	# <CJK>
+0xB2F9	0x94F2	# <CJK>
+0xB2FA	0x4EA7	# <CJK>
+0xB2FB	0x9610	# <CJK>
+0xB2FC	0x98A4	# <CJK>
+0xB2FD	0x660C	# <CJK>
+0xB2FE	0x7316	# <CJK>
+0xB3A1	0x573A	# <CJK>
+0xB3A2	0x5C1D	# <CJK>
+0xB3A3	0x5E38	# <CJK>
+0xB3A4	0x957F	# <CJK>
+0xB3A5	0x507F	# <CJK>
+0xB3A6	0x80A0	# <CJK>
+0xB3A7	0x5382	# <CJK>
+0xB3A8	0x655E	# <CJK>
+0xB3A9	0x7545	# <CJK>
+0xB3AA	0x5531	# <CJK>
+0xB3AB	0x5021	# <CJK>
+0xB3AC	0x8D85	# <CJK>
+0xB3AD	0x6284	# <CJK>
+0xB3AE	0x949E	# <CJK>
+0xB3AF	0x671D	# <CJK>
+0xB3B0	0x5632	# <CJK>
+0xB3B1	0x6F6E	# <CJK>
+0xB3B2	0x5DE2	# <CJK>
+0xB3B3	0x5435	# <CJK>
+0xB3B4	0x7092	# <CJK>
+0xB3B5	0x8F66	# <CJK>
+0xB3B6	0x626F	# <CJK>
+0xB3B7	0x64A4	# <CJK>
+0xB3B8	0x63A3	# <CJK>
+0xB3B9	0x5F7B	# <CJK>
+0xB3BA	0x6F88	# <CJK>
+0xB3BB	0x90F4	# <CJK>
+0xB3BC	0x81E3	# <CJK>
+0xB3BD	0x8FB0	# <CJK>
+0xB3BE	0x5C18	# <CJK>
+0xB3BF	0x6668	# <CJK>
+0xB3C0	0x5FF1	# <CJK>
+0xB3C1	0x6C89	# <CJK>
+0xB3C2	0x9648	# <CJK>
+0xB3C3	0x8D81	# <CJK>
+0xB3C4	0x886C	# <CJK>
+0xB3C5	0x6491	# <CJK>
+0xB3C6	0x79F0	# <CJK>
+0xB3C7	0x57CE	# <CJK>
+0xB3C8	0x6A59	# <CJK>
+0xB3C9	0x6210	# <CJK>
+0xB3CA	0x5448	# <CJK>
+0xB3CB	0x4E58	# <CJK>
+0xB3CC	0x7A0B	# <CJK>
+0xB3CD	0x60E9	# <CJK>
+0xB3CE	0x6F84	# <CJK>
+0xB3CF	0x8BDA	# <CJK>
+0xB3D0	0x627F	# <CJK>
+0xB3D1	0x901E	# <CJK>
+0xB3D2	0x9A8B	# <CJK>
+0xB3D3	0x79E4	# <CJK>
+0xB3D4	0x5403	# <CJK>
+0xB3D5	0x75F4	# <CJK>
+0xB3D6	0x6301	# <CJK>
+0xB3D7	0x5319	# <CJK>
+0xB3D8	0x6C60	# <CJK>
+0xB3D9	0x8FDF	# <CJK>
+0xB3DA	0x5F1B	# <CJK>
+0xB3DB	0x9A70	# <CJK>
+0xB3DC	0x803B	# <CJK>
+0xB3DD	0x9F7F	# <CJK>
+0xB3DE	0x4F88	# <CJK>
+0xB3DF	0x5C3A	# <CJK>
+0xB3E0	0x8D64	# <CJK>
+0xB3E1	0x7FC5	# <CJK>
+0xB3E2	0x65A5	# <CJK>
+0xB3E3	0x70BD	# <CJK>
+0xB3E4	0x5145	# <CJK>
+0xB3E5	0x51B2	# <CJK>
+0xB3E6	0x866B	# <CJK>
+0xB3E7	0x5D07	# <CJK>
+0xB3E8	0x5BA0	# <CJK>
+0xB3E9	0x62BD	# <CJK>
+0xB3EA	0x916C	# <CJK>
+0xB3EB	0x7574	# <CJK>
+0xB3EC	0x8E0C	# <CJK>
+0xB3ED	0x7A20	# <CJK>
+0xB3EE	0x6101	# <CJK>
+0xB3EF	0x7B79	# <CJK>
+0xB3F0	0x4EC7	# <CJK>
+0xB3F1	0x7EF8	# <CJK>
+0xB3F2	0x7785	# <CJK>
+0xB3F3	0x4E11	# <CJK>
+0xB3F4	0x81ED	# <CJK>
+0xB3F5	0x521D	# <CJK>
+0xB3F6	0x51FA	# <CJK>
+0xB3F7	0x6A71	# <CJK>
+0xB3F8	0x53A8	# <CJK>
+0xB3F9	0x8E87	# <CJK>
+0xB3FA	0x9504	# <CJK>
+0xB3FB	0x96CF	# <CJK>
+0xB3FC	0x6EC1	# <CJK>
+0xB3FD	0x9664	# <CJK>
+0xB3FE	0x695A	# <CJK>
+0xB4A1	0x7840	# <CJK>
+0xB4A2	0x50A8	# <CJK>
+0xB4A3	0x77D7	# <CJK>
+0xB4A4	0x6410	# <CJK>
+0xB4A5	0x89E6	# <CJK>
+0xB4A6	0x5904	# <CJK>
+0xB4A7	0x63E3	# <CJK>
+0xB4A8	0x5DDD	# <CJK>
+0xB4A9	0x7A7F	# <CJK>
+0xB4AA	0x693D	# <CJK>
+0xB4AB	0x4F20	# <CJK>
+0xB4AC	0x8239	# <CJK>
+0xB4AD	0x5598	# <CJK>
+0xB4AE	0x4E32	# <CJK>
+0xB4AF	0x75AE	# <CJK>
+0xB4B0	0x7A97	# <CJK>
+0xB4B1	0x5E62	# <CJK>
+0xB4B2	0x5E8A	# <CJK>
+0xB4B3	0x95EF	# <CJK>
+0xB4B4	0x521B	# <CJK>
+0xB4B5	0x5439	# <CJK>
+0xB4B6	0x708A	# <CJK>
+0xB4B7	0x6376	# <CJK>
+0xB4B8	0x9524	# <CJK>
+0xB4B9	0x5782	# <CJK>
+0xB4BA	0x6625	# <CJK>
+0xB4BB	0x693F	# <CJK>
+0xB4BC	0x9187	# <CJK>
+0xB4BD	0x5507	# <CJK>
+0xB4BE	0x6DF3	# <CJK>
+0xB4BF	0x7EAF	# <CJK>
+0xB4C0	0x8822	# <CJK>
+0xB4C1	0x6233	# <CJK>
+0xB4C2	0x7EF0	# <CJK>
+0xB4C3	0x75B5	# <CJK>
+0xB4C4	0x8328	# <CJK>
+0xB4C5	0x78C1	# <CJK>
+0xB4C6	0x96CC	# <CJK>
+0xB4C7	0x8F9E	# <CJK>
+0xB4C8	0x6148	# <CJK>
+0xB4C9	0x74F7	# <CJK>
+0xB4CA	0x8BCD	# <CJK>
+0xB4CB	0x6B64	# <CJK>
+0xB4CC	0x523A	# <CJK>
+0xB4CD	0x8D50	# <CJK>
+0xB4CE	0x6B21	# <CJK>
+0xB4CF	0x806A	# <CJK>
+0xB4D0	0x8471	# <CJK>
+0xB4D1	0x56F1	# <CJK>
+0xB4D2	0x5306	# <CJK>
+0xB4D3	0x4ECE	# <CJK>
+0xB4D4	0x4E1B	# <CJK>
+0xB4D5	0x51D1	# <CJK>
+0xB4D6	0x7C97	# <CJK>
+0xB4D7	0x918B	# <CJK>
+0xB4D8	0x7C07	# <CJK>
+0xB4D9	0x4FC3	# <CJK>
+0xB4DA	0x8E7F	# <CJK>
+0xB4DB	0x7BE1	# <CJK>
+0xB4DC	0x7A9C	# <CJK>
+0xB4DD	0x6467	# <CJK>
+0xB4DE	0x5D14	# <CJK>
+0xB4DF	0x50AC	# <CJK>
+0xB4E0	0x8106	# <CJK>
+0xB4E1	0x7601	# <CJK>
+0xB4E2	0x7CB9	# <CJK>
+0xB4E3	0x6DEC	# <CJK>
+0xB4E4	0x7FE0	# <CJK>
+0xB4E5	0x6751	# <CJK>
+0xB4E6	0x5B58	# <CJK>
+0xB4E7	0x5BF8	# <CJK>
+0xB4E8	0x78CB	# <CJK>
+0xB4E9	0x64AE	# <CJK>
+0xB4EA	0x6413	# <CJK>
+0xB4EB	0x63AA	# <CJK>
+0xB4EC	0x632B	# <CJK>
+0xB4ED	0x9519	# <CJK>
+0xB4EE	0x642D	# <CJK>
+0xB4EF	0x8FBE	# <CJK>
+0xB4F0	0x7B54	# <CJK>
+0xB4F1	0x7629	# <CJK>
+0xB4F2	0x6253	# <CJK>
+0xB4F3	0x5927	# <CJK>
+0xB4F4	0x5446	# <CJK>
+0xB4F5	0x6B79	# <CJK>
+0xB4F6	0x50A3	# <CJK>
+0xB4F7	0x6234	# <CJK>
+0xB4F8	0x5E26	# <CJK>
+0xB4F9	0x6B86	# <CJK>
+0xB4FA	0x4EE3	# <CJK>
+0xB4FB	0x8D37	# <CJK>
+0xB4FC	0x888B	# <CJK>
+0xB4FD	0x5F85	# <CJK>
+0xB4FE	0x902E	# <CJK>
+0xB5A1	0x6020	# <CJK>
+0xB5A2	0x803D	# <CJK>
+0xB5A3	0x62C5	# <CJK>
+0xB5A4	0x4E39	# <CJK>
+0xB5A5	0x5355	# <CJK>
+0xB5A6	0x90F8	# <CJK>
+0xB5A7	0x63B8	# <CJK>
+0xB5A8	0x80C6	# <CJK>
+0xB5A9	0x65E6	# <CJK>
+0xB5AA	0x6C2E	# <CJK>
+0xB5AB	0x4F46	# <CJK>
+0xB5AC	0x60EE	# <CJK>
+0xB5AD	0x6DE1	# <CJK>
+0xB5AE	0x8BDE	# <CJK>
+0xB5AF	0x5F39	# <CJK>
+0xB5B0	0x86CB	# <CJK>
+0xB5B1	0x5F53	# <CJK>
+0xB5B2	0x6321	# <CJK>
+0xB5B3	0x515A	# <CJK>
+0xB5B4	0x8361	# <CJK>
+0xB5B5	0x6863	# <CJK>
+0xB5B6	0x5200	# <CJK>
+0xB5B7	0x6363	# <CJK>
+0xB5B8	0x8E48	# <CJK>
+0xB5B9	0x5012	# <CJK>
+0xB5BA	0x5C9B	# <CJK>
+0xB5BB	0x7977	# <CJK>
+0xB5BC	0x5BFC	# <CJK>
+0xB5BD	0x5230	# <CJK>
+0xB5BE	0x7A3B	# <CJK>
+0xB5BF	0x60BC	# <CJK>
+0xB5C0	0x9053	# <CJK>
+0xB5C1	0x76D7	# <CJK>
+0xB5C2	0x5FB7	# <CJK>
+0xB5C3	0x5F97	# <CJK>
+0xB5C4	0x7684	# <CJK>
+0xB5C5	0x8E6C	# <CJK>
+0xB5C6	0x706F	# <CJK>
+0xB5C7	0x767B	# <CJK>
+0xB5C8	0x7B49	# <CJK>
+0xB5C9	0x77AA	# <CJK>
+0xB5CA	0x51F3	# <CJK>
+0xB5CB	0x9093	# <CJK>
+0xB5CC	0x5824	# <CJK>
+0xB5CD	0x4F4E	# <CJK>
+0xB5CE	0x6EF4	# <CJK>
+0xB5CF	0x8FEA	# <CJK>
+0xB5D0	0x654C	# <CJK>
+0xB5D1	0x7B1B	# <CJK>
+0xB5D2	0x72C4	# <CJK>
+0xB5D3	0x6DA4	# <CJK>
+0xB5D4	0x7FDF	# <CJK>
+0xB5D5	0x5AE1	# <CJK>
+0xB5D6	0x62B5	# <CJK>
+0xB5D7	0x5E95	# <CJK>
+0xB5D8	0x5730	# <CJK>
+0xB5D9	0x8482	# <CJK>
+0xB5DA	0x7B2C	# <CJK>
+0xB5DB	0x5E1D	# <CJK>
+0xB5DC	0x5F1F	# <CJK>
+0xB5DD	0x9012	# <CJK>
+0xB5DE	0x7F14	# <CJK>
+0xB5DF	0x98A0	# <CJK>
+0xB5E0	0x6382	# <CJK>
+0xB5E1	0x6EC7	# <CJK>
+0xB5E2	0x7898	# <CJK>
+0xB5E3	0x70B9	# <CJK>
+0xB5E4	0x5178	# <CJK>
+0xB5E5	0x975B	# <CJK>
+0xB5E6	0x57AB	# <CJK>
+0xB5E7	0x7535	# <CJK>
+0xB5E8	0x4F43	# <CJK>
+0xB5E9	0x7538	# <CJK>
+0xB5EA	0x5E97	# <CJK>
+0xB5EB	0x60E6	# <CJK>
+0xB5EC	0x5960	# <CJK>
+0xB5ED	0x6DC0	# <CJK>
+0xB5EE	0x6BBF	# <CJK>
+0xB5EF	0x7889	# <CJK>
+0xB5F0	0x53FC	# <CJK>
+0xB5F1	0x96D5	# <CJK>
+0xB5F2	0x51CB	# <CJK>
+0xB5F3	0x5201	# <CJK>
+0xB5F4	0x6389	# <CJK>
+0xB5F5	0x540A	# <CJK>
+0xB5F6	0x9493	# <CJK>
+0xB5F7	0x8C03	# <CJK>
+0xB5F8	0x8DCC	# <CJK>
+0xB5F9	0x7239	# <CJK>
+0xB5FA	0x789F	# <CJK>
+0xB5FB	0x8776	# <CJK>
+0xB5FC	0x8FED	# <CJK>
+0xB5FD	0x8C0D	# <CJK>
+0xB5FE	0x53E0	# <CJK>
+0xB6A1	0x4E01	# <CJK>
+0xB6A2	0x76EF	# <CJK>
+0xB6A3	0x53EE	# <CJK>
+0xB6A4	0x9489	# <CJK>
+0xB6A5	0x9876	# <CJK>
+0xB6A6	0x9F0E	# <CJK>
+0xB6A7	0x952D	# <CJK>
+0xB6A8	0x5B9A	# <CJK>
+0xB6A9	0x8BA2	# <CJK>
+0xB6AA	0x4E22	# <CJK>
+0xB6AB	0x4E1C	# <CJK>
+0xB6AC	0x51AC	# <CJK>
+0xB6AD	0x8463	# <CJK>
+0xB6AE	0x61C2	# <CJK>
+0xB6AF	0x52A8	# <CJK>
+0xB6B0	0x680B	# <CJK>
+0xB6B1	0x4F97	# <CJK>
+0xB6B2	0x606B	# <CJK>
+0xB6B3	0x51BB	# <CJK>
+0xB6B4	0x6D1E	# <CJK>
+0xB6B5	0x515C	# <CJK>
+0xB6B6	0x6296	# <CJK>
+0xB6B7	0x6597	# <CJK>
+0xB6B8	0x9661	# <CJK>
+0xB6B9	0x8C46	# <CJK>
+0xB6BA	0x9017	# <CJK>
+0xB6BB	0x75D8	# <CJK>
+0xB6BC	0x90FD	# <CJK>
+0xB6BD	0x7763	# <CJK>
+0xB6BE	0x6BD2	# <CJK>
+0xB6BF	0x728A	# <CJK>
+0xB6C0	0x72EC	# <CJK>
+0xB6C1	0x8BFB	# <CJK>
+0xB6C2	0x5835	# <CJK>
+0xB6C3	0x7779	# <CJK>
+0xB6C4	0x8D4C	# <CJK>
+0xB6C5	0x675C	# <CJK>
+0xB6C6	0x9540	# <CJK>
+0xB6C7	0x809A	# <CJK>
+0xB6C8	0x5EA6	# <CJK>
+0xB6C9	0x6E21	# <CJK>
+0xB6CA	0x5992	# <CJK>
+0xB6CB	0x7AEF	# <CJK>
+0xB6CC	0x77ED	# <CJK>
+0xB6CD	0x953B	# <CJK>
+0xB6CE	0x6BB5	# <CJK>
+0xB6CF	0x65AD	# <CJK>
+0xB6D0	0x7F0E	# <CJK>
+0xB6D1	0x5806	# <CJK>
+0xB6D2	0x5151	# <CJK>
+0xB6D3	0x961F	# <CJK>
+0xB6D4	0x5BF9	# <CJK>
+0xB6D5	0x58A9	# <CJK>
+0xB6D6	0x5428	# <CJK>
+0xB6D7	0x8E72	# <CJK>
+0xB6D8	0x6566	# <CJK>
+0xB6D9	0x987F	# <CJK>
+0xB6DA	0x56E4	# <CJK>
+0xB6DB	0x949D	# <CJK>
+0xB6DC	0x76FE	# <CJK>
+0xB6DD	0x9041	# <CJK>
+0xB6DE	0x6387	# <CJK>
+0xB6DF	0x54C6	# <CJK>
+0xB6E0	0x591A	# <CJK>
+0xB6E1	0x593A	# <CJK>
+0xB6E2	0x579B	# <CJK>
+0xB6E3	0x8EB2	# <CJK>
+0xB6E4	0x6735	# <CJK>
+0xB6E5	0x8DFA	# <CJK>
+0xB6E6	0x8235	# <CJK>
+0xB6E7	0x5241	# <CJK>
+0xB6E8	0x60F0	# <CJK>
+0xB6E9	0x5815	# <CJK>
+0xB6EA	0x86FE	# <CJK>
+0xB6EB	0x5CE8	# <CJK>
+0xB6EC	0x9E45	# <CJK>
+0xB6ED	0x4FC4	# <CJK>
+0xB6EE	0x989D	# <CJK>
+0xB6EF	0x8BB9	# <CJK>
+0xB6F0	0x5A25	# <CJK>
+0xB6F1	0x6076	# <CJK>
+0xB6F2	0x5384	# <CJK>
+0xB6F3	0x627C	# <CJK>
+0xB6F4	0x904F	# <CJK>
+0xB6F5	0x9102	# <CJK>
+0xB6F6	0x997F	# <CJK>
+0xB6F7	0x6069	# <CJK>
+0xB6F8	0x800C	# <CJK>
+0xB6F9	0x513F	# <CJK>
+0xB6FA	0x8033	# <CJK>
+0xB6FB	0x5C14	# <CJK>
+0xB6FC	0x9975	# <CJK>
+0xB6FD	0x6D31	# <CJK>
+0xB6FE	0x4E8C	# <CJK>
+0xB7A1	0x8D30	# <CJK>
+0xB7A2	0x53D1	# <CJK>
+0xB7A3	0x7F5A	# <CJK>
+0xB7A4	0x7B4F	# <CJK>
+0xB7A5	0x4F10	# <CJK>
+0xB7A6	0x4E4F	# <CJK>
+0xB7A7	0x9600	# <CJK>
+0xB7A8	0x6CD5	# <CJK>
+0xB7A9	0x73D0	# <CJK>
+0xB7AA	0x85E9	# <CJK>
+0xB7AB	0x5E06	# <CJK>
+0xB7AC	0x756A	# <CJK>
+0xB7AD	0x7FFB	# <CJK>
+0xB7AE	0x6A0A	# <CJK>
+0xB7AF	0x77FE	# <CJK>
+0xB7B0	0x9492	# <CJK>
+0xB7B1	0x7E41	# <CJK>
+0xB7B2	0x51E1	# <CJK>
+0xB7B3	0x70E6	# <CJK>
+0xB7B4	0x53CD	# <CJK>
+0xB7B5	0x8FD4	# <CJK>
+0xB7B6	0x8303	# <CJK>
+0xB7B7	0x8D29	# <CJK>
+0xB7B8	0x72AF	# <CJK>
+0xB7B9	0x996D	# <CJK>
+0xB7BA	0x6CDB	# <CJK>
+0xB7BB	0x574A	# <CJK>
+0xB7BC	0x82B3	# <CJK>
+0xB7BD	0x65B9	# <CJK>
+0xB7BE	0x80AA	# <CJK>
+0xB7BF	0x623F	# <CJK>
+0xB7C0	0x9632	# <CJK>
+0xB7C1	0x59A8	# <CJK>
+0xB7C2	0x4EFF	# <CJK>
+0xB7C3	0x8BBF	# <CJK>
+0xB7C4	0x7EBA	# <CJK>
+0xB7C5	0x653E	# <CJK>
+0xB7C6	0x83F2	# <CJK>
+0xB7C7	0x975E	# <CJK>
+0xB7C8	0x5561	# <CJK>
+0xB7C9	0x98DE	# <CJK>
+0xB7CA	0x80A5	# <CJK>
+0xB7CB	0x532A	# <CJK>
+0xB7CC	0x8BFD	# <CJK>
+0xB7CD	0x5420	# <CJK>
+0xB7CE	0x80BA	# <CJK>
+0xB7CF	0x5E9F	# <CJK>
+0xB7D0	0x6CB8	# <CJK>
+0xB7D1	0x8D39	# <CJK>
+0xB7D2	0x82AC	# <CJK>
+0xB7D3	0x915A	# <CJK>
+0xB7D4	0x5429	# <CJK>
+0xB7D5	0x6C1B	# <CJK>
+0xB7D6	0x5206	# <CJK>
+0xB7D7	0x7EB7	# <CJK>
+0xB7D8	0x575F	# <CJK>
+0xB7D9	0x711A	# <CJK>
+0xB7DA	0x6C7E	# <CJK>
+0xB7DB	0x7C89	# <CJK>
+0xB7DC	0x594B	# <CJK>
+0xB7DD	0x4EFD	# <CJK>
+0xB7DE	0x5FFF	# <CJK>
+0xB7DF	0x6124	# <CJK>
+0xB7E0	0x7CAA	# <CJK>
+0xB7E1	0x4E30	# <CJK>
+0xB7E2	0x5C01	# <CJK>
+0xB7E3	0x67AB	# <CJK>
+0xB7E4	0x8702	# <CJK>
+0xB7E5	0x5CF0	# <CJK>
+0xB7E6	0x950B	# <CJK>
+0xB7E7	0x98CE	# <CJK>
+0xB7E8	0x75AF	# <CJK>
+0xB7E9	0x70FD	# <CJK>
+0xB7EA	0x9022	# <CJK>
+0xB7EB	0x51AF	# <CJK>
+0xB7EC	0x7F1D	# <CJK>
+0xB7ED	0x8BBD	# <CJK>
+0xB7EE	0x5949	# <CJK>
+0xB7EF	0x51E4	# <CJK>
+0xB7F0	0x4F5B	# <CJK>
+0xB7F1	0x5426	# <CJK>
+0xB7F2	0x592B	# <CJK>
+0xB7F3	0x6577	# <CJK>
+0xB7F4	0x80A4	# <CJK>
+0xB7F5	0x5B75	# <CJK>
+0xB7F6	0x6276	# <CJK>
+0xB7F7	0x62C2	# <CJK>
+0xB7F8	0x8F90	# <CJK>
+0xB7F9	0x5E45	# <CJK>
+0xB7FA	0x6C1F	# <CJK>
+0xB7FB	0x7B26	# <CJK>
+0xB7FC	0x4F0F	# <CJK>
+0xB7FD	0x4FD8	# <CJK>
+0xB7FE	0x670D	# <CJK>
+0xB8A1	0x6D6E	# <CJK>
+0xB8A2	0x6DAA	# <CJK>
+0xB8A3	0x798F	# <CJK>
+0xB8A4	0x88B1	# <CJK>
+0xB8A5	0x5F17	# <CJK>
+0xB8A6	0x752B	# <CJK>
+0xB8A7	0x629A	# <CJK>
+0xB8A8	0x8F85	# <CJK>
+0xB8A9	0x4FEF	# <CJK>
+0xB8AA	0x91DC	# <CJK>
+0xB8AB	0x65A7	# <CJK>
+0xB8AC	0x812F	# <CJK>
+0xB8AD	0x8151	# <CJK>
+0xB8AE	0x5E9C	# <CJK>
+0xB8AF	0x8150	# <CJK>
+0xB8B0	0x8D74	# <CJK>
+0xB8B1	0x526F	# <CJK>
+0xB8B2	0x8986	# <CJK>
+0xB8B3	0x8D4B	# <CJK>
+0xB8B4	0x590D	# <CJK>
+0xB8B5	0x5085	# <CJK>
+0xB8B6	0x4ED8	# <CJK>
+0xB8B7	0x961C	# <CJK>
+0xB8B8	0x7236	# <CJK>
+0xB8B9	0x8179	# <CJK>
+0xB8BA	0x8D1F	# <CJK>
+0xB8BB	0x5BCC	# <CJK>
+0xB8BC	0x8BA3	# <CJK>
+0xB8BD	0x9644	# <CJK>
+0xB8BE	0x5987	# <CJK>
+0xB8BF	0x7F1A	# <CJK>
+0xB8C0	0x5490	# <CJK>
+0xB8C1	0x5676	# <CJK>
+0xB8C2	0x560E	# <CJK>
+0xB8C3	0x8BE5	# <CJK>
+0xB8C4	0x6539	# <CJK>
+0xB8C5	0x6982	# <CJK>
+0xB8C6	0x9499	# <CJK>
+0xB8C7	0x76D6	# <CJK>
+0xB8C8	0x6E89	# <CJK>
+0xB8C9	0x5E72	# <CJK>
+0xB8CA	0x7518	# <CJK>
+0xB8CB	0x6746	# <CJK>
+0xB8CC	0x67D1	# <CJK>
+0xB8CD	0x7AFF	# <CJK>
+0xB8CE	0x809D	# <CJK>
+0xB8CF	0x8D76	# <CJK>
+0xB8D0	0x611F	# <CJK>
+0xB8D1	0x79C6	# <CJK>
+0xB8D2	0x6562	# <CJK>
+0xB8D3	0x8D63	# <CJK>
+0xB8D4	0x5188	# <CJK>
+0xB8D5	0x521A	# <CJK>
+0xB8D6	0x94A2	# <CJK>
+0xB8D7	0x7F38	# <CJK>
+0xB8D8	0x809B	# <CJK>
+0xB8D9	0x7EB2	# <CJK>
+0xB8DA	0x5C97	# <CJK>
+0xB8DB	0x6E2F	# <CJK>
+0xB8DC	0x6760	# <CJK>
+0xB8DD	0x7BD9	# <CJK>
+0xB8DE	0x768B	# <CJK>
+0xB8DF	0x9AD8	# <CJK>
+0xB8E0	0x818F	# <CJK>
+0xB8E1	0x7F94	# <CJK>
+0xB8E2	0x7CD5	# <CJK>
+0xB8E3	0x641E	# <CJK>
+0xB8E4	0x9550	# <CJK>
+0xB8E5	0x7A3F	# <CJK>
+0xB8E6	0x544A	# <CJK>
+0xB8E7	0x54E5	# <CJK>
+0xB8E8	0x6B4C	# <CJK>
+0xB8E9	0x6401	# <CJK>
+0xB8EA	0x6208	# <CJK>
+0xB8EB	0x9E3D	# <CJK>
+0xB8EC	0x80F3	# <CJK>
+0xB8ED	0x7599	# <CJK>
+0xB8EE	0x5272	# <CJK>
+0xB8EF	0x9769	# <CJK>
+0xB8F0	0x845B	# <CJK>
+0xB8F1	0x683C	# <CJK>
+0xB8F2	0x86E4	# <CJK>
+0xB8F3	0x9601	# <CJK>
+0xB8F4	0x9694	# <CJK>
+0xB8F5	0x94EC	# <CJK>
+0xB8F6	0x4E2A	# <CJK>
+0xB8F7	0x5404	# <CJK>
+0xB8F8	0x7ED9	# <CJK>
+0xB8F9	0x6839	# <CJK>
+0xB8FA	0x8DDF	# <CJK>
+0xB8FB	0x8015	# <CJK>
+0xB8FC	0x66F4	# <CJK>
+0xB8FD	0x5E9A	# <CJK>
+0xB8FE	0x7FB9	# <CJK>
+0xB9A1	0x57C2	# <CJK>
+0xB9A2	0x803F	# <CJK>
+0xB9A3	0x6897	# <CJK>
+0xB9A4	0x5DE5	# <CJK>
+0xB9A5	0x653B	# <CJK>
+0xB9A6	0x529F	# <CJK>
+0xB9A7	0x606D	# <CJK>
+0xB9A8	0x9F9A	# <CJK>
+0xB9A9	0x4F9B	# <CJK>
+0xB9AA	0x8EAC	# <CJK>
+0xB9AB	0x516C	# <CJK>
+0xB9AC	0x5BAB	# <CJK>
+0xB9AD	0x5F13	# <CJK>
+0xB9AE	0x5DE9	# <CJK>
+0xB9AF	0x6C5E	# <CJK>
+0xB9B0	0x62F1	# <CJK>
+0xB9B1	0x8D21	# <CJK>
+0xB9B2	0x5171	# <CJK>
+0xB9B3	0x94A9	# <CJK>
+0xB9B4	0x52FE	# <CJK>
+0xB9B5	0x6C9F	# <CJK>
+0xB9B6	0x82DF	# <CJK>
+0xB9B7	0x72D7	# <CJK>
+0xB9B8	0x57A2	# <CJK>
+0xB9B9	0x6784	# <CJK>
+0xB9BA	0x8D2D	# <CJK>
+0xB9BB	0x591F	# <CJK>
+0xB9BC	0x8F9C	# <CJK>
+0xB9BD	0x83C7	# <CJK>
+0xB9BE	0x5495	# <CJK>
+0xB9BF	0x7B8D	# <CJK>
+0xB9C0	0x4F30	# <CJK>
+0xB9C1	0x6CBD	# <CJK>
+0xB9C2	0x5B64	# <CJK>
+0xB9C3	0x59D1	# <CJK>
+0xB9C4	0x9F13	# <CJK>
+0xB9C5	0x53E4	# <CJK>
+0xB9C6	0x86CA	# <CJK>
+0xB9C7	0x9AA8	# <CJK>
+0xB9C8	0x8C37	# <CJK>
+0xB9C9	0x80A1	# <CJK>
+0xB9CA	0x6545	# <CJK>
+0xB9CB	0x987E	# <CJK>
+0xB9CC	0x56FA	# <CJK>
+0xB9CD	0x96C7	# <CJK>
+0xB9CE	0x522E	# <CJK>
+0xB9CF	0x74DC	# <CJK>
+0xB9D0	0x5250	# <CJK>
+0xB9D1	0x5BE1	# <CJK>
+0xB9D2	0x6302	# <CJK>
+0xB9D3	0x8902	# <CJK>
+0xB9D4	0x4E56	# <CJK>
+0xB9D5	0x62D0	# <CJK>
+0xB9D6	0x602A	# <CJK>
+0xB9D7	0x68FA	# <CJK>
+0xB9D8	0x5173	# <CJK>
+0xB9D9	0x5B98	# <CJK>
+0xB9DA	0x51A0	# <CJK>
+0xB9DB	0x89C2	# <CJK>
+0xB9DC	0x7BA1	# <CJK>
+0xB9DD	0x9986	# <CJK>
+0xB9DE	0x7F50	# <CJK>
+0xB9DF	0x60EF	# <CJK>
+0xB9E0	0x704C	# <CJK>
+0xB9E1	0x8D2F	# <CJK>
+0xB9E2	0x5149	# <CJK>
+0xB9E3	0x5E7F	# <CJK>
+0xB9E4	0x901B	# <CJK>
+0xB9E5	0x7470	# <CJK>
+0xB9E6	0x89C4	# <CJK>
+0xB9E7	0x572D	# <CJK>
+0xB9E8	0x7845	# <CJK>
+0xB9E9	0x5F52	# <CJK>
+0xB9EA	0x9F9F	# <CJK>
+0xB9EB	0x95FA	# <CJK>
+0xB9EC	0x8F68	# <CJK>
+0xB9ED	0x9B3C	# <CJK>
+0xB9EE	0x8BE1	# <CJK>
+0xB9EF	0x7678	# <CJK>
+0xB9F0	0x6842	# <CJK>
+0xB9F1	0x67DC	# <CJK>
+0xB9F2	0x8DEA	# <CJK>
+0xB9F3	0x8D35	# <CJK>
+0xB9F4	0x523D	# <CJK>
+0xB9F5	0x8F8A	# <CJK>
+0xB9F6	0x6EDA	# <CJK>
+0xB9F7	0x68CD	# <CJK>
+0xB9F8	0x9505	# <CJK>
+0xB9F9	0x90ED	# <CJK>
+0xB9FA	0x56FD	# <CJK>
+0xB9FB	0x679C	# <CJK>
+0xB9FC	0x88F9	# <CJK>
+0xB9FD	0x8FC7	# <CJK>
+0xB9FE	0x54C8	# <CJK>
+0xBAA1	0x9AB8	# <CJK>
+0xBAA2	0x5B69	# <CJK>
+0xBAA3	0x6D77	# <CJK>
+0xBAA4	0x6C26	# <CJK>
+0xBAA5	0x4EA5	# <CJK>
+0xBAA6	0x5BB3	# <CJK>
+0xBAA7	0x9A87	# <CJK>
+0xBAA8	0x9163	# <CJK>
+0xBAA9	0x61A8	# <CJK>
+0xBAAA	0x90AF	# <CJK>
+0xBAAB	0x97E9	# <CJK>
+0xBAAC	0x542B	# <CJK>
+0xBAAD	0x6DB5	# <CJK>
+0xBAAE	0x5BD2	# <CJK>
+0xBAAF	0x51FD	# <CJK>
+0xBAB0	0x558A	# <CJK>
+0xBAB1	0x7F55	# <CJK>
+0xBAB2	0x7FF0	# <CJK>
+0xBAB3	0x64BC	# <CJK>
+0xBAB4	0x634D	# <CJK>
+0xBAB5	0x65F1	# <CJK>
+0xBAB6	0x61BE	# <CJK>
+0xBAB7	0x608D	# <CJK>
+0xBAB8	0x710A	# <CJK>
+0xBAB9	0x6C57	# <CJK>
+0xBABA	0x6C49	# <CJK>
+0xBABB	0x592F	# <CJK>
+0xBABC	0x676D	# <CJK>
+0xBABD	0x822A	# <CJK>
+0xBABE	0x58D5	# <CJK>
+0xBABF	0x568E	# <CJK>
+0xBAC0	0x8C6A	# <CJK>
+0xBAC1	0x6BEB	# <CJK>
+0xBAC2	0x90DD	# <CJK>
+0xBAC3	0x597D	# <CJK>
+0xBAC4	0x8017	# <CJK>
+0xBAC5	0x53F7	# <CJK>
+0xBAC6	0x6D69	# <CJK>
+0xBAC7	0x5475	# <CJK>
+0xBAC8	0x559D	# <CJK>
+0xBAC9	0x8377	# <CJK>
+0xBACA	0x83CF	# <CJK>
+0xBACB	0x6838	# <CJK>
+0xBACC	0x79BE	# <CJK>
+0xBACD	0x548C	# <CJK>
+0xBACE	0x4F55	# <CJK>
+0xBACF	0x5408	# <CJK>
+0xBAD0	0x76D2	# <CJK>
+0xBAD1	0x8C89	# <CJK>
+0xBAD2	0x9602	# <CJK>
+0xBAD3	0x6CB3	# <CJK>
+0xBAD4	0x6DB8	# <CJK>
+0xBAD5	0x8D6B	# <CJK>
+0xBAD6	0x8910	# <CJK>
+0xBAD7	0x9E64	# <CJK>
+0xBAD8	0x8D3A	# <CJK>
+0xBAD9	0x563F	# <CJK>
+0xBADA	0x9ED1	# <CJK>
+0xBADB	0x75D5	# <CJK>
+0xBADC	0x5F88	# <CJK>
+0xBADD	0x72E0	# <CJK>
+0xBADE	0x6068	# <CJK>
+0xBADF	0x54FC	# <CJK>
+0xBAE0	0x4EA8	# <CJK>
+0xBAE1	0x6A2A	# <CJK>
+0xBAE2	0x8861	# <CJK>
+0xBAE3	0x6052	# <CJK>
+0xBAE4	0x8F70	# <CJK>
+0xBAE5	0x54C4	# <CJK>
+0xBAE6	0x70D8	# <CJK>
+0xBAE7	0x8679	# <CJK>
+0xBAE8	0x9E3F	# <CJK>
+0xBAE9	0x6D2A	# <CJK>
+0xBAEA	0x5B8F	# <CJK>
+0xBAEB	0x5F18	# <CJK>
+0xBAEC	0x7EA2	# <CJK>
+0xBAED	0x5589	# <CJK>
+0xBAEE	0x4FAF	# <CJK>
+0xBAEF	0x7334	# <CJK>
+0xBAF0	0x543C	# <CJK>
+0xBAF1	0x539A	# <CJK>
+0xBAF2	0x5019	# <CJK>
+0xBAF3	0x540E	# <CJK>
+0xBAF4	0x547C	# <CJK>
+0xBAF5	0x4E4E	# <CJK>
+0xBAF6	0x5FFD	# <CJK>
+0xBAF7	0x745A	# <CJK>
+0xBAF8	0x58F6	# <CJK>
+0xBAF9	0x846B	# <CJK>
+0xBAFA	0x80E1	# <CJK>
+0xBAFB	0x8774	# <CJK>
+0xBAFC	0x72D0	# <CJK>
+0xBAFD	0x7CCA	# <CJK>
+0xBAFE	0x6E56	# <CJK>
+0xBBA1	0x5F27	# <CJK>
+0xBBA2	0x864E	# <CJK>
+0xBBA3	0x552C	# <CJK>
+0xBBA4	0x62A4	# <CJK>
+0xBBA5	0x4E92	# <CJK>
+0xBBA6	0x6CAA	# <CJK>
+0xBBA7	0x6237	# <CJK>
+0xBBA8	0x82B1	# <CJK>
+0xBBA9	0x54D7	# <CJK>
+0xBBAA	0x534E	# <CJK>
+0xBBAB	0x733E	# <CJK>
+0xBBAC	0x6ED1	# <CJK>
+0xBBAD	0x753B	# <CJK>
+0xBBAE	0x5212	# <CJK>
+0xBBAF	0x5316	# <CJK>
+0xBBB0	0x8BDD	# <CJK>
+0xBBB1	0x69D0	# <CJK>
+0xBBB2	0x5F8A	# <CJK>
+0xBBB3	0x6000	# <CJK>
+0xBBB4	0x6DEE	# <CJK>
+0xBBB5	0x574F	# <CJK>
+0xBBB6	0x6B22	# <CJK>
+0xBBB7	0x73AF	# <CJK>
+0xBBB8	0x6853	# <CJK>
+0xBBB9	0x8FD8	# <CJK>
+0xBBBA	0x7F13	# <CJK>
+0xBBBB	0x6362	# <CJK>
+0xBBBC	0x60A3	# <CJK>
+0xBBBD	0x5524	# <CJK>
+0xBBBE	0x75EA	# <CJK>
+0xBBBF	0x8C62	# <CJK>
+0xBBC0	0x7115	# <CJK>
+0xBBC1	0x6DA3	# <CJK>
+0xBBC2	0x5BA6	# <CJK>
+0xBBC3	0x5E7B	# <CJK>
+0xBBC4	0x8352	# <CJK>
+0xBBC5	0x614C	# <CJK>
+0xBBC6	0x9EC4	# <CJK>
+0xBBC7	0x78FA	# <CJK>
+0xBBC8	0x8757	# <CJK>
+0xBBC9	0x7C27	# <CJK>
+0xBBCA	0x7687	# <CJK>
+0xBBCB	0x51F0	# <CJK>
+0xBBCC	0x60F6	# <CJK>
+0xBBCD	0x714C	# <CJK>
+0xBBCE	0x6643	# <CJK>
+0xBBCF	0x5E4C	# <CJK>
+0xBBD0	0x604D	# <CJK>
+0xBBD1	0x8C0E	# <CJK>
+0xBBD2	0x7070	# <CJK>
+0xBBD3	0x6325	# <CJK>
+0xBBD4	0x8F89	# <CJK>
+0xBBD5	0x5FBD	# <CJK>
+0xBBD6	0x6062	# <CJK>
+0xBBD7	0x86D4	# <CJK>
+0xBBD8	0x56DE	# <CJK>
+0xBBD9	0x6BC1	# <CJK>
+0xBBDA	0x6094	# <CJK>
+0xBBDB	0x6167	# <CJK>
+0xBBDC	0x5349	# <CJK>
+0xBBDD	0x60E0	# <CJK>
+0xBBDE	0x6666	# <CJK>
+0xBBDF	0x8D3F	# <CJK>
+0xBBE0	0x79FD	# <CJK>
+0xBBE1	0x4F1A	# <CJK>
+0xBBE2	0x70E9	# <CJK>
+0xBBE3	0x6C47	# <CJK>
+0xBBE4	0x8BB3	# <CJK>
+0xBBE5	0x8BF2	# <CJK>
+0xBBE6	0x7ED8	# <CJK>
+0xBBE7	0x8364	# <CJK>
+0xBBE8	0x660F	# <CJK>
+0xBBE9	0x5A5A	# <CJK>
+0xBBEA	0x9B42	# <CJK>
+0xBBEB	0x6D51	# <CJK>
+0xBBEC	0x6DF7	# <CJK>
+0xBBED	0x8C41	# <CJK>
+0xBBEE	0x6D3B	# <CJK>
+0xBBEF	0x4F19	# <CJK>
+0xBBF0	0x706B	# <CJK>
+0xBBF1	0x83B7	# <CJK>
+0xBBF2	0x6216	# <CJK>
+0xBBF3	0x60D1	# <CJK>
+0xBBF4	0x970D	# <CJK>
+0xBBF5	0x8D27	# <CJK>
+0xBBF6	0x7978	# <CJK>
+0xBBF7	0x51FB	# <CJK>
+0xBBF8	0x573E	# <CJK>
+0xBBF9	0x57FA	# <CJK>
+0xBBFA	0x673A	# <CJK>
+0xBBFB	0x7578	# <CJK>
+0xBBFC	0x7A3D	# <CJK>
+0xBBFD	0x79EF	# <CJK>
+0xBBFE	0x7B95	# <CJK>
+0xBCA1	0x808C	# <CJK>
+0xBCA2	0x9965	# <CJK>
+0xBCA3	0x8FF9	# <CJK>
+0xBCA4	0x6FC0	# <CJK>
+0xBCA5	0x8BA5	# <CJK>
+0xBCA6	0x9E21	# <CJK>
+0xBCA7	0x59EC	# <CJK>
+0xBCA8	0x7EE9	# <CJK>
+0xBCA9	0x7F09	# <CJK>
+0xBCAA	0x5409	# <CJK>
+0xBCAB	0x6781	# <CJK>
+0xBCAC	0x68D8	# <CJK>
+0xBCAD	0x8F91	# <CJK>
+0xBCAE	0x7C4D	# <CJK>
+0xBCAF	0x96C6	# <CJK>
+0xBCB0	0x53CA	# <CJK>
+0xBCB1	0x6025	# <CJK>
+0xBCB2	0x75BE	# <CJK>
+0xBCB3	0x6C72	# <CJK>
+0xBCB4	0x5373	# <CJK>
+0xBCB5	0x5AC9	# <CJK>
+0xBCB6	0x7EA7	# <CJK>
+0xBCB7	0x6324	# <CJK>
+0xBCB8	0x51E0	# <CJK>
+0xBCB9	0x810A	# <CJK>
+0xBCBA	0x5DF1	# <CJK>
+0xBCBB	0x84DF	# <CJK>
+0xBCBC	0x6280	# <CJK>
+0xBCBD	0x5180	# <CJK>
+0xBCBE	0x5B63	# <CJK>
+0xBCBF	0x4F0E	# <CJK>
+0xBCC0	0x796D	# <CJK>
+0xBCC1	0x5242	# <CJK>
+0xBCC2	0x60B8	# <CJK>
+0xBCC3	0x6D4E	# <CJK>
+0xBCC4	0x5BC4	# <CJK>
+0xBCC5	0x5BC2	# <CJK>
+0xBCC6	0x8BA1	# <CJK>
+0xBCC7	0x8BB0	# <CJK>
+0xBCC8	0x65E2	# <CJK>
+0xBCC9	0x5FCC	# <CJK>
+0xBCCA	0x9645	# <CJK>
+0xBCCB	0x5993	# <CJK>
+0xBCCC	0x7EE7	# <CJK>
+0xBCCD	0x7EAA	# <CJK>
+0xBCCE	0x5609	# <CJK>
+0xBCCF	0x67B7	# <CJK>
+0xBCD0	0x5939	# <CJK>
+0xBCD1	0x4F73	# <CJK>
+0xBCD2	0x5BB6	# <CJK>
+0xBCD3	0x52A0	# <CJK>
+0xBCD4	0x835A	# <CJK>
+0xBCD5	0x988A	# <CJK>
+0xBCD6	0x8D3E	# <CJK>
+0xBCD7	0x7532	# <CJK>
+0xBCD8	0x94BE	# <CJK>
+0xBCD9	0x5047	# <CJK>
+0xBCDA	0x7A3C	# <CJK>
+0xBCDB	0x4EF7	# <CJK>
+0xBCDC	0x67B6	# <CJK>
+0xBCDD	0x9A7E	# <CJK>
+0xBCDE	0x5AC1	# <CJK>
+0xBCDF	0x6B7C	# <CJK>
+0xBCE0	0x76D1	# <CJK>
+0xBCE1	0x575A	# <CJK>
+0xBCE2	0x5C16	# <CJK>
+0xBCE3	0x7B3A	# <CJK>
+0xBCE4	0x95F4	# <CJK>
+0xBCE5	0x714E	# <CJK>
+0xBCE6	0x517C	# <CJK>
+0xBCE7	0x80A9	# <CJK>
+0xBCE8	0x8270	# <CJK>
+0xBCE9	0x5978	# <CJK>
+0xBCEA	0x7F04	# <CJK>
+0xBCEB	0x8327	# <CJK>
+0xBCEC	0x68C0	# <CJK>
+0xBCED	0x67EC	# <CJK>
+0xBCEE	0x78B1	# <CJK>
+0xBCEF	0x7877	# <CJK>
+0xBCF0	0x62E3	# <CJK>
+0xBCF1	0x6361	# <CJK>
+0xBCF2	0x7B80	# <CJK>
+0xBCF3	0x4FED	# <CJK>
+0xBCF4	0x526A	# <CJK>
+0xBCF5	0x51CF	# <CJK>
+0xBCF6	0x8350	# <CJK>
+0xBCF7	0x69DB	# <CJK>
+0xBCF8	0x9274	# <CJK>
+0xBCF9	0x8DF5	# <CJK>
+0xBCFA	0x8D31	# <CJK>
+0xBCFB	0x89C1	# <CJK>
+0xBCFC	0x952E	# <CJK>
+0xBCFD	0x7BAD	# <CJK>
+0xBCFE	0x4EF6	# <CJK>
+0xBDA1	0x5065	# <CJK>
+0xBDA2	0x8230	# <CJK>
+0xBDA3	0x5251	# <CJK>
+0xBDA4	0x996F	# <CJK>
+0xBDA5	0x6E10	# <CJK>
+0xBDA6	0x6E85	# <CJK>
+0xBDA7	0x6DA7	# <CJK>
+0xBDA8	0x5EFA	# <CJK>
+0xBDA9	0x50F5	# <CJK>
+0xBDAA	0x59DC	# <CJK>
+0xBDAB	0x5C06	# <CJK>
+0xBDAC	0x6D46	# <CJK>
+0xBDAD	0x6C5F	# <CJK>
+0xBDAE	0x7586	# <CJK>
+0xBDAF	0x848B	# <CJK>
+0xBDB0	0x6868	# <CJK>
+0xBDB1	0x5956	# <CJK>
+0xBDB2	0x8BB2	# <CJK>
+0xBDB3	0x5320	# <CJK>
+0xBDB4	0x9171	# <CJK>
+0xBDB5	0x964D	# <CJK>
+0xBDB6	0x8549	# <CJK>
+0xBDB7	0x6912	# <CJK>
+0xBDB8	0x7901	# <CJK>
+0xBDB9	0x7126	# <CJK>
+0xBDBA	0x80F6	# <CJK>
+0xBDBB	0x4EA4	# <CJK>
+0xBDBC	0x90CA	# <CJK>
+0xBDBD	0x6D47	# <CJK>
+0xBDBE	0x9A84	# <CJK>
+0xBDBF	0x5A07	# <CJK>
+0xBDC0	0x56BC	# <CJK>
+0xBDC1	0x6405	# <CJK>
+0xBDC2	0x94F0	# <CJK>
+0xBDC3	0x77EB	# <CJK>
+0xBDC4	0x4FA5	# <CJK>
+0xBDC5	0x811A	# <CJK>
+0xBDC6	0x72E1	# <CJK>
+0xBDC7	0x89D2	# <CJK>
+0xBDC8	0x997A	# <CJK>
+0xBDC9	0x7F34	# <CJK>
+0xBDCA	0x7EDE	# <CJK>
+0xBDCB	0x527F	# <CJK>
+0xBDCC	0x6559	# <CJK>
+0xBDCD	0x9175	# <CJK>
+0xBDCE	0x8F7F	# <CJK>
+0xBDCF	0x8F83	# <CJK>
+0xBDD0	0x53EB	# <CJK>
+0xBDD1	0x7A96	# <CJK>
+0xBDD2	0x63ED	# <CJK>
+0xBDD3	0x63A5	# <CJK>
+0xBDD4	0x7686	# <CJK>
+0xBDD5	0x79F8	# <CJK>
+0xBDD6	0x8857	# <CJK>
+0xBDD7	0x9636	# <CJK>
+0xBDD8	0x622A	# <CJK>
+0xBDD9	0x52AB	# <CJK>
+0xBDDA	0x8282	# <CJK>
+0xBDDB	0x6854	# <CJK>
+0xBDDC	0x6770	# <CJK>
+0xBDDD	0x6377	# <CJK>
+0xBDDE	0x776B	# <CJK>
+0xBDDF	0x7AED	# <CJK>
+0xBDE0	0x6D01	# <CJK>
+0xBDE1	0x7ED3	# <CJK>
+0xBDE2	0x89E3	# <CJK>
+0xBDE3	0x59D0	# <CJK>
+0xBDE4	0x6212	# <CJK>
+0xBDE5	0x85C9	# <CJK>
+0xBDE6	0x82A5	# <CJK>
+0xBDE7	0x754C	# <CJK>
+0xBDE8	0x501F	# <CJK>
+0xBDE9	0x4ECB	# <CJK>
+0xBDEA	0x75A5	# <CJK>
+0xBDEB	0x8BEB	# <CJK>
+0xBDEC	0x5C4A	# <CJK>
+0xBDED	0x5DFE	# <CJK>
+0xBDEE	0x7B4B	# <CJK>
+0xBDEF	0x65A4	# <CJK>
+0xBDF0	0x91D1	# <CJK>
+0xBDF1	0x4ECA	# <CJK>
+0xBDF2	0x6D25	# <CJK>
+0xBDF3	0x895F	# <CJK>
+0xBDF4	0x7D27	# <CJK>
+0xBDF5	0x9526	# <CJK>
+0xBDF6	0x4EC5	# <CJK>
+0xBDF7	0x8C28	# <CJK>
+0xBDF8	0x8FDB	# <CJK>
+0xBDF9	0x9773	# <CJK>
+0xBDFA	0x664B	# <CJK>
+0xBDFB	0x7981	# <CJK>
+0xBDFC	0x8FD1	# <CJK>
+0xBDFD	0x70EC	# <CJK>
+0xBDFE	0x6D78	# <CJK>
+0xBEA1	0x5C3D	# <CJK>
+0xBEA2	0x52B2	# <CJK>
+0xBEA3	0x8346	# <CJK>
+0xBEA4	0x5162	# <CJK>
+0xBEA5	0x830E	# <CJK>
+0xBEA6	0x775B	# <CJK>
+0xBEA7	0x6676	# <CJK>
+0xBEA8	0x9CB8	# <CJK>
+0xBEA9	0x4EAC	# <CJK>
+0xBEAA	0x60CA	# <CJK>
+0xBEAB	0x7CBE	# <CJK>
+0xBEAC	0x7CB3	# <CJK>
+0xBEAD	0x7ECF	# <CJK>
+0xBEAE	0x4E95	# <CJK>
+0xBEAF	0x8B66	# <CJK>
+0xBEB0	0x666F	# <CJK>
+0xBEB1	0x9888	# <CJK>
+0xBEB2	0x9759	# <CJK>
+0xBEB3	0x5883	# <CJK>
+0xBEB4	0x656C	# <CJK>
+0xBEB5	0x955C	# <CJK>
+0xBEB6	0x5F84	# <CJK>
+0xBEB7	0x75C9	# <CJK>
+0xBEB8	0x9756	# <CJK>
+0xBEB9	0x7ADF	# <CJK>
+0xBEBA	0x7ADE	# <CJK>
+0xBEBB	0x51C0	# <CJK>
+0xBEBC	0x70AF	# <CJK>
+0xBEBD	0x7A98	# <CJK>
+0xBEBE	0x63EA	# <CJK>
+0xBEBF	0x7A76	# <CJK>
+0xBEC0	0x7EA0	# <CJK>
+0xBEC1	0x7396	# <CJK>
+0xBEC2	0x97ED	# <CJK>
+0xBEC3	0x4E45	# <CJK>
+0xBEC4	0x7078	# <CJK>
+0xBEC5	0x4E5D	# <CJK>
+0xBEC6	0x9152	# <CJK>
+0xBEC7	0x53A9	# <CJK>
+0xBEC8	0x6551	# <CJK>
+0xBEC9	0x65E7	# <CJK>
+0xBECA	0x81FC	# <CJK>
+0xBECB	0x8205	# <CJK>
+0xBECC	0x548E	# <CJK>
+0xBECD	0x5C31	# <CJK>
+0xBECE	0x759A	# <CJK>
+0xBECF	0x97A0	# <CJK>
+0xBED0	0x62D8	# <CJK>
+0xBED1	0x72D9	# <CJK>
+0xBED2	0x75BD	# <CJK>
+0xBED3	0x5C45	# <CJK>
+0xBED4	0x9A79	# <CJK>
+0xBED5	0x83CA	# <CJK>
+0xBED6	0x5C40	# <CJK>
+0xBED7	0x5480	# <CJK>
+0xBED8	0x77E9	# <CJK>
+0xBED9	0x4E3E	# <CJK>
+0xBEDA	0x6CAE	# <CJK>
+0xBEDB	0x805A	# <CJK>
+0xBEDC	0x62D2	# <CJK>
+0xBEDD	0x636E	# <CJK>
+0xBEDE	0x5DE8	# <CJK>
+0xBEDF	0x5177	# <CJK>
+0xBEE0	0x8DDD	# <CJK>
+0xBEE1	0x8E1E	# <CJK>
+0xBEE2	0x952F	# <CJK>
+0xBEE3	0x4FF1	# <CJK>
+0xBEE4	0x53E5	# <CJK>
+0xBEE5	0x60E7	# <CJK>
+0xBEE6	0x70AC	# <CJK>
+0xBEE7	0x5267	# <CJK>
+0xBEE8	0x6350	# <CJK>
+0xBEE9	0x9E43	# <CJK>
+0xBEEA	0x5A1F	# <CJK>
+0xBEEB	0x5026	# <CJK>
+0xBEEC	0x7737	# <CJK>
+0xBEED	0x5377	# <CJK>
+0xBEEE	0x7EE2	# <CJK>
+0xBEEF	0x6485	# <CJK>
+0xBEF0	0x652B	# <CJK>
+0xBEF1	0x6289	# <CJK>
+0xBEF2	0x6398	# <CJK>
+0xBEF3	0x5014	# <CJK>
+0xBEF4	0x7235	# <CJK>
+0xBEF5	0x89C9	# <CJK>
+0xBEF6	0x51B3	# <CJK>
+0xBEF7	0x8BC0	# <CJK>
+0xBEF8	0x7EDD	# <CJK>
+0xBEF9	0x5747	# <CJK>
+0xBEFA	0x83CC	# <CJK>
+0xBEFB	0x94A7	# <CJK>
+0xBEFC	0x519B	# <CJK>
+0xBEFD	0x541B	# <CJK>
+0xBEFE	0x5CFB	# <CJK>
+0xBFA1	0x4FCA	# <CJK>
+0xBFA2	0x7AE3	# <CJK>
+0xBFA3	0x6D5A	# <CJK>
+0xBFA4	0x90E1	# <CJK>
+0xBFA5	0x9A8F	# <CJK>
+0xBFA6	0x5580	# <CJK>
+0xBFA7	0x5496	# <CJK>
+0xBFA8	0x5361	# <CJK>
+0xBFA9	0x54AF	# <CJK>
+0xBFAA	0x5F00	# <CJK>
+0xBFAB	0x63E9	# <CJK>
+0xBFAC	0x6977	# <CJK>
+0xBFAD	0x51EF	# <CJK>
+0xBFAE	0x6168	# <CJK>
+0xBFAF	0x520A	# <CJK>
+0xBFB0	0x582A	# <CJK>
+0xBFB1	0x52D8	# <CJK>
+0xBFB2	0x574E	# <CJK>
+0xBFB3	0x780D	# <CJK>
+0xBFB4	0x770B	# <CJK>
+0xBFB5	0x5EB7	# <CJK>
+0xBFB6	0x6177	# <CJK>
+0xBFB7	0x7CE0	# <CJK>
+0xBFB8	0x625B	# <CJK>
+0xBFB9	0x6297	# <CJK>
+0xBFBA	0x4EA2	# <CJK>
+0xBFBB	0x7095	# <CJK>
+0xBFBC	0x8003	# <CJK>
+0xBFBD	0x62F7	# <CJK>
+0xBFBE	0x70E4	# <CJK>
+0xBFBF	0x9760	# <CJK>
+0xBFC0	0x5777	# <CJK>
+0xBFC1	0x82DB	# <CJK>
+0xBFC2	0x67EF	# <CJK>
+0xBFC3	0x68F5	# <CJK>
+0xBFC4	0x78D5	# <CJK>
+0xBFC5	0x9897	# <CJK>
+0xBFC6	0x79D1	# <CJK>
+0xBFC7	0x58F3	# <CJK>
+0xBFC8	0x54B3	# <CJK>
+0xBFC9	0x53EF	# <CJK>
+0xBFCA	0x6E34	# <CJK>
+0xBFCB	0x514B	# <CJK>
+0xBFCC	0x523B	# <CJK>
+0xBFCD	0x5BA2	# <CJK>
+0xBFCE	0x8BFE	# <CJK>
+0xBFCF	0x80AF	# <CJK>
+0xBFD0	0x5543	# <CJK>
+0xBFD1	0x57A6	# <CJK>
+0xBFD2	0x6073	# <CJK>
+0xBFD3	0x5751	# <CJK>
+0xBFD4	0x542D	# <CJK>
+0xBFD5	0x7A7A	# <CJK>
+0xBFD6	0x6050	# <CJK>
+0xBFD7	0x5B54	# <CJK>
+0xBFD8	0x63A7	# <CJK>
+0xBFD9	0x62A0	# <CJK>
+0xBFDA	0x53E3	# <CJK>
+0xBFDB	0x6263	# <CJK>
+0xBFDC	0x5BC7	# <CJK>
+0xBFDD	0x67AF	# <CJK>
+0xBFDE	0x54ED	# <CJK>
+0xBFDF	0x7A9F	# <CJK>
+0xBFE0	0x82E6	# <CJK>
+0xBFE1	0x9177	# <CJK>
+0xBFE2	0x5E93	# <CJK>
+0xBFE3	0x88E4	# <CJK>
+0xBFE4	0x5938	# <CJK>
+0xBFE5	0x57AE	# <CJK>
+0xBFE6	0x630E	# <CJK>
+0xBFE7	0x8DE8	# <CJK>
+0xBFE8	0x80EF	# <CJK>
+0xBFE9	0x5757	# <CJK>
+0xBFEA	0x7B77	# <CJK>
+0xBFEB	0x4FA9	# <CJK>
+0xBFEC	0x5FEB	# <CJK>
+0xBFED	0x5BBD	# <CJK>
+0xBFEE	0x6B3E	# <CJK>
+0xBFEF	0x5321	# <CJK>
+0xBFF0	0x7B50	# <CJK>
+0xBFF1	0x72C2	# <CJK>
+0xBFF2	0x6846	# <CJK>
+0xBFF3	0x77FF	# <CJK>
+0xBFF4	0x7736	# <CJK>
+0xBFF5	0x65F7	# <CJK>
+0xBFF6	0x51B5	# <CJK>
+0xBFF7	0x4E8F	# <CJK>
+0xBFF8	0x76D4	# <CJK>
+0xBFF9	0x5CBF	# <CJK>
+0xBFFA	0x7AA5	# <CJK>
+0xBFFB	0x8475	# <CJK>
+0xBFFC	0x594E	# <CJK>
+0xBFFD	0x9B41	# <CJK>
+0xBFFE	0x5080	# <CJK>
+0xC0A1	0x9988	# <CJK>
+0xC0A2	0x6127	# <CJK>
+0xC0A3	0x6E83	# <CJK>
+0xC0A4	0x5764	# <CJK>
+0xC0A5	0x6606	# <CJK>
+0xC0A6	0x6346	# <CJK>
+0xC0A7	0x56F0	# <CJK>
+0xC0A8	0x62EC	# <CJK>
+0xC0A9	0x6269	# <CJK>
+0xC0AA	0x5ED3	# <CJK>
+0xC0AB	0x9614	# <CJK>
+0xC0AC	0x5783	# <CJK>
+0xC0AD	0x62C9	# <CJK>
+0xC0AE	0x5587	# <CJK>
+0xC0AF	0x8721	# <CJK>
+0xC0B0	0x814A	# <CJK>
+0xC0B1	0x8FA3	# <CJK>
+0xC0B2	0x5566	# <CJK>
+0xC0B3	0x83B1	# <CJK>
+0xC0B4	0x6765	# <CJK>
+0xC0B5	0x8D56	# <CJK>
+0xC0B6	0x84DD	# <CJK>
+0xC0B7	0x5A6A	# <CJK>
+0xC0B8	0x680F	# <CJK>
+0xC0B9	0x62E6	# <CJK>
+0xC0BA	0x7BEE	# <CJK>
+0xC0BB	0x9611	# <CJK>
+0xC0BC	0x5170	# <CJK>
+0xC0BD	0x6F9C	# <CJK>
+0xC0BE	0x8C30	# <CJK>
+0xC0BF	0x63FD	# <CJK>
+0xC0C0	0x89C8	# <CJK>
+0xC0C1	0x61D2	# <CJK>
+0xC0C2	0x7F06	# <CJK>
+0xC0C3	0x70C2	# <CJK>
+0xC0C4	0x6EE5	# <CJK>
+0xC0C5	0x7405	# <CJK>
+0xC0C6	0x6994	# <CJK>
+0xC0C7	0x72FC	# <CJK>
+0xC0C8	0x5ECA	# <CJK>
+0xC0C9	0x90CE	# <CJK>
+0xC0CA	0x6717	# <CJK>
+0xC0CB	0x6D6A	# <CJK>
+0xC0CC	0x635E	# <CJK>
+0xC0CD	0x52B3	# <CJK>
+0xC0CE	0x7262	# <CJK>
+0xC0CF	0x8001	# <CJK>
+0xC0D0	0x4F6C	# <CJK>
+0xC0D1	0x59E5	# <CJK>
+0xC0D2	0x916A	# <CJK>
+0xC0D3	0x70D9	# <CJK>
+0xC0D4	0x6D9D	# <CJK>
+0xC0D5	0x52D2	# <CJK>
+0xC0D6	0x4E50	# <CJK>
+0xC0D7	0x96F7	# <CJK>
+0xC0D8	0x956D	# <CJK>
+0xC0D9	0x857E	# <CJK>
+0xC0DA	0x78CA	# <CJK>
+0xC0DB	0x7D2F	# <CJK>
+0xC0DC	0x5121	# <CJK>
+0xC0DD	0x5792	# <CJK>
+0xC0DE	0x64C2	# <CJK>
+0xC0DF	0x808B	# <CJK>
+0xC0E0	0x7C7B	# <CJK>
+0xC0E1	0x6CEA	# <CJK>
+0xC0E2	0x68F1	# <CJK>
+0xC0E3	0x695E	# <CJK>
+0xC0E4	0x51B7	# <CJK>
+0xC0E5	0x5398	# <CJK>
+0xC0E6	0x68A8	# <CJK>
+0xC0E7	0x7281	# <CJK>
+0xC0E8	0x9ECE	# <CJK>
+0xC0E9	0x7BF1	# <CJK>
+0xC0EA	0x72F8	# <CJK>
+0xC0EB	0x79BB	# <CJK>
+0xC0EC	0x6F13	# <CJK>
+0xC0ED	0x7406	# <CJK>
+0xC0EE	0x674E	# <CJK>
+0xC0EF	0x91CC	# <CJK>
+0xC0F0	0x9CA4	# <CJK>
+0xC0F1	0x793C	# <CJK>
+0xC0F2	0x8389	# <CJK>
+0xC0F3	0x8354	# <CJK>
+0xC0F4	0x540F	# <CJK>
+0xC0F5	0x6817	# <CJK>
+0xC0F6	0x4E3D	# <CJK>
+0xC0F7	0x5389	# <CJK>
+0xC0F8	0x52B1	# <CJK>
+0xC0F9	0x783E	# <CJK>
+0xC0FA	0x5386	# <CJK>
+0xC0FB	0x5229	# <CJK>
+0xC0FC	0x5088	# <CJK>
+0xC0FD	0x4F8B	# <CJK>
+0xC0FE	0x4FD0	# <CJK>
+0xC1A1	0x75E2	# <CJK>
+0xC1A2	0x7ACB	# <CJK>
+0xC1A3	0x7C92	# <CJK>
+0xC1A4	0x6CA5	# <CJK>
+0xC1A5	0x96B6	# <CJK>
+0xC1A6	0x529B	# <CJK>
+0xC1A7	0x7483	# <CJK>
+0xC1A8	0x54E9	# <CJK>
+0xC1A9	0x4FE9	# <CJK>
+0xC1AA	0x8054	# <CJK>
+0xC1AB	0x83B2	# <CJK>
+0xC1AC	0x8FDE	# <CJK>
+0xC1AD	0x9570	# <CJK>
+0xC1AE	0x5EC9	# <CJK>
+0xC1AF	0x601C	# <CJK>
+0xC1B0	0x6D9F	# <CJK>
+0xC1B1	0x5E18	# <CJK>
+0xC1B2	0x655B	# <CJK>
+0xC1B3	0x8138	# <CJK>
+0xC1B4	0x94FE	# <CJK>
+0xC1B5	0x604B	# <CJK>
+0xC1B6	0x70BC	# <CJK>
+0xC1B7	0x7EC3	# <CJK>
+0xC1B8	0x7CAE	# <CJK>
+0xC1B9	0x51C9	# <CJK>
+0xC1BA	0x6881	# <CJK>
+0xC1BB	0x7CB1	# <CJK>
+0xC1BC	0x826F	# <CJK>
+0xC1BD	0x4E24	# <CJK>
+0xC1BE	0x8F86	# <CJK>
+0xC1BF	0x91CF	# <CJK>
+0xC1C0	0x667E	# <CJK>
+0xC1C1	0x4EAE	# <CJK>
+0xC1C2	0x8C05	# <CJK>
+0xC1C3	0x64A9	# <CJK>
+0xC1C4	0x804A	# <CJK>
+0xC1C5	0x50DA	# <CJK>
+0xC1C6	0x7597	# <CJK>
+0xC1C7	0x71CE	# <CJK>
+0xC1C8	0x5BE5	# <CJK>
+0xC1C9	0x8FBD	# <CJK>
+0xC1CA	0x6F66	# <CJK>
+0xC1CB	0x4E86	# <CJK>
+0xC1CC	0x6482	# <CJK>
+0xC1CD	0x9563	# <CJK>
+0xC1CE	0x5ED6	# <CJK>
+0xC1CF	0x6599	# <CJK>
+0xC1D0	0x5217	# <CJK>
+0xC1D1	0x88C2	# <CJK>
+0xC1D2	0x70C8	# <CJK>
+0xC1D3	0x52A3	# <CJK>
+0xC1D4	0x730E	# <CJK>
+0xC1D5	0x7433	# <CJK>
+0xC1D6	0x6797	# <CJK>
+0xC1D7	0x78F7	# <CJK>
+0xC1D8	0x9716	# <CJK>
+0xC1D9	0x4E34	# <CJK>
+0xC1DA	0x90BB	# <CJK>
+0xC1DB	0x9CDE	# <CJK>
+0xC1DC	0x6DCB	# <CJK>
+0xC1DD	0x51DB	# <CJK>
+0xC1DE	0x8D41	# <CJK>
+0xC1DF	0x541D	# <CJK>
+0xC1E0	0x62CE	# <CJK>
+0xC1E1	0x73B2	# <CJK>
+0xC1E2	0x83F1	# <CJK>
+0xC1E3	0x96F6	# <CJK>
+0xC1E4	0x9F84	# <CJK>
+0xC1E5	0x94C3	# <CJK>
+0xC1E6	0x4F36	# <CJK>
+0xC1E7	0x7F9A	# <CJK>
+0xC1E8	0x51CC	# <CJK>
+0xC1E9	0x7075	# <CJK>
+0xC1EA	0x9675	# <CJK>
+0xC1EB	0x5CAD	# <CJK>
+0xC1EC	0x9886	# <CJK>
+0xC1ED	0x53E6	# <CJK>
+0xC1EE	0x4EE4	# <CJK>
+0xC1EF	0x6E9C	# <CJK>
+0xC1F0	0x7409	# <CJK>
+0xC1F1	0x69B4	# <CJK>
+0xC1F2	0x786B	# <CJK>
+0xC1F3	0x998F	# <CJK>
+0xC1F4	0x7559	# <CJK>
+0xC1F5	0x5218	# <CJK>
+0xC1F6	0x7624	# <CJK>
+0xC1F7	0x6D41	# <CJK>
+0xC1F8	0x67F3	# <CJK>
+0xC1F9	0x516D	# <CJK>
+0xC1FA	0x9F99	# <CJK>
+0xC1FB	0x804B	# <CJK>
+0xC1FC	0x5499	# <CJK>
+0xC1FD	0x7B3C	# <CJK>
+0xC1FE	0x7ABF	# <CJK>
+0xC2A1	0x9686	# <CJK>
+0xC2A2	0x5784	# <CJK>
+0xC2A3	0x62E2	# <CJK>
+0xC2A4	0x9647	# <CJK>
+0xC2A5	0x697C	# <CJK>
+0xC2A6	0x5A04	# <CJK>
+0xC2A7	0x6402	# <CJK>
+0xC2A8	0x7BD3	# <CJK>
+0xC2A9	0x6F0F	# <CJK>
+0xC2AA	0x964B	# <CJK>
+0xC2AB	0x82A6	# <CJK>
+0xC2AC	0x5362	# <CJK>
+0xC2AD	0x9885	# <CJK>
+0xC2AE	0x5E90	# <CJK>
+0xC2AF	0x7089	# <CJK>
+0xC2B0	0x63B3	# <CJK>
+0xC2B1	0x5364	# <CJK>
+0xC2B2	0x864F	# <CJK>
+0xC2B3	0x9C81	# <CJK>
+0xC2B4	0x9E93	# <CJK>
+0xC2B5	0x788C	# <CJK>
+0xC2B6	0x9732	# <CJK>
+0xC2B7	0x8DEF	# <CJK>
+0xC2B8	0x8D42	# <CJK>
+0xC2B9	0x9E7F	# <CJK>
+0xC2BA	0x6F5E	# <CJK>
+0xC2BB	0x7984	# <CJK>
+0xC2BC	0x5F55	# <CJK>
+0xC2BD	0x9646	# <CJK>
+0xC2BE	0x622E	# <CJK>
+0xC2BF	0x9A74	# <CJK>
+0xC2C0	0x5415	# <CJK>
+0xC2C1	0x94DD	# <CJK>
+0xC2C2	0x4FA3	# <CJK>
+0xC2C3	0x65C5	# <CJK>
+0xC2C4	0x5C65	# <CJK>
+0xC2C5	0x5C61	# <CJK>
+0xC2C6	0x7F15	# <CJK>
+0xC2C7	0x8651	# <CJK>
+0xC2C8	0x6C2F	# <CJK>
+0xC2C9	0x5F8B	# <CJK>
+0xC2CA	0x7387	# <CJK>
+0xC2CB	0x6EE4	# <CJK>
+0xC2CC	0x7EFF	# <CJK>
+0xC2CD	0x5CE6	# <CJK>
+0xC2CE	0x631B	# <CJK>
+0xC2CF	0x5B6A	# <CJK>
+0xC2D0	0x6EE6	# <CJK>
+0xC2D1	0x5375	# <CJK>
+0xC2D2	0x4E71	# <CJK>
+0xC2D3	0x63A0	# <CJK>
+0xC2D4	0x7565	# <CJK>
+0xC2D5	0x62A1	# <CJK>
+0xC2D6	0x8F6E	# <CJK>
+0xC2D7	0x4F26	# <CJK>
+0xC2D8	0x4ED1	# <CJK>
+0xC2D9	0x6CA6	# <CJK>
+0xC2DA	0x7EB6	# <CJK>
+0xC2DB	0x8BBA	# <CJK>
+0xC2DC	0x841D	# <CJK>
+0xC2DD	0x87BA	# <CJK>
+0xC2DE	0x7F57	# <CJK>
+0xC2DF	0x903B	# <CJK>
+0xC2E0	0x9523	# <CJK>
+0xC2E1	0x7BA9	# <CJK>
+0xC2E2	0x9AA1	# <CJK>
+0xC2E3	0x88F8	# <CJK>
+0xC2E4	0x843D	# <CJK>
+0xC2E5	0x6D1B	# <CJK>
+0xC2E6	0x9A86	# <CJK>
+0xC2E7	0x7EDC	# <CJK>
+0xC2E8	0x5988	# <CJK>
+0xC2E9	0x9EBB	# <CJK>
+0xC2EA	0x739B	# <CJK>
+0xC2EB	0x7801	# <CJK>
+0xC2EC	0x8682	# <CJK>
+0xC2ED	0x9A6C	# <CJK>
+0xC2EE	0x9A82	# <CJK>
+0xC2EF	0x561B	# <CJK>
+0xC2F0	0x5417	# <CJK>
+0xC2F1	0x57CB	# <CJK>
+0xC2F2	0x4E70	# <CJK>
+0xC2F3	0x9EA6	# <CJK>
+0xC2F4	0x5356	# <CJK>
+0xC2F5	0x8FC8	# <CJK>
+0xC2F6	0x8109	# <CJK>
+0xC2F7	0x7792	# <CJK>
+0xC2F8	0x9992	# <CJK>
+0xC2F9	0x86EE	# <CJK>
+0xC2FA	0x6EE1	# <CJK>
+0xC2FB	0x8513	# <CJK>
+0xC2FC	0x66FC	# <CJK>
+0xC2FD	0x6162	# <CJK>
+0xC2FE	0x6F2B	# <CJK>
+0xC3A1	0x8C29	# <CJK>
+0xC3A2	0x8292	# <CJK>
+0xC3A3	0x832B	# <CJK>
+0xC3A4	0x76F2	# <CJK>
+0xC3A5	0x6C13	# <CJK>
+0xC3A6	0x5FD9	# <CJK>
+0xC3A7	0x83BD	# <CJK>
+0xC3A8	0x732B	# <CJK>
+0xC3A9	0x8305	# <CJK>
+0xC3AA	0x951A	# <CJK>
+0xC3AB	0x6BDB	# <CJK>
+0xC3AC	0x77DB	# <CJK>
+0xC3AD	0x94C6	# <CJK>
+0xC3AE	0x536F	# <CJK>
+0xC3AF	0x8302	# <CJK>
+0xC3B0	0x5192	# <CJK>
+0xC3B1	0x5E3D	# <CJK>
+0xC3B2	0x8C8C	# <CJK>
+0xC3B3	0x8D38	# <CJK>
+0xC3B4	0x4E48	# <CJK>
+0xC3B5	0x73AB	# <CJK>
+0xC3B6	0x679A	# <CJK>
+0xC3B7	0x6885	# <CJK>
+0xC3B8	0x9176	# <CJK>
+0xC3B9	0x9709	# <CJK>
+0xC3BA	0x7164	# <CJK>
+0xC3BB	0x6CA1	# <CJK>
+0xC3BC	0x7709	# <CJK>
+0xC3BD	0x5A92	# <CJK>
+0xC3BE	0x9541	# <CJK>
+0xC3BF	0x6BCF	# <CJK>
+0xC3C0	0x7F8E	# <CJK>
+0xC3C1	0x6627	# <CJK>
+0xC3C2	0x5BD0	# <CJK>
+0xC3C3	0x59B9	# <CJK>
+0xC3C4	0x5A9A	# <CJK>
+0xC3C5	0x95E8	# <CJK>
+0xC3C6	0x95F7	# <CJK>
+0xC3C7	0x4EEC	# <CJK>
+0xC3C8	0x840C	# <CJK>
+0xC3C9	0x8499	# <CJK>
+0xC3CA	0x6AAC	# <CJK>
+0xC3CB	0x76DF	# <CJK>
+0xC3CC	0x9530	# <CJK>
+0xC3CD	0x731B	# <CJK>
+0xC3CE	0x68A6	# <CJK>
+0xC3CF	0x5B5F	# <CJK>
+0xC3D0	0x772F	# <CJK>
+0xC3D1	0x919A	# <CJK>
+0xC3D2	0x9761	# <CJK>
+0xC3D3	0x7CDC	# <CJK>
+0xC3D4	0x8FF7	# <CJK>
+0xC3D5	0x8C1C	# <CJK>
+0xC3D6	0x5F25	# <CJK>
+0xC3D7	0x7C73	# <CJK>
+0xC3D8	0x79D8	# <CJK>
+0xC3D9	0x89C5	# <CJK>
+0xC3DA	0x6CCC	# <CJK>
+0xC3DB	0x871C	# <CJK>
+0xC3DC	0x5BC6	# <CJK>
+0xC3DD	0x5E42	# <CJK>
+0xC3DE	0x68C9	# <CJK>
+0xC3DF	0x7720	# <CJK>
+0xC3E0	0x7EF5	# <CJK>
+0xC3E1	0x5195	# <CJK>
+0xC3E2	0x514D	# <CJK>
+0xC3E3	0x52C9	# <CJK>
+0xC3E4	0x5A29	# <CJK>
+0xC3E5	0x7F05	# <CJK>
+0xC3E6	0x9762	# <CJK>
+0xC3E7	0x82D7	# <CJK>
+0xC3E8	0x63CF	# <CJK>
+0xC3E9	0x7784	# <CJK>
+0xC3EA	0x85D0	# <CJK>
+0xC3EB	0x79D2	# <CJK>
+0xC3EC	0x6E3A	# <CJK>
+0xC3ED	0x5E99	# <CJK>
+0xC3EE	0x5999	# <CJK>
+0xC3EF	0x8511	# <CJK>
+0xC3F0	0x706D	# <CJK>
+0xC3F1	0x6C11	# <CJK>
+0xC3F2	0x62BF	# <CJK>
+0xC3F3	0x76BF	# <CJK>
+0xC3F4	0x654F	# <CJK>
+0xC3F5	0x60AF	# <CJK>
+0xC3F6	0x95FD	# <CJK>
+0xC3F7	0x660E	# <CJK>
+0xC3F8	0x879F	# <CJK>
+0xC3F9	0x9E23	# <CJK>
+0xC3FA	0x94ED	# <CJK>
+0xC3FB	0x540D	# <CJK>
+0xC3FC	0x547D	# <CJK>
+0xC3FD	0x8C2C	# <CJK>
+0xC3FE	0x6478	# <CJK>
+0xC4A1	0x6479	# <CJK>
+0xC4A2	0x8611	# <CJK>
+0xC4A3	0x6A21	# <CJK>
+0xC4A4	0x819C	# <CJK>
+0xC4A5	0x78E8	# <CJK>
+0xC4A6	0x6469	# <CJK>
+0xC4A7	0x9B54	# <CJK>
+0xC4A8	0x62B9	# <CJK>
+0xC4A9	0x672B	# <CJK>
+0xC4AA	0x83AB	# <CJK>
+0xC4AB	0x58A8	# <CJK>
+0xC4AC	0x9ED8	# <CJK>
+0xC4AD	0x6CAB	# <CJK>
+0xC4AE	0x6F20	# <CJK>
+0xC4AF	0x5BDE	# <CJK>
+0xC4B0	0x964C	# <CJK>
+0xC4B1	0x8C0B	# <CJK>
+0xC4B2	0x725F	# <CJK>
+0xC4B3	0x67D0	# <CJK>
+0xC4B4	0x62C7	# <CJK>
+0xC4B5	0x7261	# <CJK>
+0xC4B6	0x4EA9	# <CJK>
+0xC4B7	0x59C6	# <CJK>
+0xC4B8	0x6BCD	# <CJK>
+0xC4B9	0x5893	# <CJK>
+0xC4BA	0x66AE	# <CJK>
+0xC4BB	0x5E55	# <CJK>
+0xC4BC	0x52DF	# <CJK>
+0xC4BD	0x6155	# <CJK>
+0xC4BE	0x6728	# <CJK>
+0xC4BF	0x76EE	# <CJK>
+0xC4C0	0x7766	# <CJK>
+0xC4C1	0x7267	# <CJK>
+0xC4C2	0x7A46	# <CJK>
+0xC4C3	0x62FF	# <CJK>
+0xC4C4	0x54EA	# <CJK>
+0xC4C5	0x5450	# <CJK>
+0xC4C6	0x94A0	# <CJK>
+0xC4C7	0x90A3	# <CJK>
+0xC4C8	0x5A1C	# <CJK>
+0xC4C9	0x7EB3	# <CJK>
+0xC4CA	0x6C16	# <CJK>
+0xC4CB	0x4E43	# <CJK>
+0xC4CC	0x5976	# <CJK>
+0xC4CD	0x8010	# <CJK>
+0xC4CE	0x5948	# <CJK>
+0xC4CF	0x5357	# <CJK>
+0xC4D0	0x7537	# <CJK>
+0xC4D1	0x96BE	# <CJK>
+0xC4D2	0x56CA	# <CJK>
+0xC4D3	0x6320	# <CJK>
+0xC4D4	0x8111	# <CJK>
+0xC4D5	0x607C	# <CJK>
+0xC4D6	0x95F9	# <CJK>
+0xC4D7	0x6DD6	# <CJK>
+0xC4D8	0x5462	# <CJK>
+0xC4D9	0x9981	# <CJK>
+0xC4DA	0x5185	# <CJK>
+0xC4DB	0x5AE9	# <CJK>
+0xC4DC	0x80FD	# <CJK>
+0xC4DD	0x59AE	# <CJK>
+0xC4DE	0x9713	# <CJK>
+0xC4DF	0x502A	# <CJK>
+0xC4E0	0x6CE5	# <CJK>
+0xC4E1	0x5C3C	# <CJK>
+0xC4E2	0x62DF	# <CJK>
+0xC4E3	0x4F60	# <CJK>
+0xC4E4	0x533F	# <CJK>
+0xC4E5	0x817B	# <CJK>
+0xC4E6	0x9006	# <CJK>
+0xC4E7	0x6EBA	# <CJK>
+0xC4E8	0x852B	# <CJK>
+0xC4E9	0x62C8	# <CJK>
+0xC4EA	0x5E74	# <CJK>
+0xC4EB	0x78BE	# <CJK>
+0xC4EC	0x64B5	# <CJK>
+0xC4ED	0x637B	# <CJK>
+0xC4EE	0x5FF5	# <CJK>
+0xC4EF	0x5A18	# <CJK>
+0xC4F0	0x917F	# <CJK>
+0xC4F1	0x9E1F	# <CJK>
+0xC4F2	0x5C3F	# <CJK>
+0xC4F3	0x634F	# <CJK>
+0xC4F4	0x8042	# <CJK>
+0xC4F5	0x5B7D	# <CJK>
+0xC4F6	0x556E	# <CJK>
+0xC4F7	0x954A	# <CJK>
+0xC4F8	0x954D	# <CJK>
+0xC4F9	0x6D85	# <CJK>
+0xC4FA	0x60A8	# <CJK>
+0xC4FB	0x67E0	# <CJK>
+0xC4FC	0x72DE	# <CJK>
+0xC4FD	0x51DD	# <CJK>
+0xC4FE	0x5B81	# <CJK>
+0xC5A1	0x62E7	# <CJK>
+0xC5A2	0x6CDE	# <CJK>
+0xC5A3	0x725B	# <CJK>
+0xC5A4	0x626D	# <CJK>
+0xC5A5	0x94AE	# <CJK>
+0xC5A6	0x7EBD	# <CJK>
+0xC5A7	0x8113	# <CJK>
+0xC5A8	0x6D53	# <CJK>
+0xC5A9	0x519C	# <CJK>
+0xC5AA	0x5F04	# <CJK>
+0xC5AB	0x5974	# <CJK>
+0xC5AC	0x52AA	# <CJK>
+0xC5AD	0x6012	# <CJK>
+0xC5AE	0x5973	# <CJK>
+0xC5AF	0x6696	# <CJK>
+0xC5B0	0x8650	# <CJK>
+0xC5B1	0x759F	# <CJK>
+0xC5B2	0x632A	# <CJK>
+0xC5B3	0x61E6	# <CJK>
+0xC5B4	0x7CEF	# <CJK>
+0xC5B5	0x8BFA	# <CJK>
+0xC5B6	0x54E6	# <CJK>
+0xC5B7	0x6B27	# <CJK>
+0xC5B8	0x9E25	# <CJK>
+0xC5B9	0x6BB4	# <CJK>
+0xC5BA	0x85D5	# <CJK>
+0xC5BB	0x5455	# <CJK>
+0xC5BC	0x5076	# <CJK>
+0xC5BD	0x6CA4	# <CJK>
+0xC5BE	0x556A	# <CJK>
+0xC5BF	0x8DB4	# <CJK>
+0xC5C0	0x722C	# <CJK>
+0xC5C1	0x5E15	# <CJK>
+0xC5C2	0x6015	# <CJK>
+0xC5C3	0x7436	# <CJK>
+0xC5C4	0x62CD	# <CJK>
+0xC5C5	0x6392	# <CJK>
+0xC5C6	0x724C	# <CJK>
+0xC5C7	0x5F98	# <CJK>
+0xC5C8	0x6E43	# <CJK>
+0xC5C9	0x6D3E	# <CJK>
+0xC5CA	0x6500	# <CJK>
+0xC5CB	0x6F58	# <CJK>
+0xC5CC	0x76D8	# <CJK>
+0xC5CD	0x78D0	# <CJK>
+0xC5CE	0x76FC	# <CJK>
+0xC5CF	0x7554	# <CJK>
+0xC5D0	0x5224	# <CJK>
+0xC5D1	0x53DB	# <CJK>
+0xC5D2	0x4E53	# <CJK>
+0xC5D3	0x5E9E	# <CJK>
+0xC5D4	0x65C1	# <CJK>
+0xC5D5	0x802A	# <CJK>
+0xC5D6	0x80D6	# <CJK>
+0xC5D7	0x629B	# <CJK>
+0xC5D8	0x5486	# <CJK>
+0xC5D9	0x5228	# <CJK>
+0xC5DA	0x70AE	# <CJK>
+0xC5DB	0x888D	# <CJK>
+0xC5DC	0x8DD1	# <CJK>
+0xC5DD	0x6CE1	# <CJK>
+0xC5DE	0x5478	# <CJK>
+0xC5DF	0x80DA	# <CJK>
+0xC5E0	0x57F9	# <CJK>
+0xC5E1	0x88F4	# <CJK>
+0xC5E2	0x8D54	# <CJK>
+0xC5E3	0x966A	# <CJK>
+0xC5E4	0x914D	# <CJK>
+0xC5E5	0x4F69	# <CJK>
+0xC5E6	0x6C9B	# <CJK>
+0xC5E7	0x55B7	# <CJK>
+0xC5E8	0x76C6	# <CJK>
+0xC5E9	0x7830	# <CJK>
+0xC5EA	0x62A8	# <CJK>
+0xC5EB	0x70F9	# <CJK>
+0xC5EC	0x6F8E	# <CJK>
+0xC5ED	0x5F6D	# <CJK>
+0xC5EE	0x84EC	# <CJK>
+0xC5EF	0x68DA	# <CJK>
+0xC5F0	0x787C	# <CJK>
+0xC5F1	0x7BF7	# <CJK>
+0xC5F2	0x81A8	# <CJK>
+0xC5F3	0x670B	# <CJK>
+0xC5F4	0x9E4F	# <CJK>
+0xC5F5	0x6367	# <CJK>
+0xC5F6	0x78B0	# <CJK>
+0xC5F7	0x576F	# <CJK>
+0xC5F8	0x7812	# <CJK>
+0xC5F9	0x9739	# <CJK>
+0xC5FA	0x6279	# <CJK>
+0xC5FB	0x62AB	# <CJK>
+0xC5FC	0x5288	# <CJK>
+0xC5FD	0x7435	# <CJK>
+0xC5FE	0x6BD7	# <CJK>
+0xC6A1	0x5564	# <CJK>
+0xC6A2	0x813E	# <CJK>
+0xC6A3	0x75B2	# <CJK>
+0xC6A4	0x76AE	# <CJK>
+0xC6A5	0x5339	# <CJK>
+0xC6A6	0x75DE	# <CJK>
+0xC6A7	0x50FB	# <CJK>
+0xC6A8	0x5C41	# <CJK>
+0xC6A9	0x8B6C	# <CJK>
+0xC6AA	0x7BC7	# <CJK>
+0xC6AB	0x504F	# <CJK>
+0xC6AC	0x7247	# <CJK>
+0xC6AD	0x9A97	# <CJK>
+0xC6AE	0x98D8	# <CJK>
+0xC6AF	0x6F02	# <CJK>
+0xC6B0	0x74E2	# <CJK>
+0xC6B1	0x7968	# <CJK>
+0xC6B2	0x6487	# <CJK>
+0xC6B3	0x77A5	# <CJK>
+0xC6B4	0x62FC	# <CJK>
+0xC6B5	0x9891	# <CJK>
+0xC6B6	0x8D2B	# <CJK>
+0xC6B7	0x54C1	# <CJK>
+0xC6B8	0x8058	# <CJK>
+0xC6B9	0x4E52	# <CJK>
+0xC6BA	0x576A	# <CJK>
+0xC6BB	0x82F9	# <CJK>
+0xC6BC	0x840D	# <CJK>
+0xC6BD	0x5E73	# <CJK>
+0xC6BE	0x51ED	# <CJK>
+0xC6BF	0x74F6	# <CJK>
+0xC6C0	0x8BC4	# <CJK>
+0xC6C1	0x5C4F	# <CJK>
+0xC6C2	0x5761	# <CJK>
+0xC6C3	0x6CFC	# <CJK>
+0xC6C4	0x9887	# <CJK>
+0xC6C5	0x5A46	# <CJK>
+0xC6C6	0x7834	# <CJK>
+0xC6C7	0x9B44	# <CJK>
+0xC6C8	0x8FEB	# <CJK>
+0xC6C9	0x7C95	# <CJK>
+0xC6CA	0x5256	# <CJK>
+0xC6CB	0x6251	# <CJK>
+0xC6CC	0x94FA	# <CJK>
+0xC6CD	0x4EC6	# <CJK>
+0xC6CE	0x8386	# <CJK>
+0xC6CF	0x8461	# <CJK>
+0xC6D0	0x83E9	# <CJK>
+0xC6D1	0x84B2	# <CJK>
+0xC6D2	0x57D4	# <CJK>
+0xC6D3	0x6734	# <CJK>
+0xC6D4	0x5703	# <CJK>
+0xC6D5	0x666E	# <CJK>
+0xC6D6	0x6D66	# <CJK>
+0xC6D7	0x8C31	# <CJK>
+0xC6D8	0x66DD	# <CJK>
+0xC6D9	0x7011	# <CJK>
+0xC6DA	0x671F	# <CJK>
+0xC6DB	0x6B3A	# <CJK>
+0xC6DC	0x6816	# <CJK>
+0xC6DD	0x621A	# <CJK>
+0xC6DE	0x59BB	# <CJK>
+0xC6DF	0x4E03	# <CJK>
+0xC6E0	0x51C4	# <CJK>
+0xC6E1	0x6F06	# <CJK>
+0xC6E2	0x67D2	# <CJK>
+0xC6E3	0x6C8F	# <CJK>
+0xC6E4	0x5176	# <CJK>
+0xC6E5	0x68CB	# <CJK>
+0xC6E6	0x5947	# <CJK>
+0xC6E7	0x6B67	# <CJK>
+0xC6E8	0x7566	# <CJK>
+0xC6E9	0x5D0E	# <CJK>
+0xC6EA	0x8110	# <CJK>
+0xC6EB	0x9F50	# <CJK>
+0xC6EC	0x65D7	# <CJK>
+0xC6ED	0x7948	# <CJK>
+0xC6EE	0x7941	# <CJK>
+0xC6EF	0x9A91	# <CJK>
+0xC6F0	0x8D77	# <CJK>
+0xC6F1	0x5C82	# <CJK>
+0xC6F2	0x4E5E	# <CJK>
+0xC6F3	0x4F01	# <CJK>
+0xC6F4	0x542F	# <CJK>
+0xC6F5	0x5951	# <CJK>
+0xC6F6	0x780C	# <CJK>
+0xC6F7	0x5668	# <CJK>
+0xC6F8	0x6C14	# <CJK>
+0xC6F9	0x8FC4	# <CJK>
+0xC6FA	0x5F03	# <CJK>
+0xC6FB	0x6C7D	# <CJK>
+0xC6FC	0x6CE3	# <CJK>
+0xC6FD	0x8BAB	# <CJK>
+0xC6FE	0x6390	# <CJK>
+0xC7A1	0x6070	# <CJK>
+0xC7A2	0x6D3D	# <CJK>
+0xC7A3	0x7275	# <CJK>
+0xC7A4	0x6266	# <CJK>
+0xC7A5	0x948E	# <CJK>
+0xC7A6	0x94C5	# <CJK>
+0xC7A7	0x5343	# <CJK>
+0xC7A8	0x8FC1	# <CJK>
+0xC7A9	0x7B7E	# <CJK>
+0xC7AA	0x4EDF	# <CJK>
+0xC7AB	0x8C26	# <CJK>
+0xC7AC	0x4E7E	# <CJK>
+0xC7AD	0x9ED4	# <CJK>
+0xC7AE	0x94B1	# <CJK>
+0xC7AF	0x94B3	# <CJK>
+0xC7B0	0x524D	# <CJK>
+0xC7B1	0x6F5C	# <CJK>
+0xC7B2	0x9063	# <CJK>
+0xC7B3	0x6D45	# <CJK>
+0xC7B4	0x8C34	# <CJK>
+0xC7B5	0x5811	# <CJK>
+0xC7B6	0x5D4C	# <CJK>
+0xC7B7	0x6B20	# <CJK>
+0xC7B8	0x6B49	# <CJK>
+0xC7B9	0x67AA	# <CJK>
+0xC7BA	0x545B	# <CJK>
+0xC7BB	0x8154	# <CJK>
+0xC7BC	0x7F8C	# <CJK>
+0xC7BD	0x5899	# <CJK>
+0xC7BE	0x8537	# <CJK>
+0xC7BF	0x5F3A	# <CJK>
+0xC7C0	0x62A2	# <CJK>
+0xC7C1	0x6A47	# <CJK>
+0xC7C2	0x9539	# <CJK>
+0xC7C3	0x6572	# <CJK>
+0xC7C4	0x6084	# <CJK>
+0xC7C5	0x6865	# <CJK>
+0xC7C6	0x77A7	# <CJK>
+0xC7C7	0x4E54	# <CJK>
+0xC7C8	0x4FA8	# <CJK>
+0xC7C9	0x5DE7	# <CJK>
+0xC7CA	0x9798	# <CJK>
+0xC7CB	0x64AC	# <CJK>
+0xC7CC	0x7FD8	# <CJK>
+0xC7CD	0x5CED	# <CJK>
+0xC7CE	0x4FCF	# <CJK>
+0xC7CF	0x7A8D	# <CJK>
+0xC7D0	0x5207	# <CJK>
+0xC7D1	0x8304	# <CJK>
+0xC7D2	0x4E14	# <CJK>
+0xC7D3	0x602F	# <CJK>
+0xC7D4	0x7A83	# <CJK>
+0xC7D5	0x94A6	# <CJK>
+0xC7D6	0x4FB5	# <CJK>
+0xC7D7	0x4EB2	# <CJK>
+0xC7D8	0x79E6	# <CJK>
+0xC7D9	0x7434	# <CJK>
+0xC7DA	0x52E4	# <CJK>
+0xC7DB	0x82B9	# <CJK>
+0xC7DC	0x64D2	# <CJK>
+0xC7DD	0x79BD	# <CJK>
+0xC7DE	0x5BDD	# <CJK>
+0xC7DF	0x6C81	# <CJK>
+0xC7E0	0x9752	# <CJK>
+0xC7E1	0x8F7B	# <CJK>
+0xC7E2	0x6C22	# <CJK>
+0xC7E3	0x503E	# <CJK>
+0xC7E4	0x537F	# <CJK>
+0xC7E5	0x6E05	# <CJK>
+0xC7E6	0x64CE	# <CJK>
+0xC7E7	0x6674	# <CJK>
+0xC7E8	0x6C30	# <CJK>
+0xC7E9	0x60C5	# <CJK>
+0xC7EA	0x9877	# <CJK>
+0xC7EB	0x8BF7	# <CJK>
+0xC7EC	0x5E86	# <CJK>
+0xC7ED	0x743C	# <CJK>
+0xC7EE	0x7A77	# <CJK>
+0xC7EF	0x79CB	# <CJK>
+0xC7F0	0x4E18	# <CJK>
+0xC7F1	0x90B1	# <CJK>
+0xC7F2	0x7403	# <CJK>
+0xC7F3	0x6C42	# <CJK>
+0xC7F4	0x56DA	# <CJK>
+0xC7F5	0x914B	# <CJK>
+0xC7F6	0x6CC5	# <CJK>
+0xC7F7	0x8D8B	# <CJK>
+0xC7F8	0x533A	# <CJK>
+0xC7F9	0x86C6	# <CJK>
+0xC7FA	0x66F2	# <CJK>
+0xC7FB	0x8EAF	# <CJK>
+0xC7FC	0x5C48	# <CJK>
+0xC7FD	0x9A71	# <CJK>
+0xC7FE	0x6E20	# <CJK>
+0xC8A1	0x53D6	# <CJK>
+0xC8A2	0x5A36	# <CJK>
+0xC8A3	0x9F8B	# <CJK>
+0xC8A4	0x8DA3	# <CJK>
+0xC8A5	0x53BB	# <CJK>
+0xC8A6	0x5708	# <CJK>
+0xC8A7	0x98A7	# <CJK>
+0xC8A8	0x6743	# <CJK>
+0xC8A9	0x919B	# <CJK>
+0xC8AA	0x6CC9	# <CJK>
+0xC8AB	0x5168	# <CJK>
+0xC8AC	0x75CA	# <CJK>
+0xC8AD	0x62F3	# <CJK>
+0xC8AE	0x72AC	# <CJK>
+0xC8AF	0x5238	# <CJK>
+0xC8B0	0x529D	# <CJK>
+0xC8B1	0x7F3A	# <CJK>
+0xC8B2	0x7094	# <CJK>
+0xC8B3	0x7638	# <CJK>
+0xC8B4	0x5374	# <CJK>
+0xC8B5	0x9E4A	# <CJK>
+0xC8B6	0x69B7	# <CJK>
+0xC8B7	0x786E	# <CJK>
+0xC8B8	0x96C0	# <CJK>
+0xC8B9	0x88D9	# <CJK>
+0xC8BA	0x7FA4	# <CJK>
+0xC8BB	0x7136	# <CJK>
+0xC8BC	0x71C3	# <CJK>
+0xC8BD	0x5189	# <CJK>
+0xC8BE	0x67D3	# <CJK>
+0xC8BF	0x74E4	# <CJK>
+0xC8C0	0x58E4	# <CJK>
+0xC8C1	0x6518	# <CJK>
+0xC8C2	0x56B7	# <CJK>
+0xC8C3	0x8BA9	# <CJK>
+0xC8C4	0x9976	# <CJK>
+0xC8C5	0x6270	# <CJK>
+0xC8C6	0x7ED5	# <CJK>
+0xC8C7	0x60F9	# <CJK>
+0xC8C8	0x70ED	# <CJK>
+0xC8C9	0x58EC	# <CJK>
+0xC8CA	0x4EC1	# <CJK>
+0xC8CB	0x4EBA	# <CJK>
+0xC8CC	0x5FCD	# <CJK>
+0xC8CD	0x97E7	# <CJK>
+0xC8CE	0x4EFB	# <CJK>
+0xC8CF	0x8BA4	# <CJK>
+0xC8D0	0x5203	# <CJK>
+0xC8D1	0x598A	# <CJK>
+0xC8D2	0x7EAB	# <CJK>
+0xC8D3	0x6254	# <CJK>
+0xC8D4	0x4ECD	# <CJK>
+0xC8D5	0x65E5	# <CJK>
+0xC8D6	0x620E	# <CJK>
+0xC8D7	0x8338	# <CJK>
+0xC8D8	0x84C9	# <CJK>
+0xC8D9	0x8363	# <CJK>
+0xC8DA	0x878D	# <CJK>
+0xC8DB	0x7194	# <CJK>
+0xC8DC	0x6EB6	# <CJK>
+0xC8DD	0x5BB9	# <CJK>
+0xC8DE	0x7ED2	# <CJK>
+0xC8DF	0x5197	# <CJK>
+0xC8E0	0x63C9	# <CJK>
+0xC8E1	0x67D4	# <CJK>
+0xC8E2	0x8089	# <CJK>
+0xC8E3	0x8339	# <CJK>
+0xC8E4	0x8815	# <CJK>
+0xC8E5	0x5112	# <CJK>
+0xC8E6	0x5B7A	# <CJK>
+0xC8E7	0x5982	# <CJK>
+0xC8E8	0x8FB1	# <CJK>
+0xC8E9	0x4E73	# <CJK>
+0xC8EA	0x6C5D	# <CJK>
+0xC8EB	0x5165	# <CJK>
+0xC8EC	0x8925	# <CJK>
+0xC8ED	0x8F6F	# <CJK>
+0xC8EE	0x962E	# <CJK>
+0xC8EF	0x854A	# <CJK>
+0xC8F0	0x745E	# <CJK>
+0xC8F1	0x9510	# <CJK>
+0xC8F2	0x95F0	# <CJK>
+0xC8F3	0x6DA6	# <CJK>
+0xC8F4	0x82E5	# <CJK>
+0xC8F5	0x5F31	# <CJK>
+0xC8F6	0x6492	# <CJK>
+0xC8F7	0x6D12	# <CJK>
+0xC8F8	0x8428	# <CJK>
+0xC8F9	0x816E	# <CJK>
+0xC8FA	0x9CC3	# <CJK>
+0xC8FB	0x585E	# <CJK>
+0xC8FC	0x8D5B	# <CJK>
+0xC8FD	0x4E09	# <CJK>
+0xC8FE	0x53C1	# <CJK>
+0xC9A1	0x4F1E	# <CJK>
+0xC9A2	0x6563	# <CJK>
+0xC9A3	0x6851	# <CJK>
+0xC9A4	0x55D3	# <CJK>
+0xC9A5	0x4E27	# <CJK>
+0xC9A6	0x6414	# <CJK>
+0xC9A7	0x9A9A	# <CJK>
+0xC9A8	0x626B	# <CJK>
+0xC9A9	0x5AC2	# <CJK>
+0xC9AA	0x745F	# <CJK>
+0xC9AB	0x8272	# <CJK>
+0xC9AC	0x6DA9	# <CJK>
+0xC9AD	0x68EE	# <CJK>
+0xC9AE	0x50E7	# <CJK>
+0xC9AF	0x838E	# <CJK>
+0xC9B0	0x7802	# <CJK>
+0xC9B1	0x6740	# <CJK>
+0xC9B2	0x5239	# <CJK>
+0xC9B3	0x6C99	# <CJK>
+0xC9B4	0x7EB1	# <CJK>
+0xC9B5	0x50BB	# <CJK>
+0xC9B6	0x5565	# <CJK>
+0xC9B7	0x715E	# <CJK>
+0xC9B8	0x7B5B	# <CJK>
+0xC9B9	0x6652	# <CJK>
+0xC9BA	0x73CA	# <CJK>
+0xC9BB	0x82EB	# <CJK>
+0xC9BC	0x6749	# <CJK>
+0xC9BD	0x5C71	# <CJK>
+0xC9BE	0x5220	# <CJK>
+0xC9BF	0x717D	# <CJK>
+0xC9C0	0x886B	# <CJK>
+0xC9C1	0x95EA	# <CJK>
+0xC9C2	0x9655	# <CJK>
+0xC9C3	0x64C5	# <CJK>
+0xC9C4	0x8D61	# <CJK>
+0xC9C5	0x81B3	# <CJK>
+0xC9C6	0x5584	# <CJK>
+0xC9C7	0x6C55	# <CJK>
+0xC9C8	0x6247	# <CJK>
+0xC9C9	0x7F2E	# <CJK>
+0xC9CA	0x5892	# <CJK>
+0xC9CB	0x4F24	# <CJK>
+0xC9CC	0x5546	# <CJK>
+0xC9CD	0x8D4F	# <CJK>
+0xC9CE	0x664C	# <CJK>
+0xC9CF	0x4E0A	# <CJK>
+0xC9D0	0x5C1A	# <CJK>
+0xC9D1	0x88F3	# <CJK>
+0xC9D2	0x68A2	# <CJK>
+0xC9D3	0x634E	# <CJK>
+0xC9D4	0x7A0D	# <CJK>
+0xC9D5	0x70E7	# <CJK>
+0xC9D6	0x828D	# <CJK>
+0xC9D7	0x52FA	# <CJK>
+0xC9D8	0x97F6	# <CJK>
+0xC9D9	0x5C11	# <CJK>
+0xC9DA	0x54E8	# <CJK>
+0xC9DB	0x90B5	# <CJK>
+0xC9DC	0x7ECD	# <CJK>
+0xC9DD	0x5962	# <CJK>
+0xC9DE	0x8D4A	# <CJK>
+0xC9DF	0x86C7	# <CJK>
+0xC9E0	0x820C	# <CJK>
+0xC9E1	0x820D	# <CJK>
+0xC9E2	0x8D66	# <CJK>
+0xC9E3	0x6444	# <CJK>
+0xC9E4	0x5C04	# <CJK>
+0xC9E5	0x6151	# <CJK>
+0xC9E6	0x6D89	# <CJK>
+0xC9E7	0x793E	# <CJK>
+0xC9E8	0x8BBE	# <CJK>
+0xC9E9	0x7837	# <CJK>
+0xC9EA	0x7533	# <CJK>
+0xC9EB	0x547B	# <CJK>
+0xC9EC	0x4F38	# <CJK>
+0xC9ED	0x8EAB	# <CJK>
+0xC9EE	0x6DF1	# <CJK>
+0xC9EF	0x5A20	# <CJK>
+0xC9F0	0x7EC5	# <CJK>
+0xC9F1	0x795E	# <CJK>
+0xC9F2	0x6C88	# <CJK>
+0xC9F3	0x5BA1	# <CJK>
+0xC9F4	0x5A76	# <CJK>
+0xC9F5	0x751A	# <CJK>
+0xC9F6	0x80BE	# <CJK>
+0xC9F7	0x614E	# <CJK>
+0xC9F8	0x6E17	# <CJK>
+0xC9F9	0x58F0	# <CJK>
+0xC9FA	0x751F	# <CJK>
+0xC9FB	0x7525	# <CJK>
+0xC9FC	0x7272	# <CJK>
+0xC9FD	0x5347	# <CJK>
+0xC9FE	0x7EF3	# <CJK>
+0xCAA1	0x7701	# <CJK>
+0xCAA2	0x76DB	# <CJK>
+0xCAA3	0x5269	# <CJK>
+0xCAA4	0x80DC	# <CJK>
+0xCAA5	0x5723	# <CJK>
+0xCAA6	0x5E08	# <CJK>
+0xCAA7	0x5931	# <CJK>
+0xCAA8	0x72EE	# <CJK>
+0xCAA9	0x65BD	# <CJK>
+0xCAAA	0x6E7F	# <CJK>
+0xCAAB	0x8BD7	# <CJK>
+0xCAAC	0x5C38	# <CJK>
+0xCAAD	0x8671	# <CJK>
+0xCAAE	0x5341	# <CJK>
+0xCAAF	0x77F3	# <CJK>
+0xCAB0	0x62FE	# <CJK>
+0xCAB1	0x65F6	# <CJK>
+0xCAB2	0x4EC0	# <CJK>
+0xCAB3	0x98DF	# <CJK>
+0xCAB4	0x8680	# <CJK>
+0xCAB5	0x5B9E	# <CJK>
+0xCAB6	0x8BC6	# <CJK>
+0xCAB7	0x53F2	# <CJK>
+0xCAB8	0x77E2	# <CJK>
+0xCAB9	0x4F7F	# <CJK>
+0xCABA	0x5C4E	# <CJK>
+0xCABB	0x9A76	# <CJK>
+0xCABC	0x59CB	# <CJK>
+0xCABD	0x5F0F	# <CJK>
+0xCABE	0x793A	# <CJK>
+0xCABF	0x58EB	# <CJK>
+0xCAC0	0x4E16	# <CJK>
+0xCAC1	0x67FF	# <CJK>
+0xCAC2	0x4E8B	# <CJK>
+0xCAC3	0x62ED	# <CJK>
+0xCAC4	0x8A93	# <CJK>
+0xCAC5	0x901D	# <CJK>
+0xCAC6	0x52BF	# <CJK>
+0xCAC7	0x662F	# <CJK>
+0xCAC8	0x55DC	# <CJK>
+0xCAC9	0x566C	# <CJK>
+0xCACA	0x9002	# <CJK>
+0xCACB	0x4ED5	# <CJK>
+0xCACC	0x4F8D	# <CJK>
+0xCACD	0x91CA	# <CJK>
+0xCACE	0x9970	# <CJK>
+0xCACF	0x6C0F	# <CJK>
+0xCAD0	0x5E02	# <CJK>
+0xCAD1	0x6043	# <CJK>
+0xCAD2	0x5BA4	# <CJK>
+0xCAD3	0x89C6	# <CJK>
+0xCAD4	0x8BD5	# <CJK>
+0xCAD5	0x6536	# <CJK>
+0xCAD6	0x624B	# <CJK>
+0xCAD7	0x9996	# <CJK>
+0xCAD8	0x5B88	# <CJK>
+0xCAD9	0x5BFF	# <CJK>
+0xCADA	0x6388	# <CJK>
+0xCADB	0x552E	# <CJK>
+0xCADC	0x53D7	# <CJK>
+0xCADD	0x7626	# <CJK>
+0xCADE	0x517D	# <CJK>
+0xCADF	0x852C	# <CJK>
+0xCAE0	0x67A2	# <CJK>
+0xCAE1	0x68B3	# <CJK>
+0xCAE2	0x6B8A	# <CJK>
+0xCAE3	0x6292	# <CJK>
+0xCAE4	0x8F93	# <CJK>
+0xCAE5	0x53D4	# <CJK>
+0xCAE6	0x8212	# <CJK>
+0xCAE7	0x6DD1	# <CJK>
+0xCAE8	0x758F	# <CJK>
+0xCAE9	0x4E66	# <CJK>
+0xCAEA	0x8D4E	# <CJK>
+0xCAEB	0x5B70	# <CJK>
+0xCAEC	0x719F	# <CJK>
+0xCAED	0x85AF	# <CJK>
+0xCAEE	0x6691	# <CJK>
+0xCAEF	0x66D9	# <CJK>
+0xCAF0	0x7F72	# <CJK>
+0xCAF1	0x8700	# <CJK>
+0xCAF2	0x9ECD	# <CJK>
+0xCAF3	0x9F20	# <CJK>
+0xCAF4	0x5C5E	# <CJK>
+0xCAF5	0x672F	# <CJK>
+0xCAF6	0x8FF0	# <CJK>
+0xCAF7	0x6811	# <CJK>
+0xCAF8	0x675F	# <CJK>
+0xCAF9	0x620D	# <CJK>
+0xCAFA	0x7AD6	# <CJK>
+0xCAFB	0x5885	# <CJK>
+0xCAFC	0x5EB6	# <CJK>
+0xCAFD	0x6570	# <CJK>
+0xCAFE	0x6F31	# <CJK>
+0xCBA1	0x6055	# <CJK>
+0xCBA2	0x5237	# <CJK>
+0xCBA3	0x800D	# <CJK>
+0xCBA4	0x6454	# <CJK>
+0xCBA5	0x8870	# <CJK>
+0xCBA6	0x7529	# <CJK>
+0xCBA7	0x5E05	# <CJK>
+0xCBA8	0x6813	# <CJK>
+0xCBA9	0x62F4	# <CJK>
+0xCBAA	0x971C	# <CJK>
+0xCBAB	0x53CC	# <CJK>
+0xCBAC	0x723D	# <CJK>
+0xCBAD	0x8C01	# <CJK>
+0xCBAE	0x6C34	# <CJK>
+0xCBAF	0x7761	# <CJK>
+0xCBB0	0x7A0E	# <CJK>
+0xCBB1	0x542E	# <CJK>
+0xCBB2	0x77AC	# <CJK>
+0xCBB3	0x987A	# <CJK>
+0xCBB4	0x821C	# <CJK>
+0xCBB5	0x8BF4	# <CJK>
+0xCBB6	0x7855	# <CJK>
+0xCBB7	0x6714	# <CJK>
+0xCBB8	0x70C1	# <CJK>
+0xCBB9	0x65AF	# <CJK>
+0xCBBA	0x6495	# <CJK>
+0xCBBB	0x5636	# <CJK>
+0xCBBC	0x601D	# <CJK>
+0xCBBD	0x79C1	# <CJK>
+0xCBBE	0x53F8	# <CJK>
+0xCBBF	0x4E1D	# <CJK>
+0xCBC0	0x6B7B	# <CJK>
+0xCBC1	0x8086	# <CJK>
+0xCBC2	0x5BFA	# <CJK>
+0xCBC3	0x55E3	# <CJK>
+0xCBC4	0x56DB	# <CJK>
+0xCBC5	0x4F3A	# <CJK>
+0xCBC6	0x4F3C	# <CJK>
+0xCBC7	0x9972	# <CJK>
+0xCBC8	0x5DF3	# <CJK>
+0xCBC9	0x677E	# <CJK>
+0xCBCA	0x8038	# <CJK>
+0xCBCB	0x6002	# <CJK>
+0xCBCC	0x9882	# <CJK>
+0xCBCD	0x9001	# <CJK>
+0xCBCE	0x5B8B	# <CJK>
+0xCBCF	0x8BBC	# <CJK>
+0xCBD0	0x8BF5	# <CJK>
+0xCBD1	0x641C	# <CJK>
+0xCBD2	0x8258	# <CJK>
+0xCBD3	0x64DE	# <CJK>
+0xCBD4	0x55FD	# <CJK>
+0xCBD5	0x82CF	# <CJK>
+0xCBD6	0x9165	# <CJK>
+0xCBD7	0x4FD7	# <CJK>
+0xCBD8	0x7D20	# <CJK>
+0xCBD9	0x901F	# <CJK>
+0xCBDA	0x7C9F	# <CJK>
+0xCBDB	0x50F3	# <CJK>
+0xCBDC	0x5851	# <CJK>
+0xCBDD	0x6EAF	# <CJK>
+0xCBDE	0x5BBF	# <CJK>
+0xCBDF	0x8BC9	# <CJK>
+0xCBE0	0x8083	# <CJK>
+0xCBE1	0x9178	# <CJK>
+0xCBE2	0x849C	# <CJK>
+0xCBE3	0x7B97	# <CJK>
+0xCBE4	0x867D	# <CJK>
+0xCBE5	0x968B	# <CJK>
+0xCBE6	0x968F	# <CJK>
+0xCBE7	0x7EE5	# <CJK>
+0xCBE8	0x9AD3	# <CJK>
+0xCBE9	0x788E	# <CJK>
+0xCBEA	0x5C81	# <CJK>
+0xCBEB	0x7A57	# <CJK>
+0xCBEC	0x9042	# <CJK>
+0xCBED	0x96A7	# <CJK>
+0xCBEE	0x795F	# <CJK>
+0xCBEF	0x5B59	# <CJK>
+0xCBF0	0x635F	# <CJK>
+0xCBF1	0x7B0B	# <CJK>
+0xCBF2	0x84D1	# <CJK>
+0xCBF3	0x68AD	# <CJK>
+0xCBF4	0x5506	# <CJK>
+0xCBF5	0x7F29	# <CJK>
+0xCBF6	0x7410	# <CJK>
+0xCBF7	0x7D22	# <CJK>
+0xCBF8	0x9501	# <CJK>
+0xCBF9	0x6240	# <CJK>
+0xCBFA	0x584C	# <CJK>
+0xCBFB	0x4ED6	# <CJK>
+0xCBFC	0x5B83	# <CJK>
+0xCBFD	0x5979	# <CJK>
+0xCBFE	0x5854	# <CJK>
+0xCCA1	0x736D	# <CJK>
+0xCCA2	0x631E	# <CJK>
+0xCCA3	0x8E4B	# <CJK>
+0xCCA4	0x8E0F	# <CJK>
+0xCCA5	0x80CE	# <CJK>
+0xCCA6	0x82D4	# <CJK>
+0xCCA7	0x62AC	# <CJK>
+0xCCA8	0x53F0	# <CJK>
+0xCCA9	0x6CF0	# <CJK>
+0xCCAA	0x915E	# <CJK>
+0xCCAB	0x592A	# <CJK>
+0xCCAC	0x6001	# <CJK>
+0xCCAD	0x6C70	# <CJK>
+0xCCAE	0x574D	# <CJK>
+0xCCAF	0x644A	# <CJK>
+0xCCB0	0x8D2A	# <CJK>
+0xCCB1	0x762B	# <CJK>
+0xCCB2	0x6EE9	# <CJK>
+0xCCB3	0x575B	# <CJK>
+0xCCB4	0x6A80	# <CJK>
+0xCCB5	0x75F0	# <CJK>
+0xCCB6	0x6F6D	# <CJK>
+0xCCB7	0x8C2D	# <CJK>
+0xCCB8	0x8C08	# <CJK>
+0xCCB9	0x5766	# <CJK>
+0xCCBA	0x6BEF	# <CJK>
+0xCCBB	0x8892	# <CJK>
+0xCCBC	0x78B3	# <CJK>
+0xCCBD	0x63A2	# <CJK>
+0xCCBE	0x53F9	# <CJK>
+0xCCBF	0x70AD	# <CJK>
+0xCCC0	0x6C64	# <CJK>
+0xCCC1	0x5858	# <CJK>
+0xCCC2	0x642A	# <CJK>
+0xCCC3	0x5802	# <CJK>
+0xCCC4	0x68E0	# <CJK>
+0xCCC5	0x819B	# <CJK>
+0xCCC6	0x5510	# <CJK>
+0xCCC7	0x7CD6	# <CJK>
+0xCCC8	0x5018	# <CJK>
+0xCCC9	0x8EBA	# <CJK>
+0xCCCA	0x6DCC	# <CJK>
+0xCCCB	0x8D9F	# <CJK>
+0xCCCC	0x70EB	# <CJK>
+0xCCCD	0x638F	# <CJK>
+0xCCCE	0x6D9B	# <CJK>
+0xCCCF	0x6ED4	# <CJK>
+0xCCD0	0x7EE6	# <CJK>
+0xCCD1	0x8404	# <CJK>
+0xCCD2	0x6843	# <CJK>
+0xCCD3	0x9003	# <CJK>
+0xCCD4	0x6DD8	# <CJK>
+0xCCD5	0x9676	# <CJK>
+0xCCD6	0x8BA8	# <CJK>
+0xCCD7	0x5957	# <CJK>
+0xCCD8	0x7279	# <CJK>
+0xCCD9	0x85E4	# <CJK>
+0xCCDA	0x817E	# <CJK>
+0xCCDB	0x75BC	# <CJK>
+0xCCDC	0x8A8A	# <CJK>
+0xCCDD	0x68AF	# <CJK>
+0xCCDE	0x5254	# <CJK>
+0xCCDF	0x8E22	# <CJK>
+0xCCE0	0x9511	# <CJK>
+0xCCE1	0x63D0	# <CJK>
+0xCCE2	0x9898	# <CJK>
+0xCCE3	0x8E44	# <CJK>
+0xCCE4	0x557C	# <CJK>
+0xCCE5	0x4F53	# <CJK>
+0xCCE6	0x66FF	# <CJK>
+0xCCE7	0x568F	# <CJK>
+0xCCE8	0x60D5	# <CJK>
+0xCCE9	0x6D95	# <CJK>
+0xCCEA	0x5243	# <CJK>
+0xCCEB	0x5C49	# <CJK>
+0xCCEC	0x5929	# <CJK>
+0xCCED	0x6DFB	# <CJK>
+0xCCEE	0x586B	# <CJK>
+0xCCEF	0x7530	# <CJK>
+0xCCF0	0x751C	# <CJK>
+0xCCF1	0x606C	# <CJK>
+0xCCF2	0x8214	# <CJK>
+0xCCF3	0x8146	# <CJK>
+0xCCF4	0x6311	# <CJK>
+0xCCF5	0x6761	# <CJK>
+0xCCF6	0x8FE2	# <CJK>
+0xCCF7	0x773A	# <CJK>
+0xCCF8	0x8DF3	# <CJK>
+0xCCF9	0x8D34	# <CJK>
+0xCCFA	0x94C1	# <CJK>
+0xCCFB	0x5E16	# <CJK>
+0xCCFC	0x5385	# <CJK>
+0xCCFD	0x542C	# <CJK>
+0xCCFE	0x70C3	# <CJK>
+0xCDA1	0x6C40	# <CJK>
+0xCDA2	0x5EF7	# <CJK>
+0xCDA3	0x505C	# <CJK>
+0xCDA4	0x4EAD	# <CJK>
+0xCDA5	0x5EAD	# <CJK>
+0xCDA6	0x633A	# <CJK>
+0xCDA7	0x8247	# <CJK>
+0xCDA8	0x901A	# <CJK>
+0xCDA9	0x6850	# <CJK>
+0xCDAA	0x916E	# <CJK>
+0xCDAB	0x77B3	# <CJK>
+0xCDAC	0x540C	# <CJK>
+0xCDAD	0x94DC	# <CJK>
+0xCDAE	0x5F64	# <CJK>
+0xCDAF	0x7AE5	# <CJK>
+0xCDB0	0x6876	# <CJK>
+0xCDB1	0x6345	# <CJK>
+0xCDB2	0x7B52	# <CJK>
+0xCDB3	0x7EDF	# <CJK>
+0xCDB4	0x75DB	# <CJK>
+0xCDB5	0x5077	# <CJK>
+0xCDB6	0x6295	# <CJK>
+0xCDB7	0x5934	# <CJK>
+0xCDB8	0x900F	# <CJK>
+0xCDB9	0x51F8	# <CJK>
+0xCDBA	0x79C3	# <CJK>
+0xCDBB	0x7A81	# <CJK>
+0xCDBC	0x56FE	# <CJK>
+0xCDBD	0x5F92	# <CJK>
+0xCDBE	0x9014	# <CJK>
+0xCDBF	0x6D82	# <CJK>
+0xCDC0	0x5C60	# <CJK>
+0xCDC1	0x571F	# <CJK>
+0xCDC2	0x5410	# <CJK>
+0xCDC3	0x5154	# <CJK>
+0xCDC4	0x6E4D	# <CJK>
+0xCDC5	0x56E2	# <CJK>
+0xCDC6	0x63A8	# <CJK>
+0xCDC7	0x9893	# <CJK>
+0xCDC8	0x817F	# <CJK>
+0xCDC9	0x8715	# <CJK>
+0xCDCA	0x892A	# <CJK>
+0xCDCB	0x9000	# <CJK>
+0xCDCC	0x541E	# <CJK>
+0xCDCD	0x5C6F	# <CJK>
+0xCDCE	0x81C0	# <CJK>
+0xCDCF	0x62D6	# <CJK>
+0xCDD0	0x6258	# <CJK>
+0xCDD1	0x8131	# <CJK>
+0xCDD2	0x9E35	# <CJK>
+0xCDD3	0x9640	# <CJK>
+0xCDD4	0x9A6E	# <CJK>
+0xCDD5	0x9A7C	# <CJK>
+0xCDD6	0x692D	# <CJK>
+0xCDD7	0x59A5	# <CJK>
+0xCDD8	0x62D3	# <CJK>
+0xCDD9	0x553E	# <CJK>
+0xCDDA	0x6316	# <CJK>
+0xCDDB	0x54C7	# <CJK>
+0xCDDC	0x86D9	# <CJK>
+0xCDDD	0x6D3C	# <CJK>
+0xCDDE	0x5A03	# <CJK>
+0xCDDF	0x74E6	# <CJK>
+0xCDE0	0x889C	# <CJK>
+0xCDE1	0x6B6A	# <CJK>
+0xCDE2	0x5916	# <CJK>
+0xCDE3	0x8C4C	# <CJK>
+0xCDE4	0x5F2F	# <CJK>
+0xCDE5	0x6E7E	# <CJK>
+0xCDE6	0x73A9	# <CJK>
+0xCDE7	0x987D	# <CJK>
+0xCDE8	0x4E38	# <CJK>
+0xCDE9	0x70F7	# <CJK>
+0xCDEA	0x5B8C	# <CJK>
+0xCDEB	0x7897	# <CJK>
+0xCDEC	0x633D	# <CJK>
+0xCDED	0x665A	# <CJK>
+0xCDEE	0x7696	# <CJK>
+0xCDEF	0x60CB	# <CJK>
+0xCDF0	0x5B9B	# <CJK>
+0xCDF1	0x5A49	# <CJK>
+0xCDF2	0x4E07	# <CJK>
+0xCDF3	0x8155	# <CJK>
+0xCDF4	0x6C6A	# <CJK>
+0xCDF5	0x738B	# <CJK>
+0xCDF6	0x4EA1	# <CJK>
+0xCDF7	0x6789	# <CJK>
+0xCDF8	0x7F51	# <CJK>
+0xCDF9	0x5F80	# <CJK>
+0xCDFA	0x65FA	# <CJK>
+0xCDFB	0x671B	# <CJK>
+0xCDFC	0x5FD8	# <CJK>
+0xCDFD	0x5984	# <CJK>
+0xCDFE	0x5A01	# <CJK>
+0xCEA1	0x5DCD	# <CJK>
+0xCEA2	0x5FAE	# <CJK>
+0xCEA3	0x5371	# <CJK>
+0xCEA4	0x97E6	# <CJK>
+0xCEA5	0x8FDD	# <CJK>
+0xCEA6	0x6845	# <CJK>
+0xCEA7	0x56F4	# <CJK>
+0xCEA8	0x552F	# <CJK>
+0xCEA9	0x60DF	# <CJK>
+0xCEAA	0x4E3A	# <CJK>
+0xCEAB	0x6F4D	# <CJK>
+0xCEAC	0x7EF4	# <CJK>
+0xCEAD	0x82C7	# <CJK>
+0xCEAE	0x840E	# <CJK>
+0xCEAF	0x59D4	# <CJK>
+0xCEB0	0x4F1F	# <CJK>
+0xCEB1	0x4F2A	# <CJK>
+0xCEB2	0x5C3E	# <CJK>
+0xCEB3	0x7EAC	# <CJK>
+0xCEB4	0x672A	# <CJK>
+0xCEB5	0x851A	# <CJK>
+0xCEB6	0x5473	# <CJK>
+0xCEB7	0x754F	# <CJK>
+0xCEB8	0x80C3	# <CJK>
+0xCEB9	0x5582	# <CJK>
+0xCEBA	0x9B4F	# <CJK>
+0xCEBB	0x4F4D	# <CJK>
+0xCEBC	0x6E2D	# <CJK>
+0xCEBD	0x8C13	# <CJK>
+0xCEBE	0x5C09	# <CJK>
+0xCEBF	0x6170	# <CJK>
+0xCEC0	0x536B	# <CJK>
+0xCEC1	0x761F	# <CJK>
+0xCEC2	0x6E29	# <CJK>
+0xCEC3	0x868A	# <CJK>
+0xCEC4	0x6587	# <CJK>
+0xCEC5	0x95FB	# <CJK>
+0xCEC6	0x7EB9	# <CJK>
+0xCEC7	0x543B	# <CJK>
+0xCEC8	0x7A33	# <CJK>
+0xCEC9	0x7D0A	# <CJK>
+0xCECA	0x95EE	# <CJK>
+0xCECB	0x55E1	# <CJK>
+0xCECC	0x7FC1	# <CJK>
+0xCECD	0x74EE	# <CJK>
+0xCECE	0x631D	# <CJK>
+0xCECF	0x8717	# <CJK>
+0xCED0	0x6DA1	# <CJK>
+0xCED1	0x7A9D	# <CJK>
+0xCED2	0x6211	# <CJK>
+0xCED3	0x65A1	# <CJK>
+0xCED4	0x5367	# <CJK>
+0xCED5	0x63E1	# <CJK>
+0xCED6	0x6C83	# <CJK>
+0xCED7	0x5DEB	# <CJK>
+0xCED8	0x545C	# <CJK>
+0xCED9	0x94A8	# <CJK>
+0xCEDA	0x4E4C	# <CJK>
+0xCEDB	0x6C61	# <CJK>
+0xCEDC	0x8BEC	# <CJK>
+0xCEDD	0x5C4B	# <CJK>
+0xCEDE	0x65E0	# <CJK>
+0xCEDF	0x829C	# <CJK>
+0xCEE0	0x68A7	# <CJK>
+0xCEE1	0x543E	# <CJK>
+0xCEE2	0x5434	# <CJK>
+0xCEE3	0x6BCB	# <CJK>
+0xCEE4	0x6B66	# <CJK>
+0xCEE5	0x4E94	# <CJK>
+0xCEE6	0x6342	# <CJK>
+0xCEE7	0x5348	# <CJK>
+0xCEE8	0x821E	# <CJK>
+0xCEE9	0x4F0D	# <CJK>
+0xCEEA	0x4FAE	# <CJK>
+0xCEEB	0x575E	# <CJK>
+0xCEEC	0x620A	# <CJK>
+0xCEED	0x96FE	# <CJK>
+0xCEEE	0x6664	# <CJK>
+0xCEEF	0x7269	# <CJK>
+0xCEF0	0x52FF	# <CJK>
+0xCEF1	0x52A1	# <CJK>
+0xCEF2	0x609F	# <CJK>
+0xCEF3	0x8BEF	# <CJK>
+0xCEF4	0x6614	# <CJK>
+0xCEF5	0x7199	# <CJK>
+0xCEF6	0x6790	# <CJK>
+0xCEF7	0x897F	# <CJK>
+0xCEF8	0x7852	# <CJK>
+0xCEF9	0x77FD	# <CJK>
+0xCEFA	0x6670	# <CJK>
+0xCEFB	0x563B	# <CJK>
+0xCEFC	0x5438	# <CJK>
+0xCEFD	0x9521	# <CJK>
+0xCEFE	0x727A	# <CJK>
+0xCFA1	0x7A00	# <CJK>
+0xCFA2	0x606F	# <CJK>
+0xCFA3	0x5E0C	# <CJK>
+0xCFA4	0x6089	# <CJK>
+0xCFA5	0x819D	# <CJK>
+0xCFA6	0x5915	# <CJK>
+0xCFA7	0x60DC	# <CJK>
+0xCFA8	0x7184	# <CJK>
+0xCFA9	0x70EF	# <CJK>
+0xCFAA	0x6EAA	# <CJK>
+0xCFAB	0x6C50	# <CJK>
+0xCFAC	0x7280	# <CJK>
+0xCFAD	0x6A84	# <CJK>
+0xCFAE	0x88AD	# <CJK>
+0xCFAF	0x5E2D	# <CJK>
+0xCFB0	0x4E60	# <CJK>
+0xCFB1	0x5AB3	# <CJK>
+0xCFB2	0x559C	# <CJK>
+0xCFB3	0x94E3	# <CJK>
+0xCFB4	0x6D17	# <CJK>
+0xCFB5	0x7CFB	# <CJK>
+0xCFB6	0x9699	# <CJK>
+0xCFB7	0x620F	# <CJK>
+0xCFB8	0x7EC6	# <CJK>
+0xCFB9	0x778E	# <CJK>
+0xCFBA	0x867E	# <CJK>
+0xCFBB	0x5323	# <CJK>
+0xCFBC	0x971E	# <CJK>
+0xCFBD	0x8F96	# <CJK>
+0xCFBE	0x6687	# <CJK>
+0xCFBF	0x5CE1	# <CJK>
+0xCFC0	0x4FA0	# <CJK>
+0xCFC1	0x72ED	# <CJK>
+0xCFC2	0x4E0B	# <CJK>
+0xCFC3	0x53A6	# <CJK>
+0xCFC4	0x590F	# <CJK>
+0xCFC5	0x5413	# <CJK>
+0xCFC6	0x6380	# <CJK>
+0xCFC7	0x9528	# <CJK>
+0xCFC8	0x5148	# <CJK>
+0xCFC9	0x4ED9	# <CJK>
+0xCFCA	0x9C9C	# <CJK>
+0xCFCB	0x7EA4	# <CJK>
+0xCFCC	0x54B8	# <CJK>
+0xCFCD	0x8D24	# <CJK>
+0xCFCE	0x8854	# <CJK>
+0xCFCF	0x8237	# <CJK>
+0xCFD0	0x95F2	# <CJK>
+0xCFD1	0x6D8E	# <CJK>
+0xCFD2	0x5F26	# <CJK>
+0xCFD3	0x5ACC	# <CJK>
+0xCFD4	0x663E	# <CJK>
+0xCFD5	0x9669	# <CJK>
+0xCFD6	0x73B0	# <CJK>
+0xCFD7	0x732E	# <CJK>
+0xCFD8	0x53BF	# <CJK>
+0xCFD9	0x817A	# <CJK>
+0xCFDA	0x9985	# <CJK>
+0xCFDB	0x7FA1	# <CJK>
+0xCFDC	0x5BAA	# <CJK>
+0xCFDD	0x9677	# <CJK>
+0xCFDE	0x9650	# <CJK>
+0xCFDF	0x7EBF	# <CJK>
+0xCFE0	0x76F8	# <CJK>
+0xCFE1	0x53A2	# <CJK>
+0xCFE2	0x9576	# <CJK>
+0xCFE3	0x9999	# <CJK>
+0xCFE4	0x7BB1	# <CJK>
+0xCFE5	0x8944	# <CJK>
+0xCFE6	0x6E58	# <CJK>
+0xCFE7	0x4E61	# <CJK>
+0xCFE8	0x7FD4	# <CJK>
+0xCFE9	0x7965	# <CJK>
+0xCFEA	0x8BE6	# <CJK>
+0xCFEB	0x60F3	# <CJK>
+0xCFEC	0x54CD	# <CJK>
+0xCFED	0x4EAB	# <CJK>
+0xCFEE	0x9879	# <CJK>
+0xCFEF	0x5DF7	# <CJK>
+0xCFF0	0x6A61	# <CJK>
+0xCFF1	0x50CF	# <CJK>
+0xCFF2	0x5411	# <CJK>
+0xCFF3	0x8C61	# <CJK>
+0xCFF4	0x8427	# <CJK>
+0xCFF5	0x785D	# <CJK>
+0xCFF6	0x9704	# <CJK>
+0xCFF7	0x524A	# <CJK>
+0xCFF8	0x54EE	# <CJK>
+0xCFF9	0x56A3	# <CJK>
+0xCFFA	0x9500	# <CJK>
+0xCFFB	0x6D88	# <CJK>
+0xCFFC	0x5BB5	# <CJK>
+0xCFFD	0x6DC6	# <CJK>
+0xCFFE	0x6653	# <CJK>
+0xD0A1	0x5C0F	# <CJK>
+0xD0A2	0x5B5D	# <CJK>
+0xD0A3	0x6821	# <CJK>
+0xD0A4	0x8096	# <CJK>
+0xD0A5	0x5578	# <CJK>
+0xD0A6	0x7B11	# <CJK>
+0xD0A7	0x6548	# <CJK>
+0xD0A8	0x6954	# <CJK>
+0xD0A9	0x4E9B	# <CJK>
+0xD0AA	0x6B47	# <CJK>
+0xD0AB	0x874E	# <CJK>
+0xD0AC	0x978B	# <CJK>
+0xD0AD	0x534F	# <CJK>
+0xD0AE	0x631F	# <CJK>
+0xD0AF	0x643A	# <CJK>
+0xD0B0	0x90AA	# <CJK>
+0xD0B1	0x659C	# <CJK>
+0xD0B2	0x80C1	# <CJK>
+0xD0B3	0x8C10	# <CJK>
+0xD0B4	0x5199	# <CJK>
+0xD0B5	0x68B0	# <CJK>
+0xD0B6	0x5378	# <CJK>
+0xD0B7	0x87F9	# <CJK>
+0xD0B8	0x61C8	# <CJK>
+0xD0B9	0x6CC4	# <CJK>
+0xD0BA	0x6CFB	# <CJK>
+0xD0BB	0x8C22	# <CJK>
+0xD0BC	0x5C51	# <CJK>
+0xD0BD	0x85AA	# <CJK>
+0xD0BE	0x82AF	# <CJK>
+0xD0BF	0x950C	# <CJK>
+0xD0C0	0x6B23	# <CJK>
+0xD0C1	0x8F9B	# <CJK>
+0xD0C2	0x65B0	# <CJK>
+0xD0C3	0x5FFB	# <CJK>
+0xD0C4	0x5FC3	# <CJK>
+0xD0C5	0x4FE1	# <CJK>
+0xD0C6	0x8845	# <CJK>
+0xD0C7	0x661F	# <CJK>
+0xD0C8	0x8165	# <CJK>
+0xD0C9	0x7329	# <CJK>
+0xD0CA	0x60FA	# <CJK>
+0xD0CB	0x5174	# <CJK>
+0xD0CC	0x5211	# <CJK>
+0xD0CD	0x578B	# <CJK>
+0xD0CE	0x5F62	# <CJK>
+0xD0CF	0x90A2	# <CJK>
+0xD0D0	0x884C	# <CJK>
+0xD0D1	0x9192	# <CJK>
+0xD0D2	0x5E78	# <CJK>
+0xD0D3	0x674F	# <CJK>
+0xD0D4	0x6027	# <CJK>
+0xD0D5	0x59D3	# <CJK>
+0xD0D6	0x5144	# <CJK>
+0xD0D7	0x51F6	# <CJK>
+0xD0D8	0x80F8	# <CJK>
+0xD0D9	0x5308	# <CJK>
+0xD0DA	0x6C79	# <CJK>
+0xD0DB	0x96C4	# <CJK>
+0xD0DC	0x718A	# <CJK>
+0xD0DD	0x4F11	# <CJK>
+0xD0DE	0x4FEE	# <CJK>
+0xD0DF	0x7F9E	# <CJK>
+0xD0E0	0x673D	# <CJK>
+0xD0E1	0x55C5	# <CJK>
+0xD0E2	0x9508	# <CJK>
+0xD0E3	0x79C0	# <CJK>
+0xD0E4	0x8896	# <CJK>
+0xD0E5	0x7EE3	# <CJK>
+0xD0E6	0x589F	# <CJK>
+0xD0E7	0x620C	# <CJK>
+0xD0E8	0x9700	# <CJK>
+0xD0E9	0x865A	# <CJK>
+0xD0EA	0x5618	# <CJK>
+0xD0EB	0x987B	# <CJK>
+0xD0EC	0x5F90	# <CJK>
+0xD0ED	0x8BB8	# <CJK>
+0xD0EE	0x84C4	# <CJK>
+0xD0EF	0x9157	# <CJK>
+0xD0F0	0x53D9	# <CJK>
+0xD0F1	0x65ED	# <CJK>
+0xD0F2	0x5E8F	# <CJK>
+0xD0F3	0x755C	# <CJK>
+0xD0F4	0x6064	# <CJK>
+0xD0F5	0x7D6E	# <CJK>
+0xD0F6	0x5A7F	# <CJK>
+0xD0F7	0x7EEA	# <CJK>
+0xD0F8	0x7EED	# <CJK>
+0xD0F9	0x8F69	# <CJK>
+0xD0FA	0x55A7	# <CJK>
+0xD0FB	0x5BA3	# <CJK>
+0xD0FC	0x60AC	# <CJK>
+0xD0FD	0x65CB	# <CJK>
+0xD0FE	0x7384	# <CJK>
+0xD1A1	0x9009	# <CJK>
+0xD1A2	0x7663	# <CJK>
+0xD1A3	0x7729	# <CJK>
+0xD1A4	0x7EDA	# <CJK>
+0xD1A5	0x9774	# <CJK>
+0xD1A6	0x859B	# <CJK>
+0xD1A7	0x5B66	# <CJK>
+0xD1A8	0x7A74	# <CJK>
+0xD1A9	0x96EA	# <CJK>
+0xD1AA	0x8840	# <CJK>
+0xD1AB	0x52CB	# <CJK>
+0xD1AC	0x718F	# <CJK>
+0xD1AD	0x5FAA	# <CJK>
+0xD1AE	0x65EC	# <CJK>
+0xD1AF	0x8BE2	# <CJK>
+0xD1B0	0x5BFB	# <CJK>
+0xD1B1	0x9A6F	# <CJK>
+0xD1B2	0x5DE1	# <CJK>
+0xD1B3	0x6B89	# <CJK>
+0xD1B4	0x6C5B	# <CJK>
+0xD1B5	0x8BAD	# <CJK>
+0xD1B6	0x8BAF	# <CJK>
+0xD1B7	0x900A	# <CJK>
+0xD1B8	0x8FC5	# <CJK>
+0xD1B9	0x538B	# <CJK>
+0xD1BA	0x62BC	# <CJK>
+0xD1BB	0x9E26	# <CJK>
+0xD1BC	0x9E2D	# <CJK>
+0xD1BD	0x5440	# <CJK>
+0xD1BE	0x4E2B	# <CJK>
+0xD1BF	0x82BD	# <CJK>
+0xD1C0	0x7259	# <CJK>
+0xD1C1	0x869C	# <CJK>
+0xD1C2	0x5D16	# <CJK>
+0xD1C3	0x8859	# <CJK>
+0xD1C4	0x6DAF	# <CJK>
+0xD1C5	0x96C5	# <CJK>
+0xD1C6	0x54D1	# <CJK>
+0xD1C7	0x4E9A	# <CJK>
+0xD1C8	0x8BB6	# <CJK>
+0xD1C9	0x7109	# <CJK>
+0xD1CA	0x54BD	# <CJK>
+0xD1CB	0x9609	# <CJK>
+0xD1CC	0x70DF	# <CJK>
+0xD1CD	0x6DF9	# <CJK>
+0xD1CE	0x76D0	# <CJK>
+0xD1CF	0x4E25	# <CJK>
+0xD1D0	0x7814	# <CJK>
+0xD1D1	0x8712	# <CJK>
+0xD1D2	0x5CA9	# <CJK>
+0xD1D3	0x5EF6	# <CJK>
+0xD1D4	0x8A00	# <CJK>
+0xD1D5	0x989C	# <CJK>
+0xD1D6	0x960E	# <CJK>
+0xD1D7	0x708E	# <CJK>
+0xD1D8	0x6CBF	# <CJK>
+0xD1D9	0x5944	# <CJK>
+0xD1DA	0x63A9	# <CJK>
+0xD1DB	0x773C	# <CJK>
+0xD1DC	0x884D	# <CJK>
+0xD1DD	0x6F14	# <CJK>
+0xD1DE	0x8273	# <CJK>
+0xD1DF	0x5830	# <CJK>
+0xD1E0	0x71D5	# <CJK>
+0xD1E1	0x538C	# <CJK>
+0xD1E2	0x781A	# <CJK>
+0xD1E3	0x96C1	# <CJK>
+0xD1E4	0x5501	# <CJK>
+0xD1E5	0x5F66	# <CJK>
+0xD1E6	0x7130	# <CJK>
+0xD1E7	0x5BB4	# <CJK>
+0xD1E8	0x8C1A	# <CJK>
+0xD1E9	0x9A8C	# <CJK>
+0xD1EA	0x6B83	# <CJK>
+0xD1EB	0x592E	# <CJK>
+0xD1EC	0x9E2F	# <CJK>
+0xD1ED	0x79E7	# <CJK>
+0xD1EE	0x6768	# <CJK>
+0xD1EF	0x626C	# <CJK>
+0xD1F0	0x4F6F	# <CJK>
+0xD1F1	0x75A1	# <CJK>
+0xD1F2	0x7F8A	# <CJK>
+0xD1F3	0x6D0B	# <CJK>
+0xD1F4	0x9633	# <CJK>
+0xD1F5	0x6C27	# <CJK>
+0xD1F6	0x4EF0	# <CJK>
+0xD1F7	0x75D2	# <CJK>
+0xD1F8	0x517B	# <CJK>
+0xD1F9	0x6837	# <CJK>
+0xD1FA	0x6F3E	# <CJK>
+0xD1FB	0x9080	# <CJK>
+0xD1FC	0x8170	# <CJK>
+0xD1FD	0x5996	# <CJK>
+0xD1FE	0x7476	# <CJK>
+0xD2A1	0x6447	# <CJK>
+0xD2A2	0x5C27	# <CJK>
+0xD2A3	0x9065	# <CJK>
+0xD2A4	0x7A91	# <CJK>
+0xD2A5	0x8C23	# <CJK>
+0xD2A6	0x59DA	# <CJK>
+0xD2A7	0x54AC	# <CJK>
+0xD2A8	0x8200	# <CJK>
+0xD2A9	0x836F	# <CJK>
+0xD2AA	0x8981	# <CJK>
+0xD2AB	0x8000	# <CJK>
+0xD2AC	0x6930	# <CJK>
+0xD2AD	0x564E	# <CJK>
+0xD2AE	0x8036	# <CJK>
+0xD2AF	0x7237	# <CJK>
+0xD2B0	0x91CE	# <CJK>
+0xD2B1	0x51B6	# <CJK>
+0xD2B2	0x4E5F	# <CJK>
+0xD2B3	0x9875	# <CJK>
+0xD2B4	0x6396	# <CJK>
+0xD2B5	0x4E1A	# <CJK>
+0xD2B6	0x53F6	# <CJK>
+0xD2B7	0x66F3	# <CJK>
+0xD2B8	0x814B	# <CJK>
+0xD2B9	0x591C	# <CJK>
+0xD2BA	0x6DB2	# <CJK>
+0xD2BB	0x4E00	# <CJK>
+0xD2BC	0x58F9	# <CJK>
+0xD2BD	0x533B	# <CJK>
+0xD2BE	0x63D6	# <CJK>
+0xD2BF	0x94F1	# <CJK>
+0xD2C0	0x4F9D	# <CJK>
+0xD2C1	0x4F0A	# <CJK>
+0xD2C2	0x8863	# <CJK>
+0xD2C3	0x9890	# <CJK>
+0xD2C4	0x5937	# <CJK>
+0xD2C5	0x9057	# <CJK>
+0xD2C6	0x79FB	# <CJK>
+0xD2C7	0x4EEA	# <CJK>
+0xD2C8	0x80F0	# <CJK>
+0xD2C9	0x7591	# <CJK>
+0xD2CA	0x6C82	# <CJK>
+0xD2CB	0x5B9C	# <CJK>
+0xD2CC	0x59E8	# <CJK>
+0xD2CD	0x5F5D	# <CJK>
+0xD2CE	0x6905	# <CJK>
+0xD2CF	0x8681	# <CJK>
+0xD2D0	0x501A	# <CJK>
+0xD2D1	0x5DF2	# <CJK>
+0xD2D2	0x4E59	# <CJK>
+0xD2D3	0x77E3	# <CJK>
+0xD2D4	0x4EE5	# <CJK>
+0xD2D5	0x827A	# <CJK>
+0xD2D6	0x6291	# <CJK>
+0xD2D7	0x6613	# <CJK>
+0xD2D8	0x9091	# <CJK>
+0xD2D9	0x5C79	# <CJK>
+0xD2DA	0x4EBF	# <CJK>
+0xD2DB	0x5F79	# <CJK>
+0xD2DC	0x81C6	# <CJK>
+0xD2DD	0x9038	# <CJK>
+0xD2DE	0x8084	# <CJK>
+0xD2DF	0x75AB	# <CJK>
+0xD2E0	0x4EA6	# <CJK>
+0xD2E1	0x88D4	# <CJK>
+0xD2E2	0x610F	# <CJK>
+0xD2E3	0x6BC5	# <CJK>
+0xD2E4	0x5FC6	# <CJK>
+0xD2E5	0x4E49	# <CJK>
+0xD2E6	0x76CA	# <CJK>
+0xD2E7	0x6EA2	# <CJK>
+0xD2E8	0x8BE3	# <CJK>
+0xD2E9	0x8BAE	# <CJK>
+0xD2EA	0x8C0A	# <CJK>
+0xD2EB	0x8BD1	# <CJK>
+0xD2EC	0x5F02	# <CJK>
+0xD2ED	0x7FFC	# <CJK>
+0xD2EE	0x7FCC	# <CJK>
+0xD2EF	0x7ECE	# <CJK>
+0xD2F0	0x8335	# <CJK>
+0xD2F1	0x836B	# <CJK>
+0xD2F2	0x56E0	# <CJK>
+0xD2F3	0x6BB7	# <CJK>
+0xD2F4	0x97F3	# <CJK>
+0xD2F5	0x9634	# <CJK>
+0xD2F6	0x59FB	# <CJK>
+0xD2F7	0x541F	# <CJK>
+0xD2F8	0x94F6	# <CJK>
+0xD2F9	0x6DEB	# <CJK>
+0xD2FA	0x5BC5	# <CJK>
+0xD2FB	0x996E	# <CJK>
+0xD2FC	0x5C39	# <CJK>
+0xD2FD	0x5F15	# <CJK>
+0xD2FE	0x9690	# <CJK>
+0xD3A1	0x5370	# <CJK>
+0xD3A2	0x82F1	# <CJK>
+0xD3A3	0x6A31	# <CJK>
+0xD3A4	0x5A74	# <CJK>
+0xD3A5	0x9E70	# <CJK>
+0xD3A6	0x5E94	# <CJK>
+0xD3A7	0x7F28	# <CJK>
+0xD3A8	0x83B9	# <CJK>
+0xD3A9	0x8424	# <CJK>
+0xD3AA	0x8425	# <CJK>
+0xD3AB	0x8367	# <CJK>
+0xD3AC	0x8747	# <CJK>
+0xD3AD	0x8FCE	# <CJK>
+0xD3AE	0x8D62	# <CJK>
+0xD3AF	0x76C8	# <CJK>
+0xD3B0	0x5F71	# <CJK>
+0xD3B1	0x9896	# <CJK>
+0xD3B2	0x786C	# <CJK>
+0xD3B3	0x6620	# <CJK>
+0xD3B4	0x54DF	# <CJK>
+0xD3B5	0x62E5	# <CJK>
+0xD3B6	0x4F63	# <CJK>
+0xD3B7	0x81C3	# <CJK>
+0xD3B8	0x75C8	# <CJK>
+0xD3B9	0x5EB8	# <CJK>
+0xD3BA	0x96CD	# <CJK>
+0xD3BB	0x8E0A	# <CJK>
+0xD3BC	0x86F9	# <CJK>
+0xD3BD	0x548F	# <CJK>
+0xD3BE	0x6CF3	# <CJK>
+0xD3BF	0x6D8C	# <CJK>
+0xD3C0	0x6C38	# <CJK>
+0xD3C1	0x607F	# <CJK>
+0xD3C2	0x52C7	# <CJK>
+0xD3C3	0x7528	# <CJK>
+0xD3C4	0x5E7D	# <CJK>
+0xD3C5	0x4F18	# <CJK>
+0xD3C6	0x60A0	# <CJK>
+0xD3C7	0x5FE7	# <CJK>
+0xD3C8	0x5C24	# <CJK>
+0xD3C9	0x7531	# <CJK>
+0xD3CA	0x90AE	# <CJK>
+0xD3CB	0x94C0	# <CJK>
+0xD3CC	0x72B9	# <CJK>
+0xD3CD	0x6CB9	# <CJK>
+0xD3CE	0x6E38	# <CJK>
+0xD3CF	0x9149	# <CJK>
+0xD3D0	0x6709	# <CJK>
+0xD3D1	0x53CB	# <CJK>
+0xD3D2	0x53F3	# <CJK>
+0xD3D3	0x4F51	# <CJK>
+0xD3D4	0x91C9	# <CJK>
+0xD3D5	0x8BF1	# <CJK>
+0xD3D6	0x53C8	# <CJK>
+0xD3D7	0x5E7C	# <CJK>
+0xD3D8	0x8FC2	# <CJK>
+0xD3D9	0x6DE4	# <CJK>
+0xD3DA	0x4E8E	# <CJK>
+0xD3DB	0x76C2	# <CJK>
+0xD3DC	0x6986	# <CJK>
+0xD3DD	0x865E	# <CJK>
+0xD3DE	0x611A	# <CJK>
+0xD3DF	0x8206	# <CJK>
+0xD3E0	0x4F59	# <CJK>
+0xD3E1	0x4FDE	# <CJK>
+0xD3E2	0x903E	# <CJK>
+0xD3E3	0x9C7C	# <CJK>
+0xD3E4	0x6109	# <CJK>
+0xD3E5	0x6E1D	# <CJK>
+0xD3E6	0x6E14	# <CJK>
+0xD3E7	0x9685	# <CJK>
+0xD3E8	0x4E88	# <CJK>
+0xD3E9	0x5A31	# <CJK>
+0xD3EA	0x96E8	# <CJK>
+0xD3EB	0x4E0E	# <CJK>
+0xD3EC	0x5C7F	# <CJK>
+0xD3ED	0x79B9	# <CJK>
+0xD3EE	0x5B87	# <CJK>
+0xD3EF	0x8BED	# <CJK>
+0xD3F0	0x7FBD	# <CJK>
+0xD3F1	0x7389	# <CJK>
+0xD3F2	0x57DF	# <CJK>
+0xD3F3	0x828B	# <CJK>
+0xD3F4	0x90C1	# <CJK>
+0xD3F5	0x5401	# <CJK>
+0xD3F6	0x9047	# <CJK>
+0xD3F7	0x55BB	# <CJK>
+0xD3F8	0x5CEA	# <CJK>
+0xD3F9	0x5FA1	# <CJK>
+0xD3FA	0x6108	# <CJK>
+0xD3FB	0x6B32	# <CJK>
+0xD3FC	0x72F1	# <CJK>
+0xD3FD	0x80B2	# <CJK>
+0xD3FE	0x8A89	# <CJK>
+0xD4A1	0x6D74	# <CJK>
+0xD4A2	0x5BD3	# <CJK>
+0xD4A3	0x88D5	# <CJK>
+0xD4A4	0x9884	# <CJK>
+0xD4A5	0x8C6B	# <CJK>
+0xD4A6	0x9A6D	# <CJK>
+0xD4A7	0x9E33	# <CJK>
+0xD4A8	0x6E0A	# <CJK>
+0xD4A9	0x51A4	# <CJK>
+0xD4AA	0x5143	# <CJK>
+0xD4AB	0x57A3	# <CJK>
+0xD4AC	0x8881	# <CJK>
+0xD4AD	0x539F	# <CJK>
+0xD4AE	0x63F4	# <CJK>
+0xD4AF	0x8F95	# <CJK>
+0xD4B0	0x56ED	# <CJK>
+0xD4B1	0x5458	# <CJK>
+0xD4B2	0x5706	# <CJK>
+0xD4B3	0x733F	# <CJK>
+0xD4B4	0x6E90	# <CJK>
+0xD4B5	0x7F18	# <CJK>
+0xD4B6	0x8FDC	# <CJK>
+0xD4B7	0x82D1	# <CJK>
+0xD4B8	0x613F	# <CJK>
+0xD4B9	0x6028	# <CJK>
+0xD4BA	0x9662	# <CJK>
+0xD4BB	0x66F0	# <CJK>
+0xD4BC	0x7EA6	# <CJK>
+0xD4BD	0x8D8A	# <CJK>
+0xD4BE	0x8DC3	# <CJK>
+0xD4BF	0x94A5	# <CJK>
+0xD4C0	0x5CB3	# <CJK>
+0xD4C1	0x7CA4	# <CJK>
+0xD4C2	0x6708	# <CJK>
+0xD4C3	0x60A6	# <CJK>
+0xD4C4	0x9605	# <CJK>
+0xD4C5	0x8018	# <CJK>
+0xD4C6	0x4E91	# <CJK>
+0xD4C7	0x90E7	# <CJK>
+0xD4C8	0x5300	# <CJK>
+0xD4C9	0x9668	# <CJK>
+0xD4CA	0x5141	# <CJK>
+0xD4CB	0x8FD0	# <CJK>
+0xD4CC	0x8574	# <CJK>
+0xD4CD	0x915D	# <CJK>
+0xD4CE	0x6655	# <CJK>
+0xD4CF	0x97F5	# <CJK>
+0xD4D0	0x5B55	# <CJK>
+0xD4D1	0x531D	# <CJK>
+0xD4D2	0x7838	# <CJK>
+0xD4D3	0x6742	# <CJK>
+0xD4D4	0x683D	# <CJK>
+0xD4D5	0x54C9	# <CJK>
+0xD4D6	0x707E	# <CJK>
+0xD4D7	0x5BB0	# <CJK>
+0xD4D8	0x8F7D	# <CJK>
+0xD4D9	0x518D	# <CJK>
+0xD4DA	0x5728	# <CJK>
+0xD4DB	0x54B1	# <CJK>
+0xD4DC	0x6512	# <CJK>
+0xD4DD	0x6682	# <CJK>
+0xD4DE	0x8D5E	# <CJK>
+0xD4DF	0x8D43	# <CJK>
+0xD4E0	0x810F	# <CJK>
+0xD4E1	0x846C	# <CJK>
+0xD4E2	0x906D	# <CJK>
+0xD4E3	0x7CDF	# <CJK>
+0xD4E4	0x51FF	# <CJK>
+0xD4E5	0x85FB	# <CJK>
+0xD4E6	0x67A3	# <CJK>
+0xD4E7	0x65E9	# <CJK>
+0xD4E8	0x6FA1	# <CJK>
+0xD4E9	0x86A4	# <CJK>
+0xD4EA	0x8E81	# <CJK>
+0xD4EB	0x566A	# <CJK>
+0xD4EC	0x9020	# <CJK>
+0xD4ED	0x7682	# <CJK>
+0xD4EE	0x7076	# <CJK>
+0xD4EF	0x71E5	# <CJK>
+0xD4F0	0x8D23	# <CJK>
+0xD4F1	0x62E9	# <CJK>
+0xD4F2	0x5219	# <CJK>
+0xD4F3	0x6CFD	# <CJK>
+0xD4F4	0x8D3C	# <CJK>
+0xD4F5	0x600E	# <CJK>
+0xD4F6	0x589E	# <CJK>
+0xD4F7	0x618E	# <CJK>
+0xD4F8	0x66FE	# <CJK>
+0xD4F9	0x8D60	# <CJK>
+0xD4FA	0x624E	# <CJK>
+0xD4FB	0x55B3	# <CJK>
+0xD4FC	0x6E23	# <CJK>
+0xD4FD	0x672D	# <CJK>
+0xD4FE	0x8F67	# <CJK>
+0xD5A1	0x94E1	# <CJK>
+0xD5A2	0x95F8	# <CJK>
+0xD5A3	0x7728	# <CJK>
+0xD5A4	0x6805	# <CJK>
+0xD5A5	0x69A8	# <CJK>
+0xD5A6	0x548B	# <CJK>
+0xD5A7	0x4E4D	# <CJK>
+0xD5A8	0x70B8	# <CJK>
+0xD5A9	0x8BC8	# <CJK>
+0xD5AA	0x6458	# <CJK>
+0xD5AB	0x658B	# <CJK>
+0xD5AC	0x5B85	# <CJK>
+0xD5AD	0x7A84	# <CJK>
+0xD5AE	0x503A	# <CJK>
+0xD5AF	0x5BE8	# <CJK>
+0xD5B0	0x77BB	# <CJK>
+0xD5B1	0x6BE1	# <CJK>
+0xD5B2	0x8A79	# <CJK>
+0xD5B3	0x7C98	# <CJK>
+0xD5B4	0x6CBE	# <CJK>
+0xD5B5	0x76CF	# <CJK>
+0xD5B6	0x65A9	# <CJK>
+0xD5B7	0x8F97	# <CJK>
+0xD5B8	0x5D2D	# <CJK>
+0xD5B9	0x5C55	# <CJK>
+0xD5BA	0x8638	# <CJK>
+0xD5BB	0x6808	# <CJK>
+0xD5BC	0x5360	# <CJK>
+0xD5BD	0x6218	# <CJK>
+0xD5BE	0x7AD9	# <CJK>
+0xD5BF	0x6E5B	# <CJK>
+0xD5C0	0x7EFD	# <CJK>
+0xD5C1	0x6A1F	# <CJK>
+0xD5C2	0x7AE0	# <CJK>
+0xD5C3	0x5F70	# <CJK>
+0xD5C4	0x6F33	# <CJK>
+0xD5C5	0x5F20	# <CJK>
+0xD5C6	0x638C	# <CJK>
+0xD5C7	0x6DA8	# <CJK>
+0xD5C8	0x6756	# <CJK>
+0xD5C9	0x4E08	# <CJK>
+0xD5CA	0x5E10	# <CJK>
+0xD5CB	0x8D26	# <CJK>
+0xD5CC	0x4ED7	# <CJK>
+0xD5CD	0x80C0	# <CJK>
+0xD5CE	0x7634	# <CJK>
+0xD5CF	0x969C	# <CJK>
+0xD5D0	0x62DB	# <CJK>
+0xD5D1	0x662D	# <CJK>
+0xD5D2	0x627E	# <CJK>
+0xD5D3	0x6CBC	# <CJK>
+0xD5D4	0x8D75	# <CJK>
+0xD5D5	0x7167	# <CJK>
+0xD5D6	0x7F69	# <CJK>
+0xD5D7	0x5146	# <CJK>
+0xD5D8	0x8087	# <CJK>
+0xD5D9	0x53EC	# <CJK>
+0xD5DA	0x906E	# <CJK>
+0xD5DB	0x6298	# <CJK>
+0xD5DC	0x54F2	# <CJK>
+0xD5DD	0x86F0	# <CJK>
+0xD5DE	0x8F99	# <CJK>
+0xD5DF	0x8005	# <CJK>
+0xD5E0	0x9517	# <CJK>
+0xD5E1	0x8517	# <CJK>
+0xD5E2	0x8FD9	# <CJK>
+0xD5E3	0x6D59	# <CJK>
+0xD5E4	0x73CD	# <CJK>
+0xD5E5	0x659F	# <CJK>
+0xD5E6	0x771F	# <CJK>
+0xD5E7	0x7504	# <CJK>
+0xD5E8	0x7827	# <CJK>
+0xD5E9	0x81FB	# <CJK>
+0xD5EA	0x8D1E	# <CJK>
+0xD5EB	0x9488	# <CJK>
+0xD5EC	0x4FA6	# <CJK>
+0xD5ED	0x6795	# <CJK>
+0xD5EE	0x75B9	# <CJK>
+0xD5EF	0x8BCA	# <CJK>
+0xD5F0	0x9707	# <CJK>
+0xD5F1	0x632F	# <CJK>
+0xD5F2	0x9547	# <CJK>
+0xD5F3	0x9635	# <CJK>
+0xD5F4	0x84B8	# <CJK>
+0xD5F5	0x6323	# <CJK>
+0xD5F6	0x7741	# <CJK>
+0xD5F7	0x5F81	# <CJK>
+0xD5F8	0x72F0	# <CJK>
+0xD5F9	0x4E89	# <CJK>
+0xD5FA	0x6014	# <CJK>
+0xD5FB	0x6574	# <CJK>
+0xD5FC	0x62EF	# <CJK>
+0xD5FD	0x6B63	# <CJK>
+0xD5FE	0x653F	# <CJK>
+0xD6A1	0x5E27	# <CJK>
+0xD6A2	0x75C7	# <CJK>
+0xD6A3	0x90D1	# <CJK>
+0xD6A4	0x8BC1	# <CJK>
+0xD6A5	0x829D	# <CJK>
+0xD6A6	0x679D	# <CJK>
+0xD6A7	0x652F	# <CJK>
+0xD6A8	0x5431	# <CJK>
+0xD6A9	0x8718	# <CJK>
+0xD6AA	0x77E5	# <CJK>
+0xD6AB	0x80A2	# <CJK>
+0xD6AC	0x8102	# <CJK>
+0xD6AD	0x6C41	# <CJK>
+0xD6AE	0x4E4B	# <CJK>
+0xD6AF	0x7EC7	# <CJK>
+0xD6B0	0x804C	# <CJK>
+0xD6B1	0x76F4	# <CJK>
+0xD6B2	0x690D	# <CJK>
+0xD6B3	0x6B96	# <CJK>
+0xD6B4	0x6267	# <CJK>
+0xD6B5	0x503C	# <CJK>
+0xD6B6	0x4F84	# <CJK>
+0xD6B7	0x5740	# <CJK>
+0xD6B8	0x6307	# <CJK>
+0xD6B9	0x6B62	# <CJK>
+0xD6BA	0x8DBE	# <CJK>
+0xD6BB	0x53EA	# <CJK>
+0xD6BC	0x65E8	# <CJK>
+0xD6BD	0x7EB8	# <CJK>
+0xD6BE	0x5FD7	# <CJK>
+0xD6BF	0x631A	# <CJK>
+0xD6C0	0x63B7	# <CJK>
+0xD6C1	0x81F3	# <CJK>
+0xD6C2	0x81F4	# <CJK>
+0xD6C3	0x7F6E	# <CJK>
+0xD6C4	0x5E1C	# <CJK>
+0xD6C5	0x5CD9	# <CJK>
+0xD6C6	0x5236	# <CJK>
+0xD6C7	0x667A	# <CJK>
+0xD6C8	0x79E9	# <CJK>
+0xD6C9	0x7A1A	# <CJK>
+0xD6CA	0x8D28	# <CJK>
+0xD6CB	0x7099	# <CJK>
+0xD6CC	0x75D4	# <CJK>
+0xD6CD	0x6EDE	# <CJK>
+0xD6CE	0x6CBB	# <CJK>
+0xD6CF	0x7A92	# <CJK>
+0xD6D0	0x4E2D	# <CJK>
+0xD6D1	0x76C5	# <CJK>
+0xD6D2	0x5FE0	# <CJK>
+0xD6D3	0x949F	# <CJK>
+0xD6D4	0x8877	# <CJK>
+0xD6D5	0x7EC8	# <CJK>
+0xD6D6	0x79CD	# <CJK>
+0xD6D7	0x80BF	# <CJK>
+0xD6D8	0x91CD	# <CJK>
+0xD6D9	0x4EF2	# <CJK>
+0xD6DA	0x4F17	# <CJK>
+0xD6DB	0x821F	# <CJK>
+0xD6DC	0x5468	# <CJK>
+0xD6DD	0x5DDE	# <CJK>
+0xD6DE	0x6D32	# <CJK>
+0xD6DF	0x8BCC	# <CJK>
+0xD6E0	0x7CA5	# <CJK>
+0xD6E1	0x8F74	# <CJK>
+0xD6E2	0x8098	# <CJK>
+0xD6E3	0x5E1A	# <CJK>
+0xD6E4	0x5492	# <CJK>
+0xD6E5	0x76B1	# <CJK>
+0xD6E6	0x5B99	# <CJK>
+0xD6E7	0x663C	# <CJK>
+0xD6E8	0x9AA4	# <CJK>
+0xD6E9	0x73E0	# <CJK>
+0xD6EA	0x682A	# <CJK>
+0xD6EB	0x86DB	# <CJK>
+0xD6EC	0x6731	# <CJK>
+0xD6ED	0x732A	# <CJK>
+0xD6EE	0x8BF8	# <CJK>
+0xD6EF	0x8BDB	# <CJK>
+0xD6F0	0x9010	# <CJK>
+0xD6F1	0x7AF9	# <CJK>
+0xD6F2	0x70DB	# <CJK>
+0xD6F3	0x716E	# <CJK>
+0xD6F4	0x62C4	# <CJK>
+0xD6F5	0x77A9	# <CJK>
+0xD6F6	0x5631	# <CJK>
+0xD6F7	0x4E3B	# <CJK>
+0xD6F8	0x8457	# <CJK>
+0xD6F9	0x67F1	# <CJK>
+0xD6FA	0x52A9	# <CJK>
+0xD6FB	0x86C0	# <CJK>
+0xD6FC	0x8D2E	# <CJK>
+0xD6FD	0x94F8	# <CJK>
+0xD6FE	0x7B51	# <CJK>
+0xD7A1	0x4F4F	# <CJK>
+0xD7A2	0x6CE8	# <CJK>
+0xD7A3	0x795D	# <CJK>
+0xD7A4	0x9A7B	# <CJK>
+0xD7A5	0x6293	# <CJK>
+0xD7A6	0x722A	# <CJK>
+0xD7A7	0x62FD	# <CJK>
+0xD7A8	0x4E13	# <CJK>
+0xD7A9	0x7816	# <CJK>
+0xD7AA	0x8F6C	# <CJK>
+0xD7AB	0x64B0	# <CJK>
+0xD7AC	0x8D5A	# <CJK>
+0xD7AD	0x7BC6	# <CJK>
+0xD7AE	0x6869	# <CJK>
+0xD7AF	0x5E84	# <CJK>
+0xD7B0	0x88C5	# <CJK>
+0xD7B1	0x5986	# <CJK>
+0xD7B2	0x649E	# <CJK>
+0xD7B3	0x58EE	# <CJK>
+0xD7B4	0x72B6	# <CJK>
+0xD7B5	0x690E	# <CJK>
+0xD7B6	0x9525	# <CJK>
+0xD7B7	0x8FFD	# <CJK>
+0xD7B8	0x8D58	# <CJK>
+0xD7B9	0x5760	# <CJK>
+0xD7BA	0x7F00	# <CJK>
+0xD7BB	0x8C06	# <CJK>
+0xD7BC	0x51C6	# <CJK>
+0xD7BD	0x6349	# <CJK>
+0xD7BE	0x62D9	# <CJK>
+0xD7BF	0x5353	# <CJK>
+0xD7C0	0x684C	# <CJK>
+0xD7C1	0x7422	# <CJK>
+0xD7C2	0x8301	# <CJK>
+0xD7C3	0x914C	# <CJK>
+0xD7C4	0x5544	# <CJK>
+0xD7C5	0x7740	# <CJK>
+0xD7C6	0x707C	# <CJK>
+0xD7C7	0x6D4A	# <CJK>
+0xD7C8	0x5179	# <CJK>
+0xD7C9	0x54A8	# <CJK>
+0xD7CA	0x8D44	# <CJK>
+0xD7CB	0x59FF	# <CJK>
+0xD7CC	0x6ECB	# <CJK>
+0xD7CD	0x6DC4	# <CJK>
+0xD7CE	0x5B5C	# <CJK>
+0xD7CF	0x7D2B	# <CJK>
+0xD7D0	0x4ED4	# <CJK>
+0xD7D1	0x7C7D	# <CJK>
+0xD7D2	0x6ED3	# <CJK>
+0xD7D3	0x5B50	# <CJK>
+0xD7D4	0x81EA	# <CJK>
+0xD7D5	0x6E0D	# <CJK>
+0xD7D6	0x5B57	# <CJK>
+0xD7D7	0x9B03	# <CJK>
+0xD7D8	0x68D5	# <CJK>
+0xD7D9	0x8E2A	# <CJK>
+0xD7DA	0x5B97	# <CJK>
+0xD7DB	0x7EFC	# <CJK>
+0xD7DC	0x603B	# <CJK>
+0xD7DD	0x7EB5	# <CJK>
+0xD7DE	0x90B9	# <CJK>
+0xD7DF	0x8D70	# <CJK>
+0xD7E0	0x594F	# <CJK>
+0xD7E1	0x63CD	# <CJK>
+0xD7E2	0x79DF	# <CJK>
+0xD7E3	0x8DB3	# <CJK>
+0xD7E4	0x5352	# <CJK>
+0xD7E5	0x65CF	# <CJK>
+0xD7E6	0x7956	# <CJK>
+0xD7E7	0x8BC5	# <CJK>
+0xD7E8	0x963B	# <CJK>
+0xD7E9	0x7EC4	# <CJK>
+0xD7EA	0x94BB	# <CJK>
+0xD7EB	0x7E82	# <CJK>
+0xD7EC	0x5634	# <CJK>
+0xD7ED	0x9189	# <CJK>
+0xD7EE	0x6700	# <CJK>
+0xD7EF	0x7F6A	# <CJK>
+0xD7F0	0x5C0A	# <CJK>
+0xD7F1	0x9075	# <CJK>
+0xD7F2	0x6628	# <CJK>
+0xD7F3	0x5DE6	# <CJK>
+0xD7F4	0x4F50	# <CJK>
+0xD7F5	0x67DE	# <CJK>
+0xD7F6	0x505A	# <CJK>
+0xD7F7	0x4F5C	# <CJK>
+0xD7F8	0x5750	# <CJK>
+0xD7F9	0x5EA7	# <CJK>
+0xD8A1	0x4E8D	# <CJK>
+0xD8A2	0x4E0C	# <CJK>
+0xD8A3	0x5140	# <CJK>
+0xD8A4	0x4E10	# <CJK>
+0xD8A5	0x5EFF	# <CJK>
+0xD8A6	0x5345	# <CJK>
+0xD8A7	0x4E15	# <CJK>
+0xD8A8	0x4E98	# <CJK>
+0xD8A9	0x4E1E	# <CJK>
+0xD8AA	0x9B32	# <CJK>
+0xD8AB	0x5B6C	# <CJK>
+0xD8AC	0x5669	# <CJK>
+0xD8AD	0x4E28	# <CJK>
+0xD8AE	0x79BA	# <CJK>
+0xD8AF	0x4E3F	# <CJK>
+0xD8B0	0x5315	# <CJK>
+0xD8B1	0x4E47	# <CJK>
+0xD8B2	0x592D	# <CJK>
+0xD8B3	0x723B	# <CJK>
+0xD8B4	0x536E	# <CJK>
+0xD8B5	0x6C10	# <CJK>
+0xD8B6	0x56DF	# <CJK>
+0xD8B7	0x80E4	# <CJK>
+0xD8B8	0x9997	# <CJK>
+0xD8B9	0x6BD3	# <CJK>
+0xD8BA	0x777E	# <CJK>
+0xD8BB	0x9F17	# <CJK>
+0xD8BC	0x4E36	# <CJK>
+0xD8BD	0x4E9F	# <CJK>
+0xD8BE	0x9F10	# <CJK>
+0xD8BF	0x4E5C	# <CJK>
+0xD8C0	0x4E69	# <CJK>
+0xD8C1	0x4E93	# <CJK>
+0xD8C2	0x8288	# <CJK>
+0xD8C3	0x5B5B	# <CJK>
+0xD8C4	0x556C	# <CJK>
+0xD8C5	0x560F	# <CJK>
+0xD8C6	0x4EC4	# <CJK>
+0xD8C7	0x538D	# <CJK>
+0xD8C8	0x539D	# <CJK>
+0xD8C9	0x53A3	# <CJK>
+0xD8CA	0x53A5	# <CJK>
+0xD8CB	0x53AE	# <CJK>
+0xD8CC	0x9765	# <CJK>
+0xD8CD	0x8D5D	# <CJK>
+0xD8CE	0x531A	# <CJK>
+0xD8CF	0x53F5	# <CJK>
+0xD8D0	0x5326	# <CJK>
+0xD8D1	0x532E	# <CJK>
+0xD8D2	0x533E	# <CJK>
+0xD8D3	0x8D5C	# <CJK>
+0xD8D4	0x5366	# <CJK>
+0xD8D5	0x5363	# <CJK>
+0xD8D6	0x5202	# <CJK>
+0xD8D7	0x5208	# <CJK>
+0xD8D8	0x520E	# <CJK>
+0xD8D9	0x522D	# <CJK>
+0xD8DA	0x5233	# <CJK>
+0xD8DB	0x523F	# <CJK>
+0xD8DC	0x5240	# <CJK>
+0xD8DD	0x524C	# <CJK>
+0xD8DE	0x525E	# <CJK>
+0xD8DF	0x5261	# <CJK>
+0xD8E0	0x525C	# <CJK>
+0xD8E1	0x84AF	# <CJK>
+0xD8E2	0x527D	# <CJK>
+0xD8E3	0x5282	# <CJK>
+0xD8E4	0x5281	# <CJK>
+0xD8E5	0x5290	# <CJK>
+0xD8E6	0x5293	# <CJK>
+0xD8E7	0x5182	# <CJK>
+0xD8E8	0x7F54	# <CJK>
+0xD8E9	0x4EBB	# <CJK>
+0xD8EA	0x4EC3	# <CJK>
+0xD8EB	0x4EC9	# <CJK>
+0xD8EC	0x4EC2	# <CJK>
+0xD8ED	0x4EE8	# <CJK>
+0xD8EE	0x4EE1	# <CJK>
+0xD8EF	0x4EEB	# <CJK>
+0xD8F0	0x4EDE	# <CJK>
+0xD8F1	0x4F1B	# <CJK>
+0xD8F2	0x4EF3	# <CJK>
+0xD8F3	0x4F22	# <CJK>
+0xD8F4	0x4F64	# <CJK>
+0xD8F5	0x4EF5	# <CJK>
+0xD8F6	0x4F25	# <CJK>
+0xD8F7	0x4F27	# <CJK>
+0xD8F8	0x4F09	# <CJK>
+0xD8F9	0x4F2B	# <CJK>
+0xD8FA	0x4F5E	# <CJK>
+0xD8FB	0x4F67	# <CJK>
+0xD8FC	0x6538	# <CJK>
+0xD8FD	0x4F5A	# <CJK>
+0xD8FE	0x4F5D	# <CJK>
+0xD9A1	0x4F5F	# <CJK>
+0xD9A2	0x4F57	# <CJK>
+0xD9A3	0x4F32	# <CJK>
+0xD9A4	0x4F3D	# <CJK>
+0xD9A5	0x4F76	# <CJK>
+0xD9A6	0x4F74	# <CJK>
+0xD9A7	0x4F91	# <CJK>
+0xD9A8	0x4F89	# <CJK>
+0xD9A9	0x4F83	# <CJK>
+0xD9AA	0x4F8F	# <CJK>
+0xD9AB	0x4F7E	# <CJK>
+0xD9AC	0x4F7B	# <CJK>
+0xD9AD	0x4FAA	# <CJK>
+0xD9AE	0x4F7C	# <CJK>
+0xD9AF	0x4FAC	# <CJK>
+0xD9B0	0x4F94	# <CJK>
+0xD9B1	0x4FE6	# <CJK>
+0xD9B2	0x4FE8	# <CJK>
+0xD9B3	0x4FEA	# <CJK>
+0xD9B4	0x4FC5	# <CJK>
+0xD9B5	0x4FDA	# <CJK>
+0xD9B6	0x4FE3	# <CJK>
+0xD9B7	0x4FDC	# <CJK>
+0xD9B8	0x4FD1	# <CJK>
+0xD9B9	0x4FDF	# <CJK>
+0xD9BA	0x4FF8	# <CJK>
+0xD9BB	0x5029	# <CJK>
+0xD9BC	0x504C	# <CJK>
+0xD9BD	0x4FF3	# <CJK>
+0xD9BE	0x502C	# <CJK>
+0xD9BF	0x500F	# <CJK>
+0xD9C0	0x502E	# <CJK>
+0xD9C1	0x502D	# <CJK>
+0xD9C2	0x4FFE	# <CJK>
+0xD9C3	0x501C	# <CJK>
+0xD9C4	0x500C	# <CJK>
+0xD9C5	0x5025	# <CJK>
+0xD9C6	0x5028	# <CJK>
+0xD9C7	0x507E	# <CJK>
+0xD9C8	0x5043	# <CJK>
+0xD9C9	0x5055	# <CJK>
+0xD9CA	0x5048	# <CJK>
+0xD9CB	0x504E	# <CJK>
+0xD9CC	0x506C	# <CJK>
+0xD9CD	0x507B	# <CJK>
+0xD9CE	0x50A5	# <CJK>
+0xD9CF	0x50A7	# <CJK>
+0xD9D0	0x50A9	# <CJK>
+0xD9D1	0x50BA	# <CJK>
+0xD9D2	0x50D6	# <CJK>
+0xD9D3	0x5106	# <CJK>
+0xD9D4	0x50ED	# <CJK>
+0xD9D5	0x50EC	# <CJK>
+0xD9D6	0x50E6	# <CJK>
+0xD9D7	0x50EE	# <CJK>
+0xD9D8	0x5107	# <CJK>
+0xD9D9	0x510B	# <CJK>
+0xD9DA	0x4EDD	# <CJK>
+0xD9DB	0x6C3D	# <CJK>
+0xD9DC	0x4F58	# <CJK>
+0xD9DD	0x4F65	# <CJK>
+0xD9DE	0x4FCE	# <CJK>
+0xD9DF	0x9FA0	# <CJK>
+0xD9E0	0x6C46	# <CJK>
+0xD9E1	0x7C74	# <CJK>
+0xD9E2	0x516E	# <CJK>
+0xD9E3	0x5DFD	# <CJK>
+0xD9E4	0x9EC9	# <CJK>
+0xD9E5	0x9998	# <CJK>
+0xD9E6	0x5181	# <CJK>
+0xD9E7	0x5914	# <CJK>
+0xD9E8	0x52F9	# <CJK>
+0xD9E9	0x530D	# <CJK>
+0xD9EA	0x8A07	# <CJK>
+0xD9EB	0x5310	# <CJK>
+0xD9EC	0x51EB	# <CJK>
+0xD9ED	0x5919	# <CJK>
+0xD9EE	0x5155	# <CJK>
+0xD9EF	0x4EA0	# <CJK>
+0xD9F0	0x5156	# <CJK>
+0xD9F1	0x4EB3	# <CJK>
+0xD9F2	0x886E	# <CJK>
+0xD9F3	0x88A4	# <CJK>
+0xD9F4	0x4EB5	# <CJK>
+0xD9F5	0x8114	# <CJK>
+0xD9F6	0x88D2	# <CJK>
+0xD9F7	0x7980	# <CJK>
+0xD9F8	0x5B34	# <CJK>
+0xD9F9	0x8803	# <CJK>
+0xD9FA	0x7FB8	# <CJK>
+0xD9FB	0x51AB	# <CJK>
+0xD9FC	0x51B1	# <CJK>
+0xD9FD	0x51BD	# <CJK>
+0xD9FE	0x51BC	# <CJK>
+0xDAA1	0x51C7	# <CJK>
+0xDAA2	0x5196	# <CJK>
+0xDAA3	0x51A2	# <CJK>
+0xDAA4	0x51A5	# <CJK>
+0xDAA5	0x8BA0	# <CJK>
+0xDAA6	0x8BA6	# <CJK>
+0xDAA7	0x8BA7	# <CJK>
+0xDAA8	0x8BAA	# <CJK>
+0xDAA9	0x8BB4	# <CJK>
+0xDAAA	0x8BB5	# <CJK>
+0xDAAB	0x8BB7	# <CJK>
+0xDAAC	0x8BC2	# <CJK>
+0xDAAD	0x8BC3	# <CJK>
+0xDAAE	0x8BCB	# <CJK>
+0xDAAF	0x8BCF	# <CJK>
+0xDAB0	0x8BCE	# <CJK>
+0xDAB1	0x8BD2	# <CJK>
+0xDAB2	0x8BD3	# <CJK>
+0xDAB3	0x8BD4	# <CJK>
+0xDAB4	0x8BD6	# <CJK>
+0xDAB5	0x8BD8	# <CJK>
+0xDAB6	0x8BD9	# <CJK>
+0xDAB7	0x8BDC	# <CJK>
+0xDAB8	0x8BDF	# <CJK>
+0xDAB9	0x8BE0	# <CJK>
+0xDABA	0x8BE4	# <CJK>
+0xDABB	0x8BE8	# <CJK>
+0xDABC	0x8BE9	# <CJK>
+0xDABD	0x8BEE	# <CJK>
+0xDABE	0x8BF0	# <CJK>
+0xDABF	0x8BF3	# <CJK>
+0xDAC0	0x8BF6	# <CJK>
+0xDAC1	0x8BF9	# <CJK>
+0xDAC2	0x8BFC	# <CJK>
+0xDAC3	0x8BFF	# <CJK>
+0xDAC4	0x8C00	# <CJK>
+0xDAC5	0x8C02	# <CJK>
+0xDAC6	0x8C04	# <CJK>
+0xDAC7	0x8C07	# <CJK>
+0xDAC8	0x8C0C	# <CJK>
+0xDAC9	0x8C0F	# <CJK>
+0xDACA	0x8C11	# <CJK>
+0xDACB	0x8C12	# <CJK>
+0xDACC	0x8C14	# <CJK>
+0xDACD	0x8C15	# <CJK>
+0xDACE	0x8C16	# <CJK>
+0xDACF	0x8C19	# <CJK>
+0xDAD0	0x8C1B	# <CJK>
+0xDAD1	0x8C18	# <CJK>
+0xDAD2	0x8C1D	# <CJK>
+0xDAD3	0x8C1F	# <CJK>
+0xDAD4	0x8C20	# <CJK>
+0xDAD5	0x8C21	# <CJK>
+0xDAD6	0x8C25	# <CJK>
+0xDAD7	0x8C27	# <CJK>
+0xDAD8	0x8C2A	# <CJK>
+0xDAD9	0x8C2B	# <CJK>
+0xDADA	0x8C2E	# <CJK>
+0xDADB	0x8C2F	# <CJK>
+0xDADC	0x8C32	# <CJK>
+0xDADD	0x8C33	# <CJK>
+0xDADE	0x8C35	# <CJK>
+0xDADF	0x8C36	# <CJK>
+0xDAE0	0x5369	# <CJK>
+0xDAE1	0x537A	# <CJK>
+0xDAE2	0x961D	# <CJK>
+0xDAE3	0x9622	# <CJK>
+0xDAE4	0x9621	# <CJK>
+0xDAE5	0x9631	# <CJK>
+0xDAE6	0x962A	# <CJK>
+0xDAE7	0x963D	# <CJK>
+0xDAE8	0x963C	# <CJK>
+0xDAE9	0x9642	# <CJK>
+0xDAEA	0x9649	# <CJK>
+0xDAEB	0x9654	# <CJK>
+0xDAEC	0x965F	# <CJK>
+0xDAED	0x9667	# <CJK>
+0xDAEE	0x966C	# <CJK>
+0xDAEF	0x9672	# <CJK>
+0xDAF0	0x9674	# <CJK>
+0xDAF1	0x9688	# <CJK>
+0xDAF2	0x968D	# <CJK>
+0xDAF3	0x9697	# <CJK>
+0xDAF4	0x96B0	# <CJK>
+0xDAF5	0x9097	# <CJK>
+0xDAF6	0x909B	# <CJK>
+0xDAF7	0x909D	# <CJK>
+0xDAF8	0x9099	# <CJK>
+0xDAF9	0x90AC	# <CJK>
+0xDAFA	0x90A1	# <CJK>
+0xDAFB	0x90B4	# <CJK>
+0xDAFC	0x90B3	# <CJK>
+0xDAFD	0x90B6	# <CJK>
+0xDAFE	0x90BA	# <CJK>
+0xDBA1	0x90B8	# <CJK>
+0xDBA2	0x90B0	# <CJK>
+0xDBA3	0x90CF	# <CJK>
+0xDBA4	0x90C5	# <CJK>
+0xDBA5	0x90BE	# <CJK>
+0xDBA6	0x90D0	# <CJK>
+0xDBA7	0x90C4	# <CJK>
+0xDBA8	0x90C7	# <CJK>
+0xDBA9	0x90D3	# <CJK>
+0xDBAA	0x90E6	# <CJK>
+0xDBAB	0x90E2	# <CJK>
+0xDBAC	0x90DC	# <CJK>
+0xDBAD	0x90D7	# <CJK>
+0xDBAE	0x90DB	# <CJK>
+0xDBAF	0x90EB	# <CJK>
+0xDBB0	0x90EF	# <CJK>
+0xDBB1	0x90FE	# <CJK>
+0xDBB2	0x9104	# <CJK>
+0xDBB3	0x9122	# <CJK>
+0xDBB4	0x911E	# <CJK>
+0xDBB5	0x9123	# <CJK>
+0xDBB6	0x9131	# <CJK>
+0xDBB7	0x912F	# <CJK>
+0xDBB8	0x9139	# <CJK>
+0xDBB9	0x9143	# <CJK>
+0xDBBA	0x9146	# <CJK>
+0xDBBB	0x520D	# <CJK>
+0xDBBC	0x5942	# <CJK>
+0xDBBD	0x52A2	# <CJK>
+0xDBBE	0x52AC	# <CJK>
+0xDBBF	0x52AD	# <CJK>
+0xDBC0	0x52BE	# <CJK>
+0xDBC1	0x54FF	# <CJK>
+0xDBC2	0x52D0	# <CJK>
+0xDBC3	0x52D6	# <CJK>
+0xDBC4	0x52F0	# <CJK>
+0xDBC5	0x53DF	# <CJK>
+0xDBC6	0x71EE	# <CJK>
+0xDBC7	0x77CD	# <CJK>
+0xDBC8	0x5EF4	# <CJK>
+0xDBC9	0x51F5	# <CJK>
+0xDBCA	0x51FC	# <CJK>
+0xDBCB	0x9B2F	# <CJK>
+0xDBCC	0x53B6	# <CJK>
+0xDBCD	0x5F01	# <CJK>
+0xDBCE	0x755A	# <CJK>
+0xDBCF	0x5DEF	# <CJK>
+0xDBD0	0x574C	# <CJK>
+0xDBD1	0x57A9	# <CJK>
+0xDBD2	0x57A1	# <CJK>
+0xDBD3	0x587E	# <CJK>
+0xDBD4	0x58BC	# <CJK>
+0xDBD5	0x58C5	# <CJK>
+0xDBD6	0x58D1	# <CJK>
+0xDBD7	0x5729	# <CJK>
+0xDBD8	0x572C	# <CJK>
+0xDBD9	0x572A	# <CJK>
+0xDBDA	0x5733	# <CJK>
+0xDBDB	0x5739	# <CJK>
+0xDBDC	0x572E	# <CJK>
+0xDBDD	0x572F	# <CJK>
+0xDBDE	0x575C	# <CJK>
+0xDBDF	0x573B	# <CJK>
+0xDBE0	0x5742	# <CJK>
+0xDBE1	0x5769	# <CJK>
+0xDBE2	0x5785	# <CJK>
+0xDBE3	0x576B	# <CJK>
+0xDBE4	0x5786	# <CJK>
+0xDBE5	0x577C	# <CJK>
+0xDBE6	0x577B	# <CJK>
+0xDBE7	0x5768	# <CJK>
+0xDBE8	0x576D	# <CJK>
+0xDBE9	0x5776	# <CJK>
+0xDBEA	0x5773	# <CJK>
+0xDBEB	0x57AD	# <CJK>
+0xDBEC	0x57A4	# <CJK>
+0xDBED	0x578C	# <CJK>
+0xDBEE	0x57B2	# <CJK>
+0xDBEF	0x57CF	# <CJK>
+0xDBF0	0x57A7	# <CJK>
+0xDBF1	0x57B4	# <CJK>
+0xDBF2	0x5793	# <CJK>
+0xDBF3	0x57A0	# <CJK>
+0xDBF4	0x57D5	# <CJK>
+0xDBF5	0x57D8	# <CJK>
+0xDBF6	0x57DA	# <CJK>
+0xDBF7	0x57D9	# <CJK>
+0xDBF8	0x57D2	# <CJK>
+0xDBF9	0x57B8	# <CJK>
+0xDBFA	0x57F4	# <CJK>
+0xDBFB	0x57EF	# <CJK>
+0xDBFC	0x57F8	# <CJK>
+0xDBFD	0x57E4	# <CJK>
+0xDBFE	0x57DD	# <CJK>
+0xDCA1	0x580B	# <CJK>
+0xDCA2	0x580D	# <CJK>
+0xDCA3	0x57FD	# <CJK>
+0xDCA4	0x57ED	# <CJK>
+0xDCA5	0x5800	# <CJK>
+0xDCA6	0x581E	# <CJK>
+0xDCA7	0x5819	# <CJK>
+0xDCA8	0x5844	# <CJK>
+0xDCA9	0x5820	# <CJK>
+0xDCAA	0x5865	# <CJK>
+0xDCAB	0x586C	# <CJK>
+0xDCAC	0x5881	# <CJK>
+0xDCAD	0x5889	# <CJK>
+0xDCAE	0x589A	# <CJK>
+0xDCAF	0x5880	# <CJK>
+0xDCB0	0x99A8	# <CJK>
+0xDCB1	0x9F19	# <CJK>
+0xDCB2	0x61FF	# <CJK>
+0xDCB3	0x8279	# <CJK>
+0xDCB4	0x827D	# <CJK>
+0xDCB5	0x827F	# <CJK>
+0xDCB6	0x828F	# <CJK>
+0xDCB7	0x828A	# <CJK>
+0xDCB8	0x82A8	# <CJK>
+0xDCB9	0x8284	# <CJK>
+0xDCBA	0x828E	# <CJK>
+0xDCBB	0x8291	# <CJK>
+0xDCBC	0x8297	# <CJK>
+0xDCBD	0x8299	# <CJK>
+0xDCBE	0x82AB	# <CJK>
+0xDCBF	0x82B8	# <CJK>
+0xDCC0	0x82BE	# <CJK>
+0xDCC1	0x82B0	# <CJK>
+0xDCC2	0x82C8	# <CJK>
+0xDCC3	0x82CA	# <CJK>
+0xDCC4	0x82E3	# <CJK>
+0xDCC5	0x8298	# <CJK>
+0xDCC6	0x82B7	# <CJK>
+0xDCC7	0x82AE	# <CJK>
+0xDCC8	0x82CB	# <CJK>
+0xDCC9	0x82CC	# <CJK>
+0xDCCA	0x82C1	# <CJK>
+0xDCCB	0x82A9	# <CJK>
+0xDCCC	0x82B4	# <CJK>
+0xDCCD	0x82A1	# <CJK>
+0xDCCE	0x82AA	# <CJK>
+0xDCCF	0x829F	# <CJK>
+0xDCD0	0x82C4	# <CJK>
+0xDCD1	0x82CE	# <CJK>
+0xDCD2	0x82A4	# <CJK>
+0xDCD3	0x82E1	# <CJK>
+0xDCD4	0x8309	# <CJK>
+0xDCD5	0x82F7	# <CJK>
+0xDCD6	0x82E4	# <CJK>
+0xDCD7	0x830F	# <CJK>
+0xDCD8	0x8307	# <CJK>
+0xDCD9	0x82DC	# <CJK>
+0xDCDA	0x82F4	# <CJK>
+0xDCDB	0x82D2	# <CJK>
+0xDCDC	0x82D8	# <CJK>
+0xDCDD	0x830C	# <CJK>
+0xDCDE	0x82FB	# <CJK>
+0xDCDF	0x82D3	# <CJK>
+0xDCE0	0x8311	# <CJK>
+0xDCE1	0x831A	# <CJK>
+0xDCE2	0x8306	# <CJK>
+0xDCE3	0x8314	# <CJK>
+0xDCE4	0x8315	# <CJK>
+0xDCE5	0x82E0	# <CJK>
+0xDCE6	0x82D5	# <CJK>
+0xDCE7	0x831C	# <CJK>
+0xDCE8	0x8351	# <CJK>
+0xDCE9	0x835B	# <CJK>
+0xDCEA	0x835C	# <CJK>
+0xDCEB	0x8308	# <CJK>
+0xDCEC	0x8392	# <CJK>
+0xDCED	0x833C	# <CJK>
+0xDCEE	0x8334	# <CJK>
+0xDCEF	0x8331	# <CJK>
+0xDCF0	0x839B	# <CJK>
+0xDCF1	0x835E	# <CJK>
+0xDCF2	0x832F	# <CJK>
+0xDCF3	0x834F	# <CJK>
+0xDCF4	0x8347	# <CJK>
+0xDCF5	0x8343	# <CJK>
+0xDCF6	0x835F	# <CJK>
+0xDCF7	0x8340	# <CJK>
+0xDCF8	0x8317	# <CJK>
+0xDCF9	0x8360	# <CJK>
+0xDCFA	0x832D	# <CJK>
+0xDCFB	0x833A	# <CJK>
+0xDCFC	0x8333	# <CJK>
+0xDCFD	0x8366	# <CJK>
+0xDCFE	0x8365	# <CJK>
+0xDDA1	0x8368	# <CJK>
+0xDDA2	0x831B	# <CJK>
+0xDDA3	0x8369	# <CJK>
+0xDDA4	0x836C	# <CJK>
+0xDDA5	0x836A	# <CJK>
+0xDDA6	0x836D	# <CJK>
+0xDDA7	0x836E	# <CJK>
+0xDDA8	0x83B0	# <CJK>
+0xDDA9	0x8378	# <CJK>
+0xDDAA	0x83B3	# <CJK>
+0xDDAB	0x83B4	# <CJK>
+0xDDAC	0x83A0	# <CJK>
+0xDDAD	0x83AA	# <CJK>
+0xDDAE	0x8393	# <CJK>
+0xDDAF	0x839C	# <CJK>
+0xDDB0	0x8385	# <CJK>
+0xDDB1	0x837C	# <CJK>
+0xDDB2	0x83B6	# <CJK>
+0xDDB3	0x83A9	# <CJK>
+0xDDB4	0x837D	# <CJK>
+0xDDB5	0x83B8	# <CJK>
+0xDDB6	0x837B	# <CJK>
+0xDDB7	0x8398	# <CJK>
+0xDDB8	0x839E	# <CJK>
+0xDDB9	0x83A8	# <CJK>
+0xDDBA	0x83BA	# <CJK>
+0xDDBB	0x83BC	# <CJK>
+0xDDBC	0x83C1	# <CJK>
+0xDDBD	0x8401	# <CJK>
+0xDDBE	0x83E5	# <CJK>
+0xDDBF	0x83D8	# <CJK>
+0xDDC0	0x5807	# <CJK>
+0xDDC1	0x8418	# <CJK>
+0xDDC2	0x840B	# <CJK>
+0xDDC3	0x83DD	# <CJK>
+0xDDC4	0x83FD	# <CJK>
+0xDDC5	0x83D6	# <CJK>
+0xDDC6	0x841C	# <CJK>
+0xDDC7	0x8438	# <CJK>
+0xDDC8	0x8411	# <CJK>
+0xDDC9	0x8406	# <CJK>
+0xDDCA	0x83D4	# <CJK>
+0xDDCB	0x83DF	# <CJK>
+0xDDCC	0x840F	# <CJK>
+0xDDCD	0x8403	# <CJK>
+0xDDCE	0x83F8	# <CJK>
+0xDDCF	0x83F9	# <CJK>
+0xDDD0	0x83EA	# <CJK>
+0xDDD1	0x83C5	# <CJK>
+0xDDD2	0x83C0	# <CJK>
+0xDDD3	0x8426	# <CJK>
+0xDDD4	0x83F0	# <CJK>
+0xDDD5	0x83E1	# <CJK>
+0xDDD6	0x845C	# <CJK>
+0xDDD7	0x8451	# <CJK>
+0xDDD8	0x845A	# <CJK>
+0xDDD9	0x8459	# <CJK>
+0xDDDA	0x8473	# <CJK>
+0xDDDB	0x8487	# <CJK>
+0xDDDC	0x8488	# <CJK>
+0xDDDD	0x847A	# <CJK>
+0xDDDE	0x8489	# <CJK>
+0xDDDF	0x8478	# <CJK>
+0xDDE0	0x843C	# <CJK>
+0xDDE1	0x8446	# <CJK>
+0xDDE2	0x8469	# <CJK>
+0xDDE3	0x8476	# <CJK>
+0xDDE4	0x848C	# <CJK>
+0xDDE5	0x848E	# <CJK>
+0xDDE6	0x8431	# <CJK>
+0xDDE7	0x846D	# <CJK>
+0xDDE8	0x84C1	# <CJK>
+0xDDE9	0x84CD	# <CJK>
+0xDDEA	0x84D0	# <CJK>
+0xDDEB	0x84E6	# <CJK>
+0xDDEC	0x84BD	# <CJK>
+0xDDED	0x84D3	# <CJK>
+0xDDEE	0x84CA	# <CJK>
+0xDDEF	0x84BF	# <CJK>
+0xDDF0	0x84BA	# <CJK>
+0xDDF1	0x84E0	# <CJK>
+0xDDF2	0x84A1	# <CJK>
+0xDDF3	0x84B9	# <CJK>
+0xDDF4	0x84B4	# <CJK>
+0xDDF5	0x8497	# <CJK>
+0xDDF6	0x84E5	# <CJK>
+0xDDF7	0x84E3	# <CJK>
+0xDDF8	0x850C	# <CJK>
+0xDDF9	0x750D	# <CJK>
+0xDDFA	0x8538	# <CJK>
+0xDDFB	0x84F0	# <CJK>
+0xDDFC	0x8539	# <CJK>
+0xDDFD	0x851F	# <CJK>
+0xDDFE	0x853A	# <CJK>
+0xDEA1	0x8556	# <CJK>
+0xDEA2	0x853B	# <CJK>
+0xDEA3	0x84FF	# <CJK>
+0xDEA4	0x84FC	# <CJK>
+0xDEA5	0x8559	# <CJK>
+0xDEA6	0x8548	# <CJK>
+0xDEA7	0x8568	# <CJK>
+0xDEA8	0x8564	# <CJK>
+0xDEA9	0x855E	# <CJK>
+0xDEAA	0x857A	# <CJK>
+0xDEAB	0x77A2	# <CJK>
+0xDEAC	0x8543	# <CJK>
+0xDEAD	0x8572	# <CJK>
+0xDEAE	0x857B	# <CJK>
+0xDEAF	0x85A4	# <CJK>
+0xDEB0	0x85A8	# <CJK>
+0xDEB1	0x8587	# <CJK>
+0xDEB2	0x858F	# <CJK>
+0xDEB3	0x8579	# <CJK>
+0xDEB4	0x85AE	# <CJK>
+0xDEB5	0x859C	# <CJK>
+0xDEB6	0x8585	# <CJK>
+0xDEB7	0x85B9	# <CJK>
+0xDEB8	0x85B7	# <CJK>
+0xDEB9	0x85B0	# <CJK>
+0xDEBA	0x85D3	# <CJK>
+0xDEBB	0x85C1	# <CJK>
+0xDEBC	0x85DC	# <CJK>
+0xDEBD	0x85FF	# <CJK>
+0xDEBE	0x8627	# <CJK>
+0xDEBF	0x8605	# <CJK>
+0xDEC0	0x8629	# <CJK>
+0xDEC1	0x8616	# <CJK>
+0xDEC2	0x863C	# <CJK>
+0xDEC3	0x5EFE	# <CJK>
+0xDEC4	0x5F08	# <CJK>
+0xDEC5	0x593C	# <CJK>
+0xDEC6	0x5941	# <CJK>
+0xDEC7	0x8037	# <CJK>
+0xDEC8	0x5955	# <CJK>
+0xDEC9	0x595A	# <CJK>
+0xDECA	0x5958	# <CJK>
+0xDECB	0x530F	# <CJK>
+0xDECC	0x5C22	# <CJK>
+0xDECD	0x5C25	# <CJK>
+0xDECE	0x5C2C	# <CJK>
+0xDECF	0x5C34	# <CJK>
+0xDED0	0x624C	# <CJK>
+0xDED1	0x626A	# <CJK>
+0xDED2	0x629F	# <CJK>
+0xDED3	0x62BB	# <CJK>
+0xDED4	0x62CA	# <CJK>
+0xDED5	0x62DA	# <CJK>
+0xDED6	0x62D7	# <CJK>
+0xDED7	0x62EE	# <CJK>
+0xDED8	0x6322	# <CJK>
+0xDED9	0x62F6	# <CJK>
+0xDEDA	0x6339	# <CJK>
+0xDEDB	0x634B	# <CJK>
+0xDEDC	0x6343	# <CJK>
+0xDEDD	0x63AD	# <CJK>
+0xDEDE	0x63F6	# <CJK>
+0xDEDF	0x6371	# <CJK>
+0xDEE0	0x637A	# <CJK>
+0xDEE1	0x638E	# <CJK>
+0xDEE2	0x63B4	# <CJK>
+0xDEE3	0x636D	# <CJK>
+0xDEE4	0x63AC	# <CJK>
+0xDEE5	0x638A	# <CJK>
+0xDEE6	0x6369	# <CJK>
+0xDEE7	0x63AE	# <CJK>
+0xDEE8	0x63BC	# <CJK>
+0xDEE9	0x63F2	# <CJK>
+0xDEEA	0x63F8	# <CJK>
+0xDEEB	0x63E0	# <CJK>
+0xDEEC	0x63FF	# <CJK>
+0xDEED	0x63C4	# <CJK>
+0xDEEE	0x63DE	# <CJK>
+0xDEEF	0x63CE	# <CJK>
+0xDEF0	0x6452	# <CJK>
+0xDEF1	0x63C6	# <CJK>
+0xDEF2	0x63BE	# <CJK>
+0xDEF3	0x6445	# <CJK>
+0xDEF4	0x6441	# <CJK>
+0xDEF5	0x640B	# <CJK>
+0xDEF6	0x641B	# <CJK>
+0xDEF7	0x6420	# <CJK>
+0xDEF8	0x640C	# <CJK>
+0xDEF9	0x6426	# <CJK>
+0xDEFA	0x6421	# <CJK>
+0xDEFB	0x645E	# <CJK>
+0xDEFC	0x6484	# <CJK>
+0xDEFD	0x646D	# <CJK>
+0xDEFE	0x6496	# <CJK>
+0xDFA1	0x647A	# <CJK>
+0xDFA2	0x64B7	# <CJK>
+0xDFA3	0x64B8	# <CJK>
+0xDFA4	0x6499	# <CJK>
+0xDFA5	0x64BA	# <CJK>
+0xDFA6	0x64C0	# <CJK>
+0xDFA7	0x64D0	# <CJK>
+0xDFA8	0x64D7	# <CJK>
+0xDFA9	0x64E4	# <CJK>
+0xDFAA	0x64E2	# <CJK>
+0xDFAB	0x6509	# <CJK>
+0xDFAC	0x6525	# <CJK>
+0xDFAD	0x652E	# <CJK>
+0xDFAE	0x5F0B	# <CJK>
+0xDFAF	0x5FD2	# <CJK>
+0xDFB0	0x7519	# <CJK>
+0xDFB1	0x5F11	# <CJK>
+0xDFB2	0x535F	# <CJK>
+0xDFB3	0x53F1	# <CJK>
+0xDFB4	0x53FD	# <CJK>
+0xDFB5	0x53E9	# <CJK>
+0xDFB6	0x53E8	# <CJK>
+0xDFB7	0x53FB	# <CJK>
+0xDFB8	0x5412	# <CJK>
+0xDFB9	0x5416	# <CJK>
+0xDFBA	0x5406	# <CJK>
+0xDFBB	0x544B	# <CJK>
+0xDFBC	0x5452	# <CJK>
+0xDFBD	0x5453	# <CJK>
+0xDFBE	0x5454	# <CJK>
+0xDFBF	0x5456	# <CJK>
+0xDFC0	0x5443	# <CJK>
+0xDFC1	0x5421	# <CJK>
+0xDFC2	0x5457	# <CJK>
+0xDFC3	0x5459	# <CJK>
+0xDFC4	0x5423	# <CJK>
+0xDFC5	0x5432	# <CJK>
+0xDFC6	0x5482	# <CJK>
+0xDFC7	0x5494	# <CJK>
+0xDFC8	0x5477	# <CJK>
+0xDFC9	0x5471	# <CJK>
+0xDFCA	0x5464	# <CJK>
+0xDFCB	0x549A	# <CJK>
+0xDFCC	0x549B	# <CJK>
+0xDFCD	0x5484	# <CJK>
+0xDFCE	0x5476	# <CJK>
+0xDFCF	0x5466	# <CJK>
+0xDFD0	0x549D	# <CJK>
+0xDFD1	0x54D0	# <CJK>
+0xDFD2	0x54AD	# <CJK>
+0xDFD3	0x54C2	# <CJK>
+0xDFD4	0x54B4	# <CJK>
+0xDFD5	0x54D2	# <CJK>
+0xDFD6	0x54A7	# <CJK>
+0xDFD7	0x54A6	# <CJK>
+0xDFD8	0x54D3	# <CJK>
+0xDFD9	0x54D4	# <CJK>
+0xDFDA	0x5472	# <CJK>
+0xDFDB	0x54A3	# <CJK>
+0xDFDC	0x54D5	# <CJK>
+0xDFDD	0x54BB	# <CJK>
+0xDFDE	0x54BF	# <CJK>
+0xDFDF	0x54CC	# <CJK>
+0xDFE0	0x54D9	# <CJK>
+0xDFE1	0x54DA	# <CJK>
+0xDFE2	0x54DC	# <CJK>
+0xDFE3	0x54A9	# <CJK>
+0xDFE4	0x54AA	# <CJK>
+0xDFE5	0x54A4	# <CJK>
+0xDFE6	0x54DD	# <CJK>
+0xDFE7	0x54CF	# <CJK>
+0xDFE8	0x54DE	# <CJK>
+0xDFE9	0x551B	# <CJK>
+0xDFEA	0x54E7	# <CJK>
+0xDFEB	0x5520	# <CJK>
+0xDFEC	0x54FD	# <CJK>
+0xDFED	0x5514	# <CJK>
+0xDFEE	0x54F3	# <CJK>
+0xDFEF	0x5522	# <CJK>
+0xDFF0	0x5523	# <CJK>
+0xDFF1	0x550F	# <CJK>
+0xDFF2	0x5511	# <CJK>
+0xDFF3	0x5527	# <CJK>
+0xDFF4	0x552A	# <CJK>
+0xDFF5	0x5567	# <CJK>
+0xDFF6	0x558F	# <CJK>
+0xDFF7	0x55B5	# <CJK>
+0xDFF8	0x5549	# <CJK>
+0xDFF9	0x556D	# <CJK>
+0xDFFA	0x5541	# <CJK>
+0xDFFB	0x5555	# <CJK>
+0xDFFC	0x553F	# <CJK>
+0xDFFD	0x5550	# <CJK>
+0xDFFE	0x553C	# <CJK>
+0xE0A1	0x5537	# <CJK>
+0xE0A2	0x5556	# <CJK>
+0xE0A3	0x5575	# <CJK>
+0xE0A4	0x5576	# <CJK>
+0xE0A5	0x5577	# <CJK>
+0xE0A6	0x5533	# <CJK>
+0xE0A7	0x5530	# <CJK>
+0xE0A8	0x555C	# <CJK>
+0xE0A9	0x558B	# <CJK>
+0xE0AA	0x55D2	# <CJK>
+0xE0AB	0x5583	# <CJK>
+0xE0AC	0x55B1	# <CJK>
+0xE0AD	0x55B9	# <CJK>
+0xE0AE	0x5588	# <CJK>
+0xE0AF	0x5581	# <CJK>
+0xE0B0	0x559F	# <CJK>
+0xE0B1	0x557E	# <CJK>
+0xE0B2	0x55D6	# <CJK>
+0xE0B3	0x5591	# <CJK>
+0xE0B4	0x557B	# <CJK>
+0xE0B5	0x55DF	# <CJK>
+0xE0B6	0x55BD	# <CJK>
+0xE0B7	0x55BE	# <CJK>
+0xE0B8	0x5594	# <CJK>
+0xE0B9	0x5599	# <CJK>
+0xE0BA	0x55EA	# <CJK>
+0xE0BB	0x55F7	# <CJK>
+0xE0BC	0x55C9	# <CJK>
+0xE0BD	0x561F	# <CJK>
+0xE0BE	0x55D1	# <CJK>
+0xE0BF	0x55EB	# <CJK>
+0xE0C0	0x55EC	# <CJK>
+0xE0C1	0x55D4	# <CJK>
+0xE0C2	0x55E6	# <CJK>
+0xE0C3	0x55DD	# <CJK>
+0xE0C4	0x55C4	# <CJK>
+0xE0C5	0x55EF	# <CJK>
+0xE0C6	0x55E5	# <CJK>
+0xE0C7	0x55F2	# <CJK>
+0xE0C8	0x55F3	# <CJK>
+0xE0C9	0x55CC	# <CJK>
+0xE0CA	0x55CD	# <CJK>
+0xE0CB	0x55E8	# <CJK>
+0xE0CC	0x55F5	# <CJK>
+0xE0CD	0x55E4	# <CJK>
+0xE0CE	0x8F94	# <CJK>
+0xE0CF	0x561E	# <CJK>
+0xE0D0	0x5608	# <CJK>
+0xE0D1	0x560C	# <CJK>
+0xE0D2	0x5601	# <CJK>
+0xE0D3	0x5624	# <CJK>
+0xE0D4	0x5623	# <CJK>
+0xE0D5	0x55FE	# <CJK>
+0xE0D6	0x5600	# <CJK>
+0xE0D7	0x5627	# <CJK>
+0xE0D8	0x562D	# <CJK>
+0xE0D9	0x5658	# <CJK>
+0xE0DA	0x5639	# <CJK>
+0xE0DB	0x5657	# <CJK>
+0xE0DC	0x562C	# <CJK>
+0xE0DD	0x564D	# <CJK>
+0xE0DE	0x5662	# <CJK>
+0xE0DF	0x5659	# <CJK>
+0xE0E0	0x565C	# <CJK>
+0xE0E1	0x564C	# <CJK>
+0xE0E2	0x5654	# <CJK>
+0xE0E3	0x5686	# <CJK>
+0xE0E4	0x5664	# <CJK>
+0xE0E5	0x5671	# <CJK>
+0xE0E6	0x566B	# <CJK>
+0xE0E7	0x567B	# <CJK>
+0xE0E8	0x567C	# <CJK>
+0xE0E9	0x5685	# <CJK>
+0xE0EA	0x5693	# <CJK>
+0xE0EB	0x56AF	# <CJK>
+0xE0EC	0x56D4	# <CJK>
+0xE0ED	0x56D7	# <CJK>
+0xE0EE	0x56DD	# <CJK>
+0xE0EF	0x56E1	# <CJK>
+0xE0F0	0x56F5	# <CJK>
+0xE0F1	0x56EB	# <CJK>
+0xE0F2	0x56F9	# <CJK>
+0xE0F3	0x56FF	# <CJK>
+0xE0F4	0x5704	# <CJK>
+0xE0F5	0x570A	# <CJK>
+0xE0F6	0x5709	# <CJK>
+0xE0F7	0x571C	# <CJK>
+0xE0F8	0x5E0F	# <CJK>
+0xE0F9	0x5E19	# <CJK>
+0xE0FA	0x5E14	# <CJK>
+0xE0FB	0x5E11	# <CJK>
+0xE0FC	0x5E31	# <CJK>
+0xE0FD	0x5E3B	# <CJK>
+0xE0FE	0x5E3C	# <CJK>
+0xE1A1	0x5E37	# <CJK>
+0xE1A2	0x5E44	# <CJK>
+0xE1A3	0x5E54	# <CJK>
+0xE1A4	0x5E5B	# <CJK>
+0xE1A5	0x5E5E	# <CJK>
+0xE1A6	0x5E61	# <CJK>
+0xE1A7	0x5C8C	# <CJK>
+0xE1A8	0x5C7A	# <CJK>
+0xE1A9	0x5C8D	# <CJK>
+0xE1AA	0x5C90	# <CJK>
+0xE1AB	0x5C96	# <CJK>
+0xE1AC	0x5C88	# <CJK>
+0xE1AD	0x5C98	# <CJK>
+0xE1AE	0x5C99	# <CJK>
+0xE1AF	0x5C91	# <CJK>
+0xE1B0	0x5C9A	# <CJK>
+0xE1B1	0x5C9C	# <CJK>
+0xE1B2	0x5CB5	# <CJK>
+0xE1B3	0x5CA2	# <CJK>
+0xE1B4	0x5CBD	# <CJK>
+0xE1B5	0x5CAC	# <CJK>
+0xE1B6	0x5CAB	# <CJK>
+0xE1B7	0x5CB1	# <CJK>
+0xE1B8	0x5CA3	# <CJK>
+0xE1B9	0x5CC1	# <CJK>
+0xE1BA	0x5CB7	# <CJK>
+0xE1BB	0x5CC4	# <CJK>
+0xE1BC	0x5CD2	# <CJK>
+0xE1BD	0x5CE4	# <CJK>
+0xE1BE	0x5CCB	# <CJK>
+0xE1BF	0x5CE5	# <CJK>
+0xE1C0	0x5D02	# <CJK>
+0xE1C1	0x5D03	# <CJK>
+0xE1C2	0x5D27	# <CJK>
+0xE1C3	0x5D26	# <CJK>
+0xE1C4	0x5D2E	# <CJK>
+0xE1C5	0x5D24	# <CJK>
+0xE1C6	0x5D1E	# <CJK>
+0xE1C7	0x5D06	# <CJK>
+0xE1C8	0x5D1B	# <CJK>
+0xE1C9	0x5D58	# <CJK>
+0xE1CA	0x5D3E	# <CJK>
+0xE1CB	0x5D34	# <CJK>
+0xE1CC	0x5D3D	# <CJK>
+0xE1CD	0x5D6C	# <CJK>
+0xE1CE	0x5D5B	# <CJK>
+0xE1CF	0x5D6F	# <CJK>
+0xE1D0	0x5D5D	# <CJK>
+0xE1D1	0x5D6B	# <CJK>
+0xE1D2	0x5D4B	# <CJK>
+0xE1D3	0x5D4A	# <CJK>
+0xE1D4	0x5D69	# <CJK>
+0xE1D5	0x5D74	# <CJK>
+0xE1D6	0x5D82	# <CJK>
+0xE1D7	0x5D99	# <CJK>
+0xE1D8	0x5D9D	# <CJK>
+0xE1D9	0x8C73	# <CJK>
+0xE1DA	0x5DB7	# <CJK>
+0xE1DB	0x5DC5	# <CJK>
+0xE1DC	0x5F73	# <CJK>
+0xE1DD	0x5F77	# <CJK>
+0xE1DE	0x5F82	# <CJK>
+0xE1DF	0x5F87	# <CJK>
+0xE1E0	0x5F89	# <CJK>
+0xE1E1	0x5F8C	# <CJK>
+0xE1E2	0x5F95	# <CJK>
+0xE1E3	0x5F99	# <CJK>
+0xE1E4	0x5F9C	# <CJK>
+0xE1E5	0x5FA8	# <CJK>
+0xE1E6	0x5FAD	# <CJK>
+0xE1E7	0x5FB5	# <CJK>
+0xE1E8	0x5FBC	# <CJK>
+0xE1E9	0x8862	# <CJK>
+0xE1EA	0x5F61	# <CJK>
+0xE1EB	0x72AD	# <CJK>
+0xE1EC	0x72B0	# <CJK>
+0xE1ED	0x72B4	# <CJK>
+0xE1EE	0x72B7	# <CJK>
+0xE1EF	0x72B8	# <CJK>
+0xE1F0	0x72C3	# <CJK>
+0xE1F1	0x72C1	# <CJK>
+0xE1F2	0x72CE	# <CJK>
+0xE1F3	0x72CD	# <CJK>
+0xE1F4	0x72D2	# <CJK>
+0xE1F5	0x72E8	# <CJK>
+0xE1F6	0x72EF	# <CJK>
+0xE1F7	0x72E9	# <CJK>
+0xE1F8	0x72F2	# <CJK>
+0xE1F9	0x72F4	# <CJK>
+0xE1FA	0x72F7	# <CJK>
+0xE1FB	0x7301	# <CJK>
+0xE1FC	0x72F3	# <CJK>
+0xE1FD	0x7303	# <CJK>
+0xE1FE	0x72FA	# <CJK>
+0xE2A1	0x72FB	# <CJK>
+0xE2A2	0x7317	# <CJK>
+0xE2A3	0x7313	# <CJK>
+0xE2A4	0x7321	# <CJK>
+0xE2A5	0x730A	# <CJK>
+0xE2A6	0x731E	# <CJK>
+0xE2A7	0x731D	# <CJK>
+0xE2A8	0x7315	# <CJK>
+0xE2A9	0x7322	# <CJK>
+0xE2AA	0x7339	# <CJK>
+0xE2AB	0x7325	# <CJK>
+0xE2AC	0x732C	# <CJK>
+0xE2AD	0x7338	# <CJK>
+0xE2AE	0x7331	# <CJK>
+0xE2AF	0x7350	# <CJK>
+0xE2B0	0x734D	# <CJK>
+0xE2B1	0x7357	# <CJK>
+0xE2B2	0x7360	# <CJK>
+0xE2B3	0x736C	# <CJK>
+0xE2B4	0x736F	# <CJK>
+0xE2B5	0x737E	# <CJK>
+0xE2B6	0x821B	# <CJK>
+0xE2B7	0x5925	# <CJK>
+0xE2B8	0x98E7	# <CJK>
+0xE2B9	0x5924	# <CJK>
+0xE2BA	0x5902	# <CJK>
+0xE2BB	0x9963	# <CJK>
+0xE2BC	0x9967	# <CJK>
+0xE2BD	0x9968	# <CJK>
+0xE2BE	0x9969	# <CJK>