Version v5.7.X Development release working toward v5.8
--------------
____________________________________________________________________________
+[ 15372] By: jhi on 2002/03/20 16:54:35
+ Log: Reapply #15336.
+ Branch: perl
+ ! ext/Encode/lib/Encode/Tcl.pm
+____________________________________________________________________________
+[ 15371] By: jhi on 2002/03/20 15:28:44
+ Log: Upgrade to Encode 0.93, from Dan Kogai.
+ Branch: perl
+ + ext/Encode/AUTHORS ext/Encode/Changes ext/Encode/t/CJKalias.t
+ ! MANIFEST ext/Encode/CN/CN.pm ext/Encode/Encode.pm
+ ! ext/Encode/JP/JP.pm ext/Encode/KR/KR.pm ext/Encode/MANIFEST
+ ! ext/Encode/README ext/Encode/TW/TW.pm
+ ! ext/Encode/lib/Encode/CN/HZ.pm
+ ! ext/Encode/lib/Encode/Encoding.pm
+ ! ext/Encode/lib/Encode/Internal.pm
+ ! ext/Encode/lib/Encode/JP/Constants.pm
+ ! ext/Encode/lib/Encode/JP/H2Z.pm
+ ! ext/Encode/lib/Encode/JP/ISO_2022_JP.pm
+ ! ext/Encode/lib/Encode/JP/JIS.pm ext/Encode/lib/Encode/Tcl.pm
+ ! ext/Encode/lib/Encode/Tcl/Escape.pm
+ ! ext/Encode/lib/Encode/Tcl/Table.pm
+ ! ext/Encode/lib/Encode/Unicode.pm ext/Encode/lib/Encode/XS.pm
+ ! ext/Encode/lib/Encode/iso10646_1.pm
+ ! ext/Encode/lib/Encode/ucs2_le.pm ext/Encode/lib/Encode/utf8.pm
+ ! ext/Encode/t/JP.t
+____________________________________________________________________________
+[ 15370] By: jhi on 2002/03/20 15:13:42
+ Log: Subject: patch for syslog
+ From: <Nick.Williams@morganstanley.com>
+ Date: Wed, 20 Mar 2002 15:54:14 +0000 (GMT)
+ Message-ID: <Pine.GSO.4.33.0203201548300.14623-200000@cwit119>
+ Branch: perl
+ ! ext/Sys/Syslog/Syslog.pm
+____________________________________________________________________________
+[ 15369] By: jhi on 2002/03/20 15:10:17
+ Log: Some failure updates.
+ Branch: perl
+ ! pod/perldelta.pod
+____________________________________________________________________________
+[ 15368] By: jhi on 2002/03/20 15:02:04
+ Log: Getopt::Long 2.29 from Johan Vromans.
+ Branch: perl
+ ! lib/Getopt/Long.pm lib/Getopt/Long/CHANGES
+____________________________________________________________________________
+[ 15367] By: jhi on 2002/03/20 14:58:56
+ Log: Rename ExtUtils.t to Constant.t, as suggested by
+ Nicholas Clark.
+ Branch: perl
+ + lib/ExtUtils/t/Constant.t
+ - lib/ExtUtils/t/ExtUtils.t
+ ! MANIFEST
+____________________________________________________________________________
+[ 15366] By: jhi on 2002/03/20 14:56:27
+ Log: Subject: [PATCH] TODO - Make Schwern Poorer
+ From: Nicholas Clark <nick@unfortu.net>
+ Date: Tue, 19 Mar 2002 22:50:28 +0000
+ Message-ID: <20020319225027.GF311@Bagpuss.unfortu.net>
+ Branch: perl
+ ! t/lib/1_compile.t
+____________________________________________________________________________
+[ 15365] By: jhi on 2002/03/20 14:47:15
+ Log: Subject: Re: The story of O [PATCH]
+ From: Richard.Foley@t-online.de (Richard Foley)
+ Date: Sun, 17 Mar 2002 08:37:26 +0100
+ Message-ID: <16mUNX-293TDkC@fwd08.sul.t-online.com>
+ Branch: perl
+ ! lib/perl5db.pl
+____________________________________________________________________________
+[ 15364] By: jhi on 2002/03/20 14:43:11
+ Log: Mention the external modules Encode::HanExtra and
+ PadWalker.
+ Branch: perl
+ ! pod/perldelta.pod
+____________________________________________________________________________
+[ 15363] By: jhi on 2002/03/20 14:38:23
+ Log: Subject: [PATCH] List lexicals from debugger
+ From: Peter Scott <Peter@PSDT.com>
+ Date: Tue, 19 Mar 2002 12:28:52 -0800
+ Message-id: <4.3.2.7.2.20020319101746.00aa7aa0@shell2.webquarry.com>
+ Branch: perl
+ ! lib/dumpvar.pl lib/perl5db.pl pod/perldebug.pod
+____________________________________________________________________________
+[ 15362] By: jhi on 2002/03/20 14:37:05
+ Log: Tweaks from Autrijus Tang: should use euc-tw for Taiwan,
+ and :encoding(xxx) was errorneously parsed.
+ Branch: perl
+ ! lib/open.pm
+____________________________________________________________________________
+[ 15361] By: jhi on 2002/03/20 14:34:38
+ Log: Subject: [PATCH bleadperl] exec.t tweak
+ From: Nikola Knezevic <indy@tesla.rcub.bg.ac.yu>
+ Date: Wed, 20 Mar 2002 01:21:40 +0100
+ Message-ID: <18918217607.20020320012140@tesla.rcub.bg.ac.yu>
+
+ 4NT returns 2 as error-code for nonexistant file.
+ Branch: perl
+ ! t/op/exec.t
+____________________________________________________________________________
+[ 15360] By: jhi on 2002/03/20 14:33:09
+ Log: minor Tie::File test patch to make win32 happier, from mjd.
+ Branch: perl
+ ! lib/Tie/File/t/30_defer.t
+____________________________________________________________________________
+[ 15359] By: jhi on 2002/03/20 14:31:53
+ Log: Subject: [PATCH bleadperl] magic.t tweak
+ From: Nikola Knezevic <indy@tesla.rcub.bg.ac.yu>
+ Date: Wed, 20 Mar 2002 00:39:16 +0100
+ Message-ID: <14415673404.20020320003916@tesla.rcub.bg.ac.yu>
+ Branch: perl
+ ! t/op/magic.t
+____________________________________________________________________________
+[ 15358] By: jhi on 2002/03/20 14:23:46
+ Log: Typo fix from Andreas Koenig, plus a tweak.
+ Branch: perl
+ ! pod/perlunicode.pod
+____________________________________________________________________________
+[ 15357] By: jhi on 2002/03/20 14:21:33
+ Log: Sigh. The _GNU_SOURCE is needed for the struct crypt_data
+ in Mandrake 8.2. Now we need to figure out a way not to
+ unbreak Apache.
+ Branch: perl
+ ! hints/linux.sh
+____________________________________________________________________________
+[ 15356] By: jhi on 2002/03/20 13:59:58
+ Log: Fix for "UTF-8 bug with s///" from Hugo.
+ Branch: perl
+ ! embed.fnc embed.h proto.h regcomp.c regcomp.h regexec.c sv.c
+ ! t/op/pat.t
+____________________________________________________________________________
+[ 15355] By: jhi on 2002/03/20 02:23:23
+ Log: metaconfig unit change for #15354.
+ Branch: metaconfig
+ ! U/threads/usethreads.U
+____________________________________________________________________________
+[ 15354] By: jhi on 2002/03/20 02:23:01
+ Log: Installation updates on threads and perlio.
+ Branch: perl
+ ! Configure INSTALL
+____________________________________________________________________________
+[ 15353] By: jhi on 2002/03/20 01:17:27
+ Log: Tpo.
+ Branch: perl
+ ! pod/perlfaq6.pod
+____________________________________________________________________________
+[ 15352] By: jhi on 2002/03/20 01:15:54
+ Log: Regen modlib and toc.
+ Branch: perl
+ ! pod/perlmodlib.pod pod/perltoc.pod
+____________________________________________________________________________
+[ 15351] By: jhi on 2002/03/20 01:12:28
+ Log: Whitespace tweaks.
+ Branch: perl
+ ! pod/perldebguts.pod pod/perlfaq5.pod pod/perlfunc.pod
+ ! pod/perltodo.pod pod/perlunicode.pod
+____________________________________________________________________________
+[ 15350] By: jhi on 2002/03/20 00:55:54
+ Log: If it looks like UTF-8 (either nl_langinfo or locale variables),
+ think UTF-8, embrace your inner UTF-8, as suggested by Larry.
+ (And as suggested by Markus Kuhn.)
+
+ While we are at it, document also the case of
+ mixed hash keys as a known potential troublemaker.
+ (Since it's locale-related, sometimes.)
+ Branch: perl
+ ! embedvar.h intrpvar.h lib/open.pm locale.c perl.c perlapi.h
+ ! pod/perldelta.pod pod/perllocale.pod pod/perlunicode.pod
+ ! pod/perluniintro.pod
+____________________________________________________________________________
+[ 15349] By: jhi on 2002/03/20 00:47:17
+ Log: Surely a typo.
+ Branch: perl
+ ! gv.c
+____________________________________________________________________________
+[ 15348] By: jhi on 2002/03/19 22:05:29
+ Log: Take two.
+ Branch: perl
+ + ext/Encode/t/jisx0208.euc ext/Encode/t/jisx0208.ref
+ + ext/Encode/t/jisx0212.euc ext/Encode/t/jisx0212.ref
+____________________________________________________________________________
+[ 15347] By: jhi on 2002/03/19 22:04:45
+ Log: Let's try this from scratch.
+ Branch: perl
+ - ext/Encode/t/jisx0208.euc ext/Encode/t/jisx0208.ref
+ - ext/Encode/t/jisx0212.euc ext/Encode/t/jisx0212.ref
+____________________________________________________________________________
+[ 15346] By: jhi on 2002/03/19 21:59:14
+ Log: I could do this all day...
+ Branch: perl
+ ! ext/Encode/t/jisx0208.euc ext/Encode/t/jisx0208.ref
+ ! ext/Encode/t/jisx0212.euc ext/Encode/t/jisx0212.ref
+____________________________________________________________________________
+[ 15345] By: jhi on 2002/03/19 21:54:20
+ Log: Grrr.
+ Branch: perl
+ ! ext/Encode/t/jisx0208.euc ext/Encode/t/jisx0208.ref
+ ! ext/Encode/t/jisx0212.euc ext/Encode/t/jisx0212.ref
+____________________________________________________________________________
+[ 15344] By: jhi on 2002/03/19 21:49:47
+ Log: Subject: Re: Nearly OK for cygwin@15318
+ From: John Peacock <jpeacock@rowman.com>
+ Date: Tue, 19 Mar 2002 15:58:08 -0500
+ Message-ID: <3C97A660.3060302@rowman.com>
+ Branch: perl
+ ! pod/perlport.pod
+____________________________________________________________________________
+[ 15343] By: jhi on 2002/03/19 21:47:02
+ Log: Subject: Re: Nearly OK for cygwin@15318
+ From: <slaven.rezic@berlin.de>
+ Date: Tue, 19 Mar 2002 21:47:49 +0100
+ Message-Id: <20020319204958.PTWF27460.mailoutvl21@[192.168.139.30]>
+
+ Subject: Re: Nearly OK for cygwin@15318
+ From: <slaven.rezic@berlin.de>
+ Date: Tue, 19 Mar 2002 21:37:18 +0100
+ Message-Id: <20020319203927.PTPI27460.mailoutvl21@[192.168.139.30]>
+ Branch: perl
+ ! pod/perlport.pod t/io/fs.t
+____________________________________________________________________________
+[ 15342] By: jhi on 2002/03/19 21:41:12
+ Log: D'oh.
+ Branch: perl
+ + ext/I18N/Langinfo/fallback/const-c.inc
+ + ext/I18N/Langinfo/fallback/const-xs.inc
+____________________________________________________________________________
+[ 15341] By: jhi on 2002/03/19 21:40:49
+ Log: Subject: [PATCH] proper fallback for I18N::Langinfo
+ From: Nicholas Clark <nick@unfortu.net>
+ Date: Tue, 19 Mar 2002 22:37:08 +0000
+ Message-ID: <20020319223707.GE311@Bagpuss.unfortu.net>
+
+ Subject: Re: [PATCH] proper fallback for I18N::Langinfo
+ From: Nicholas Clark <nick@ccl4.org>
+ Date: Tue, 19 Mar 2002 22:39:55 +0000
+ Message-ID: <20020319223954.G94831@plum.flirble.org>
+ Branch: perl
+ - ext/I18N/Langinfo/fallback.xs
+ ! MANIFEST
+____________________________________________________________________________
+[ 15340] By: jhi on 2002/03/19 21:31:16
+ Log: Text, not binary.
+ Branch: perl
+ ! ext/Encode/t/jisx0208.euc ext/Encode/t/jisx0208.ref
+ ! ext/Encode/t/jisx0212.euc ext/Encode/t/jisx0212.ref
+____________________________________________________________________________
+[ 15339] By: jhi on 2002/03/19 21:26:10
+ Log: Subject: Re: perl@15244
+ From: "H.Merijn Brand" <h.m.brand@hccnet.nl>
+ Date: Mon, 18 Mar 2002 17:37:31 +0100
+ Message-Id: <20020318173508.8D96.H.M.BRAND@hccnet.nl>
+
+ (Goedendag: Dutch whitespace police)
+ Branch: perl
+ ! hints/hpux.sh
+____________________________________________________________________________
+[ 15338] By: jhi on 2002/03/19 21:10:29
+ Log: Subject: [PATCH] Re: [ID 20020305.026] Not OK: perl v5.7.3 +DEVEL15046 on sun4-solaris 2.7
+ From: Nicholas Clark <nick@unfortu.net>
+ Date: Tue, 19 Mar 2002 21:52:47 +0000
+ Message-ID: <20020319215246.GC311@Bagpuss.unfortu.net>
+ Branch: perl
+ ! ext/Fcntl/Makefile.PL ext/File/Glob/Makefile.PL
+ ! ext/GDBM_File/Makefile.PL ext/I18N/Langinfo/Makefile.PL
+ ! ext/POSIX/Makefile.PL ext/Socket/Makefile.PL
+ ! ext/Sys/Syslog/Makefile.PL
+____________________________________________________________________________
+[ 15337] By: jhi on 2002/03/19 20:09:22
+ Log: More pathname portability checks.
+ Branch: perl
+ ! Porting/check83.pl
+____________________________________________________________________________
+[ 15336] By: jhi on 2002/03/19 18:41:50
+ Log: Begone, Encode::Tcl::Extended.
+ Branch: perl
+ ! ext/Encode/lib/Encode/Tcl.pm
+____________________________________________________________________________
+[ 15335] By: jhi on 2002/03/19 18:40:10
+ Log: This is like trying to put the shaving cream
+ back to the can...
+ Branch: perl
+ ! hints/linux.sh
+____________________________________________________________________________
+[ 15334] By: jhi on 2002/03/19 18:31:59
+ Log: With the -D_SVID_SOURCE Debian 2.2 dies on conflicting
+ types of usleep(). Fun, fun. fun.
+ Branch: perl
+ ! hints/linux.sh
+____________________________________________________________________________
+[ 15333] By: jhi on 2002/03/19 18:25:21
+ Log: Sarathy's new suggestion for Linux threading flags.
+ Branch: perl
+ ! hints/linux.sh
+____________________________________________________________________________
+[ 15332] By: jhi on 2002/03/19 18:23:30
+ Log: Rename euc-jp-012 as euc-jp, as suggested by Dan Kogai.
+ Branch: perl
+ - ext/Encode/Encode/euc-jp-0212.ucm
+ ! MANIFEST ext/Encode/Encode/euc-jp.ucm
+ ! ext/Encode/JP/Makefile.PL ext/Encode/MANIFEST
+____________________________________________________________________________
+[ 15331] By: jhi on 2002/03/19 18:18:21
+ Log: Subject: [PATCH bleadperl] Add targer _test to win32 makefiles
+ From: Nikola Knezevic <indy@tesla.rcub.bg.ac.yu>
+ Date: Tue, 19 Mar 2002 00:42:22 +0100
+ Message-ID: <1199171923.20020319004222@tesla.rcub.bg.ac.yu>
+ Branch: perl
+ ! win32/Makefile win32/Makefile.win64 win32/makefile.mk
+____________________________________________________________________________
+[ 15330] By: jhi on 2002/03/19 18:00:48
+ Log: "+" is not a valid filename character in VMS.
+ Branch: perl
+ + ext/Encode/Encode/euc-jp-0212.ucm
+ - ext/Encode/Encode/euc-jp+0212.ucm
+ ! ext/Encode/JP/Makefile.PL ext/Encode/MANIFEST
+____________________________________________________________________________
+[ 15329] By: jhi on 2002/03/19 15:49:12
+ Log: Update Changes.
+ Branch: perl
+ ! Changes patchlevel.h
+____________________________________________________________________________
+[ 15328] By: jhi on 2002/03/19 15:25:58
+ Log: Take away _GNU_SOURCE since that does not seem
+ to play well with other software (like Apache),
+ just hint away the WHOAs.
+ Branch: perl
+ ! hints/linux.sh
+____________________________________________________________________________
+[ 15327] By: jhi on 2002/03/19 15:17:12
+ Log: metaconfig unit change for #15326.
+ Branch: metaconfig
+ ! U/threads/d_crypt_r.U
+____________________________________________________________________________
+[ 15326] By: jhi on 2002/03/19 15:16:43
+ Log: Support crypt_r(const char*,const char*, CRYPTD*).
+ Branch: perl
+ ! Configure reentr.h reentr.pl
+____________________________________________________________________________
+[ 15325] By: jhi on 2002/03/19 14:54:21
+ Log: VMS acrobatics from Peter Prymmer.
+ Branch: perl
+ ! lib/ExtUtils/t/ExtUtils.t
+____________________________________________________________________________
+[ 15324] By: jhi on 2002/03/19 14:51:56
+ Log: Subject: [PATCH lib/Pod/Html.pm] remove warning
+ From: Stas Bekman <stas@stason.org>
+ Date: Tue, 19 Mar 2002 13:14:53 +0800 (SGT)
+ Message-ID: <Pine.LNX.4.44.0203191311530.14113-100000@hope.stason.org>
+ Branch: perl
+ ! lib/Pod/Html.pm
+____________________________________________________________________________
+[ 15323] By: jhi on 2002/03/19 14:51:09
+ Log: Subject: [PATCH] Re: ext/B/t/xref.t @15300 on VMS
+ From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+ Date: Tue, 19 Mar 2002 10:49:27 +0100
+ Message-ID: <20020319104927.C705@rafael>
+ Branch: perl
+ ! ext/B/t/xref.t
+____________________________________________________________________________
+[ 15322] By: jhi on 2002/03/19 14:50:02
+ Log: Integrate perlio;
+
+ Move docs for Encode::valid_utf8 (which does not exist)
+ to be docs for utf8::valid() (which does).
+ Branch: perl
+ !> ext/Encode/Encode.pm lib/utf8.pm
+____________________________________________________________________________
+[ 15321] By: jhi on 2002/03/19 14:48:57
+ Log: Remove Encode::Tcl::Extended, suggested by
+ SADAHIRO Tomoyuki.
+ Branch: perl
+ - ext/Encode/Encode/euc-jp-0212.enc
+ - ext/Encode/lib/Encode/Tcl/Extended.pm
+ ! MANIFEST ext/Encode/MANIFEST
+ ! ext/Encode/lib/Encode/Tcl/Escape.pm
+ ! ext/Encode/lib/Encode/Tcl/Table.pm ext/Encode/t/Tcl.t
+____________________________________________________________________________
+[ 15320] By: jhi on 2002/03/19 14:44:18
+ Log: Encode 0.90 (the one with jisx0212-1990) from Dan Kogai.
+ Branch: perl
+ + ext/Encode/Encode/euc-jp+0212.ucm ext/Encode/t/jisx0208.euc
+ + ext/Encode/t/jisx0208.ref ext/Encode/t/jisx0212.euc
+ + ext/Encode/t/jisx0212.ref
+ - ext/Encode/t/japanese.pl ext/Encode/t/table.euc
+ - ext/Encode/t/table.ref
+ ! MANIFEST ext/Encode/CN/CN.pm ext/Encode/Encode.pm
+ ! ext/Encode/Encode.xs ext/Encode/JP/JP.pm
+ ! ext/Encode/JP/Makefile.PL ext/Encode/KR/KR.pm
+ ! ext/Encode/MANIFEST ext/Encode/TW/TW.pm
+ ! ext/Encode/lib/Encode/CN/HZ.pm
+ ! ext/Encode/lib/Encode/Encoding.pm
+ ! ext/Encode/lib/Encode/Internal.pm
+ ! ext/Encode/lib/Encode/JP/Constants.pm
+ ! ext/Encode/lib/Encode/JP/H2Z.pm
+ ! ext/Encode/lib/Encode/JP/ISO_2022_JP.pm
+ ! ext/Encode/lib/Encode/JP/JIS.pm ext/Encode/lib/Encode/Tcl.pm
+ ! ext/Encode/lib/Encode/Tcl/Escape.pm
+ ! ext/Encode/lib/Encode/Tcl/Extended.pm
+ ! ext/Encode/lib/Encode/Tcl/Table.pm
+ ! ext/Encode/lib/Encode/Unicode.pm ext/Encode/lib/Encode/XS.pm
+ ! ext/Encode/lib/Encode/iso10646_1.pm
+ ! ext/Encode/lib/Encode/ucs2_le.pm ext/Encode/lib/Encode/utf8.pm
+ ! ext/Encode/t/CN.t ext/Encode/t/Encode.t ext/Encode/t/JP.t
+ ! ext/Encode/t/TW.t ext/Encode/t/Tcl.t
+____________________________________________________________________________
+[ 15319] By: jhi on 2002/03/19 14:36:41
+ Log: constness+signedness nit.
+ Branch: perl
+ ! ext/Unicode/Normalize/Normalize.xs
+____________________________________________________________________________
+[ 15318] By: jhi on 2002/03/19 14:04:55
+ Log: Update to Unicode::Normalize 0.15 (+ the EBCDIC guards)
+ Branch: perl
+ ! ext/Unicode/Normalize/Changes
+ ! ext/Unicode/Normalize/Normalize.pm
+ ! ext/Unicode/Normalize/Normalize.xs
+ ! ext/Unicode/Normalize/README ext/Unicode/Normalize/mkheader
+ ! ext/Unicode/Normalize/t/func.t
+____________________________________________________________________________
+[ 15317] By: jhi on 2002/03/19 13:56:27
+ Log: Split the ebcdic details to perlebcdic.
+ Branch: perl
+ ! pod/perlebcdic.pod pod/perluniintro.pod
+____________________________________________________________________________
+[ 15316] By: jhi on 2002/03/19 13:31:55
+ Log: Be explicit.
+ Branch: perl
+ ! pod/perluniintro.pod
+____________________________________________________________________________
+[ 15315] By: nick on 2002/03/19 09:24:18
+ Log: Integrate mainline
+ Branch: perlio
+ +> ext/List/Util/t/openhan.t
+ !> (integrate 53 files)
+____________________________________________________________________________
+[ 15314] By: nick on 2002/03/19 07:39:07
+ Log: Move docs for Encode::valid_utf8 (which does not exist)
+ to be docs for utf8::valid() (which does).
+ Branch: perlio
+ ! ext/Encode/Encode.pm lib/utf8.pm
+____________________________________________________________________________
+[ 15313] By: jhi on 2002/03/19 04:58:22
+ Log: Update the Unicode vs EBCDIC situation.
+ Branch: perl
+ ! pod/perlebcdic.pod pod/perluniintro.pod
+____________________________________________________________________________
+[ 15312] By: jhi on 2002/03/19 04:01:39
+ Log: Subject: [DOC PATCH] end.t (was RE: perl@15300 )
+ From: Robert Spier <rspier@pobox.com>
+ Date: Mon, 18 Mar 2002 19:22:55 -0800
+ Message-ID: <15510.44815.383439.823671@rls.cx>
+ Branch: perl
+ ! ext/threads/t/end.t
+____________________________________________________________________________
+[ 15311] By: jhi on 2002/03/19 04:00:38
+ Log: UTF-8 walk errors that become visible in EBCDIC.
+ Branch: perl
+ ! regexec.c
+____________________________________________________________________________
+[ 15310] By: jhi on 2002/03/19 03:48:27
+ Log: s/regcinclasslen/reginclass/ and remove the old
+ reginclass since nothing is using it.
+ Branch: perl
+ ! embed.fnc embed.h proto.h regexec.c
+____________________________________________________________________________
+[ 15309] By: jhi on 2002/03/18 22:18:37
+ Log: Close the file so it can be (a) removed (b) reopened.
+ Branch: perl
+ ! ext/B/t/xref.t
+____________________________________________________________________________
+[ 15308] By: jhi on 2002/03/18 22:17:25
+ Log: Subject: [PATCH utf8.c B.xs] B::perlstring and unicode
+ From: Rafael Garcia-Suarez <rgarciasuarez@free.fr>
+ Date: Mon, 18 Mar 2002 23:14:31 +0100
+ Message-ID: <20020318231431.A699@rafael>
+ Branch: perl
+ ! ext/B/B.xs utf8.c
+____________________________________________________________________________
+[ 15307] By: jhi on 2002/03/18 20:54:07
+ Log: Failed patch hunk reapplied.
+ Branch: perl
+ ! lib/Tie/File/t/32_defer_misc.t
+____________________________________________________________________________
+[ 15306] By: jhi on 2002/03/18 20:18:25
+ Log: For DEBUGGING threaded builds.
+ Branch: perl
+ ! sv.c
+____________________________________________________________________________
+[ 15305] By: jhi on 2002/03/18 19:11:43
+ Log: AUTHORS update.
+ Branch: perl
+ ! AUTHORS
+____________________________________________________________________________
+[ 15304] By: jhi on 2002/03/18 19:08:32
+ Log: Someone (*cough* *cough*) stole VMS' getpwent prototype.
+ (Fix from Craig Berry)
+ Branch: perl
+ ! pp_sys.c
+____________________________________________________________________________
+[ 15303] By: jhi on 2002/03/18 18:54:27
+ Log: Subject: [PATCH] configure.com home-grown kill() check
+ From: "Craig A. Berry" <craigberry@mac.com>
+ Date: Mon, 18 Mar 2002 13:52:59 -0600
+ Message-Id: <5.1.0.14.2.20020318134016.01c5ee00@exchi01>
+ Branch: perl
+ ! configure.com
+____________________________________________________________________________
+[ 15302] By: jhi on 2002/03/18 15:58:00
+ Log: Upgrade to Tie::File 0.50.
+ Branch: perl
+ ! lib/Tie/File.pm lib/Tie/File/t/00_version.t
+ ! lib/Tie/File/t/32_defer_misc.t
+____________________________________________________________________________
+[ 15301] By: jhi on 2002/03/18 15:54:52
+ Log: AUTHORS updates.
+ Branch: perl
+ ! AUTHORS
+____________________________________________________________________________
+[ 15300] By: jhi on 2002/03/18 14:58:27
+ Log: Update Changes.
+ Branch: perl
+ ! Changes patchlevel.h
+____________________________________________________________________________
[ 15299] By: jhi on 2002/03/18 14:53:11
Log: OS/390 update.
Branch: perl
# $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
#
-# Generated on Mon Mar 18 16:52:30 EET 2002 [metaconfig 3.0 PL70]
+# Generated on Wed Mar 20 05:22:55 EET 2002 [metaconfig 3.0 PL70]
# (with additional metaconfig patches by perlbug@perl.org)
cat >c1$$ <<EOF
$define)
$cat <<EOM
-As of 5.5.640, Perl has two different internal threading implementations,
-the 5.005 version (5005threads) and an interpreter-based version
-(ithreads) that has one interpreter per thread. Both are very
-experimental. This arrangement exists to help developers work out
-which one is better.
+As of release 5.6, Perl has two different threading implementations,
+an interpreter-based version (ithreads) with one interpreter per
+thread, and the 5.005 version (5005threads). Both implementations
+are considered experimental, but since 5.8 ithreads somewhat less so.
+The 5005threads is effectively unmaintained.
-If you're a casual user, you probably don't want interpreter-threads
-at this time. But if you do, the 'threads' module allows their use,
-and the 'Thread' module offers an interface to both 5005threads and
-ithreads (whichever has been configured).
EOM
: Default to ithreads unless overridden on command line or with
: old config.sh
./protochk "extern $try" $hdrs && crypt_r_proto=B_CCS ;;
esac
case "$crypt_r_proto" in
+ ''|0) try='char* crypt_r(const char*, const char*, CRYPTD*);'
+ ./protochk "extern $try" $hdrs && crypt_r_proto=B_CCD ;;
+ esac
+ case "$crypt_r_proto" in
'') d_crypt_r=undef
crypt_r_proto=0
echo "Disabling crypt_r, cannot determine prototype." >&4 ;;
The default is to compile without thread support.
-As of v5.5.64, perl has two different internal threads implementations.
-The 5.005 version (5005threads) and an interpreter-based implementation
-(ithreads) with one interpreter per thread. By default, Configure selects
-ithreads if -Dusethreads is specified. However, you can select the old
-5005threads behavior instead by either
+Perl has two different internal threads implementations. The current
+model (available internally since 5.6, and as a user-level module
+since 5.8) is called interpreter-based implementation (ithreads),
+with one interpreter per thread, and explicit sharing of data.
- sh Configure -Dusethreads -Duse5005threads
+The 5.005 version (5005threads) is considered obsolete, buggy, and
+unmaintained.
+
+By default, Configure selects ithreads if -Dusethreads is specified.
-or by
- sh Configure -Dusethreads -Uuseithreads
+However, you can select the old 5005threads behavior
-Eventually (by perl v5.6.0) this internal confusion ought to disappear,
-and these options may disappear as well.
+ sh Configure -Dusethreads -Duse5005threads
+
+If you decide to use ithreads, the 'threads' module allows their use,
+and the 'Thread' module offers an interface to both 5005threads and
+ithreads (whichever has been configured).
=head2 Large file support.
=head2 Selecting File IO mechanisms
Previous versions of perl used the standard IO mechanisms as defined in
-stdio.h. Versions 5.003_02 and later of perl allow alternate IO
+stdio.h. Versions 5.003_02 and later of perl allowed alternate IO
mechanisms via a "PerlIO" abstraction, but the stdio mechanism is still
the default and is the only supported mechanism.
-This PerlIO abstraction can be enabled either on the Configure command
-line with
+Starting from Perl 5.8 the default mechanism is to use the PerlIO
+abstraction, because it allows better control of I/O mechanisms,
+instead of having to work with (often, work around) vendors' I/O
+implementations.
- sh Configure -Duseperlio
+This PerlIO abstraction can be disabled either on the Configure
+command line with
-or interactively at the appropriate Configure prompt.
+ sh Configure -Uuseperlio
-If you choose to use the PerlIO abstraction layer, there are two
-(experimental) possibilities for the underlying IO calls. These have been
-tested to some extent on some platforms, but are not guaranteed to work
-everywhere.
-
-=over 4
-
-=item 1.
+or interactively at the appropriate Configure prompt.
-AT&T's "sfio". This has superior performance to stdio.h in many
-cases, and is extensible by the use of "discipline" modules. Sfio
-currently only builds on a subset of the UNIX platforms perl supports.
-Because the data structures are completely different from stdio, perl
-extension modules or external libraries may not work. This
-configuration exists to allow these issues to be worked on.
+With the PerlIO abstraction layer, there is another possibility for
+the underlying IO calls, AT&T's "sfio". This has superior performance
+to stdio.h in many cases, and is extensible by the use of "discipline"
+modules ("Native" PerlIO has them too). Sfio currently only builds on
+a subset of the UNIX platforms perl supports. Because the data
+structures are completely different from stdio, perl extension modules
+or external libraries may not work. This configuration exists to
+allow these issues to be worked on.
This option requires the 'sfio' package to have been built and installed.
The latest sfio is available from http://www.research.att.com/sw/tools/sfio/
_exit vs. exit. If you have this problem, the fix is to go back to
your sfio sources and correct iffe's guess about atexit.
-=item 2.
-
-Normal stdio IO, but with all IO going through calls to the PerlIO
-abstraction layer. This configuration can be used to check that perl and
-extension modules have been correctly converted to use the PerlIO
-abstraction.
-
-This configuration should work on all platforms (but might not).
-
-You select this option via:
-
- sh Configure -Duseperlio -Uusesfio
-
-If you have already selected -Duseperlio, and if Configure does not
-detect sfio, then this will be the default suggested by Configure.
-
-=back
-
=head2 SOCKS
Perl can be configured to be 'socksified', that is, to use the SOCKS
ext/DynaLoader/Makefile.PL Dynamic Loader makefile writer
ext/DynaLoader/README Dynamic Loader notes and intro
ext/DynaLoader/XSLoader_pm.PL Simple XS Loader perl module
+ext/Encode/AUTHORS Encode extension
+ext/Encode/Changes Encode extension
ext/Encode/CN/CN.pm Encode extension
ext/Encode/CN/Makefile.PL Encode extension
ext/Encode/compile Encode extension
ext/Encode/encengine.c Encode extension
ext/Encode/encode.h Encode extension
ext/Encode/Encode.pm Encode extension
-ext/Encode/Encode.xs Encode extension
+ext/Encode/Encode.xs Encode extension
ext/Encode/Encode/11643-1.enc Encode table
ext/Encode/Encode/11643-2.enc Encode table
ext/Encode/Encode/2022-cn.enc Encode table
ext/Encode/Encode/dingbats.enc Encode table
ext/Encode/Encode/dingbats.ucm Encode table
ext/Encode/Encode/euc-cn.enc Encode table
-ext/Encode/Encode/euc-jp-0212.enc Encode table
ext/Encode/Encode/euc-jp.enc Encode table
ext/Encode/Encode/euc-jp.ucm Encode table
ext/Encode/Encode/euc-kr.enc Encode table
ext/Encode/KR/KR.pm Encode extension
ext/Encode/KR/Makefile.PL Encode extension
ext/Encode/lib/Encode/CN/HZ.pm Encode extension
+ext/Encode/lib/Encode/Description.pod Encode extension
ext/Encode/lib/Encode/Encoding.pm Encode extension
ext/Encode/lib/Encode/Internal.pm Encode extension
ext/Encode/lib/Encode/iso10646_1.pm Encode extension
ext/Encode/lib/Encode/JP/JIS.pm Encode extension
ext/Encode/lib/Encode/Tcl.pm Encode extension
ext/Encode/lib/Encode/Tcl/Escape.pm Encode extension
-ext/Encode/lib/Encode/Tcl/Extended.pm Encode extension
ext/Encode/lib/Encode/Tcl/Table.pm Encode extension
ext/Encode/lib/Encode/ucs2_le.pm Encode extension
ext/Encode/lib/Encode/Unicode.pm Encode extension
ext/Encode/Makefile.PL Encode extension makefile writer
ext/Encode/MANIFEST Encode extension
ext/Encode/README Encode extension
+ext/Encode/t/CJKalias.t Encode extension
ext/Encode/t/CN.t Encode extension test
ext/Encode/t/Encode.t Encode extension test
-ext/Encode/t/japanese.pl Encode extension
+ext/Encode/t/jisx0208.euc Encode extension test
+ext/Encode/t/jisx0208.ref Encode extension test
+ext/Encode/t/jisx0212.euc Encode extension test
+ext/Encode/t/jisx0212.ref Encode extension test
ext/Encode/t/JP.t Encode extension test
-ext/Encode/t/table.euc Encode extension test
-ext/Encode/t/table.ref Encode extension test
ext/Encode/t/Tcl.t Encode extension test
ext/Encode/t/TW.t Encode extension test
ext/Encode/TW/Makefile.PL Encode extension
ext/GDBM_File/hints/sco.pl Hint for GDBM_File for named architecture
ext/GDBM_File/Makefile.PL GDBM extension makefile writer
ext/GDBM_File/typemap GDBM extension interface types
-ext/I18N/Langinfo/fallback.xs I18N::Langinfo
+ext/I18N/Langinfo/fallback/const-c.inc I18N::Langinfo
+ext/I18N/Langinfo/fallback/const-xs.inc I18N::Langinfo
ext/I18N/Langinfo/Langinfo.pm I18N::Langinfo
ext/I18N/Langinfo/Langinfo.t I18N::Langinfo
ext/I18N/Langinfo/Langinfo.xs I18N::Langinfo
lib/ExtUtils/MM_Win32.pm MakeMaker methods for Win32
lib/ExtUtils/Packlist.pm Manipulates .packlist files
lib/ExtUtils/t/Command.t See if ExtUtils::Command works (Win32 only)
+lib/ExtUtils/t/Constant.t See if ExtUtils::Constant works
lib/ExtUtils/t/Embed.t See if ExtUtils::Embed and embedding works
-lib/ExtUtils/t/ExtUtils.t See if extutils work
lib/ExtUtils/t/hints.t See if hint files are honored.
lib/ExtUtils/t/Installed.t See if ExtUtils::Installed works
lib/ExtUtils/t/Manifest.t See if ExtUtils::Manifest works
if (status < 0) {
dTHR;
if (ckWARN(WARN_EXEC))
- Perl_warner(aTHX_ WARN_EXEC, "Can't spawn \"%s\": %s", argv[0], strerror(errno));
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't spawn \"%s\": %s", argv[0], strerror(errno));
status = 255 * 256;
}
else
#!/usr/local/bin/perl
-# Check whether there are naming conflicts when names are truncated
-# to the DOSish case-ignoring 8.3 format
+# Check whether there are naming conflicts when names are truncated to
+# the DOSish case-ignoring 8.3 format, plus other portability no-nos.
sub eight_dot_three {
my ($dir, $base, $ext) = ($_[0] =~ m!^(?:(.+)/)?([^/.]+)(?:\.([^/.]+))?$!);
+ my $file = $base . defined $ext ? ".$ext" : "";
$base = substr($base, 0, 8);
$ext = substr($ext, 0, 3) if defined $ext;
+ if ($dir =~ /\./) {
+ warn "$dir: directory name contains '.'\n";
+ }
+ if ($file =~ /[^A-Za-z0-9\._-]/) {
+ warn "$file: filename contains non-portable characters\n";
+ }
+ if (length $file > 30) {
+ warn "$file: filename longer than 30 characters\n";
+ }
if (defined $dir) {
return ($dir, defined $ext ? "$dir/$base.$ext" : "$dir/$base");
} else {
if (childpid < 0) {
status = -1;
if(ckWARN(WARN_EXEC))
- Perl_warner(aTHX_ WARN_EXEC,"Can't spawn \"%s\": %s",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC),"Can't spawn \"%s\": %s",
path,Strerror (errno));
} else {
do {
convretcode (pTHX_ int rc,char *prog,int fl)
{
if (rc < 0 && ckWARN(WARN_EXEC))
- Perl_warner(aTHX_ WARN_EXEC,"Can't %s \"%s\": %s",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC),"Can't %s \"%s\": %s",
fl ? "exec" : "spawn",prog,Strerror (errno));
if (rc >= 0)
return rc << 8;
s |U8* |reghopmaybe |U8 *pos|I32 off
s |U8* |reghopmaybe3 |U8 *pos|I32 off|U8 *lim
s |char* |find_byclass |regexp * prog|regnode *c|char *s|char *strend|char *startpos|I32 norun
+s |void |to_utf8_substr |regexp * prog
+s |void |to_byte_substr |regexp * prog
#endif
#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
#define reghopmaybe S_reghopmaybe
#define reghopmaybe3 S_reghopmaybe3
#define find_byclass S_find_byclass
+#define to_utf8_substr S_to_utf8_substr
+#define to_byte_substr S_to_byte_substr
#endif
#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
#define deb_curcv S_deb_curcv
#define reghopmaybe(a,b) S_reghopmaybe(aTHX_ a,b)
#define reghopmaybe3(a,b,c) S_reghopmaybe3(aTHX_ a,b,c)
#define find_byclass(a,b,c,d,e,f) S_find_byclass(aTHX_ a,b,c,d,e,f)
+#define to_utf8_substr(a) S_to_utf8_substr(aTHX_ a)
+#define to_byte_substr(a) S_to_byte_substr(aTHX_ a)
#endif
#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
#define deb_curcv(a) S_deb_curcv(aTHX_ a)
#define PL_utf8_upper (PERL_GET_INTERP->Iutf8_upper)
#define PL_utf8_xdigit (PERL_GET_INTERP->Iutf8_xdigit)
#define PL_uudmap (PERL_GET_INTERP->Iuudmap)
+#define PL_wantutf8 (PERL_GET_INTERP->Iwantutf8)
#define PL_warnhook (PERL_GET_INTERP->Iwarnhook)
#define PL_widesyscalls (PERL_GET_INTERP->Iwidesyscalls)
#define PL_xiv_arenaroot (PERL_GET_INTERP->Ixiv_arenaroot)
#define PL_utf8_upper (vTHX->Iutf8_upper)
#define PL_utf8_xdigit (vTHX->Iutf8_xdigit)
#define PL_uudmap (vTHX->Iuudmap)
+#define PL_wantutf8 (vTHX->Iwantutf8)
#define PL_warnhook (vTHX->Iwarnhook)
#define PL_widesyscalls (vTHX->Iwidesyscalls)
#define PL_xiv_arenaroot (vTHX->Ixiv_arenaroot)
#define PL_Iutf8_upper PL_utf8_upper
#define PL_Iutf8_xdigit PL_utf8_xdigit
#define PL_Iuudmap PL_uudmap
+#define PL_Iwantutf8 PL_wantutf8
#define PL_Iwarnhook PL_warnhook
#define PL_Iwidesyscalls PL_widesyscalls
#define PL_Ixiv_arenaroot PL_xiv_arenaroot
-#!./perl -w
+#!./perl
BEGIN {
chdir 't' if -d 't';
}
use strict;
+use warnings;
+no warnings 'once';
use Test::More tests => 14;
# line 50
my $file = 'xreftest.out';
+open SAVEOUT, ">&STDOUT" or diag $!;
+close STDOUT;
# line 100
our $compilesub = B::Xref::compile("-o$file");
ok( ref $compilesub eq 'CODE', "compile() returns a coderef ($compilesub)" );
$compilesub->(); # Compile this test script
-
-#END { unlink $file or diag "END block failed: $!" }
+close STDOUT;
+open STDOUT, ">&SAVEOUT" or diag $!;
# Now parse the output
# line 200
);
END {
- close XREF;
1 while unlink $file;
}
--- /dev/null
+# To give due honor to those who have made Encode module what is is today,
+# here are easily-from-changelogs-extractable people and their
+# (hopefully) current and preferred email addresses (as of early 2001,
+# if known).
+#
+# The use of this database for anything else than Encode and/or Perl
+# development is strictly forbidden. (Passive distribution with the Perl
+# source code kit is naturally allowed.)
+#
+# This list is in alphabetical order.
+--
+Anton Tagunov <tagunov@motor.ru>
+Autrijus Tang <autrijus@autrijus.org>
+Dan Kogai <dankogai@dan.co.jp>
+Jarkko Hietaniemi <jhi@iki.fi>
+Nick Ing-Simmons <nick@ing-simmons.net>
+SADAHIRO Tomoyuki <SADAHIRO@cpan.org>
package Encode::CN;
-our $VERSION = '0.02';
+our $VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Encode;
use Encode::CN::HZ;
use XSLoader;
XSLoader::load('Encode::CN',$VERSION);
+Encode::define_alias( qr/euc.*cn$/i => '"euc-cn"' );
+Encode::define_alias( qr/cn.*euc/i => '"euc-cn"' );
+
1;
__END__
=head1 NAME
=head1 SYNOPSIS
- use Encode 'encode';
+ use Encode qw/encode decode/;
$euc_cn = encode("euc-cn", $utf8); # loads Encode::CN implicitly
- $utf8 = encode("euc-cn", $euc_cn); # ditto
+ $utf8 = decode("euc-cn", $euc_cn); # ditto
=head1 DESCRIPTION
This module implements China-based Chinese charset encodings.
Encodings supported are as follows.
- euc-cn EUC (Extended Unix Character)
- gb2312 The raw (low-bit) GB2312 character map
- gb12345 Traditional chinese counterpart to GB2312 (raw)
- iso-ir-165 GB2312 + GB6345 + GB8565 + additions
- cp936 Code Page 936, also known as GBK (Extended GuoBiao)
- hz 7-bit escaped GB2312 encoding
+ Canonical Alias Description
+ --------------------------------------------------------------------
+ euc-cn /euc.*cn$/i EUC (Extended Unix Character)
+ /cn.*euc$/i
+ gb2312 The raw (low-bit) GB2312 character map
+ gb12345 Traditional chinese counterpart to
+ GB2312 (raw)
+ iso-ir-165 GB2312 + GB6345 + GB8565 + additions
+ cp936 Code Page 936, also known as GBK
+ (Extended GuoBiao)
+ hz 7-bit escaped GB2312 encoding
To find how to use this module in detail, see L<Encode>.
--- /dev/null
+# Revision history for Perl extension Encode.
+#
+# $Id: Changes,v 0.94 2002/03/20 19:59:38 dankogai Exp dankogai $
+#
+
+0.94 Thu Mar 21 2002
++ lib/Encode/Description.pod
+! lib/Encode/Encoding.pm
+ Now the pod in Encode.pm is abridged as programming references.
+ lib/Encode/Description.pod contains the original, detailed description
+ and Encode::Encoding explains how to write your own module to
+ add new encodings. So far, lib/Encode/Description.pod contains
+ the whole pod once in Encode.pm. This is intentional.
+! Encode.pm
+ Pod revisions by Anton Tagunov
+ Message-Id: <517178431.20020320174824@motor.ru>
+! lib/Encode/Tcl.pm
+ all occrance of Encode::Tcl::Extended removed including pod
+! t/CJKalias.t
+ test now checks $encoding->name only; $encoding->{name} are
+ no longer check to find the canonical name.
+! lib/Encode/JP/JIS.pm
+! lib/Encode/JP/ISO_2022_JP.pm
+ ->name() added to be more compliant with API
+! CN/CN.pm
+! JP/JP.pm
+! KR/KR.pm
+! TW/TW.pm
+! t/CJKalias.t
+ Patch by Autrijus to add aliases to TW and fixes to POD
+ Message-Id: <20020320090619.GA24774@not.autrijus.org>
+! AUTHORS
+ SADAHIRO Tomoyuki added as should. My apologies.
+
+0.93 Wed Mar 20 2002
+* First release to be uploaded to CPAN. For prehistoric changes,
+ please see Changes file of perl distibution as well as
+ perl-unicode@perl.org archive, available at:
+ http://archive.develooper.com/perl-unicode@perl.org/
+
+ Changes Since 0.92 includes;
++ Changes
++ AUTHORS
+! Encode.pm
+! README
+ + Mention to perl-unicode@perl.org added
+! JP/JP.pm
+ + Encoding aliases added so you can feed locale names
+ and MIME Charset="" directly.
+ - Mention to JISX0212 removed because it's fixed
+! CN/CN.pm
+! KR/KR.pm
+ + Encoding aliases added. Note TW is left untouched because
+ euc-tw is not implemented in TW but in Encode::HanExtra.
+ Autrijus, you may fix Encode::HanExtra.
++ t/CJKalias.t
+ + to test encode aliases added
package Encode;
use strict;
-our $VERSION = '0.40';
+our $VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
require DynaLoader;
require Exporter;
cp936 => 'Encode/CN.pm',
'iso-ir-165' => 'Encode/CN.pm',
'euc-jp' => 'Encode/JP.pm',
+ 'iso-2022-jp' => 'Encode/JP.pm',
+ '7bit-jis' => 'Encode/JP.pm',
shiftjis => 'Encode/JP.pm',
macjapan => 'Encode/JP.pm',
cp932 => 'Encode/JP.pm',
# TODO: Thai encoding TCVN
# TODO: Korean encoding Johab
# TODO: Vietnamese encodings VPS
-# TODO: Japanese encoding JIS (not the same as SJIS)
# TODO: Mac Asian+African encodings: Arabic Armenian Bengali Burmese
# ChineseSimp ChineseTrad Devanagari Ethiopic ExtArabic
# Farsi Georgian Gujarati Gurmukhi Hebrew Japanese
The C<Encode> module provides the interfaces between Perl's strings
and the rest of the system. Perl strings are sequences of B<characters>.
-The repertoire of characters that Perl can represent is at least that
-defined by the Unicode Consortium. On most platforms the ordinal
-values of the characters (as returned by C<ord(ch)>) is the "Unicode
-codepoint" for the character (the exceptions are those platforms where
-the legacy encoding is some variant of EBCDIC rather than a super-set
-of ASCII - see L<perlebcdic>).
-
-Traditionaly computer data has been moved around in 8-bit chunks
-often called "bytes". These chunks are also known as "octets" in
-networking standards. Perl is widely used to manipulate data of
-many types - not only strings of characters representing human or
-computer languages but also "binary" data being the machines representation
-of numbers, pixels in an image - or just about anything.
-
-When Perl is processing "binary data" the programmer wants Perl to process
-"sequences of bytes". This is not a problem for Perl - as a byte has 256
-possible values it easily fits in Perl's much larger "logical character".
-
-Due to size concerns, each of B<CJK> (Chinese, Japanese & Korean) modules
-are not loaded in memory until the first time they're used. Although you
-don't have to C<use> the corresponding B<Encode::>(B<TW>|B<CN>|B<JP>|B<KR>)
-modules first, be aware that those encodings will not be in C<%encodings>
-until their module is loaded (either implicitly through using encodings
-contained in the same module, or via an explicit C<use>).
-
-=head2 TERMINOLOGY
-
-=over 4
-
-=item *
-
-I<character>: a character in the range 0..(2**32-1) (or more).
-(What Perl's strings are made of.)
-
-=item *
-
-I<byte>: a character in the range 0..255
-(A special case of a Perl character.)
-
-=item *
-
-I<octet>: 8 bits of data, with ordinal values 0..255
-(Term for bytes passed to or from a non-Perl context, e.g. disk file.)
-
-=back
-
-The marker [INTERNAL] marks Internal Implementation Details, in
-general meant only for those who think they know what they are doing,
-and such details may change in future releases.
-
-=head1 ENCODINGS
-
-=head2 Characteristics of an Encoding
-
-An encoding has a "repertoire" of characters that it can represent,
-and for each representable character there is at least one sequence of
-octets that represents it.
-
-=head2 Types of Encodings
-
-Encodings can be divided into the following types:
-
-=over 4
-
-=item * Fixed length 8-bit (or less) encodings.
-
-Each character is a single octet so may have a repertoire of up to
-256 characters. ASCII and iso-8859-* are typical examples.
-
-=item * Fixed length 16-bit encodings
-
-Each character is two octets so may have a repertoire of up to
-65 536 characters. Unicode's UCS-2 is an example. Also used for
-encodings for East Asian languages.
-
-=item * Fixed length 32-bit encodings.
-
-Not really very "encoded" encodings. The Unicode code points
-are just represented as 4-octet integers. None the less because
-different architectures use different representations of integers
-(so called "endian") there at least two disctinct encodings.
-
-=item * Multi-byte encodings
-
-The number of octets needed to represent a character varies.
-UTF-8 is a particularly complex but regular case of a multi-byte
-encoding. Several East Asian countries use a multi-byte encoding
-where 1-octet is used to cover western roman characters and Asian
-characters get 2-octets.
-(UTF-16 is strictly a multi-byte encoding taking either 2 or 4 octets
-to represent a Unicode code point.)
-
-=item * "Escape" encodings.
-
-These encodings embed "escape sequences" into the octet sequence
-which describe how the following octets are to be interpreted.
-The iso-2022-* family is typical. Following the escape sequence
-octets are encoded by an "embedded" encoding (which will be one
-of the above types) until another escape sequence switches to
-a different "embedded" encoding.
-
-These schemes are very flexible and can handle mixed languages but are
-very complex to process (and have state). No escape encodings are
-implemented for Perl yet.
-
-=back
-
-=head2 Specifying Encodings
-
-Encodings can be specified to the API described below in two ways:
-
-=over 4
-
-=item 1. By name
-
-Encoding names are strings with characters taken from a restricted
-repertoire. See L</"Encoding Names">.
-
-=item 2. As an object
-
-Encoding objects are returned by C<find_encoding($name, [$skip_external])>.
-If the second parameter is true, Encode will refrain from loading external
-modules for CJK encodings.
-
-=back
-
-=head2 Encoding Names
-
-Encoding names are case insensitive. White space in names is ignored.
-In addition an encoding may have aliases. Each encoding has one
-"canonical" name. The "canonical" name is chosen from the names of
-the encoding by picking the first in the following sequence:
-
-=over 4
-
-=item * The MIME name as defined in IETF RFCs.
-
-=item * The name in the IANA registry.
-
-=item * The name used by the organization that defined it.
-
-=back
-
-Because of all the alias issues, and because in the general case
-encodings have state C<Encode> uses the encoding object internally
-once an operation is in progress.
-
-As of Perl 5.8.0, at least the following encodings are recognized
-(the => marks aliases):
-
- ASCII
-
- US-ASCII => ASCII
-
-The Unicode:
-
- UTF-8
- UTF-16
- UCS-2
-
- ISO 10646-1 => UCS-2
-
-The ISO 8859 and KOI:
-
- ISO 8859-1 ISO 8859-6 ISO 8859-11 KOI8-F
- ISO 8859-2 ISO 8859-7 (12 doesn't exist) KOI8-R
- ISO 8859-3 ISO 8859-8 ISO 8859-13 KOI8-U
- ISO 8859-4 ISO 8859-9 ISO 8859-14
- ISO 8859-5 ISO 8859-10 ISO 8859-15
- ISO 8859-16
-
- Latin1 => 8859-1 Latin6 => 8859-10
- Latin2 => 8859-2 Latin7 => 8859-13
- Latin3 => 8859-3 Latin8 => 8859-14
- Latin4 => 8859-4 Latin9 => 8859-15
- Latin5 => 8859-9 Latin10 => 8859-16
-
- Cyrillic => 8859-5
- Arabic => 8859-6
- Greek => 8859-7
- Hebrew => 8859-8
- Thai => 8859-11
- TIS620 => 8859-11
-
-The CJKV: Chinese, Japanese, Korean, Vietnamese:
-
- ISO 2022 ISO 2022 JP-1 JIS 0201 GB 1988 Big5 EUC-CN
- ISO 2022 CN ISO 2022 JP-2 JIS 0208 GB 2312 HZ EUC-JP
- ISO 2022 JP ISO 2022 KR JIS 0210 GB 12345 CNS 11643 EUC-JP-0212
- Shift-JIS GBK Big5-HKSCS EUC-KR
- VISCII ISO-IR-165
-
-(Due to size concerns, additional Chinese encodings including C<GB 18030>,
-C<EUC-TW> and C<BIG5PLUS> are distributed separately on CPAN, under the name
-L<Encode::HanExtra>.)
-
-The PC codepages:
-
- CP37 CP852 CP861 CP866 CP949 CP1251 CP1256
- CP424 CP855 CP862 CP869 CP950 CP1252 CP1257
- CP737 CP856 CP863 CP874 CP1006 CP1253 CP1258
- CP775 CP857 CP864 CP932 CP1047 CP1254
- CP850 CP860 CP865 CP936 CP1250 CP1255
-
- WinLatin1 => CP1252
- WinLatin2 => CP1250
- WinCyrillic => CP1251
- WinGreek => CP1253
- WinTurkiskh => CP1254
- WinHebrew => CP1255
- WinArabic => CP1256
- WinBaltic => CP1257
- WinVietnamese => CP1258
-
-(All the CPI<NNN...> are available also as IBMI<NNN...>.)
-
-The Mac codepages:
-
- MacCentralEuropean MacJapanese
- MacCroatian MacRoman
- MacCyrillic MacRomanian
- MacDingbats MacSami
- MacGreek MacThai
- MacIcelandic MacTurkish
- MacUkraine
-
-Miscellaneous:
-
- 7bit-greek IR-197
- 7bit-kana NeXTstep
- 7bit-latin1 POSIX-BC
- DingBats Roman8
- GSM 0338 Symbol
+To find more about character encodings, please consult
+L<Encode::Description> . This document focuses on programming references.
=head1 PERL ENCODING API
internal form and returns the resulting string. For CHECK see
L</"Handling Malformed Data">.
-For example to convert ISO 8859-1 data to UTF-8:
+For example to convert ISO-8859-1 data to UTF-8:
$utf8 = decode("latin1", $latin1);
encode() or through PerlIO: See L</"Encoding and IO">. For CHECK
see L</"Handling Malformed Data">.
-For example to convert ISO 8859-1 data to UTF-8:
+For example to convert ISO-8859-1 data to UTF-8:
from_to($data, "iso-8859-1", "utf-8");
=back
-=head2 Other Encodings of Unicode
-
-UTF-16 is similar to UCS-2, 16 bit or 2-byte chunks. UCS-2 can only
-represent 0..0xFFFF, while UTF-16 has a I<surrogate pair> scheme which
-allows it to cover the whole Unicode range.
-
-Surrogates are code points set aside to encode the 0x01000..0x10FFFF
-range of Unicode code points in pairs of 16-bit units. The I<high
-surrogates> are the range 0xD800..0xDBFF, and the I<low surrogates>
-are the range 0xDC00..0xDFFFF. The surrogate encoding is
-
- $hi = ($uni - 0x10000) / 0x400 + 0xD800;
- $lo = ($uni - 0x10000) % 0x400 + 0xDC00;
-
-and the decoding is
-
- $uni = 0x10000 + ($hi - 0xD8000) * 0x400 + ($lo - 0xDC00);
-
-Encode implements big-endian UCS-2 aliased to "iso-10646-1" as that
-happens to be the name used by that representation when used with X11
-fonts.
-
-UTF-32 or UCS-4 is 32-bit or 4-byte chunks. Perl's logical characters
-can be considered as being in this form without encoding. An encoding
-to transfer strings in this form (e.g. to write them to a file) would
-need to
-
- pack('L*', unpack('U*', $string)); # native
- or
- pack('V*', unpack('U*', $string)); # little-endian
- or
- pack('N*', unpack('U*', $string)); # big-endian
-
-depending on the endianness required.
-
-No UTF-32 encodings are implemented yet.
-
-Both UCS-2 and UCS-4 style encodings can have "byte order marks" by
-representing the code point 0xFFFE as the very first thing in a file.
-
=head2 Listing available encodings
use Encode qw(encodings);
In this case if I<ENCODING> is not a reference it is C<eval>-ed to
allow C<$1> etc. to be subsituted. The example is one way to names as
used in X11 font names to alias the MIME names for the iso-8859-*
-family.
+family. Note the double quote inside the single quote. If you are
+using regex here, you have to do so or it won't work in this case.
=item As a code reference, e.g.:
=back
-=head2 Defining Encodings
+=head1 Defining Encodings
use Encode qw(define_alias);
define_encoding( $object, 'canonicalName' [,alias...]);
Causes I<canonicalName> to be associated with I<$object>. The object
-should provide the interface described in L</"IMPLEMENTATION CLASSES">
+should provide the interface described in L<Encode::Encoding>
below. If more than two arguments are provided then additional
arguments are taken as aliases for I<$object> as for C<define_alias>.
"character operations" (e.g. C<lc>, C</\W+/>, ...).
You can also use PerlIO to convert larger amounts of data you don't
-want to bring into memory. For example to convert between ISO 8859-1
+want to bring into memory. For example to convert between ISO-8859-1
(Latin 1) and UTF-8 (or UTF-EBCDIC in EBCDIC machines):
open(F, "<:encoding(iso-8859-1)", "data.txt") or die $!;
See also L<encoding> for how to change the default encoding of the
data in your script.
-=head1 Encoding How to ...
-
-To do:
-
-=over 4
-
-=item * IO with mixed content (faking iso-2020-*)
-
-=item * MIME's Content-Length:
-
-=item * UTF-8 strings in binary data.
-
-=item * Perl/Encode wrappers on non-Unicode XS modules.
-
-=back
-
=head1 Messing with Perl's Internals
The following API uses parts of Perl's internals in the current
=back
-=head1 IMPLEMENTATION CLASSES
-
-As mentioned above encodings are (in the current implementation at least)
-defined by objects. The mapping of encoding name to object is via the
-C<%encodings> hash.
-
-The values of the hash can currently be either strings or objects.
-The string form may go away in the future. The string form occurs
-when C<encodings()> has scanned C<@INC> for loadable encodings but has
-not actually loaded the encoding in question. This is because the
-current "loading" process is all Perl and a bit slow.
-
-Once an encoding is loaded then value of the hash is object which
-implements the encoding. The object should provide the following
-interface:
-
-=over 4
-
-=item -E<gt>name
-
-Should return the string representing the canonical name of the encoding.
-
-=item -E<gt>new_sequence
-
-This is a placeholder for encodings with state. It should return an
-object which implements this interface, all current implementations
-return the original object.
-
-=item -E<gt>encode($string,$check)
-
-Should return the octet sequence representing I<$string>. If I<$check>
-is true it should modify I<$string> in place to remove the converted
-part (i.e. the whole string unless there is an error). If an error
-occurs it should return the octet sequence for the fragment of string
-that has been converted, and modify $string in-place to remove the
-converted part leaving it starting with the problem fragment.
-
-If check is is false then C<encode> should make a "best effort" to
-convert the string - for example by using a replacement character.
-
-=item -E<gt>decode($octets,$check)
-
-Should return the string that I<$octets> represents. If I<$check> is
-true it should modify I<$octets> in place to remove the converted part
-(i.e. the whole sequence unless there is an error). If an error
-occurs it should return the fragment of string that has been
-converted, and modify $octets in-place to remove the converted part
-leaving it starting with the problem fragment.
-
-If check is is false then C<decode> should make a "best effort" to
-convert the string - for example by using Unicode's "\x{FFFD}" as a
-replacement character.
-
-=back
-
-It should be noted that the check behaviour is different from the
-outer public API. The logic is that the "unchecked" case is useful
-when encoding is part of a stream which may be reporting errors
-(e.g. STDERR). In such cases it is desirable to get everything
-through somehow without causing additional errors which obscure the
-original one. Also the encoding is best placed to know what the
-correct replacement character is, so if that is the desired behaviour
-then letting low level code do it is the most efficient.
-
-In contrast if check is true, the scheme above allows the encoding to
-do as much as it can and tell layer above how much that was. What is
-lacking at present is a mechanism to report what went wrong. The most
-likely interface will be an additional method call to the object, or
-perhaps (to avoid forcing per-stream objects on otherwise stateless
-encodings) and additional parameter.
-
-It is also highly desirable that encoding classes inherit from
-C<Encode::Encoding> as a base class. This allows that class to define
-additional behaviour for all encoding objects. For example built in
-Unicode, UCS-2 and UTF-8 classes use :
-
- package Encode::MyEncoding;
- use base qw(Encode::Encoding);
-
- __PACKAGE__->Define(qw(myCanonical myAlias));
-
-To create an object with bless {Name => ...},$class, and call
-define_encoding. They inherit their C<name> method from
-C<Encode::Encoding>.
-
-=head2 Compiled Encodings
-
-F<Encode.xs> provides a class C<Encode::XS> which provides the
-interface described above. It calls a generic octet-sequence to
-octet-sequence "engine" that is driven by tables (defined in
-F<encengine.c>). The same engine is used for both encode and
-decode. C<Encode:XS>'s C<encode> forces Perl's characters to their
-UTF-8 form and then treats them as just another multibyte
-encoding. C<Encode:XS>'s C<decode> transforms the sequence and then
-turns the UTF-8-ness flag as that is the form that the tables are
-defined to produce. For details of the engine see the comments in
-F<encengine.c>.
-
-The tables are produced by the Perl script F<compile> (the name needs
-to change so we can eventually install it somewhere). F<compile> can
-currently read two formats:
-
-=over 4
-
-=item *.enc
-
-This is a coined format used by Tcl. It is documented in
-Encode/EncodeFormat.pod.
-
-=item *.ucm
-
-This is the semi-standard format used by IBM's ICU package.
-
-=back
-
-F<compile> can write the following forms:
-
-=over 4
-
-=item *.ucm
-
-See above - the F<Encode/*.ucm> files provided with the distribution have
-been created from the original Tcl .enc files using this approach.
-
-=item *.c
-
-Produces tables as C data structures - this is used to build in encodings
-into F<Encode.so>/F<Encode.dll>.
-
-=item *.xs
-
-In theory this allows encodings to be stand-alone loadable Perl
-extensions. The process has not yet been tested. The plan is to use
-this approach for large East Asian encodings.
-
-=back
-
-The set of encodings built-in to F<Encode.so>/F<Encode.dll> is
-determined by F<Makefile.PL>. The current set is as follows:
-
-=over 4
-
-=item ascii and iso-8859-*
-
-That is all the common 8-bit "western" encodings.
-
-=item IBM-1047 and two other variants of EBCDIC.
-
-These are the same variants that are supported by EBCDIC Perl as
-"native" encodings. They are included to prove "reversibility" of
-some constructs in EBCDIC Perl.
-
-=item symbol and dingbats as used by Tk on X11.
-
-(The reason Encode got started was to support Perl/Tk.)
-
-=back
-
-That set is rather ad hoc and has been driven by the needs of the
-tests rather than the needs of typical applications. It is likely
-to be rationalized.
-
=head1 SEE ALSO
L<perlunicode>, L<perlebcdic>, L<perlfunc/open>, L<PerlIO>, L<encoding>,
-L<utf8>
+L<utf8>, L<Encode::Description>, L<Encode::Encoding> the Perl Unicode Mailing List E<lt>perl-unicode@perl.orgE<gt>
=cut
if (!SvROK(e->enc)) {
e->enc = Nullsv;
errno = EINVAL;
- Perl_warner(aTHX_ WARN_IO, "Cannot find encoding \"%" SVf "\"",
+ Perl_warner(aTHX_ packWARN(WARN_IO), "Cannot find encoding \"%" SVf "\"",
arg);
code = -1;
}
UV ch =
utf8n_to_uvuni(s + slen, (SvCUR(src) - slen),
&clen, 0);
- Perl_warner(aTHX_ WARN_UTF8,
+ Perl_warner(aTHX_ packWARN(WARN_UTF8),
"\"\\N{U+%" UVxf
"}\" does not map to %s", ch,
enc->name[0]);
for real characters, but some encodings have non-assigned
codes which may occur.
*/
- Perl_croak(aTHX_ "%s \"\\x%02X\" does not map to Unicode",
- enc->name[0], (U8) s[slen]);
+ Perl_croak(aTHX_ "%s \"\\x%02X\" does not map to Unicode (%d)",
+ enc->name[0], (U8) s[slen], code);
}
break;
+++ /dev/null
-# Encoding file: euc-jp-0212, extended
-X
-name euc-jp-0212
-ascii {}
-jis0208 >{}
-7bit-kana >\x8e
-jis0212 >\x8f
# compile -o Encode/euc-jp.ucm Encode/euc-jp.enc
<code_set_name> "euc-jp"
<mb_cur_min> 1
-<mb_cur_max> 2
+<mb_cur_max> 3
<subchar> \x3F
#
CHARMAP
+#
+# ASCII
+#
<U0000> \x00 |0 # <control>
<U0001> \x01 |0 # <control>
<U0002> \x02 |0 # <control>
<U007B> \x7B |0 # LEFT CURLY BRACKET
<U007C> \x7C |0 # VERTICAL LINE
<U007D> \x7D |0 # RIGHT CURLY BRACKET
-<U007E> \x7E |0 # TILDE
+<U007E> \x7E |0 # TILDE
<U007F> \x7F |0 # <control>
+#
+# reserved or unused; verbatim translation
+#
<U0080> \x80 |0 # <control>
<U0081> \x81 |0 # <control>
<U0082> \x82 |0 # <control>
<U008B> \x8B |0 # <control>
<U008C> \x8C |0 # <control>
<U008D> \x8D |0 # <control>
+<U0090> \x90 |0 # <control>
+<U0091> \x91 |0 # <control>
+<U0092> \x92 |0 # <control>
+<U0093> \x93 |0 # <control>
+<U0094> \x94 |0 # <control>
+<U0095> \x95 |0 # <control>
+<U0096> \x96 |0 # <control>
+<U0097> \x97 |0 # <control>
+<U0098> \x98 |0 # <control>
+<U0099> \x99 |0 # <control>
+<U009A> \x9A |0 # <control>
+<U009B> \x9B |0 # <control>
+<U009C> \x9C |0 # <control>
+<U009D> \x9D |0 # <control>
+<U009E> \x9E |0 # <control>
+<U009F> \x9F |0 # <control>
+#
+# jisx0201-1978
+#
<UFF61> \x8E\xA1 |0 # HALFWIDTH IDEOGRAPHIC FULL STOP
<UFF62> \x8E\xA2 |0 # HALFWIDTH LEFT CORNER BRACKET
<UFF63> \x8E\xA3 |0 # HALFWIDTH RIGHT CORNER BRACKET
<UFF9D> \x8E\xDD |0 # HALFWIDTH KATAKANA LETTER N
<UFF9E> \x8E\xDE |0 # HALFWIDTH KATAKANA VOICED SOUND MARK
<UFF9F> \x8E\xDF |0 # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
-<U008F> \x8F |0 # <control>
-<U0090> \x90 |0 # <control>
-<U0091> \x91 |0 # <control>
-<U0092> \x92 |0 # <control>
-<U0093> \x93 |0 # <control>
-<U0094> \x94 |0 # <control>
-<U0095> \x95 |0 # <control>
-<U0096> \x96 |0 # <control>
-<U0097> \x97 |0 # <control>
-<U0098> \x98 |0 # <control>
-<U0099> \x99 |0 # <control>
-<U009A> \x9A |0 # <control>
-<U009B> \x9B |0 # <control>
-<U009C> \x9C |0 # <control>
-<U009D> \x9D |0 # <control>
-<U009E> \x9E |0 # <control>
-<U009F> \x9F |0 # <control>
+#
+# jisx0208-1990
+#
<U3000> \xA1\xA1 |0 # IDEOGRAPHIC SPACE
<U3001> \xA1\xA2 |0 # IDEOGRAPHIC COMMA
<U3002> \xA1\xA3 |0 # IDEOGRAPHIC FULL STOP
<U7464> \xF4\xA4 |0 # CJK Ideograph
<U51DC> \xF4\xA5 |0 # CJK Ideograph
<U7199> \xF4\xA6 |0 # CJK Ideograph
+#
+# jisx0212-1990
+# note jisx0212 is not round-trippable
+#
+<U02D8> \x8F\xA2\xAF |0 # BREVE
+<U02C7> \x8F\xA2\xB0 |0 # CARON (Mandarin Chinese third tone)
+<U00B8> \x8F\xA2\xB1 |0 # CEDILLA
+<U02D9> \x8F\xA2\xB2 |0 # DOT ABOVE (Mandarin Chinese light tone)
+<U02DD> \x8F\xA2\xB3 |0 # DOUBLE ACUTE ACCENT
+<U00AF> \x8F\xA2\xB4 |0 # MACRON
+<U02DB> \x8F\xA2\xB5 |0 # OGONEK
+<U02DA> \x8F\xA2\xB6 |0 # RING ABOVE
+<U007E> \x8F\xA2\xB7 |3 # TILDE (euc-jp -> utf8 only)
+<U0384> \x8F\xA2\xB8 |0 # GREEK TONOS
+<U0385> \x8F\xA2\xB9 |0 # GREEK DIALYTIKA TONOS
+<U00A1> \x8F\xA2\xC2 |0 # INVERTED EXCLAMATION MARK
+<U00A6> \x8F\xA2\xC3 |0 # BROKEN BAR
+<U00BF> \x8F\xA2\xC4 |0 # INVERTED QUESTION MARK
+<U00BA> \x8F\xA2\xEB |0 # MASCULINE ORDINAL INDICATOR
+<U00AA> \x8F\xA2\xEC |0 # FEMININE ORDINAL INDICATOR
+<U00A9> \x8F\xA2\xED |0 # COPYRIGHT SIGN
+<U00AE> \x8F\xA2\xEE |0 # REGISTERED SIGN
+<U2122> \x8F\xA2\xEF |0 # TRADE MARK SIGN
+<U00A4> \x8F\xA2\xF0 |0 # CURRENCY SIGN
+<U2116> \x8F\xA2\xF1 |0 # NUMERO SIGN
+<U0386> \x8F\xA6\xE1 |0 # GREEK CAPITAL LETTER ALPHA WITH TONOS
+<U0388> \x8F\xA6\xE2 |0 # GREEK CAPITAL LETTER EPSILON WITH TONOS
+<U0389> \x8F\xA6\xE3 |0 # GREEK CAPITAL LETTER ETA WITH TONOS
+<U038A> \x8F\xA6\xE4 |0 # GREEK CAPITAL LETTER IOTA WITH TONOS
+<U03AA> \x8F\xA6\xE5 |0 # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+<U038C> \x8F\xA6\xE7 |0 # GREEK CAPITAL LETTER OMICRON WITH TONOS
+<U038E> \x8F\xA6\xE9 |0 # GREEK CAPITAL LETTER UPSILON WITH TONOS
+<U03AB> \x8F\xA6\xEA |0 # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+<U038F> \x8F\xA6\xEC |0 # GREEK CAPITAL LETTER OMEGA WITH TONOS
+<U03AC> \x8F\xA6\xF1 |0 # GREEK SMALL LETTER ALPHA WITH TONOS
+<U03AD> \x8F\xA6\xF2 |0 # GREEK SMALL LETTER EPSILON WITH TONOS
+<U03AE> \x8F\xA6\xF3 |0 # GREEK SMALL LETTER ETA WITH TONOS
+<U03AF> \x8F\xA6\xF4 |0 # GREEK SMALL LETTER IOTA WITH TONOS
+<U03CA> \x8F\xA6\xF5 |0 # GREEK SMALL LETTER IOTA WITH DIALYTIKA
+<U0390> \x8F\xA6\xF6 |0 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+<U03CC> \x8F\xA6\xF7 |0 # GREEK SMALL LETTER OMICRON WITH TONOS
+<U03C2> \x8F\xA6\xF8 |0 # GREEK SMALL LETTER FINAL SIGMA
+<U03CD> \x8F\xA6\xF9 |0 # GREEK SMALL LETTER UPSILON WITH TONOS
+<U03CB> \x8F\xA6\xFA |0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+<U03B0> \x8F\xA6\xFB |0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+<U03CE> \x8F\xA6\xFC |0 # GREEK SMALL LETTER OMEGA WITH TONOS
+<U0402> \x8F\xA7\xC2 |0 # CYRILLIC CAPITAL LETTER DJE
+<U0403> \x8F\xA7\xC3 |0 # CYRILLIC CAPITAL LETTER GJE
+<U0404> \x8F\xA7\xC4 |0 # CYRILLIC CAPITAL LETTER UKRAINIAN IE
+<U0405> \x8F\xA7\xC5 |0 # CYRILLIC CAPITAL LETTER DZE
+<U0406> \x8F\xA7\xC6 |0 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+<U0407> \x8F\xA7\xC7 |0 # CYRILLIC CAPITAL LETTER YI
+<U0408> \x8F\xA7\xC8 |0 # CYRILLIC CAPITAL LETTER JE
+<U0409> \x8F\xA7\xC9 |0 # CYRILLIC CAPITAL LETTER LJE
+<U040A> \x8F\xA7\xCA |0 # CYRILLIC CAPITAL LETTER NJE
+<U040B> \x8F\xA7\xCB |0 # CYRILLIC CAPITAL LETTER TSHE
+<U040C> \x8F\xA7\xCC |0 # CYRILLIC CAPITAL LETTER KJE
+<U040E> \x8F\xA7\xCD |0 # CYRILLIC CAPITAL LETTER SHORT U
+<U040F> \x8F\xA7\xCE |0 # CYRILLIC CAPITAL LETTER DZHE
+<U0452> \x8F\xA7\xF2 |0 # CYRILLIC SMALL LETTER DJE
+<U0453> \x8F\xA7\xF3 |0 # CYRILLIC SMALL LETTER GJE
+<U0454> \x8F\xA7\xF4 |0 # CYRILLIC SMALL LETTER UKRAINIAN IE
+<U0455> \x8F\xA7\xF5 |0 # CYRILLIC SMALL LETTER DZE
+<U0456> \x8F\xA7\xF6 |0 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+<U0457> \x8F\xA7\xF7 |0 # CYRILLIC SMALL LETTER YI
+<U0458> \x8F\xA7\xF8 |0 # CYRILLIC SMALL LETTER JE
+<U0459> \x8F\xA7\xF9 |0 # CYRILLIC SMALL LETTER LJE
+<U045A> \x8F\xA7\xFA |0 # CYRILLIC SMALL LETTER NJE
+<U045B> \x8F\xA7\xFB |0 # CYRILLIC SMALL LETTER TSHE
+<U045C> \x8F\xA7\xFC |0 # CYRILLIC SMALL LETTER KJE
+<U045E> \x8F\xA7\xFD |0 # CYRILLIC SMALL LETTER SHORT U
+<U045F> \x8F\xA7\xFE |0 # CYRILLIC SMALL LETTER DZHE
+<U00C6> \x8F\xA9\xA1 |0 # LATIN CAPITAL LIGATURE AE
+<U0110> \x8F\xA9\xA2 |0 # LATIN CAPITAL LETTER D WITH STROKE
+<U0126> \x8F\xA9\xA4 |0 # LATIN CAPITAL LETTER H WITH STROKE
+<U0132> \x8F\xA9\xA6 |0 # LATIN CAPITAL LIGATURE IJ
+<U0141> \x8F\xA9\xA8 |0 # LATIN CAPITAL LETTER L WITH STROKE
+<U013F> \x8F\xA9\xA9 |0 # LATIN CAPITAL LETTER L WITH MIDDLE DOT
+<U014A> \x8F\xA9\xAB |0 # LATIN CAPITAL LETTER ENG
+<U00D8> \x8F\xA9\xAC |0 # LATIN CAPITAL LETTER O WITH STROKE
+<U0152> \x8F\xA9\xAD |0 # LATIN CAPITAL LIGATURE OE
+<U0166> \x8F\xA9\xAF |0 # LATIN CAPITAL LETTER T WITH STROKE
+<U00DE> \x8F\xA9\xB0 |0 # LATIN CAPITAL LETTER THORN
+<U00E6> \x8F\xA9\xC1 |0 # LATIN SMALL LIGATURE AE
+<U0111> \x8F\xA9\xC2 |0 # LATIN SMALL LETTER D WITH STROKE
+<U00F0> \x8F\xA9\xC3 |0 # LATIN SMALL LETTER ETH
+<U0127> \x8F\xA9\xC4 |0 # LATIN SMALL LETTER H WITH STROKE
+<U0131> \x8F\xA9\xC5 |0 # LATIN SMALL LETTER DOTLESS I
+<U0133> \x8F\xA9\xC6 |0 # LATIN SMALL LIGATURE IJ
+<U0138> \x8F\xA9\xC7 |0 # LATIN SMALL LETTER KRA
+<U0142> \x8F\xA9\xC8 |0 # LATIN SMALL LETTER L WITH STROKE
+<U0140> \x8F\xA9\xC9 |0 # LATIN SMALL LETTER L WITH MIDDLE DOT
+<U0149> \x8F\xA9\xCA |0 # LATIN SMALL LETTER N PRECEDED BY APOSTROPHE
+<U014B> \x8F\xA9\xCB |0 # LATIN SMALL LETTER ENG
+<U00F8> \x8F\xA9\xCC |0 # LATIN SMALL LETTER O WITH STROKE
+<U0153> \x8F\xA9\xCD |0 # LATIN SMALL LIGATURE OE
+<U00DF> \x8F\xA9\xCE |0 # LATIN SMALL LETTER SHARP S
+<U0167> \x8F\xA9\xCF |0 # LATIN SMALL LETTER T WITH STROKE
+<U00FE> \x8F\xA9\xD0 |0 # LATIN SMALL LETTER THORN
+<U00C1> \x8F\xAA\xA1 |0 # LATIN CAPITAL LETTER A WITH ACUTE
+<U00C0> \x8F\xAA\xA2 |0 # LATIN CAPITAL LETTER A WITH GRAVE
+<U00C4> \x8F\xAA\xA3 |0 # LATIN CAPITAL LETTER A WITH DIAERESIS
+<U00C2> \x8F\xAA\xA4 |0 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<U0102> \x8F\xAA\xA5 |0 # LATIN CAPITAL LETTER A WITH BREVE
+<U01CD> \x8F\xAA\xA6 |0 # LATIN CAPITAL LETTER A WITH CARON
+<U0100> \x8F\xAA\xA7 |0 # LATIN CAPITAL LETTER A WITH MACRON
+<U0104> \x8F\xAA\xA8 |0 # LATIN CAPITAL LETTER A WITH OGONEK
+<U00C5> \x8F\xAA\xA9 |0 # LATIN CAPITAL LETTER A WITH RING ABOVE
+<U00C3> \x8F\xAA\xAA |0 # LATIN CAPITAL LETTER A WITH TILDE
+<U0106> \x8F\xAA\xAB |0 # LATIN CAPITAL LETTER C WITH ACUTE
+<U0108> \x8F\xAA\xAC |0 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+<U010C> \x8F\xAA\xAD |0 # LATIN CAPITAL LETTER C WITH CARON
+<U00C7> \x8F\xAA\xAE |0 # LATIN CAPITAL LETTER C WITH CEDILLA
+<U010A> \x8F\xAA\xAF |0 # LATIN CAPITAL LETTER C WITH DOT ABOVE
+<U010E> \x8F\xAA\xB0 |0 # LATIN CAPITAL LETTER D WITH CARON
+<U00C9> \x8F\xAA\xB1 |0 # LATIN CAPITAL LETTER E WITH ACUTE
+<U00C8> \x8F\xAA\xB2 |0 # LATIN CAPITAL LETTER E WITH GRAVE
+<U00CB> \x8F\xAA\xB3 |0 # LATIN CAPITAL LETTER E WITH DIAERESIS
+<U00CA> \x8F\xAA\xB4 |0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<U011A> \x8F\xAA\xB5 |0 # LATIN CAPITAL LETTER E WITH CARON
+<U0116> \x8F\xAA\xB6 |0 # LATIN CAPITAL LETTER E WITH DOT ABOVE
+<U0112> \x8F\xAA\xB7 |0 # LATIN CAPITAL LETTER E WITH MACRON
+<U0118> \x8F\xAA\xB8 |0 # LATIN CAPITAL LETTER E WITH OGONEK
+<U011C> \x8F\xAA\xBA |0 # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+<U011E> \x8F\xAA\xBB |0 # LATIN CAPITAL LETTER G WITH BREVE
+<U0122> \x8F\xAA\xBC |0 # LATIN CAPITAL LETTER G WITH CEDILLA
+<U0120> \x8F\xAA\xBD |0 # LATIN CAPITAL LETTER G WITH DOT ABOVE
+<U0124> \x8F\xAA\xBE |0 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+<U00CD> \x8F\xAA\xBF |0 # LATIN CAPITAL LETTER I WITH ACUTE
+<U00CC> \x8F\xAA\xC0 |0 # LATIN CAPITAL LETTER I WITH GRAVE
+<U00CF> \x8F\xAA\xC1 |0 # LATIN CAPITAL LETTER I WITH DIAERESIS
+<U00CE> \x8F\xAA\xC2 |0 # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<U01CF> \x8F\xAA\xC3 |0 # LATIN CAPITAL LETTER I WITH CARON
+<U0130> \x8F\xAA\xC4 |0 # LATIN CAPITAL LETTER I WITH DOT ABOVE
+<U012A> \x8F\xAA\xC5 |0 # LATIN CAPITAL LETTER I WITH MACRON
+<U012E> \x8F\xAA\xC6 |0 # LATIN CAPITAL LETTER I WITH OGONEK
+<U0128> \x8F\xAA\xC7 |0 # LATIN CAPITAL LETTER I WITH TILDE
+<U0134> \x8F\xAA\xC8 |0 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+<U0136> \x8F\xAA\xC9 |0 # LATIN CAPITAL LETTER K WITH CEDILLA
+<U0139> \x8F\xAA\xCA |0 # LATIN CAPITAL LETTER L WITH ACUTE
+<U013D> \x8F\xAA\xCB |0 # LATIN CAPITAL LETTER L WITH CARON
+<U013B> \x8F\xAA\xCC |0 # LATIN CAPITAL LETTER L WITH CEDILLA
+<U0143> \x8F\xAA\xCD |0 # LATIN CAPITAL LETTER N WITH ACUTE
+<U0147> \x8F\xAA\xCE |0 # LATIN CAPITAL LETTER N WITH CARON
+<U0145> \x8F\xAA\xCF |0 # LATIN CAPITAL LETTER N WITH CEDILLA
+<U00D1> \x8F\xAA\xD0 |0 # LATIN CAPITAL LETTER N WITH TILDE
+<U00D3> \x8F\xAA\xD1 |0 # LATIN CAPITAL LETTER O WITH ACUTE
+<U00D2> \x8F\xAA\xD2 |0 # LATIN CAPITAL LETTER O WITH GRAVE
+<U00D6> \x8F\xAA\xD3 |0 # LATIN CAPITAL LETTER O WITH DIAERESIS
+<U00D4> \x8F\xAA\xD4 |0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<U01D1> \x8F\xAA\xD5 |0 # LATIN CAPITAL LETTER O WITH CARON
+<U0150> \x8F\xAA\xD6 |0 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+<U014C> \x8F\xAA\xD7 |0 # LATIN CAPITAL LETTER O WITH MACRON
+<U00D5> \x8F\xAA\xD8 |0 # LATIN CAPITAL LETTER O WITH TILDE
+<U0154> \x8F\xAA\xD9 |0 # LATIN CAPITAL LETTER R WITH ACUTE
+<U0158> \x8F\xAA\xDA |0 # LATIN CAPITAL LETTER R WITH CARON
+<U0156> \x8F\xAA\xDB |0 # LATIN CAPITAL LETTER R WITH CEDILLA
+<U015A> \x8F\xAA\xDC |0 # LATIN CAPITAL LETTER S WITH ACUTE
+<U015C> \x8F\xAA\xDD |0 # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+<U0160> \x8F\xAA\xDE |0 # LATIN CAPITAL LETTER S WITH CARON
+<U015E> \x8F\xAA\xDF |0 # LATIN CAPITAL LETTER S WITH CEDILLA
+<U0164> \x8F\xAA\xE0 |0 # LATIN CAPITAL LETTER T WITH CARON
+<U0162> \x8F\xAA\xE1 |0 # LATIN CAPITAL LETTER T WITH CEDILLA
+<U00DA> \x8F\xAA\xE2 |0 # LATIN CAPITAL LETTER U WITH ACUTE
+<U00D9> \x8F\xAA\xE3 |0 # LATIN CAPITAL LETTER U WITH GRAVE
+<U00DC> \x8F\xAA\xE4 |0 # LATIN CAPITAL LETTER U WITH DIAERESIS
+<U00DB> \x8F\xAA\xE5 |0 # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<U016C> \x8F\xAA\xE6 |0 # LATIN CAPITAL LETTER U WITH BREVE
+<U01D3> \x8F\xAA\xE7 |0 # LATIN CAPITAL LETTER U WITH CARON
+<U0170> \x8F\xAA\xE8 |0 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+<U016A> \x8F\xAA\xE9 |0 # LATIN CAPITAL LETTER U WITH MACRON
+<U0172> \x8F\xAA\xEA |0 # LATIN CAPITAL LETTER U WITH OGONEK
+<U016E> \x8F\xAA\xEB |0 # LATIN CAPITAL LETTER U WITH RING ABOVE
+<U0168> \x8F\xAA\xEC |0 # LATIN CAPITAL LETTER U WITH TILDE
+<U01D7> \x8F\xAA\xED |0 # LATIN CAPITAL LETTER U WITH DIAERESIS AND ACUTE
+<U01DB> \x8F\xAA\xEE |0 # LATIN CAPITAL LETTER U WITH DIAERESIS AND GRAVE
+<U01D9> \x8F\xAA\xEF |0 # LATIN CAPITAL LETTER U WITH DIAERESIS AND CARON
+<U01D5> \x8F\xAA\xF0 |0 # LATIN CAPITAL LETTER U WITH DIAERESIS AND MACRON
+<U0174> \x8F\xAA\xF1 |0 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
+<U00DD> \x8F\xAA\xF2 |0 # LATIN CAPITAL LETTER Y WITH ACUTE
+<U0178> \x8F\xAA\xF3 |0 # LATIN CAPITAL LETTER Y WITH DIAERESIS
+<U0176> \x8F\xAA\xF4 |0 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
+<U0179> \x8F\xAA\xF5 |0 # LATIN CAPITAL LETTER Z WITH ACUTE
+<U017D> \x8F\xAA\xF6 |0 # LATIN CAPITAL LETTER Z WITH CARON
+<U017B> \x8F\xAA\xF7 |0 # LATIN CAPITAL LETTER Z WITH DOT ABOVE
+<U00E1> \x8F\xAB\xA1 |0 # LATIN SMALL LETTER A WITH ACUTE
+<U00E0> \x8F\xAB\xA2 |0 # LATIN SMALL LETTER A WITH GRAVE
+<U00E4> \x8F\xAB\xA3 |0 # LATIN SMALL LETTER A WITH DIAERESIS
+<U00E2> \x8F\xAB\xA4 |0 # LATIN SMALL LETTER A WITH CIRCUMFLEX
+<U0103> \x8F\xAB\xA5 |0 # LATIN SMALL LETTER A WITH BREVE
+<U01CE> \x8F\xAB\xA6 |0 # LATIN SMALL LETTER A WITH CARON
+<U0101> \x8F\xAB\xA7 |0 # LATIN SMALL LETTER A WITH MACRON
+<U0105> \x8F\xAB\xA8 |0 # LATIN SMALL LETTER A WITH OGONEK
+<U00E5> \x8F\xAB\xA9 |0 # LATIN SMALL LETTER A WITH RING ABOVE
+<U00E3> \x8F\xAB\xAA |0 # LATIN SMALL LETTER A WITH TILDE
+<U0107> \x8F\xAB\xAB |0 # LATIN SMALL LETTER C WITH ACUTE
+<U0109> \x8F\xAB\xAC |0 # LATIN SMALL LETTER C WITH CIRCUMFLEX
+<U010D> \x8F\xAB\xAD |0 # LATIN SMALL LETTER C WITH CARON
+<U00E7> \x8F\xAB\xAE |0 # LATIN SMALL LETTER C WITH CEDILLA
+<U010B> \x8F\xAB\xAF |0 # LATIN SMALL LETTER C WITH DOT ABOVE
+<U010F> \x8F\xAB\xB0 |0 # LATIN SMALL LETTER D WITH CARON
+<U00E9> \x8F\xAB\xB1 |0 # LATIN SMALL LETTER E WITH ACUTE
+<U00E8> \x8F\xAB\xB2 |0 # LATIN SMALL LETTER E WITH GRAVE
+<U00EB> \x8F\xAB\xB3 |0 # LATIN SMALL LETTER E WITH DIAERESIS
+<U00EA> \x8F\xAB\xB4 |0 # LATIN SMALL LETTER E WITH CIRCUMFLEX
+<U011B> \x8F\xAB\xB5 |0 # LATIN SMALL LETTER E WITH CARON
+<U0117> \x8F\xAB\xB6 |0 # LATIN SMALL LETTER E WITH DOT ABOVE
+<U0113> \x8F\xAB\xB7 |0 # LATIN SMALL LETTER E WITH MACRON
+<U0119> \x8F\xAB\xB8 |0 # LATIN SMALL LETTER E WITH OGONEK
+<U01F5> \x8F\xAB\xB9 |0 # LATIN SMALL LETTER G WITH ACUTE
+<U011D> \x8F\xAB\xBA |0 # LATIN SMALL LETTER G WITH CIRCUMFLEX
+<U011F> \x8F\xAB\xBB |0 # LATIN SMALL LETTER G WITH BREVE
+<U0121> \x8F\xAB\xBD |0 # LATIN SMALL LETTER G WITH DOT ABOVE
+<U0125> \x8F\xAB\xBE |0 # LATIN SMALL LETTER H WITH CIRCUMFLEX
+<U00ED> \x8F\xAB\xBF |0 # LATIN SMALL LETTER I WITH ACUTE
+<U00EC> \x8F\xAB\xC0 |0 # LATIN SMALL LETTER I WITH GRAVE
+<U00EF> \x8F\xAB\xC1 |0 # LATIN SMALL LETTER I WITH DIAERESIS
+<U00EE> \x8F\xAB\xC2 |0 # LATIN SMALL LETTER I WITH CIRCUMFLEX
+<U01D0> \x8F\xAB\xC3 |0 # LATIN SMALL LETTER I WITH CARON
+<U012B> \x8F\xAB\xC5 |0 # LATIN SMALL LETTER I WITH MACRON
+<U012F> \x8F\xAB\xC6 |0 # LATIN SMALL LETTER I WITH OGONEK
+<U0129> \x8F\xAB\xC7 |0 # LATIN SMALL LETTER I WITH TILDE
+<U0135> \x8F\xAB\xC8 |0 # LATIN SMALL LETTER J WITH CIRCUMFLEX
+<U0137> \x8F\xAB\xC9 |0 # LATIN SMALL LETTER K WITH CEDILLA
+<U013A> \x8F\xAB\xCA |0 # LATIN SMALL LETTER L WITH ACUTE
+<U013E> \x8F\xAB\xCB |0 # LATIN SMALL LETTER L WITH CARON
+<U013C> \x8F\xAB\xCC |0 # LATIN SMALL LETTER L WITH CEDILLA
+<U0144> \x8F\xAB\xCD |0 # LATIN SMALL LETTER N WITH ACUTE
+<U0148> \x8F\xAB\xCE |0 # LATIN SMALL LETTER N WITH CARON
+<U0146> \x8F\xAB\xCF |0 # LATIN SMALL LETTER N WITH CEDILLA
+<U00F1> \x8F\xAB\xD0 |0 # LATIN SMALL LETTER N WITH TILDE
+<U00F3> \x8F\xAB\xD1 |0 # LATIN SMALL LETTER O WITH ACUTE
+<U00F2> \x8F\xAB\xD2 |0 # LATIN SMALL LETTER O WITH GRAVE
+<U00F6> \x8F\xAB\xD3 |0 # LATIN SMALL LETTER O WITH DIAERESIS
+<U00F4> \x8F\xAB\xD4 |0 # LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U01D2> \x8F\xAB\xD5 |0 # LATIN SMALL LETTER O WITH CARON
+<U0151> \x8F\xAB\xD6 |0 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
+<U014D> \x8F\xAB\xD7 |0 # LATIN SMALL LETTER O WITH MACRON
+<U00F5> \x8F\xAB\xD8 |0 # LATIN SMALL LETTER O WITH TILDE
+<U0155> \x8F\xAB\xD9 |0 # LATIN SMALL LETTER R WITH ACUTE
+<U0159> \x8F\xAB\xDA |0 # LATIN SMALL LETTER R WITH CARON
+<U0157> \x8F\xAB\xDB |0 # LATIN SMALL LETTER R WITH CEDILLA
+<U015B> \x8F\xAB\xDC |0 # LATIN SMALL LETTER S WITH ACUTE
+<U015D> \x8F\xAB\xDD |0 # LATIN SMALL LETTER S WITH CIRCUMFLEX
+<U0161> \x8F\xAB\xDE |0 # LATIN SMALL LETTER S WITH CARON
+<U015F> \x8F\xAB\xDF |0 # LATIN SMALL LETTER S WITH CEDILLA
+<U0165> \x8F\xAB\xE0 |0 # LATIN SMALL LETTER T WITH CARON
+<U0163> \x8F\xAB\xE1 |0 # LATIN SMALL LETTER T WITH CEDILLA
+<U00FA> \x8F\xAB\xE2 |0 # LATIN SMALL LETTER U WITH ACUTE
+<U00F9> \x8F\xAB\xE3 |0 # LATIN SMALL LETTER U WITH GRAVE
+<U00FC> \x8F\xAB\xE4 |0 # LATIN SMALL LETTER U WITH DIAERESIS
+<U00FB> \x8F\xAB\xE5 |0 # LATIN SMALL LETTER U WITH CIRCUMFLEX
+<U016D> \x8F\xAB\xE6 |0 # LATIN SMALL LETTER U WITH BREVE
+<U01D4> \x8F\xAB\xE7 |0 # LATIN SMALL LETTER U WITH CARON
+<U0171> \x8F\xAB\xE8 |0 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
+<U016B> \x8F\xAB\xE9 |0 # LATIN SMALL LETTER U WITH MACRON
+<U0173> \x8F\xAB\xEA |0 # LATIN SMALL LETTER U WITH OGONEK
+<U016F> \x8F\xAB\xEB |0 # LATIN SMALL LETTER U WITH RING ABOVE
+<U0169> \x8F\xAB\xEC |0 # LATIN SMALL LETTER U WITH TILDE
+<U01D8> \x8F\xAB\xED |0 # LATIN SMALL LETTER U WITH DIAERESIS AND ACUTE
+<U01DC> \x8F\xAB\xEE |0 # LATIN SMALL LETTER U WITH DIAERESIS AND GRAVE
+<U01DA> \x8F\xAB\xEF |0 # LATIN SMALL LETTER U WITH DIAERESIS AND CARON
+<U01D6> \x8F\xAB\xF0 |0 # LATIN SMALL LETTER U WITH DIAERESIS AND MACRON
+<U0175> \x8F\xAB\xF1 |0 # LATIN SMALL LETTER W WITH CIRCUMFLEX
+<U00FD> \x8F\xAB\xF2 |0 # LATIN SMALL LETTER Y WITH ACUTE
+<U00FF> \x8F\xAB\xF3 |0 # LATIN SMALL LETTER Y WITH DIAERESIS
+<U0177> \x8F\xAB\xF4 |0 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
+<U017A> \x8F\xAB\xF5 |0 # LATIN SMALL LETTER Z WITH ACUTE
+<U017E> \x8F\xAB\xF6 |0 # LATIN SMALL LETTER Z WITH CARON
+<U017C> \x8F\xAB\xF7 |0 # LATIN SMALL LETTER Z WITH DOT ABOVE
+<U4E02> \x8F\xB0\xA1 |0 # <CJK>
+<U4E04> \x8F\xB0\xA2 |0 # <CJK>
+<U4E05> \x8F\xB0\xA3 |0 # <CJK>
+<U4E0C> \x8F\xB0\xA4 |0 # <CJK>
+<U4E12> \x8F\xB0\xA5 |0 # <CJK>
+<U4E1F> \x8F\xB0\xA6 |0 # <CJK>
+<U4E23> \x8F\xB0\xA7 |0 # <CJK>
+<U4E24> \x8F\xB0\xA8 |0 # <CJK>
+<U4E28> \x8F\xB0\xA9 |0 # <CJK>
+<U4E2B> \x8F\xB0\xAA |0 # <CJK>
+<U4E2E> \x8F\xB0\xAB |0 # <CJK>
+<U4E2F> \x8F\xB0\xAC |0 # <CJK>
+<U4E30> \x8F\xB0\xAD |0 # <CJK>
+<U4E35> \x8F\xB0\xAE |0 # <CJK>
+<U4E40> \x8F\xB0\xAF |0 # <CJK>
+<U4E41> \x8F\xB0\xB0 |0 # <CJK>
+<U4E44> \x8F\xB0\xB1 |0 # <CJK>
+<U4E47> \x8F\xB0\xB2 |0 # <CJK>
+<U4E51> \x8F\xB0\xB3 |0 # <CJK>
+<U4E5A> \x8F\xB0\xB4 |0 # <CJK>
+<U4E5C> \x8F\xB0\xB5 |0 # <CJK>
+<U4E63> \x8F\xB0\xB6 |0 # <CJK>
+<U4E68> \x8F\xB0\xB7 |0 # <CJK>
+<U4E69> \x8F\xB0\xB8 |0 # <CJK>
+<U4E74> \x8F\xB0\xB9 |0 # <CJK>
+<U4E75> \x8F\xB0\xBA |0 # <CJK>
+<U4E79> \x8F\xB0\xBB |0 # <CJK>
+<U4E7F> \x8F\xB0\xBC |0 # <CJK>
+<U4E8D> \x8F\xB0\xBD |0 # <CJK>
+<U4E96> \x8F\xB0\xBE |0 # <CJK>
+<U4E97> \x8F\xB0\xBF |0 # <CJK>
+<U4E9D> \x8F\xB0\xC0 |0 # <CJK>
+<U4EAF> \x8F\xB0\xC1 |0 # <CJK>
+<U4EB9> \x8F\xB0\xC2 |0 # <CJK>
+<U4EC3> \x8F\xB0\xC3 |0 # <CJK>
+<U4ED0> \x8F\xB0\xC4 |0 # <CJK>
+<U4EDA> \x8F\xB0\xC5 |0 # <CJK>
+<U4EDB> \x8F\xB0\xC6 |0 # <CJK>
+<U4EE0> \x8F\xB0\xC7 |0 # <CJK>
+<U4EE1> \x8F\xB0\xC8 |0 # <CJK>
+<U4EE2> \x8F\xB0\xC9 |0 # <CJK>
+<U4EE8> \x8F\xB0\xCA |0 # <CJK>
+<U4EEF> \x8F\xB0\xCB |0 # <CJK>
+<U4EF1> \x8F\xB0\xCC |0 # <CJK>
+<U4EF3> \x8F\xB0\xCD |0 # <CJK>
+<U4EF5> \x8F\xB0\xCE |0 # <CJK>
+<U4EFD> \x8F\xB0\xCF |0 # <CJK>
+<U4EFE> \x8F\xB0\xD0 |0 # <CJK>
+<U4EFF> \x8F\xB0\xD1 |0 # <CJK>
+<U4F00> \x8F\xB0\xD2 |0 # <CJK>
+<U4F02> \x8F\xB0\xD3 |0 # <CJK>
+<U4F03> \x8F\xB0\xD4 |0 # <CJK>
+<U4F08> \x8F\xB0\xD5 |0 # <CJK>
+<U4F0B> \x8F\xB0\xD6 |0 # <CJK>
+<U4F0C> \x8F\xB0\xD7 |0 # <CJK>
+<U4F12> \x8F\xB0\xD8 |0 # <CJK>
+<U4F15> \x8F\xB0\xD9 |0 # <CJK>
+<U4F16> \x8F\xB0\xDA |0 # <CJK>
+<U4F17> \x8F\xB0\xDB |0 # <CJK>
+<U4F19> \x8F\xB0\xDC |0 # <CJK>
+<U4F2E> \x8F\xB0\xDD |0 # <CJK>
+<U4F31> \x8F\xB0\xDE |0 # <CJK>
+<U4F60> \x8F\xB0\xDF |0 # <CJK>
+<U4F33> \x8F\xB0\xE0 |0 # <CJK>
+<U4F35> \x8F\xB0\xE1 |0 # <CJK>
+<U4F37> \x8F\xB0\xE2 |0 # <CJK>
+<U4F39> \x8F\xB0\xE3 |0 # <CJK>
+<U4F3B> \x8F\xB0\xE4 |0 # <CJK>
+<U4F3E> \x8F\xB0\xE5 |0 # <CJK>
+<U4F40> \x8F\xB0\xE6 |0 # <CJK>
+<U4F42> \x8F\xB0\xE7 |0 # <CJK>
+<U4F48> \x8F\xB0\xE8 |0 # <CJK>
+<U4F49> \x8F\xB0\xE9 |0 # <CJK>
+<U4F4B> \x8F\xB0\xEA |0 # <CJK>
+<U4F4C> \x8F\xB0\xEB |0 # <CJK>
+<U4F52> \x8F\xB0\xEC |0 # <CJK>
+<U4F54> \x8F\xB0\xED |0 # <CJK>
+<U4F56> \x8F\xB0\xEE |0 # <CJK>
+<U4F58> \x8F\xB0\xEF |0 # <CJK>
+<U4F5F> \x8F\xB0\xF0 |0 # <CJK>
+<U4F63> \x8F\xB0\xF1 |0 # <CJK>
+<U4F6A> \x8F\xB0\xF2 |0 # <CJK>
+<U4F6C> \x8F\xB0\xF3 |0 # <CJK>
+<U4F6E> \x8F\xB0\xF4 |0 # <CJK>
+<U4F71> \x8F\xB0\xF5 |0 # <CJK>
+<U4F77> \x8F\xB0\xF6 |0 # <CJK>
+<U4F78> \x8F\xB0\xF7 |0 # <CJK>
+<U4F79> \x8F\xB0\xF8 |0 # <CJK>
+<U4F7A> \x8F\xB0\xF9 |0 # <CJK>
+<U4F7D> \x8F\xB0\xFA |0 # <CJK>
+<U4F7E> \x8F\xB0\xFB |0 # <CJK>
+<U4F81> \x8F\xB0\xFC |0 # <CJK>
+<U4F82> \x8F\xB0\xFD |0 # <CJK>
+<U4F84> \x8F\xB0\xFE |0 # <CJK>
+<U4F85> \x8F\xB1\xA1 |0 # <CJK>
+<U4F89> \x8F\xB1\xA2 |0 # <CJK>
+<U4F8A> \x8F\xB1\xA3 |0 # <CJK>
+<U4F8C> \x8F\xB1\xA4 |0 # <CJK>
+<U4F8E> \x8F\xB1\xA5 |0 # <CJK>
+<U4F90> \x8F\xB1\xA6 |0 # <CJK>
+<U4F92> \x8F\xB1\xA7 |0 # <CJK>
+<U4F93> \x8F\xB1\xA8 |0 # <CJK>
+<U4F94> \x8F\xB1\xA9 |0 # <CJK>
+<U4F97> \x8F\xB1\xAA |0 # <CJK>
+<U4F99> \x8F\xB1\xAB |0 # <CJK>
+<U4F9A> \x8F\xB1\xAC |0 # <CJK>
+<U4F9E> \x8F\xB1\xAD |0 # <CJK>
+<U4F9F> \x8F\xB1\xAE |0 # <CJK>
+<U4FB2> \x8F\xB1\xAF |0 # <CJK>
+<U4FB7> \x8F\xB1\xB0 |0 # <CJK>
+<U4FB9> \x8F\xB1\xB1 |0 # <CJK>
+<U4FBB> \x8F\xB1\xB2 |0 # <CJK>
+<U4FBC> \x8F\xB1\xB3 |0 # <CJK>
+<U4FBD> \x8F\xB1\xB4 |0 # <CJK>
+<U4FBE> \x8F\xB1\xB5 |0 # <CJK>
+<U4FC0> \x8F\xB1\xB6 |0 # <CJK>
+<U4FC1> \x8F\xB1\xB7 |0 # <CJK>
+<U4FC5> \x8F\xB1\xB8 |0 # <CJK>
+<U4FC6> \x8F\xB1\xB9 |0 # <CJK>
+<U4FC8> \x8F\xB1\xBA |0 # <CJK>
+<U4FC9> \x8F\xB1\xBB |0 # <CJK>
+<U4FCB> \x8F\xB1\xBC |0 # <CJK>
+<U4FCC> \x8F\xB1\xBD |0 # <CJK>
+<U4FCD> \x8F\xB1\xBE |0 # <CJK>
+<U4FCF> \x8F\xB1\xBF |0 # <CJK>
+<U4FD2> \x8F\xB1\xC0 |0 # <CJK>
+<U4FDC> \x8F\xB1\xC1 |0 # <CJK>
+<U4FE0> \x8F\xB1\xC2 |0 # <CJK>
+<U4FE2> \x8F\xB1\xC3 |0 # <CJK>
+<U4FF0> \x8F\xB1\xC4 |0 # <CJK>
+<U4FF2> \x8F\xB1\xC5 |0 # <CJK>
+<U4FFC> \x8F\xB1\xC6 |0 # <CJK>
+<U4FFD> \x8F\xB1\xC7 |0 # <CJK>
+<U4FFF> \x8F\xB1\xC8 |0 # <CJK>
+<U5000> \x8F\xB1\xC9 |0 # <CJK>
+<U5001> \x8F\xB1\xCA |0 # <CJK>
+<U5004> \x8F\xB1\xCB |0 # <CJK>
+<U5007> \x8F\xB1\xCC |0 # <CJK>
+<U500A> \x8F\xB1\xCD |0 # <CJK>
+<U500C> \x8F\xB1\xCE |0 # <CJK>
+<U500E> \x8F\xB1\xCF |0 # <CJK>
+<U5010> \x8F\xB1\xD0 |0 # <CJK>
+<U5013> \x8F\xB1\xD1 |0 # <CJK>
+<U5017> \x8F\xB1\xD2 |0 # <CJK>
+<U5018> \x8F\xB1\xD3 |0 # <CJK>
+<U501B> \x8F\xB1\xD4 |0 # <CJK>
+<U501C> \x8F\xB1\xD5 |0 # <CJK>
+<U501D> \x8F\xB1\xD6 |0 # <CJK>
+<U501E> \x8F\xB1\xD7 |0 # <CJK>
+<U5022> \x8F\xB1\xD8 |0 # <CJK>
+<U5027> \x8F\xB1\xD9 |0 # <CJK>
+<U502E> \x8F\xB1\xDA |0 # <CJK>
+<U5030> \x8F\xB1\xDB |0 # <CJK>
+<U5032> \x8F\xB1\xDC |0 # <CJK>
+<U5033> \x8F\xB1\xDD |0 # <CJK>
+<U5035> \x8F\xB1\xDE |0 # <CJK>
+<U5040> \x8F\xB1\xDF |0 # <CJK>
+<U5041> \x8F\xB1\xE0 |0 # <CJK>
+<U5042> \x8F\xB1\xE1 |0 # <CJK>
+<U5045> \x8F\xB1\xE2 |0 # <CJK>
+<U5046> \x8F\xB1\xE3 |0 # <CJK>
+<U504A> \x8F\xB1\xE4 |0 # <CJK>
+<U504C> \x8F\xB1\xE5 |0 # <CJK>
+<U504E> \x8F\xB1\xE6 |0 # <CJK>
+<U5051> \x8F\xB1\xE7 |0 # <CJK>
+<U5052> \x8F\xB1\xE8 |0 # <CJK>
+<U5053> \x8F\xB1\xE9 |0 # <CJK>
+<U5057> \x8F\xB1\xEA |0 # <CJK>
+<U5059> \x8F\xB1\xEB |0 # <CJK>
+<U505F> \x8F\xB1\xEC |0 # <CJK>
+<U5060> \x8F\xB1\xED |0 # <CJK>
+<U5062> \x8F\xB1\xEE |0 # <CJK>
+<U5063> \x8F\xB1\xEF |0 # <CJK>
+<U5066> \x8F\xB1\xF0 |0 # <CJK>
+<U5067> \x8F\xB1\xF1 |0 # <CJK>
+<U506A> \x8F\xB1\xF2 |0 # <CJK>
+<U506D> \x8F\xB1\xF3 |0 # <CJK>
+<U5070> \x8F\xB1\xF4 |0 # <CJK>
+<U5071> \x8F\xB1\xF5 |0 # <CJK>
+<U503B> \x8F\xB1\xF6 |0 # <CJK>
+<U5081> \x8F\xB1\xF7 |0 # <CJK>
+<U5083> \x8F\xB1\xF8 |0 # <CJK>
+<U5084> \x8F\xB1\xF9 |0 # <CJK>
+<U5086> \x8F\xB1\xFA |0 # <CJK>
+<U508A> \x8F\xB1\xFB |0 # <CJK>
+<U508E> \x8F\xB1\xFC |0 # <CJK>
+<U508F> \x8F\xB1\xFD |0 # <CJK>
+<U5090> \x8F\xB1\xFE |0 # <CJK>
+<U5092> \x8F\xB2\xA1 |0 # <CJK>
+<U5093> \x8F\xB2\xA2 |0 # <CJK>
+<U5094> \x8F\xB2\xA3 |0 # <CJK>
+<U5096> \x8F\xB2\xA4 |0 # <CJK>
+<U509B> \x8F\xB2\xA5 |0 # <CJK>
+<U509C> \x8F\xB2\xA6 |0 # <CJK>
+<U509E> \x8F\xB2\xA7 |0 # <CJK>
+<U509F> \x8F\xB2\xA8 |0 # <CJK>
+<U50A0> \x8F\xB2\xA9 |0 # <CJK>
+<U50A1> \x8F\xB2\xAA |0 # <CJK>
+<U50A2> \x8F\xB2\xAB |0 # <CJK>
+<U50AA> \x8F\xB2\xAC |0 # <CJK>
+<U50AF> \x8F\xB2\xAD |0 # <CJK>
+<U50B0> \x8F\xB2\xAE |0 # <CJK>
+<U50B9> \x8F\xB2\xAF |0 # <CJK>
+<U50BA> \x8F\xB2\xB0 |0 # <CJK>
+<U50BD> \x8F\xB2\xB1 |0 # <CJK>
+<U50C0> \x8F\xB2\xB2 |0 # <CJK>
+<U50C3> \x8F\xB2\xB3 |0 # <CJK>
+<U50C4> \x8F\xB2\xB4 |0 # <CJK>
+<U50C7> \x8F\xB2\xB5 |0 # <CJK>
+<U50CC> \x8F\xB2\xB6 |0 # <CJK>
+<U50CE> \x8F\xB2\xB7 |0 # <CJK>
+<U50D0> \x8F\xB2\xB8 |0 # <CJK>
+<U50D3> \x8F\xB2\xB9 |0 # <CJK>
+<U50D4> \x8F\xB2\xBA |0 # <CJK>
+<U50D8> \x8F\xB2\xBB |0 # <CJK>
+<U50DC> \x8F\xB2\xBC |0 # <CJK>
+<U50DD> \x8F\xB2\xBD |0 # <CJK>
+<U50DF> \x8F\xB2\xBE |0 # <CJK>
+<U50E2> \x8F\xB2\xBF |0 # <CJK>
+<U50E4> \x8F\xB2\xC0 |0 # <CJK>
+<U50E6> \x8F\xB2\xC1 |0 # <CJK>
+<U50E8> \x8F\xB2\xC2 |0 # <CJK>
+<U50E9> \x8F\xB2\xC3 |0 # <CJK>
+<U50EF> \x8F\xB2\xC4 |0 # <CJK>
+<U50F1> \x8F\xB2\xC5 |0 # <CJK>
+<U50F6> \x8F\xB2\xC6 |0 # <CJK>
+<U50FA> \x8F\xB2\xC7 |0 # <CJK>
+<U50FE> \x8F\xB2\xC8 |0 # <CJK>
+<U5103> \x8F\xB2\xC9 |0 # <CJK>
+<U5106> \x8F\xB2\xCA |0 # <CJK>
+<U5107> \x8F\xB2\xCB |0 # <CJK>
+<U5108> \x8F\xB2\xCC |0 # <CJK>
+<U510B> \x8F\xB2\xCD |0 # <CJK>
+<U510C> \x8F\xB2\xCE |0 # <CJK>
+<U510D> \x8F\xB2\xCF |0 # <CJK>
+<U510E> \x8F\xB2\xD0 |0 # <CJK>
+<U50F2> \x8F\xB2\xD1 |0 # <CJK>
+<U5110> \x8F\xB2\xD2 |0 # <CJK>
+<U5117> \x8F\xB2\xD3 |0 # <CJK>
+<U5119> \x8F\xB2\xD4 |0 # <CJK>
+<U511B> \x8F\xB2\xD5 |0 # <CJK>
+<U511C> \x8F\xB2\xD6 |0 # <CJK>
+<U511D> \x8F\xB2\xD7 |0 # <CJK>
+<U511E> \x8F\xB2\xD8 |0 # <CJK>
+<U5123> \x8F\xB2\xD9 |0 # <CJK>
+<U5127> \x8F\xB2\xDA |0 # <CJK>
+<U5128> \x8F\xB2\xDB |0 # <CJK>
+<U512C> \x8F\xB2\xDC |0 # <CJK>
+<U512D> \x8F\xB2\xDD |0 # <CJK>
+<U512F> \x8F\xB2\xDE |0 # <CJK>
+<U5131> \x8F\xB2\xDF |0 # <CJK>
+<U5133> \x8F\xB2\xE0 |0 # <CJK>
+<U5134> \x8F\xB2\xE1 |0 # <CJK>
+<U5135> \x8F\xB2\xE2 |0 # <CJK>
+<U5138> \x8F\xB2\xE3 |0 # <CJK>
+<U5139> \x8F\xB2\xE4 |0 # <CJK>
+<U5142> \x8F\xB2\xE5 |0 # <CJK>
+<U514A> \x8F\xB2\xE6 |0 # <CJK>
+<U514F> \x8F\xB2\xE7 |0 # <CJK>
+<U5153> \x8F\xB2\xE8 |0 # <CJK>
+<U5155> \x8F\xB2\xE9 |0 # <CJK>
+<U5157> \x8F\xB2\xEA |0 # <CJK>
+<U5158> \x8F\xB2\xEB |0 # <CJK>
+<U515F> \x8F\xB2\xEC |0 # <CJK>
+<U5164> \x8F\xB2\xED |0 # <CJK>
+<U5166> \x8F\xB2\xEE |0 # <CJK>
+<U517E> \x8F\xB2\xEF |0 # <CJK>
+<U5183> \x8F\xB2\xF0 |0 # <CJK>
+<U5184> \x8F\xB2\xF1 |0 # <CJK>
+<U518B> \x8F\xB2\xF2 |0 # <CJK>
+<U518E> \x8F\xB2\xF3 |0 # <CJK>
+<U5198> \x8F\xB2\xF4 |0 # <CJK>
+<U519D> \x8F\xB2\xF5 |0 # <CJK>
+<U51A1> \x8F\xB2\xF6 |0 # <CJK>
+<U51A3> \x8F\xB2\xF7 |0 # <CJK>
+<U51AD> \x8F\xB2\xF8 |0 # <CJK>
+<U51B8> \x8F\xB2\xF9 |0 # <CJK>
+<U51BA> \x8F\xB2\xFA |0 # <CJK>
+<U51BC> \x8F\xB2\xFB |0 # <CJK>
+<U51BE> \x8F\xB2\xFC |0 # <CJK>
+<U51BF> \x8F\xB2\xFD |0 # <CJK>
+<U51C2> \x8F\xB2\xFE |0 # <CJK>
+<U51C8> \x8F\xB3\xA1 |0 # <CJK>
+<U51CF> \x8F\xB3\xA2 |0 # <CJK>
+<U51D1> \x8F\xB3\xA3 |0 # <CJK>
+<U51D2> \x8F\xB3\xA4 |0 # <CJK>
+<U51D3> \x8F\xB3\xA5 |0 # <CJK>
+<U51D5> \x8F\xB3\xA6 |0 # <CJK>
+<U51D8> \x8F\xB3\xA7 |0 # <CJK>
+<U51DE> \x8F\xB3\xA8 |0 # <CJK>
+<U51E2> \x8F\xB3\xA9 |0 # <CJK>
+<U51E5> \x8F\xB3\xAA |0 # <CJK>
+<U51EE> \x8F\xB3\xAB |0 # <CJK>
+<U51F2> \x8F\xB3\xAC |0 # <CJK>
+<U51F3> \x8F\xB3\xAD |0 # <CJK>
+<U51F4> \x8F\xB3\xAE |0 # <CJK>
+<U51F7> \x8F\xB3\xAF |0 # <CJK>
+<U5201> \x8F\xB3\xB0 |0 # <CJK>
+<U5202> \x8F\xB3\xB1 |0 # <CJK>
+<U5205> \x8F\xB3\xB2 |0 # <CJK>
+<U5212> \x8F\xB3\xB3 |0 # <CJK>
+<U5213> \x8F\xB3\xB4 |0 # <CJK>
+<U5215> \x8F\xB3\xB5 |0 # <CJK>
+<U5216> \x8F\xB3\xB6 |0 # <CJK>
+<U5218> \x8F\xB3\xB7 |0 # <CJK>
+<U5222> \x8F\xB3\xB8 |0 # <CJK>
+<U5228> \x8F\xB3\xB9 |0 # <CJK>
+<U5231> \x8F\xB3\xBA |0 # <CJK>
+<U5232> \x8F\xB3\xBB |0 # <CJK>
+<U5235> \x8F\xB3\xBC |0 # <CJK>
+<U523C> \x8F\xB3\xBD |0 # <CJK>
+<U5245> \x8F\xB3\xBE |0 # <CJK>
+<U5249> \x8F\xB3\xBF |0 # <CJK>
+<U5255> \x8F\xB3\xC0 |0 # <CJK>
+<U5257> \x8F\xB3\xC1 |0 # <CJK>
+<U5258> \x8F\xB3\xC2 |0 # <CJK>
+<U525A> \x8F\xB3\xC3 |0 # <CJK>
+<U525C> \x8F\xB3\xC4 |0 # <CJK>
+<U525F> \x8F\xB3\xC5 |0 # <CJK>
+<U5260> \x8F\xB3\xC6 |0 # <CJK>
+<U5261> \x8F\xB3\xC7 |0 # <CJK>
+<U5266> \x8F\xB3\xC8 |0 # <CJK>
+<U526E> \x8F\xB3\xC9 |0 # <CJK>
+<U5277> \x8F\xB3\xCA |0 # <CJK>
+<U5278> \x8F\xB3\xCB |0 # <CJK>
+<U5279> \x8F\xB3\xCC |0 # <CJK>
+<U5280> \x8F\xB3\xCD |0 # <CJK>
+<U5282> \x8F\xB3\xCE |0 # <CJK>
+<U5285> \x8F\xB3\xCF |0 # <CJK>
+<U528A> \x8F\xB3\xD0 |0 # <CJK>
+<U528C> \x8F\xB3\xD1 |0 # <CJK>
+<U5293> \x8F\xB3\xD2 |0 # <CJK>
+<U5295> \x8F\xB3\xD3 |0 # <CJK>
+<U5296> \x8F\xB3\xD4 |0 # <CJK>
+<U5297> \x8F\xB3\xD5 |0 # <CJK>
+<U5298> \x8F\xB3\xD6 |0 # <CJK>
+<U529A> \x8F\xB3\xD7 |0 # <CJK>
+<U529C> \x8F\xB3\xD8 |0 # <CJK>
+<U52A4> \x8F\xB3\xD9 |0 # <CJK>
+<U52A5> \x8F\xB3\xDA |0 # <CJK>
+<U52A6> \x8F\xB3\xDB |0 # <CJK>
+<U52A7> \x8F\xB3\xDC |0 # <CJK>
+<U52AF> \x8F\xB3\xDD |0 # <CJK>
+<U52B0> \x8F\xB3\xDE |0 # <CJK>
+<U52B6> \x8F\xB3\xDF |0 # <CJK>
+<U52B7> \x8F\xB3\xE0 |0 # <CJK>
+<U52B8> \x8F\xB3\xE1 |0 # <CJK>
+<U52BA> \x8F\xB3\xE2 |0 # <CJK>
+<U52BB> \x8F\xB3\xE3 |0 # <CJK>
+<U52BD> \x8F\xB3\xE4 |0 # <CJK>
+<U52C0> \x8F\xB3\xE5 |0 # <CJK>
+<U52C4> \x8F\xB3\xE6 |0 # <CJK>
+<U52C6> \x8F\xB3\xE7 |0 # <CJK>
+<U52C8> \x8F\xB3\xE8 |0 # <CJK>
+<U52CC> \x8F\xB3\xE9 |0 # <CJK>
+<U52CF> \x8F\xB3\xEA |0 # <CJK>
+<U52D1> \x8F\xB3\xEB |0 # <CJK>
+<U52D4> \x8F\xB3\xEC |0 # <CJK>
+<U52D6> \x8F\xB3\xED |0 # <CJK>
+<U52DB> \x8F\xB3\xEE |0 # <CJK>
+<U52DC> \x8F\xB3\xEF |0 # <CJK>
+<U52E1> \x8F\xB3\xF0 |0 # <CJK>
+<U52E5> \x8F\xB3\xF1 |0 # <CJK>
+<U52E8> \x8F\xB3\xF2 |0 # <CJK>
+<U52E9> \x8F\xB3\xF3 |0 # <CJK>
+<U52EA> \x8F\xB3\xF4 |0 # <CJK>
+<U52EC> \x8F\xB3\xF5 |0 # <CJK>
+<U52F0> \x8F\xB3\xF6 |0 # <CJK>
+<U52F1> \x8F\xB3\xF7 |0 # <CJK>
+<U52F4> \x8F\xB3\xF8 |0 # <CJK>
+<U52F6> \x8F\xB3\xF9 |0 # <CJK>
+<U52F7> \x8F\xB3\xFA |0 # <CJK>
+<U5300> \x8F\xB3\xFB |0 # <CJK>
+<U5303> \x8F\xB3\xFC |0 # <CJK>
+<U530A> \x8F\xB3\xFD |0 # <CJK>
+<U530B> \x8F\xB3\xFE |0 # <CJK>
+<U530C> \x8F\xB4\xA1 |0 # <CJK>
+<U5311> \x8F\xB4\xA2 |0 # <CJK>
+<U5313> \x8F\xB4\xA3 |0 # <CJK>
+<U5318> \x8F\xB4\xA4 |0 # <CJK>
+<U531B> \x8F\xB4\xA5 |0 # <CJK>
+<U531C> \x8F\xB4\xA6 |0 # <CJK>
+<U531E> \x8F\xB4\xA7 |0 # <CJK>
+<U531F> \x8F\xB4\xA8 |0 # <CJK>
+<U5325> \x8F\xB4\xA9 |0 # <CJK>
+<U5327> \x8F\xB4\xAA |0 # <CJK>
+<U5328> \x8F\xB4\xAB |0 # <CJK>
+<U5329> \x8F\xB4\xAC |0 # <CJK>
+<U532B> \x8F\xB4\xAD |0 # <CJK>
+<U532C> \x8F\xB4\xAE |0 # <CJK>
+<U532D> \x8F\xB4\xAF |0 # <CJK>
+<U5330> \x8F\xB4\xB0 |0 # <CJK>
+<U5332> \x8F\xB4\xB1 |0 # <CJK>
+<U5335> \x8F\xB4\xB2 |0 # <CJK>
+<U533C> \x8F\xB4\xB3 |0 # <CJK>
+<U533D> \x8F\xB4\xB4 |0 # <CJK>
+<U533E> \x8F\xB4\xB5 |0 # <CJK>
+<U5342> \x8F\xB4\xB6 |0 # <CJK>
+<U534C> \x8F\xB4\xB7 |0 # <CJK>
+<U534B> \x8F\xB4\xB8 |0 # <CJK>
+<U5359> \x8F\xB4\xB9 |0 # <CJK>
+<U535B> \x8F\xB4\xBA |0 # <CJK>
+<U5361> \x8F\xB4\xBB |0 # <CJK>
+<U5363> \x8F\xB4\xBC |0 # <CJK>
+<U5365> \x8F\xB4\xBD |0 # <CJK>
+<U536C> \x8F\xB4\xBE |0 # <CJK>
+<U536D> \x8F\xB4\xBF |0 # <CJK>
+<U5372> \x8F\xB4\xC0 |0 # <CJK>
+<U5379> \x8F\xB4\xC1 |0 # <CJK>
+<U537E> \x8F\xB4\xC2 |0 # <CJK>
+<U5383> \x8F\xB4\xC3 |0 # <CJK>
+<U5387> \x8F\xB4\xC4 |0 # <CJK>
+<U5388> \x8F\xB4\xC5 |0 # <CJK>
+<U538E> \x8F\xB4\xC6 |0 # <CJK>
+<U5393> \x8F\xB4\xC7 |0 # <CJK>
+<U5394> \x8F\xB4\xC8 |0 # <CJK>
+<U5399> \x8F\xB4\xC9 |0 # <CJK>
+<U539D> \x8F\xB4\xCA |0 # <CJK>
+<U53A1> \x8F\xB4\xCB |0 # <CJK>
+<U53A4> \x8F\xB4\xCC |0 # <CJK>
+<U53AA> \x8F\xB4\xCD |0 # <CJK>
+<U53AB> \x8F\xB4\xCE |0 # <CJK>
+<U53AF> \x8F\xB4\xCF |0 # <CJK>
+<U53B2> \x8F\xB4\xD0 |0 # <CJK>
+<U53B4> \x8F\xB4\xD1 |0 # <CJK>
+<U53B5> \x8F\xB4\xD2 |0 # <CJK>
+<U53B7> \x8F\xB4\xD3 |0 # <CJK>
+<U53B8> \x8F\xB4\xD4 |0 # <CJK>
+<U53BA> \x8F\xB4\xD5 |0 # <CJK>
+<U53BD> \x8F\xB4\xD6 |0 # <CJK>
+<U53C0> \x8F\xB4\xD7 |0 # <CJK>
+<U53C5> \x8F\xB4\xD8 |0 # <CJK>
+<U53CF> \x8F\xB4\xD9 |0 # <CJK>
+<U53D2> \x8F\xB4\xDA |0 # <CJK>
+<U53D3> \x8F\xB4\xDB |0 # <CJK>
+<U53D5> \x8F\xB4\xDC |0 # <CJK>
+<U53DA> \x8F\xB4\xDD |0 # <CJK>
+<U53DD> \x8F\xB4\xDE |0 # <CJK>
+<U53DE> \x8F\xB4\xDF |0 # <CJK>
+<U53E0> \x8F\xB4\xE0 |0 # <CJK>
+<U53E6> \x8F\xB4\xE1 |0 # <CJK>
+<U53E7> \x8F\xB4\xE2 |0 # <CJK>
+<U53F5> \x8F\xB4\xE3 |0 # <CJK>
+<U5402> \x8F\xB4\xE4 |0 # <CJK>
+<U5413> \x8F\xB4\xE5 |0 # <CJK>
+<U541A> \x8F\xB4\xE6 |0 # <CJK>
+<U5421> \x8F\xB4\xE7 |0 # <CJK>
+<U5427> \x8F\xB4\xE8 |0 # <CJK>
+<U5428> \x8F\xB4\xE9 |0 # <CJK>
+<U542A> \x8F\xB4\xEA |0 # <CJK>
+<U542F> \x8F\xB4\xEB |0 # <CJK>
+<U5431> \x8F\xB4\xEC |0 # <CJK>
+<U5434> \x8F\xB4\xED |0 # <CJK>
+<U5435> \x8F\xB4\xEE |0 # <CJK>
+<U5443> \x8F\xB4\xEF |0 # <CJK>
+<U5444> \x8F\xB4\xF0 |0 # <CJK>
+<U5447> \x8F\xB4\xF1 |0 # <CJK>
+<U544D> \x8F\xB4\xF2 |0 # <CJK>
+<U544F> \x8F\xB4\xF3 |0 # <CJK>
+<U545E> \x8F\xB4\xF4 |0 # <CJK>
+<U5462> \x8F\xB4\xF5 |0 # <CJK>
+<U5464> \x8F\xB4\xF6 |0 # <CJK>
+<U5466> \x8F\xB4\xF7 |0 # <CJK>
+<U5467> \x8F\xB4\xF8 |0 # <CJK>
+<U5469> \x8F\xB4\xF9 |0 # <CJK>
+<U546B> \x8F\xB4\xFA |0 # <CJK>
+<U546D> \x8F\xB4\xFB |0 # <CJK>
+<U546E> \x8F\xB4\xFC |0 # <CJK>
+<U5474> \x8F\xB4\xFD |0 # <CJK>
+<U547F> \x8F\xB4\xFE |0 # <CJK>
+<U5481> \x8F\xB5\xA1 |0 # <CJK>
+<U5483> \x8F\xB5\xA2 |0 # <CJK>
+<U5485> \x8F\xB5\xA3 |0 # <CJK>
+<U5488> \x8F\xB5\xA4 |0 # <CJK>
+<U5489> \x8F\xB5\xA5 |0 # <CJK>
+<U548D> \x8F\xB5\xA6 |0 # <CJK>
+<U5491> \x8F\xB5\xA7 |0 # <CJK>
+<U5495> \x8F\xB5\xA8 |0 # <CJK>
+<U5496> \x8F\xB5\xA9 |0 # <CJK>
+<U549C> \x8F\xB5\xAA |0 # <CJK>
+<U549F> \x8F\xB5\xAB |0 # <CJK>
+<U54A1> \x8F\xB5\xAC |0 # <CJK>
+<U54A6> \x8F\xB5\xAD |0 # <CJK>
+<U54A7> \x8F\xB5\xAE |0 # <CJK>
+<U54A9> \x8F\xB5\xAF |0 # <CJK>
+<U54AA> \x8F\xB5\xB0 |0 # <CJK>
+<U54AD> \x8F\xB5\xB1 |0 # <CJK>
+<U54AE> \x8F\xB5\xB2 |0 # <CJK>
+<U54B1> \x8F\xB5\xB3 |0 # <CJK>
+<U54B7> \x8F\xB5\xB4 |0 # <CJK>
+<U54B9> \x8F\xB5\xB5 |0 # <CJK>
+<U54BA> \x8F\xB5\xB6 |0 # <CJK>
+<U54BB> \x8F\xB5\xB7 |0 # <CJK>
+<U54BF> \x8F\xB5\xB8 |0 # <CJK>
+<U54C6> \x8F\xB5\xB9 |0 # <CJK>
+<U54CA> \x8F\xB5\xBA |0 # <CJK>
+<U54CD> \x8F\xB5\xBB |0 # <CJK>
+<U54CE> \x8F\xB5\xBC |0 # <CJK>
+<U54E0> \x8F\xB5\xBD |0 # <CJK>
+<U54EA> \x8F\xB5\xBE |0 # <CJK>
+<U54EC> \x8F\xB5\xBF |0 # <CJK>
+<U54EF> \x8F\xB5\xC0 |0 # <CJK>
+<U54F6> \x8F\xB5\xC1 |0 # <CJK>
+<U54FC> \x8F\xB5\xC2 |0 # <CJK>
+<U54FE> \x8F\xB5\xC3 |0 # <CJK>
+<U54FF> \x8F\xB5\xC4 |0 # <CJK>
+<U5500> \x8F\xB5\xC5 |0 # <CJK>
+<U5501> \x8F\xB5\xC6 |0 # <CJK>
+<U5505> \x8F\xB5\xC7 |0 # <CJK>
+<U5508> \x8F\xB5\xC8 |0 # <CJK>
+<U5509> \x8F\xB5\xC9 |0 # <CJK>
+<U550C> \x8F\xB5\xCA |0 # <CJK>
+<U550D> \x8F\xB5\xCB |0 # <CJK>
+<U550E> \x8F\xB5\xCC |0 # <CJK>
+<U5515> \x8F\xB5\xCD |0 # <CJK>
+<U552A> \x8F\xB5\xCE |0 # <CJK>
+<U552B> \x8F\xB5\xCF |0 # <CJK>
+<U5532> \x8F\xB5\xD0 |0 # <CJK>
+<U5535> \x8F\xB5\xD1 |0 # <CJK>
+<U5536> \x8F\xB5\xD2 |0 # <CJK>
+<U553B> \x8F\xB5\xD3 |0 # <CJK>
+<U553C> \x8F\xB5\xD4 |0 # <CJK>
+<U553D> \x8F\xB5\xD5 |0 # <CJK>
+<U5541> \x8F\xB5\xD6 |0 # <CJK>
+<U5547> \x8F\xB5\xD7 |0 # <CJK>
+<U5549> \x8F\xB5\xD8 |0 # <CJK>
+<U554A> \x8F\xB5\xD9 |0 # <CJK>
+<U554D> \x8F\xB5\xDA |0 # <CJK>
+<U5550> \x8F\xB5\xDB |0 # <CJK>
+<U5551> \x8F\xB5\xDC |0 # <CJK>
+<U5558> \x8F\xB5\xDD |0 # <CJK>
+<U555A> \x8F\xB5\xDE |0 # <CJK>
+<U555B> \x8F\xB5\xDF |0 # <CJK>
+<U555E> \x8F\xB5\xE0 |0 # <CJK>
+<U5560> \x8F\xB5\xE1 |0 # <CJK>
+<U5561> \x8F\xB5\xE2 |0 # <CJK>
+<U5564> \x8F\xB5\xE3 |0 # <CJK>
+<U5566> \x8F\xB5\xE4 |0 # <CJK>
+<U557F> \x8F\xB5\xE5 |0 # <CJK>
+<U5581> \x8F\xB5\xE6 |0 # <CJK>
+<U5582> \x8F\xB5\xE7 |0 # <CJK>
+<U5586> \x8F\xB5\xE8 |0 # <CJK>
+<U5588> \x8F\xB5\xE9 |0 # <CJK>
+<U558E> \x8F\xB5\xEA |0 # <CJK>
+<U558F> \x8F\xB5\xEB |0 # <CJK>
+<U5591> \x8F\xB5\xEC |0 # <CJK>
+<U5592> \x8F\xB5\xED |0 # <CJK>
+<U5593> \x8F\xB5\xEE |0 # <CJK>
+<U5594> \x8F\xB5\xEF |0 # <CJK>
+<U5597> \x8F\xB5\xF0 |0 # <CJK>
+<U55A3> \x8F\xB5\xF1 |0 # <CJK>
+<U55A4> \x8F\xB5\xF2 |0 # <CJK>
+<U55AD> \x8F\xB5\xF3 |0 # <CJK>
+<U55B2> \x8F\xB5\xF4 |0 # <CJK>
+<U55BF> \x8F\xB5\xF5 |0 # <CJK>
+<U55C1> \x8F\xB5\xF6 |0 # <CJK>
+<U55C3> \x8F\xB5\xF7 |0 # <CJK>
+<U55C6> \x8F\xB5\xF8 |0 # <CJK>
+<U55C9> \x8F\xB5\xF9 |0 # <CJK>
+<U55CB> \x8F\xB5\xFA |0 # <CJK>
+<U55CC> \x8F\xB5\xFB |0 # <CJK>
+<U55CE> \x8F\xB5\xFC |0 # <CJK>
+<U55D1> \x8F\xB5\xFD |0 # <CJK>
+<U55D2> \x8F\xB5\xFE |0 # <CJK>
+<U55D3> \x8F\xB6\xA1 |0 # <CJK>
+<U55D7> \x8F\xB6\xA2 |0 # <CJK>
+<U55D8> \x8F\xB6\xA3 |0 # <CJK>
+<U55DB> \x8F\xB6\xA4 |0 # <CJK>
+<U55DE> \x8F\xB6\xA5 |0 # <CJK>
+<U55E2> \x8F\xB6\xA6 |0 # <CJK>
+<U55E9> \x8F\xB6\xA7 |0 # <CJK>
+<U55F6> \x8F\xB6\xA8 |0 # <CJK>
+<U55FF> \x8F\xB6\xA9 |0 # <CJK>
+<U5605> \x8F\xB6\xAA |0 # <CJK>
+<U5608> \x8F\xB6\xAB |0 # <CJK>
+<U560A> \x8F\xB6\xAC |0 # <CJK>
+<U560D> \x8F\xB6\xAD |0 # <CJK>
+<U560E> \x8F\xB6\xAE |0 # <CJK>
+<U560F> \x8F\xB6\xAF |0 # <CJK>
+<U5610> \x8F\xB6\xB0 |0 # <CJK>
+<U5611> \x8F\xB6\xB1 |0 # <CJK>
+<U5612> \x8F\xB6\xB2 |0 # <CJK>
+<U5619> \x8F\xB6\xB3 |0 # <CJK>
+<U562C> \x8F\xB6\xB4 |0 # <CJK>
+<U5630> \x8F\xB6\xB5 |0 # <CJK>
+<U5633> \x8F\xB6\xB6 |0 # <CJK>
+<U5635> \x8F\xB6\xB7 |0 # <CJK>
+<U5637> \x8F\xB6\xB8 |0 # <CJK>
+<U5639> \x8F\xB6\xB9 |0 # <CJK>
+<U563B> \x8F\xB6\xBA |0 # <CJK>
+<U563C> \x8F\xB6\xBB |0 # <CJK>
+<U563D> \x8F\xB6\xBC |0 # <CJK>
+<U563F> \x8F\xB6\xBD |0 # <CJK>
+<U5640> \x8F\xB6\xBE |0 # <CJK>
+<U5641> \x8F\xB6\xBF |0 # <CJK>
+<U5643> \x8F\xB6\xC0 |0 # <CJK>
+<U5644> \x8F\xB6\xC1 |0 # <CJK>
+<U5646> \x8F\xB6\xC2 |0 # <CJK>
+<U5649> \x8F\xB6\xC3 |0 # <CJK>
+<U564B> \x8F\xB6\xC4 |0 # <CJK>
+<U564D> \x8F\xB6\xC5 |0 # <CJK>
+<U564F> \x8F\xB6\xC6 |0 # <CJK>
+<U5654> \x8F\xB6\xC7 |0 # <CJK>
+<U565E> \x8F\xB6\xC8 |0 # <CJK>
+<U5660> \x8F\xB6\xC9 |0 # <CJK>
+<U5661> \x8F\xB6\xCA |0 # <CJK>
+<U5662> \x8F\xB6\xCB |0 # <CJK>
+<U5663> \x8F\xB6\xCC |0 # <CJK>
+<U5666> \x8F\xB6\xCD |0 # <CJK>
+<U5669> \x8F\xB6\xCE |0 # <CJK>
+<U566D> \x8F\xB6\xCF |0 # <CJK>
+<U566F> \x8F\xB6\xD0 |0 # <CJK>
+<U5671> \x8F\xB6\xD1 |0 # <CJK>
+<U5672> \x8F\xB6\xD2 |0 # <CJK>
+<U5675> \x8F\xB6\xD3 |0 # <CJK>
+<U5684> \x8F\xB6\xD4 |0 # <CJK>
+<U5685> \x8F\xB6\xD5 |0 # <CJK>
+<U5688> \x8F\xB6\xD6 |0 # <CJK>
+<U568B> \x8F\xB6\xD7 |0 # <CJK>
+<U568C> \x8F\xB6\xD8 |0 # <CJK>
+<U5695> \x8F\xB6\xD9 |0 # <CJK>
+<U5699> \x8F\xB6\xDA |0 # <CJK>
+<U569A> \x8F\xB6\xDB |0 # <CJK>
+<U569D> \x8F\xB6\xDC |0 # <CJK>
+<U569E> \x8F\xB6\xDD |0 # <CJK>
+<U569F> \x8F\xB6\xDE |0 # <CJK>
+<U56A6> \x8F\xB6\xDF |0 # <CJK>
+<U56A7> \x8F\xB6\xE0 |0 # <CJK>
+<U56A8> \x8F\xB6\xE1 |0 # <CJK>
+<U56A9> \x8F\xB6\xE2 |0 # <CJK>
+<U56AB> \x8F\xB6\xE3 |0 # <CJK>
+<U56AC> \x8F\xB6\xE4 |0 # <CJK>
+<U56AD> \x8F\xB6\xE5 |0 # <CJK>
+<U56B1> \x8F\xB6\xE6 |0 # <CJK>
+<U56B3> \x8F\xB6\xE7 |0 # <CJK>
+<U56B7> \x8F\xB6\xE8 |0 # <CJK>
+<U56BE> \x8F\xB6\xE9 |0 # <CJK>
+<U56C5> \x8F\xB6\xEA |0 # <CJK>
+<U56C9> \x8F\xB6\xEB |0 # <CJK>
+<U56CA> \x8F\xB6\xEC |0 # <CJK>
+<U56CB> \x8F\xB6\xED |0 # <CJK>
+<U56CF> \x8F\xB6\xEE |0 # <CJK>
+<U56D0> \x8F\xB6\xEF |0 # <CJK>
+<U56CC> \x8F\xB6\xF0 |0 # <CJK>
+<U56CD> \x8F\xB6\xF1 |0 # <CJK>
+<U56D9> \x8F\xB6\xF2 |0 # <CJK>
+<U56DC> \x8F\xB6\xF3 |0 # <CJK>
+<U56DD> \x8F\xB6\xF4 |0 # <CJK>
+<U56DF> \x8F\xB6\xF5 |0 # <CJK>
+<U56E1> \x8F\xB6\xF6 |0 # <CJK>
+<U56E4> \x8F\xB6\xF7 |0 # <CJK>
+<U56E5> \x8F\xB6\xF8 |0 # <CJK>
+<U56E6> \x8F\xB6\xF9 |0 # <CJK>
+<U56E7> \x8F\xB6\xFA |0 # <CJK>
+<U56E8> \x8F\xB6\xFB |0 # <CJK>
+<U56F1> \x8F\xB6\xFC |0 # <CJK>
+<U56EB> \x8F\xB6\xFD |0 # <CJK>
+<U56ED> \x8F\xB6\xFE |0 # <CJK>
+<U56F6> \x8F\xB7\xA1 |0 # <CJK>
+<U56F7> \x8F\xB7\xA2 |0 # <CJK>
+<U5701> \x8F\xB7\xA3 |0 # <CJK>
+<U5702> \x8F\xB7\xA4 |0 # <CJK>
+<U5707> \x8F\xB7\xA5 |0 # <CJK>
+<U570A> \x8F\xB7\xA6 |0 # <CJK>
+<U570C> \x8F\xB7\xA7 |0 # <CJK>
+<U5711> \x8F\xB7\xA8 |0 # <CJK>
+<U5715> \x8F\xB7\xA9 |0 # <CJK>
+<U571A> \x8F\xB7\xAA |0 # <CJK>
+<U571B> \x8F\xB7\xAB |0 # <CJK>
+<U571D> \x8F\xB7\xAC |0 # <CJK>
+<U5720> \x8F\xB7\xAD |0 # <CJK>
+<U5722> \x8F\xB7\xAE |0 # <CJK>
+<U5723> \x8F\xB7\xAF |0 # <CJK>
+<U5724> \x8F\xB7\xB0 |0 # <CJK>
+<U5725> \x8F\xB7\xB1 |0 # <CJK>
+<U5729> \x8F\xB7\xB2 |0 # <CJK>
+<U572A> \x8F\xB7\xB3 |0 # <CJK>
+<U572C> \x8F\xB7\xB4 |0 # <CJK>
+<U572E> \x8F\xB7\xB5 |0 # <CJK>
+<U572F> \x8F\xB7\xB6 |0 # <CJK>
+<U5733> \x8F\xB7\xB7 |0 # <CJK>
+<U5734> \x8F\xB7\xB8 |0 # <CJK>
+<U573D> \x8F\xB7\xB9 |0 # <CJK>
+<U573E> \x8F\xB7\xBA |0 # <CJK>
+<U573F> \x8F\xB7\xBB |0 # <CJK>
+<U5745> \x8F\xB7\xBC |0 # <CJK>
+<U5746> \x8F\xB7\xBD |0 # <CJK>
+<U574C> \x8F\xB7\xBE |0 # <CJK>
+<U574D> \x8F\xB7\xBF |0 # <CJK>
+<U5752> \x8F\xB7\xC0 |0 # <CJK>
+<U5762> \x8F\xB7\xC1 |0 # <CJK>
+<U5765> \x8F\xB7\xC2 |0 # <CJK>
+<U5767> \x8F\xB7\xC3 |0 # <CJK>
+<U5768> \x8F\xB7\xC4 |0 # <CJK>
+<U576B> \x8F\xB7\xC5 |0 # <CJK>
+<U576D> \x8F\xB7\xC6 |0 # <CJK>
+<U576E> \x8F\xB7\xC7 |0 # <CJK>
+<U576F> \x8F\xB7\xC8 |0 # <CJK>
+<U5770> \x8F\xB7\xC9 |0 # <CJK>
+<U5771> \x8F\xB7\xCA |0 # <CJK>
+<U5773> \x8F\xB7\xCB |0 # <CJK>
+<U5774> \x8F\xB7\xCC |0 # <CJK>
+<U5775> \x8F\xB7\xCD |0 # <CJK>
+<U5777> \x8F\xB7\xCE |0 # <CJK>
+<U5779> \x8F\xB7\xCF |0 # <CJK>
+<U577A> \x8F\xB7\xD0 |0 # <CJK>
+<U577B> \x8F\xB7\xD1 |0 # <CJK>
+<U577C> \x8F\xB7\xD2 |0 # <CJK>
+<U577E> \x8F\xB7\xD3 |0 # <CJK>
+<U5781> \x8F\xB7\xD4 |0 # <CJK>
+<U5783> \x8F\xB7\xD5 |0 # <CJK>
+<U578C> \x8F\xB7\xD6 |0 # <CJK>
+<U5794> \x8F\xB7\xD7 |0 # <CJK>
+<U5797> \x8F\xB7\xD8 |0 # <CJK>
+<U5799> \x8F\xB7\xD9 |0 # <CJK>
+<U579A> \x8F\xB7\xDA |0 # <CJK>
+<U579C> \x8F\xB7\xDB |0 # <CJK>
+<U579D> \x8F\xB7\xDC |0 # <CJK>
+<U579E> \x8F\xB7\xDD |0 # <CJK>
+<U579F> \x8F\xB7\xDE |0 # <CJK>
+<U57A1> \x8F\xB7\xDF |0 # <CJK>
+<U5795> \x8F\xB7\xE0 |0 # <CJK>
+<U57A7> \x8F\xB7\xE1 |0 # <CJK>
+<U57A8> \x8F\xB7\xE2 |0 # <CJK>
+<U57A9> \x8F\xB7\xE3 |0 # <CJK>
+<U57AC> \x8F\xB7\xE4 |0 # <CJK>
+<U57B8> \x8F\xB7\xE5 |0 # <CJK>
+<U57BD> \x8F\xB7\xE6 |0 # <CJK>
+<U57C7> \x8F\xB7\xE7 |0 # <CJK>
+<U57C8> \x8F\xB7\xE8 |0 # <CJK>
+<U57CC> \x8F\xB7\xE9 |0 # <CJK>
+<U57CF> \x8F\xB7\xEA |0 # <CJK>
+<U57D5> \x8F\xB7\xEB |0 # <CJK>
+<U57DD> \x8F\xB7\xEC |0 # <CJK>
+<U57DE> \x8F\xB7\xED |0 # <CJK>
+<U57E4> \x8F\xB7\xEE |0 # <CJK>
+<U57E6> \x8F\xB7\xEF |0 # <CJK>
+<U57E7> \x8F\xB7\xF0 |0 # <CJK>
+<U57E9> \x8F\xB7\xF1 |0 # <CJK>
+<U57ED> \x8F\xB7\xF2 |0 # <CJK>
+<U57F0> \x8F\xB7\xF3 |0 # <CJK>
+<U57F5> \x8F\xB7\xF4 |0 # <CJK>
+<U57F6> \x8F\xB7\xF5 |0 # <CJK>
+<U57F8> \x8F\xB7\xF6 |0 # <CJK>
+<U57FD> \x8F\xB7\xF7 |0 # <CJK>
+<U57FE> \x8F\xB7\xF8 |0 # <CJK>
+<U57FF> \x8F\xB7\xF9 |0 # <CJK>
+<U5803> \x8F\xB7\xFA |0 # <CJK>
+<U5804> \x8F\xB7\xFB |0 # <CJK>
+<U5808> \x8F\xB7\xFC |0 # <CJK>
+<U5809> \x8F\xB7\xFD |0 # <CJK>
+<U57E1> \x8F\xB7\xFE |0 # <CJK>
+<U580C> \x8F\xB8\xA1 |0 # <CJK>
+<U580D> \x8F\xB8\xA2 |0 # <CJK>
+<U581B> \x8F\xB8\xA3 |0 # <CJK>
+<U581E> \x8F\xB8\xA4 |0 # <CJK>
+<U581F> \x8F\xB8\xA5 |0 # <CJK>
+<U5820> \x8F\xB8\xA6 |0 # <CJK>
+<U5826> \x8F\xB8\xA7 |0 # <CJK>
+<U5827> \x8F\xB8\xA8 |0 # <CJK>
+<U582D> \x8F\xB8\xA9 |0 # <CJK>
+<U5832> \x8F\xB8\xAA |0 # <CJK>
+<U5839> \x8F\xB8\xAB |0 # <CJK>
+<U583F> \x8F\xB8\xAC |0 # <CJK>
+<U5849> \x8F\xB8\xAD |0 # <CJK>
+<U584C> \x8F\xB8\xAE |0 # <CJK>
+<U584D> \x8F\xB8\xAF |0 # <CJK>
+<U584F> \x8F\xB8\xB0 |0 # <CJK>
+<U5850> \x8F\xB8\xB1 |0 # <CJK>
+<U5855> \x8F\xB8\xB2 |0 # <CJK>
+<U585F> \x8F\xB8\xB3 |0 # <CJK>
+<U5861> \x8F\xB8\xB4 |0 # <CJK>
+<U5864> \x8F\xB8\xB5 |0 # <CJK>
+<U5867> \x8F\xB8\xB6 |0 # <CJK>
+<U5868> \x8F\xB8\xB7 |0 # <CJK>
+<U5878> \x8F\xB8\xB8 |0 # <CJK>
+<U587C> \x8F\xB8\xB9 |0 # <CJK>
+<U587F> \x8F\xB8\xBA |0 # <CJK>
+<U5880> \x8F\xB8\xBB |0 # <CJK>
+<U5881> \x8F\xB8\xBC |0 # <CJK>
+<U5887> \x8F\xB8\xBD |0 # <CJK>
+<U5888> \x8F\xB8\xBE |0 # <CJK>
+<U5889> \x8F\xB8\xBF |0 # <CJK>
+<U588A> \x8F\xB8\xC0 |0 # <CJK>
+<U588C> \x8F\xB8\xC1 |0 # <CJK>
+<U588D> \x8F\xB8\xC2 |0 # <CJK>
+<U588F> \x8F\xB8\xC3 |0 # <CJK>
+<U5890> \x8F\xB8\xC4 |0 # <CJK>
+<U5894> \x8F\xB8\xC5 |0 # <CJK>
+<U5896> \x8F\xB8\xC6 |0 # <CJK>
+<U589D> \x8F\xB8\xC7 |0 # <CJK>
+<U58A0> \x8F\xB8\xC8 |0 # <CJK>
+<U58A1> \x8F\xB8\xC9 |0 # <CJK>
+<U58A2> \x8F\xB8\xCA |0 # <CJK>
+<U58A6> \x8F\xB8\xCB |0 # <CJK>
+<U58A9> \x8F\xB8\xCC |0 # <CJK>
+<U58B1> \x8F\xB8\xCD |0 # <CJK>
+<U58B2> \x8F\xB8\xCE |0 # <CJK>
+<U58C4> \x8F\xB8\xCF |0 # <CJK>
+<U58BC> \x8F\xB8\xD0 |0 # <CJK>
+<U58C2> \x8F\xB8\xD1 |0 # <CJK>
+<U58C8> \x8F\xB8\xD2 |0 # <CJK>
+<U58CD> \x8F\xB8\xD3 |0 # <CJK>
+<U58CE> \x8F\xB8\xD4 |0 # <CJK>
+<U58D0> \x8F\xB8\xD5 |0 # <CJK>
+<U58D2> \x8F\xB8\xD6 |0 # <CJK>
+<U58D4> \x8F\xB8\xD7 |0 # <CJK>
+<U58D6> \x8F\xB8\xD8 |0 # <CJK>
+<U58DA> \x8F\xB8\xD9 |0 # <CJK>
+<U58DD> \x8F\xB8\xDA |0 # <CJK>
+<U58E1> \x8F\xB8\xDB |0 # <CJK>
+<U58E2> \x8F\xB8\xDC |0 # <CJK>
+<U58E9> \x8F\xB8\xDD |0 # <CJK>
+<U58F3> \x8F\xB8\xDE |0 # <CJK>
+<U5905> \x8F\xB8\xDF |0 # <CJK>
+<U5906> \x8F\xB8\xE0 |0 # <CJK>
+<U590B> \x8F\xB8\xE1 |0 # <CJK>
+<U590C> \x8F\xB8\xE2 |0 # <CJK>
+<U5912> \x8F\xB8\xE3 |0 # <CJK>
+<U5913> \x8F\xB8\xE4 |0 # <CJK>
+<U5914> \x8F\xB8\xE5 |0 # <CJK>
+<U8641> \x8F\xB8\xE6 |0 # <CJK>
+<U591D> \x8F\xB8\xE7 |0 # <CJK>
+<U5921> \x8F\xB8\xE8 |0 # <CJK>
+<U5923> \x8F\xB8\xE9 |0 # <CJK>
+<U5924> \x8F\xB8\xEA |0 # <CJK>
+<U5928> \x8F\xB8\xEB |0 # <CJK>
+<U592F> \x8F\xB8\xEC |0 # <CJK>
+<U5930> \x8F\xB8\xED |0 # <CJK>
+<U5933> \x8F\xB8\xEE |0 # <CJK>
+<U5935> \x8F\xB8\xEF |0 # <CJK>
+<U5936> \x8F\xB8\xF0 |0 # <CJK>
+<U593F> \x8F\xB8\xF1 |0 # <CJK>
+<U5943> \x8F\xB8\xF2 |0 # <CJK>
+<U5946> \x8F\xB8\xF3 |0 # <CJK>
+<U5952> \x8F\xB8\xF4 |0 # <CJK>
+<U5953> \x8F\xB8\xF5 |0 # <CJK>
+<U5959> \x8F\xB8\xF6 |0 # <CJK>
+<U595B> \x8F\xB8\xF7 |0 # <CJK>
+<U595D> \x8F\xB8\xF8 |0 # <CJK>
+<U595E> \x8F\xB8\xF9 |0 # <CJK>
+<U595F> \x8F\xB8\xFA |0 # <CJK>
+<U5961> \x8F\xB8\xFB |0 # <CJK>
+<U5963> \x8F\xB8\xFC |0 # <CJK>
+<U596B> \x8F\xB8\xFD |0 # <CJK>
+<U596D> \x8F\xB8\xFE |0 # <CJK>
+<U596F> \x8F\xB9\xA1 |0 # <CJK>
+<U5972> \x8F\xB9\xA2 |0 # <CJK>
+<U5975> \x8F\xB9\xA3 |0 # <CJK>
+<U5976> \x8F\xB9\xA4 |0 # <CJK>
+<U5979> \x8F\xB9\xA5 |0 # <CJK>
+<U597B> \x8F\xB9\xA6 |0 # <CJK>
+<U597C> \x8F\xB9\xA7 |0 # <CJK>
+<U598B> \x8F\xB9\xA8 |0 # <CJK>
+<U598C> \x8F\xB9\xA9 |0 # <CJK>
+<U598E> \x8F\xB9\xAA |0 # <CJK>
+<U5992> \x8F\xB9\xAB |0 # <CJK>
+<U5995> \x8F\xB9\xAC |0 # <CJK>
+<U5997> \x8F\xB9\xAD |0 # <CJK>
+<U599F> \x8F\xB9\xAE |0 # <CJK>
+<U59A4> \x8F\xB9\xAF |0 # <CJK>
+<U59A7> \x8F\xB9\xB0 |0 # <CJK>
+<U59AD> \x8F\xB9\xB1 |0 # <CJK>
+<U59AE> \x8F\xB9\xB2 |0 # <CJK>
+<U59AF> \x8F\xB9\xB3 |0 # <CJK>
+<U59B0> \x8F\xB9\xB4 |0 # <CJK>
+<U59B3> \x8F\xB9\xB5 |0 # <CJK>
+<U59B7> \x8F\xB9\xB6 |0 # <CJK>
+<U59BA> \x8F\xB9\xB7 |0 # <CJK>
+<U59BC> \x8F\xB9\xB8 |0 # <CJK>
+<U59C1> \x8F\xB9\xB9 |0 # <CJK>
+<U59C3> \x8F\xB9\xBA |0 # <CJK>
+<U59C4> \x8F\xB9\xBB |0 # <CJK>
+<U59C8> \x8F\xB9\xBC |0 # <CJK>
+<U59CA> \x8F\xB9\xBD |0 # <CJK>
+<U59CD> \x8F\xB9\xBE |0 # <CJK>
+<U59D2> \x8F\xB9\xBF |0 # <CJK>
+<U59DD> \x8F\xB9\xC0 |0 # <CJK>
+<U59DE> \x8F\xB9\xC1 |0 # <CJK>
+<U59DF> \x8F\xB9\xC2 |0 # <CJK>
+<U59E3> \x8F\xB9\xC3 |0 # <CJK>
+<U59E4> \x8F\xB9\xC4 |0 # <CJK>
+<U59E7> \x8F\xB9\xC5 |0 # <CJK>
+<U59EE> \x8F\xB9\xC6 |0 # <CJK>
+<U59EF> \x8F\xB9\xC7 |0 # <CJK>
+<U59F1> \x8F\xB9\xC8 |0 # <CJK>
+<U59F2> \x8F\xB9\xC9 |0 # <CJK>
+<U59F4> \x8F\xB9\xCA |0 # <CJK>
+<U59F7> \x8F\xB9\xCB |0 # <CJK>
+<U5A00> \x8F\xB9\xCC |0 # <CJK>
+<U5A04> \x8F\xB9\xCD |0 # <CJK>
+<U5A0C> \x8F\xB9\xCE |0 # <CJK>
+<U5A0D> \x8F\xB9\xCF |0 # <CJK>
+<U5A0E> \x8F\xB9\xD0 |0 # <CJK>
+<U5A12> \x8F\xB9\xD1 |0 # <CJK>
+<U5A13> \x8F\xB9\xD2 |0 # <CJK>
+<U5A1E> \x8F\xB9\xD3 |0 # <CJK>
+<U5A23> \x8F\xB9\xD4 |0 # <CJK>
+<U5A24> \x8F\xB9\xD5 |0 # <CJK>
+<U5A27> \x8F\xB9\xD6 |0 # <CJK>
+<U5A28> \x8F\xB9\xD7 |0 # <CJK>
+<U5A2A> \x8F\xB9\xD8 |0 # <CJK>
+<U5A2D> \x8F\xB9\xD9 |0 # <CJK>
+<U5A30> \x8F\xB9\xDA |0 # <CJK>
+<U5A44> \x8F\xB9\xDB |0 # <CJK>
+<U5A45> \x8F\xB9\xDC |0 # <CJK>
+<U5A47> \x8F\xB9\xDD |0 # <CJK>
+<U5A48> \x8F\xB9\xDE |0 # <CJK>
+<U5A4C> \x8F\xB9\xDF |0 # <CJK>
+<U5A50> \x8F\xB9\xE0 |0 # <CJK>
+<U5A55> \x8F\xB9\xE1 |0 # <CJK>
+<U5A5E> \x8F\xB9\xE2 |0 # <CJK>
+<U5A63> \x8F\xB9\xE3 |0 # <CJK>
+<U5A65> \x8F\xB9\xE4 |0 # <CJK>
+<U5A67> \x8F\xB9\xE5 |0 # <CJK>
+<U5A6D> \x8F\xB9\xE6 |0 # <CJK>
+<U5A77> \x8F\xB9\xE7 |0 # <CJK>
+<U5A7A> \x8F\xB9\xE8 |0 # <CJK>
+<U5A7B> \x8F\xB9\xE9 |0 # <CJK>
+<U5A7E> \x8F\xB9\xEA |0 # <CJK>
+<U5A8B> \x8F\xB9\xEB |0 # <CJK>
+<U5A90> \x8F\xB9\xEC |0 # <CJK>
+<U5A93> \x8F\xB9\xED |0 # <CJK>
+<U5A96> \x8F\xB9\xEE |0 # <CJK>
+<U5A99> \x8F\xB9\xEF |0 # <CJK>
+<U5A9C> \x8F\xB9\xF0 |0 # <CJK>
+<U5A9E> \x8F\xB9\xF1 |0 # <CJK>
+<U5A9F> \x8F\xB9\xF2 |0 # <CJK>
+<U5AA0> \x8F\xB9\xF3 |0 # <CJK>
+<U5AA2> \x8F\xB9\xF4 |0 # <CJK>
+<U5AA7> \x8F\xB9\xF5 |0 # <CJK>
+<U5AAC> \x8F\xB9\xF6 |0 # <CJK>
+<U5AB1> \x8F\xB9\xF7 |0 # <CJK>
+<U5AB2> \x8F\xB9\xF8 |0 # <CJK>
+<U5AB3> \x8F\xB9\xF9 |0 # <CJK>
+<U5AB5> \x8F\xB9\xFA |0 # <CJK>
+<U5AB8> \x8F\xB9\xFB |0 # <CJK>
+<U5ABA> \x8F\xB9\xFC |0 # <CJK>
+<U5ABB> \x8F\xB9\xFD |0 # <CJK>
+<U5ABF> \x8F\xB9\xFE |0 # <CJK>
+<U5AC4> \x8F\xBA\xA1 |0 # <CJK>
+<U5AC6> \x8F\xBA\xA2 |0 # <CJK>
+<U5AC8> \x8F\xBA\xA3 |0 # <CJK>
+<U5ACF> \x8F\xBA\xA4 |0 # <CJK>
+<U5ADA> \x8F\xBA\xA5 |0 # <CJK>
+<U5ADC> \x8F\xBA\xA6 |0 # <CJK>
+<U5AE0> \x8F\xBA\xA7 |0 # <CJK>
+<U5AE5> \x8F\xBA\xA8 |0 # <CJK>
+<U5AEA> \x8F\xBA\xA9 |0 # <CJK>
+<U5AEE> \x8F\xBA\xAA |0 # <CJK>
+<U5AF5> \x8F\xBA\xAB |0 # <CJK>
+<U5AF6> \x8F\xBA\xAC |0 # <CJK>
+<U5AFD> \x8F\xBA\xAD |0 # <CJK>
+<U5B00> \x8F\xBA\xAE |0 # <CJK>
+<U5B01> \x8F\xBA\xAF |0 # <CJK>
+<U5B08> \x8F\xBA\xB0 |0 # <CJK>
+<U5B17> \x8F\xBA\xB1 |0 # <CJK>
+<U5B34> \x8F\xBA\xB2 |0 # <CJK>
+<U5B19> \x8F\xBA\xB3 |0 # <CJK>
+<U5B1B> \x8F\xBA\xB4 |0 # <CJK>
+<U5B1D> \x8F\xBA\xB5 |0 # <CJK>
+<U5B21> \x8F\xBA\xB6 |0 # <CJK>
+<U5B25> \x8F\xBA\xB7 |0 # <CJK>
+<U5B2D> \x8F\xBA\xB8 |0 # <CJK>
+<U5B38> \x8F\xBA\xB9 |0 # <CJK>
+<U5B41> \x8F\xBA\xBA |0 # <CJK>
+<U5B4B> \x8F\xBA\xBB |0 # <CJK>
+<U5B4C> \x8F\xBA\xBC |0 # <CJK>
+<U5B52> \x8F\xBA\xBD |0 # <CJK>
+<U5B56> \x8F\xBA\xBE |0 # <CJK>
+<U5B5E> \x8F\xBA\xBF |0 # <CJK>
+<U5B68> \x8F\xBA\xC0 |0 # <CJK>
+<U5B6E> \x8F\xBA\xC1 |0 # <CJK>
+<U5B6F> \x8F\xBA\xC2 |0 # <CJK>
+<U5B7C> \x8F\xBA\xC3 |0 # <CJK>
+<U5B7D> \x8F\xBA\xC4 |0 # <CJK>
+<U5B7E> \x8F\xBA\xC5 |0 # <CJK>
+<U5B7F> \x8F\xBA\xC6 |0 # <CJK>
+<U5B81> \x8F\xBA\xC7 |0 # <CJK>
+<U5B84> \x8F\xBA\xC8 |0 # <CJK>
+<U5B86> \x8F\xBA\xC9 |0 # <CJK>
+<U5B8A> \x8F\xBA\xCA |0 # <CJK>
+<U5B8E> \x8F\xBA\xCB |0 # <CJK>
+<U5B90> \x8F\xBA\xCC |0 # <CJK>
+<U5B91> \x8F\xBA\xCD |0 # <CJK>
+<U5B93> \x8F\xBA\xCE |0 # <CJK>
+<U5B94> \x8F\xBA\xCF |0 # <CJK>
+<U5B96> \x8F\xBA\xD0 |0 # <CJK>
+<U5BA8> \x8F\xBA\xD1 |0 # <CJK>
+<U5BA9> \x8F\xBA\xD2 |0 # <CJK>
+<U5BAC> \x8F\xBA\xD3 |0 # <CJK>
+<U5BAD> \x8F\xBA\xD4 |0 # <CJK>
+<U5BAF> \x8F\xBA\xD5 |0 # <CJK>
+<U5BB1> \x8F\xBA\xD6 |0 # <CJK>
+<U5BB2> \x8F\xBA\xD7 |0 # <CJK>
+<U5BB7> \x8F\xBA\xD8 |0 # <CJK>
+<U5BBA> \x8F\xBA\xD9 |0 # <CJK>
+<U5BBC> \x8F\xBA\xDA |0 # <CJK>
+<U5BC0> \x8F\xBA\xDB |0 # <CJK>
+<U5BC1> \x8F\xBA\xDC |0 # <CJK>
+<U5BCD> \x8F\xBA\xDD |0 # <CJK>
+<U5BCF> \x8F\xBA\xDE |0 # <CJK>
+<U5BD6> \x8F\xBA\xDF |0 # <CJK>
+<U5BD7> \x8F\xBA\xE0 |0 # <CJK>
+<U5BD8> \x8F\xBA\xE1 |0 # <CJK>
+<U5BD9> \x8F\xBA\xE2 |0 # <CJK>
+<U5BDA> \x8F\xBA\xE3 |0 # <CJK>
+<U5BE0> \x8F\xBA\xE4 |0 # <CJK>
+<U5BEF> \x8F\xBA\xE5 |0 # <CJK>
+<U5BF1> \x8F\xBA\xE6 |0 # <CJK>
+<U5BF4> \x8F\xBA\xE7 |0 # <CJK>
+<U5BFD> \x8F\xBA\xE8 |0 # <CJK>
+<U5C0C> \x8F\xBA\xE9 |0 # <CJK>
+<U5C17> \x8F\xBA\xEA |0 # <CJK>
+<U5C1E> \x8F\xBA\xEB |0 # <CJK>
+<U5C1F> \x8F\xBA\xEC |0 # <CJK>
+<U5C23> \x8F\xBA\xED |0 # <CJK>
+<U5C26> \x8F\xBA\xEE |0 # <CJK>
+<U5C29> \x8F\xBA\xEF |0 # <CJK>
+<U5C2B> \x8F\xBA\xF0 |0 # <CJK>
+<U5C2C> \x8F\xBA\xF1 |0 # <CJK>
+<U5C2E> \x8F\xBA\xF2 |0 # <CJK>
+<U5C30> \x8F\xBA\xF3 |0 # <CJK>
+<U5C32> \x8F\xBA\xF4 |0 # <CJK>
+<U5C35> \x8F\xBA\xF5 |0 # <CJK>
+<U5C36> \x8F\xBA\xF6 |0 # <CJK>
+<U5C59> \x8F\xBA\xF7 |0 # <CJK>
+<U5C5A> \x8F\xBA\xF8 |0 # <CJK>
+<U5C5C> \x8F\xBA\xF9 |0 # <CJK>
+<U5C62> \x8F\xBA\xFA |0 # <CJK>
+<U5C63> \x8F\xBA\xFB |0 # <CJK>
+<U5C67> \x8F\xBA\xFC |0 # <CJK>
+<U5C68> \x8F\xBA\xFD |0 # <CJK>
+<U5C69> \x8F\xBA\xFE |0 # <CJK>
+<U5C6D> \x8F\xBB\xA1 |0 # <CJK>
+<U5C70> \x8F\xBB\xA2 |0 # <CJK>
+<U5C74> \x8F\xBB\xA3 |0 # <CJK>
+<U5C75> \x8F\xBB\xA4 |0 # <CJK>
+<U5C7A> \x8F\xBB\xA5 |0 # <CJK>
+<U5C7B> \x8F\xBB\xA6 |0 # <CJK>
+<U5C7C> \x8F\xBB\xA7 |0 # <CJK>
+<U5C7D> \x8F\xBB\xA8 |0 # <CJK>
+<U5C87> \x8F\xBB\xA9 |0 # <CJK>
+<U5C88> \x8F\xBB\xAA |0 # <CJK>
+<U5C8A> \x8F\xBB\xAB |0 # <CJK>
+<U5C8F> \x8F\xBB\xAC |0 # <CJK>
+<U5C92> \x8F\xBB\xAD |0 # <CJK>
+<U5C9D> \x8F\xBB\xAE |0 # <CJK>
+<U5C9F> \x8F\xBB\xAF |0 # <CJK>
+<U5CA0> \x8F\xBB\xB0 |0 # <CJK>
+<U5CA2> \x8F\xBB\xB1 |0 # <CJK>
+<U5CA3> \x8F\xBB\xB2 |0 # <CJK>
+<U5CA6> \x8F\xBB\xB3 |0 # <CJK>
+<U5CAA> \x8F\xBB\xB4 |0 # <CJK>
+<U5CB2> \x8F\xBB\xB5 |0 # <CJK>
+<U5CB4> \x8F\xBB\xB6 |0 # <CJK>
+<U5CB5> \x8F\xBB\xB7 |0 # <CJK>
+<U5CBA> \x8F\xBB\xB8 |0 # <CJK>
+<U5CC9> \x8F\xBB\xB9 |0 # <CJK>
+<U5CCB> \x8F\xBB\xBA |0 # <CJK>
+<U5CD2> \x8F\xBB\xBB |0 # <CJK>
+<U5CDD> \x8F\xBB\xBC |0 # <CJK>
+<U5CD7> \x8F\xBB\xBD |0 # <CJK>
+<U5CEE> \x8F\xBB\xBE |0 # <CJK>
+<U5CF1> \x8F\xBB\xBF |0 # <CJK>
+<U5CF2> \x8F\xBB\xC0 |0 # <CJK>
+<U5CF4> \x8F\xBB\xC1 |0 # <CJK>
+<U5D01> \x8F\xBB\xC2 |0 # <CJK>
+<U5D06> \x8F\xBB\xC3 |0 # <CJK>
+<U5D0D> \x8F\xBB\xC4 |0 # <CJK>
+<U5D12> \x8F\xBB\xC5 |0 # <CJK>
+<U5D2B> \x8F\xBB\xC6 |0 # <CJK>
+<U5D23> \x8F\xBB\xC7 |0 # <CJK>
+<U5D24> \x8F\xBB\xC8 |0 # <CJK>
+<U5D26> \x8F\xBB\xC9 |0 # <CJK>
+<U5D27> \x8F\xBB\xCA |0 # <CJK>
+<U5D31> \x8F\xBB\xCB |0 # <CJK>
+<U5D34> \x8F\xBB\xCC |0 # <CJK>
+<U5D39> \x8F\xBB\xCD |0 # <CJK>
+<U5D3D> \x8F\xBB\xCE |0 # <CJK>
+<U5D3F> \x8F\xBB\xCF |0 # <CJK>
+<U5D42> \x8F\xBB\xD0 |0 # <CJK>
+<U5D43> \x8F\xBB\xD1 |0 # <CJK>
+<U5D46> \x8F\xBB\xD2 |0 # <CJK>
+<U5D48> \x8F\xBB\xD3 |0 # <CJK>
+<U5D55> \x8F\xBB\xD4 |0 # <CJK>
+<U5D51> \x8F\xBB\xD5 |0 # <CJK>
+<U5D59> \x8F\xBB\xD6 |0 # <CJK>
+<U5D4A> \x8F\xBB\xD7 |0 # <CJK>
+<U5D5F> \x8F\xBB\xD8 |0 # <CJK>
+<U5D60> \x8F\xBB\xD9 |0 # <CJK>
+<U5D61> \x8F\xBB\xDA |0 # <CJK>
+<U5D62> \x8F\xBB\xDB |0 # <CJK>
+<U5D64> \x8F\xBB\xDC |0 # <CJK>
+<U5D6A> \x8F\xBB\xDD |0 # <CJK>
+<U5D6D> \x8F\xBB\xDE |0 # <CJK>
+<U5D70> \x8F\xBB\xDF |0 # <CJK>
+<U5D79> \x8F\xBB\xE0 |0 # <CJK>
+<U5D7A> \x8F\xBB\xE1 |0 # <CJK>
+<U5D7E> \x8F\xBB\xE2 |0 # <CJK>
+<U5D7F> \x8F\xBB\xE3 |0 # <CJK>
+<U5D81> \x8F\xBB\xE4 |0 # <CJK>
+<U5D83> \x8F\xBB\xE5 |0 # <CJK>
+<U5D88> \x8F\xBB\xE6 |0 # <CJK>
+<U5D8A> \x8F\xBB\xE7 |0 # <CJK>
+<U5D92> \x8F\xBB\xE8 |0 # <CJK>
+<U5D93> \x8F\xBB\xE9 |0 # <CJK>
+<U5D94> \x8F\xBB\xEA |0 # <CJK>
+<U5D95> \x8F\xBB\xEB |0 # <CJK>
+<U5D99> \x8F\xBB\xEC |0 # <CJK>
+<U5D9B> \x8F\xBB\xED |0 # <CJK>
+<U5D9F> \x8F\xBB\xEE |0 # <CJK>
+<U5DA0> \x8F\xBB\xEF |0 # <CJK>
+<U5DA7> \x8F\xBB\xF0 |0 # <CJK>
+<U5DAB> \x8F\xBB\xF1 |0 # <CJK>
+<U5DB0> \x8F\xBB\xF2 |0 # <CJK>
+<U5DB4> \x8F\xBB\xF3 |0 # <CJK>
+<U5DB8> \x8F\xBB\xF4 |0 # <CJK>
+<U5DB9> \x8F\xBB\xF5 |0 # <CJK>
+<U5DC3> \x8F\xBB\xF6 |0 # <CJK>
+<U5DC7> \x8F\xBB\xF7 |0 # <CJK>
+<U5DCB> \x8F\xBB\xF8 |0 # <CJK>
+<U5DD0> \x8F\xBB\xF9 |0 # <CJK>
+<U5DCE> \x8F\xBB\xFA |0 # <CJK>
+<U5DD8> \x8F\xBB\xFB |0 # <CJK>
+<U5DD9> \x8F\xBB\xFC |0 # <CJK>
+<U5DE0> \x8F\xBB\xFD |0 # <CJK>
+<U5DE4> \x8F\xBB\xFE |0 # <CJK>
+<U5DE9> \x8F\xBC\xA1 |0 # <CJK>
+<U5DF8> \x8F\xBC\xA2 |0 # <CJK>
+<U5DF9> \x8F\xBC\xA3 |0 # <CJK>
+<U5E00> \x8F\xBC\xA4 |0 # <CJK>
+<U5E07> \x8F\xBC\xA5 |0 # <CJK>
+<U5E0D> \x8F\xBC\xA6 |0 # <CJK>
+<U5E12> \x8F\xBC\xA7 |0 # <CJK>
+<U5E14> \x8F\xBC\xA8 |0 # <CJK>
+<U5E15> \x8F\xBC\xA9 |0 # <CJK>
+<U5E18> \x8F\xBC\xAA |0 # <CJK>
+<U5E1F> \x8F\xBC\xAB |0 # <CJK>
+<U5E20> \x8F\xBC\xAC |0 # <CJK>
+<U5E2E> \x8F\xBC\xAD |0 # <CJK>
+<U5E28> \x8F\xBC\xAE |0 # <CJK>
+<U5E32> \x8F\xBC\xAF |0 # <CJK>
+<U5E35> \x8F\xBC\xB0 |0 # <CJK>
+<U5E3E> \x8F\xBC\xB1 |0 # <CJK>
+<U5E4B> \x8F\xBC\xB2 |0 # <CJK>
+<U5E50> \x8F\xBC\xB3 |0 # <CJK>
+<U5E49> \x8F\xBC\xB4 |0 # <CJK>
+<U5E51> \x8F\xBC\xB5 |0 # <CJK>
+<U5E56> \x8F\xBC\xB6 |0 # <CJK>
+<U5E58> \x8F\xBC\xB7 |0 # <CJK>
+<U5E5B> \x8F\xBC\xB8 |0 # <CJK>
+<U5E5C> \x8F\xBC\xB9 |0 # <CJK>
+<U5E5E> \x8F\xBC\xBA |0 # <CJK>
+<U5E68> \x8F\xBC\xBB |0 # <CJK>
+<U5E6A> \x8F\xBC\xBC |0 # <CJK>
+<U5E6B> \x8F\xBC\xBD |0 # <CJK>
+<U5E6C> \x8F\xBC\xBE |0 # <CJK>
+<U5E6D> \x8F\xBC\xBF |0 # <CJK>
+<U5E6E> \x8F\xBC\xC0 |0 # <CJK>
+<U5E70> \x8F\xBC\xC1 |0 # <CJK>
+<U5E80> \x8F\xBC\xC2 |0 # <CJK>
+<U5E8B> \x8F\xBC\xC3 |0 # <CJK>
+<U5E8E> \x8F\xBC\xC4 |0 # <CJK>
+<U5EA2> \x8F\xBC\xC5 |0 # <CJK>
+<U5EA4> \x8F\xBC\xC6 |0 # <CJK>
+<U5EA5> \x8F\xBC\xC7 |0 # <CJK>
+<U5EA8> \x8F\xBC\xC8 |0 # <CJK>
+<U5EAA> \x8F\xBC\xC9 |0 # <CJK>
+<U5EAC> \x8F\xBC\xCA |0 # <CJK>
+<U5EB1> \x8F\xBC\xCB |0 # <CJK>
+<U5EB3> \x8F\xBC\xCC |0 # <CJK>
+<U5EBD> \x8F\xBC\xCD |0 # <CJK>
+<U5EBE> \x8F\xBC\xCE |0 # <CJK>
+<U5EBF> \x8F\xBC\xCF |0 # <CJK>
+<U5EC6> \x8F\xBC\xD0 |0 # <CJK>
+<U5ECC> \x8F\xBC\xD1 |0 # <CJK>
+<U5ECB> \x8F\xBC\xD2 |0 # <CJK>
+<U5ECE> \x8F\xBC\xD3 |0 # <CJK>
+<U5ED1> \x8F\xBC\xD4 |0 # <CJK>
+<U5ED2> \x8F\xBC\xD5 |0 # <CJK>
+<U5ED4> \x8F\xBC\xD6 |0 # <CJK>
+<U5ED5> \x8F\xBC\xD7 |0 # <CJK>
+<U5EDC> \x8F\xBC\xD8 |0 # <CJK>
+<U5EDE> \x8F\xBC\xD9 |0 # <CJK>
+<U5EE5> \x8F\xBC\xDA |0 # <CJK>
+<U5EEB> \x8F\xBC\xDB |0 # <CJK>
+<U5F02> \x8F\xBC\xDC |0 # <CJK>
+<U5F06> \x8F\xBC\xDD |0 # <CJK>
+<U5F07> \x8F\xBC\xDE |0 # <CJK>
+<U5F08> \x8F\xBC\xDF |0 # <CJK>
+<U5F0E> \x8F\xBC\xE0 |0 # <CJK>
+<U5F19> \x8F\xBC\xE1 |0 # <CJK>
+<U5F1C> \x8F\xBC\xE2 |0 # <CJK>
+<U5F1D> \x8F\xBC\xE3 |0 # <CJK>
+<U5F21> \x8F\xBC\xE4 |0 # <CJK>
+<U5F22> \x8F\xBC\xE5 |0 # <CJK>
+<U5F23> \x8F\xBC\xE6 |0 # <CJK>
+<U5F24> \x8F\xBC\xE7 |0 # <CJK>
+<U5F28> \x8F\xBC\xE8 |0 # <CJK>
+<U5F2B> \x8F\xBC\xE9 |0 # <CJK>
+<U5F2C> \x8F\xBC\xEA |0 # <CJK>
+<U5F2E> \x8F\xBC\xEB |0 # <CJK>
+<U5F30> \x8F\xBC\xEC |0 # <CJK>
+<U5F34> \x8F\xBC\xED |0 # <CJK>
+<U5F36> \x8F\xBC\xEE |0 # <CJK>
+<U5F3B> \x8F\xBC\xEF |0 # <CJK>
+<U5F3D> \x8F\xBC\xF0 |0 # <CJK>
+<U5F3F> \x8F\xBC\xF1 |0 # <CJK>
+<U5F40> \x8F\xBC\xF2 |0 # <CJK>
+<U5F44> \x8F\xBC\xF3 |0 # <CJK>
+<U5F45> \x8F\xBC\xF4 |0 # <CJK>
+<U5F47> \x8F\xBC\xF5 |0 # <CJK>
+<U5F4D> \x8F\xBC\xF6 |0 # <CJK>
+<U5F50> \x8F\xBC\xF7 |0 # <CJK>
+<U5F54> \x8F\xBC\xF8 |0 # <CJK>
+<U5F58> \x8F\xBC\xF9 |0 # <CJK>
+<U5F5B> \x8F\xBC\xFA |0 # <CJK>
+<U5F60> \x8F\xBC\xFB |0 # <CJK>
+<U5F63> \x8F\xBC\xFC |0 # <CJK>
+<U5F64> \x8F\xBC\xFD |0 # <CJK>
+<U5F67> \x8F\xBC\xFE |0 # <CJK>
+<U5F6F> \x8F\xBD\xA1 |0 # <CJK>
+<U5F72> \x8F\xBD\xA2 |0 # <CJK>
+<U5F74> \x8F\xBD\xA3 |0 # <CJK>
+<U5F75> \x8F\xBD\xA4 |0 # <CJK>
+<U5F78> \x8F\xBD\xA5 |0 # <CJK>
+<U5F7A> \x8F\xBD\xA6 |0 # <CJK>
+<U5F7D> \x8F\xBD\xA7 |0 # <CJK>
+<U5F7E> \x8F\xBD\xA8 |0 # <CJK>
+<U5F89> \x8F\xBD\xA9 |0 # <CJK>
+<U5F8D> \x8F\xBD\xAA |0 # <CJK>
+<U5F8F> \x8F\xBD\xAB |0 # <CJK>
+<U5F96> \x8F\xBD\xAC |0 # <CJK>
+<U5F9C> \x8F\xBD\xAD |0 # <CJK>
+<U5F9D> \x8F\xBD\xAE |0 # <CJK>
+<U5FA2> \x8F\xBD\xAF |0 # <CJK>
+<U5FA7> \x8F\xBD\xB0 |0 # <CJK>
+<U5FAB> \x8F\xBD\xB1 |0 # <CJK>
+<U5FA4> \x8F\xBD\xB2 |0 # <CJK>
+<U5FAC> \x8F\xBD\xB3 |0 # <CJK>
+<U5FAF> \x8F\xBD\xB4 |0 # <CJK>
+<U5FB0> \x8F\xBD\xB5 |0 # <CJK>
+<U5FB1> \x8F\xBD\xB6 |0 # <CJK>
+<U5FB8> \x8F\xBD\xB7 |0 # <CJK>
+<U5FC4> \x8F\xBD\xB8 |0 # <CJK>
+<U5FC7> \x8F\xBD\xB9 |0 # <CJK>
+<U5FC8> \x8F\xBD\xBA |0 # <CJK>
+<U5FC9> \x8F\xBD\xBB |0 # <CJK>
+<U5FCB> \x8F\xBD\xBC |0 # <CJK>
+<U5FD0> \x8F\xBD\xBD |0 # <CJK>
+<U5FD1> \x8F\xBD\xBE |0 # <CJK>
+<U5FD2> \x8F\xBD\xBF |0 # <CJK>
+<U5FD3> \x8F\xBD\xC0 |0 # <CJK>
+<U5FD4> \x8F\xBD\xC1 |0 # <CJK>
+<U5FDE> \x8F\xBD\xC2 |0 # <CJK>
+<U5FE1> \x8F\xBD\xC3 |0 # <CJK>
+<U5FE2> \x8F\xBD\xC4 |0 # <CJK>
+<U5FE8> \x8F\xBD\xC5 |0 # <CJK>
+<U5FE9> \x8F\xBD\xC6 |0 # <CJK>
+<U5FEA> \x8F\xBD\xC7 |0 # <CJK>
+<U5FEC> \x8F\xBD\xC8 |0 # <CJK>
+<U5FED> \x8F\xBD\xC9 |0 # <CJK>
+<U5FEE> \x8F\xBD\xCA |0 # <CJK>
+<U5FEF> \x8F\xBD\xCB |0 # <CJK>
+<U5FF2> \x8F\xBD\xCC |0 # <CJK>
+<U5FF3> \x8F\xBD\xCD |0 # <CJK>
+<U5FF6> \x8F\xBD\xCE |0 # <CJK>
+<U5FFA> \x8F\xBD\xCF |0 # <CJK>
+<U5FFC> \x8F\xBD\xD0 |0 # <CJK>
+<U6007> \x8F\xBD\xD1 |0 # <CJK>
+<U600A> \x8F\xBD\xD2 |0 # <CJK>
+<U600D> \x8F\xBD\xD3 |0 # <CJK>
+<U6013> \x8F\xBD\xD4 |0 # <CJK>
+<U6014> \x8F\xBD\xD5 |0 # <CJK>
+<U6017> \x8F\xBD\xD6 |0 # <CJK>
+<U6018> \x8F\xBD\xD7 |0 # <CJK>
+<U601A> \x8F\xBD\xD8 |0 # <CJK>
+<U601F> \x8F\xBD\xD9 |0 # <CJK>
+<U6024> \x8F\xBD\xDA |0 # <CJK>
+<U602D> \x8F\xBD\xDB |0 # <CJK>
+<U6033> \x8F\xBD\xDC |0 # <CJK>
+<U6035> \x8F\xBD\xDD |0 # <CJK>
+<U6040> \x8F\xBD\xDE |0 # <CJK>
+<U6047> \x8F\xBD\xDF |0 # <CJK>
+<U6048> \x8F\xBD\xE0 |0 # <CJK>
+<U6049> \x8F\xBD\xE1 |0 # <CJK>
+<U604C> \x8F\xBD\xE2 |0 # <CJK>
+<U6051> \x8F\xBD\xE3 |0 # <CJK>
+<U6054> \x8F\xBD\xE4 |0 # <CJK>
+<U6056> \x8F\xBD\xE5 |0 # <CJK>
+<U6057> \x8F\xBD\xE6 |0 # <CJK>
+<U605D> \x8F\xBD\xE7 |0 # <CJK>
+<U6061> \x8F\xBD\xE8 |0 # <CJK>
+<U6067> \x8F\xBD\xE9 |0 # <CJK>
+<U6071> \x8F\xBD\xEA |0 # <CJK>
+<U607E> \x8F\xBD\xEB |0 # <CJK>
+<U607F> \x8F\xBD\xEC |0 # <CJK>
+<U6082> \x8F\xBD\xED |0 # <CJK>
+<U6086> \x8F\xBD\xEE |0 # <CJK>
+<U6088> \x8F\xBD\xEF |0 # <CJK>
+<U608A> \x8F\xBD\xF0 |0 # <CJK>
+<U608E> \x8F\xBD\xF1 |0 # <CJK>
+<U6091> \x8F\xBD\xF2 |0 # <CJK>
+<U6093> \x8F\xBD\xF3 |0 # <CJK>
+<U6095> \x8F\xBD\xF4 |0 # <CJK>
+<U6098> \x8F\xBD\xF5 |0 # <CJK>
+<U609D> \x8F\xBD\xF6 |0 # <CJK>
+<U609E> \x8F\xBD\xF7 |0 # <CJK>
+<U60A2> \x8F\xBD\xF8 |0 # <CJK>
+<U60A4> \x8F\xBD\xF9 |0 # <CJK>
+<U60A5> \x8F\xBD\xFA |0 # <CJK>
+<U60A8> \x8F\xBD\xFB |0 # <CJK>
+<U60B0> \x8F\xBD\xFC |0 # <CJK>
+<U60B1> \x8F\xBD\xFD |0 # <CJK>
+<U60B7> \x8F\xBD\xFE |0 # <CJK>
+<U60BB> \x8F\xBE\xA1 |0 # <CJK>
+<U60BE> \x8F\xBE\xA2 |0 # <CJK>
+<U60C2> \x8F\xBE\xA3 |0 # <CJK>
+<U60C4> \x8F\xBE\xA4 |0 # <CJK>
+<U60C8> \x8F\xBE\xA5 |0 # <CJK>
+<U60C9> \x8F\xBE\xA6 |0 # <CJK>
+<U60CA> \x8F\xBE\xA7 |0 # <CJK>
+<U60CB> \x8F\xBE\xA8 |0 # <CJK>
+<U60CE> \x8F\xBE\xA9 |0 # <CJK>
+<U60CF> \x8F\xBE\xAA |0 # <CJK>
+<U60D4> \x8F\xBE\xAB |0 # <CJK>
+<U60D5> \x8F\xBE\xAC |0 # <CJK>
+<U60D9> \x8F\xBE\xAD |0 # <CJK>
+<U60DB> \x8F\xBE\xAE |0 # <CJK>
+<U60DD> \x8F\xBE\xAF |0 # <CJK>
+<U60DE> \x8F\xBE\xB0 |0 # <CJK>
+<U60E2> \x8F\xBE\xB1 |0 # <CJK>
+<U60E5> \x8F\xBE\xB2 |0 # <CJK>
+<U60F2> \x8F\xBE\xB3 |0 # <CJK>
+<U60F5> \x8F\xBE\xB4 |0 # <CJK>
+<U60F8> \x8F\xBE\xB5 |0 # <CJK>
+<U60FC> \x8F\xBE\xB6 |0 # <CJK>
+<U60FD> \x8F\xBE\xB7 |0 # <CJK>
+<U6102> \x8F\xBE\xB8 |0 # <CJK>
+<U6107> \x8F\xBE\xB9 |0 # <CJK>
+<U610A> \x8F\xBE\xBA |0 # <CJK>
+<U610C> \x8F\xBE\xBB |0 # <CJK>
+<U6110> \x8F\xBE\xBC |0 # <CJK>
+<U6111> \x8F\xBE\xBD |0 # <CJK>
+<U6112> \x8F\xBE\xBE |0 # <CJK>
+<U6113> \x8F\xBE\xBF |0 # <CJK>
+<U6114> \x8F\xBE\xC0 |0 # <CJK>
+<U6116> \x8F\xBE\xC1 |0 # <CJK>
+<U6117> \x8F\xBE\xC2 |0 # <CJK>
+<U6119> \x8F\xBE\xC3 |0 # <CJK>
+<U611C> \x8F\xBE\xC4 |0 # <CJK>
+<U611E> \x8F\xBE\xC5 |0 # <CJK>
+<U6122> \x8F\xBE\xC6 |0 # <CJK>
+<U612A> \x8F\xBE\xC7 |0 # <CJK>
+<U612B> \x8F\xBE\xC8 |0 # <CJK>
+<U6130> \x8F\xBE\xC9 |0 # <CJK>
+<U6131> \x8F\xBE\xCA |0 # <CJK>
+<U6135> \x8F\xBE\xCB |0 # <CJK>
+<U6136> \x8F\xBE\xCC |0 # <CJK>
+<U6137> \x8F\xBE\xCD |0 # <CJK>
+<U6139> \x8F\xBE\xCE |0 # <CJK>
+<U6141> \x8F\xBE\xCF |0 # <CJK>
+<U6145> \x8F\xBE\xD0 |0 # <CJK>
+<U6146> \x8F\xBE\xD1 |0 # <CJK>
+<U6149> \x8F\xBE\xD2 |0 # <CJK>
+<U615E> \x8F\xBE\xD3 |0 # <CJK>
+<U6160> \x8F\xBE\xD4 |0 # <CJK>
+<U616C> \x8F\xBE\xD5 |0 # <CJK>
+<U6172> \x8F\xBE\xD6 |0 # <CJK>
+<U6178> \x8F\xBE\xD7 |0 # <CJK>
+<U617B> \x8F\xBE\xD8 |0 # <CJK>
+<U617C> \x8F\xBE\xD9 |0 # <CJK>
+<U617F> \x8F\xBE\xDA |0 # <CJK>
+<U6180> \x8F\xBE\xDB |0 # <CJK>
+<U6181> \x8F\xBE\xDC |0 # <CJK>
+<U6183> \x8F\xBE\xDD |0 # <CJK>
+<U6184> \x8F\xBE\xDE |0 # <CJK>
+<U618B> \x8F\xBE\xDF |0 # <CJK>
+<U618D> \x8F\xBE\xE0 |0 # <CJK>
+<U6192> \x8F\xBE\xE1 |0 # <CJK>
+<U6193> \x8F\xBE\xE2 |0 # <CJK>
+<U6197> \x8F\xBE\xE3 |0 # <CJK>
+<U6198> \x8F\xBE\xE4 |0 # <CJK>
+<U619C> \x8F\xBE\xE5 |0 # <CJK>
+<U619D> \x8F\xBE\xE6 |0 # <CJK>
+<U619F> \x8F\xBE\xE7 |0 # <CJK>
+<U61A0> \x8F\xBE\xE8 |0 # <CJK>
+<U61A5> \x8F\xBE\xE9 |0 # <CJK>
+<U61A8> \x8F\xBE\xEA |0 # <CJK>
+<U61AA> \x8F\xBE\xEB |0 # <CJK>
+<U61AD> \x8F\xBE\xEC |0 # <CJK>
+<U61B8> \x8F\xBE\xED |0 # <CJK>
+<U61B9> \x8F\xBE\xEE |0 # <CJK>
+<U61BC> \x8F\xBE\xEF |0 # <CJK>
+<U61C0> \x8F\xBE\xF0 |0 # <CJK>
+<U61C1> \x8F\xBE\xF1 |0 # <CJK>
+<U61C2> \x8F\xBE\xF2 |0 # <CJK>
+<U61CE> \x8F\xBE\xF3 |0 # <CJK>
+<U61CF> \x8F\xBE\xF4 |0 # <CJK>
+<U61D5> \x8F\xBE\xF5 |0 # <CJK>
+<U61DC> \x8F\xBE\xF6 |0 # <CJK>
+<U61DD> \x8F\xBE\xF7 |0 # <CJK>
+<U61DE> \x8F\xBE\xF8 |0 # <CJK>
+<U61DF> \x8F\xBE\xF9 |0 # <CJK>
+<U61E1> \x8F\xBE\xFA |0 # <CJK>
+<U61E2> \x8F\xBE\xFB |0 # <CJK>
+<U61E7> \x8F\xBE\xFC |0 # <CJK>
+<U61E9> \x8F\xBE\xFD |0 # <CJK>
+<U61E5> \x8F\xBE\xFE |0 # <CJK>
+<U61EC> \x8F\xBF\xA1 |0 # <CJK>
+<U61ED> \x8F\xBF\xA2 |0 # <CJK>
+<U61EF> \x8F\xBF\xA3 |0 # <CJK>
+<U6201> \x8F\xBF\xA4 |0 # <CJK>
+<U6203> \x8F\xBF\xA5 |0 # <CJK>
+<U6204> \x8F\xBF\xA6 |0 # <CJK>
+<U6207> \x8F\xBF\xA7 |0 # <CJK>
+<U6213> \x8F\xBF\xA8 |0 # <CJK>
+<U6215> \x8F\xBF\xA9 |0 # <CJK>
+<U621C> \x8F\xBF\xAA |0 # <CJK>
+<U6220> \x8F\xBF\xAB |0 # <CJK>
+<U6222> \x8F\xBF\xAC |0 # <CJK>
+<U6223> \x8F\xBF\xAD |0 # <CJK>
+<U6227> \x8F\xBF\xAE |0 # <CJK>
+<U6229> \x8F\xBF\xAF |0 # <CJK>
+<U622B> \x8F\xBF\xB0 |0 # <CJK>
+<U6239> \x8F\xBF\xB1 |0 # <CJK>
+<U623D> \x8F\xBF\xB2 |0 # <CJK>
+<U6242> \x8F\xBF\xB3 |0 # <CJK>
+<U6243> \x8F\xBF\xB4 |0 # <CJK>
+<U6244> \x8F\xBF\xB5 |0 # <CJK>
+<U6246> \x8F\xBF\xB6 |0 # <CJK>
+<U624C> \x8F\xBF\xB7 |0 # <CJK>
+<U6250> \x8F\xBF\xB8 |0 # <CJK>
+<U6251> \x8F\xBF\xB9 |0 # <CJK>
+<U6252> \x8F\xBF\xBA |0 # <CJK>
+<U6254> \x8F\xBF\xBB |0 # <CJK>
+<U6256> \x8F\xBF\xBC |0 # <CJK>
+<U625A> \x8F\xBF\xBD |0 # <CJK>
+<U625C> \x8F\xBF\xBE |0 # <CJK>
+<U6264> \x8F\xBF\xBF |0 # <CJK>
+<U626D> \x8F\xBF\xC0 |0 # <CJK>
+<U626F> \x8F\xBF\xC1 |0 # <CJK>
+<U6273> \x8F\xBF\xC2 |0 # <CJK>
+<U627A> \x8F\xBF\xC3 |0 # <CJK>
+<U627D> \x8F\xBF\xC4 |0 # <CJK>
+<U628D> \x8F\xBF\xC5 |0 # <CJK>
+<U628E> \x8F\xBF\xC6 |0 # <CJK>
+<U628F> \x8F\xBF\xC7 |0 # <CJK>
+<U6290> \x8F\xBF\xC8 |0 # <CJK>
+<U62A6> \x8F\xBF\xC9 |0 # <CJK>
+<U62A8> \x8F\xBF\xCA |0 # <CJK>
+<U62B3> \x8F\xBF\xCB |0 # <CJK>
+<U62B6> \x8F\xBF\xCC |0 # <CJK>
+<U62B7> \x8F\xBF\xCD |0 # <CJK>
+<U62BA> \x8F\xBF\xCE |0 # <CJK>
+<U62BE> \x8F\xBF\xCF |0 # <CJK>
+<U62BF> \x8F\xBF\xD0 |0 # <CJK>
+<U62C4> \x8F\xBF\xD1 |0 # <CJK>
+<U62CE> \x8F\xBF\xD2 |0 # <CJK>
+<U62D5> \x8F\xBF\xD3 |0 # <CJK>
+<U62D6> \x8F\xBF\xD4 |0 # <CJK>
+<U62DA> \x8F\xBF\xD5 |0 # <CJK>
+<U62EA> \x8F\xBF\xD6 |0 # <CJK>
+<U62F2> \x8F\xBF\xD7 |0 # <CJK>
+<U62F4> \x8F\xBF\xD8 |0 # <CJK>
+<U62FC> \x8F\xBF\xD9 |0 # <CJK>
+<U62FD> \x8F\xBF\xDA |0 # <CJK>
+<U6303> \x8F\xBF\xDB |0 # <CJK>
+<U6304> \x8F\xBF\xDC |0 # <CJK>
+<U630A> \x8F\xBF\xDD |0 # <CJK>
+<U630B> \x8F\xBF\xDE |0 # <CJK>
+<U630D> \x8F\xBF\xDF |0 # <CJK>
+<U6310> \x8F\xBF\xE0 |0 # <CJK>
+<U6313> \x8F\xBF\xE1 |0 # <CJK>
+<U6316> \x8F\xBF\xE2 |0 # <CJK>
+<U6318> \x8F\xBF\xE3 |0 # <CJK>
+<U6329> \x8F\xBF\xE4 |0 # <CJK>
+<U632A> \x8F\xBF\xE5 |0 # <CJK>
+<U632D> \x8F\xBF\xE6 |0 # <CJK>
+<U6335> \x8F\xBF\xE7 |0 # <CJK>
+<U6336> \x8F\xBF\xE8 |0 # <CJK>
+<U6339> \x8F\xBF\xE9 |0 # <CJK>
+<U633C> \x8F\xBF\xEA |0 # <CJK>
+<U6341> \x8F\xBF\xEB |0 # <CJK>
+<U6342> \x8F\xBF\xEC |0 # <CJK>
+<U6343> \x8F\xBF\xED |0 # <CJK>
+<U6344> \x8F\xBF\xEE |0 # <CJK>
+<U6346> \x8F\xBF\xEF |0 # <CJK>
+<U634A> \x8F\xBF\xF0 |0 # <CJK>
+<U634B> \x8F\xBF\xF1 |0 # <CJK>
+<U634E> \x8F\xBF\xF2 |0 # <CJK>
+<U6352> \x8F\xBF\xF3 |0 # <CJK>
+<U6353> \x8F\xBF\xF4 |0 # <CJK>
+<U6354> \x8F\xBF\xF5 |0 # <CJK>
+<U6358> \x8F\xBF\xF6 |0 # <CJK>
+<U635B> \x8F\xBF\xF7 |0 # <CJK>
+<U6365> \x8F\xBF\xF8 |0 # <CJK>
+<U6366> \x8F\xBF\xF9 |0 # <CJK>
+<U636C> \x8F\xBF\xFA |0 # <CJK>
+<U636D> \x8F\xBF\xFB |0 # <CJK>
+<U6371> \x8F\xBF\xFC |0 # <CJK>
+<U6374> \x8F\xBF\xFD |0 # <CJK>
+<U6375> \x8F\xBF\xFE |0 # <CJK>
+<U6378> \x8F\xC0\xA1 |0 # <CJK>
+<U637C> \x8F\xC0\xA2 |0 # <CJK>
+<U637D> \x8F\xC0\xA3 |0 # <CJK>
+<U637F> \x8F\xC0\xA4 |0 # <CJK>
+<U6382> \x8F\xC0\xA5 |0 # <CJK>
+<U6384> \x8F\xC0\xA6 |0 # <CJK>
+<U6387> \x8F\xC0\xA7 |0 # <CJK>
+<U638A> \x8F\xC0\xA8 |0 # <CJK>
+<U6390> \x8F\xC0\xA9 |0 # <CJK>
+<U6394> \x8F\xC0\xAA |0 # <CJK>
+<U6395> \x8F\xC0\xAB |0 # <CJK>
+<U6399> \x8F\xC0\xAC |0 # <CJK>
+<U639A> \x8F\xC0\xAD |0 # <CJK>
+<U639E> \x8F\xC0\xAE |0 # <CJK>
+<U63A4> \x8F\xC0\xAF |0 # <CJK>
+<U63A6> \x8F\xC0\xB0 |0 # <CJK>
+<U63AD> \x8F\xC0\xB1 |0 # <CJK>
+<U63AE> \x8F\xC0\xB2 |0 # <CJK>
+<U63AF> \x8F\xC0\xB3 |0 # <CJK>
+<U63BD> \x8F\xC0\xB4 |0 # <CJK>
+<U63C1> \x8F\xC0\xB5 |0 # <CJK>
+<U63C5> \x8F\xC0\xB6 |0 # <CJK>
+<U63C8> \x8F\xC0\xB7 |0 # <CJK>
+<U63CE> \x8F\xC0\xB8 |0 # <CJK>
+<U63D1> \x8F\xC0\xB9 |0 # <CJK>
+<U63D3> \x8F\xC0\xBA |0 # <CJK>
+<U63D4> \x8F\xC0\xBB |0 # <CJK>
+<U63D5> \x8F\xC0\xBC |0 # <CJK>
+<U63DC> \x8F\xC0\xBD |0 # <CJK>
+<U63E0> \x8F\xC0\xBE |0 # <CJK>
+<U63E5> \x8F\xC0\xBF |0 # <CJK>
+<U63EA> \x8F\xC0\xC0 |0 # <CJK>
+<U63EC> \x8F\xC0\xC1 |0 # <CJK>
+<U63F2> \x8F\xC0\xC2 |0 # <CJK>
+<U63F3> \x8F\xC0\xC3 |0 # <CJK>
+<U63F5> \x8F\xC0\xC4 |0 # <CJK>
+<U63F8> \x8F\xC0\xC5 |0 # <CJK>
+<U63F9> \x8F\xC0\xC6 |0 # <CJK>
+<U6409> \x8F\xC0\xC7 |0 # <CJK>
+<U640A> \x8F\xC0\xC8 |0 # <CJK>
+<U6410> \x8F\xC0\xC9 |0 # <CJK>
+<U6412> \x8F\xC0\xCA |0 # <CJK>
+<U6414> \x8F\xC0\xCB |0 # <CJK>
+<U6418> \x8F\xC0\xCC |0 # <CJK>
+<U641E> \x8F\xC0\xCD |0 # <CJK>
+<U6420> \x8F\xC0\xCE |0 # <CJK>
+<U6422> \x8F\xC0\xCF |0 # <CJK>
+<U6424> \x8F\xC0\xD0 |0 # <CJK>
+<U6425> \x8F\xC0\xD1 |0 # <CJK>
+<U6429> \x8F\xC0\xD2 |0 # <CJK>
+<U642A> \x8F\xC0\xD3 |0 # <CJK>
+<U642F> \x8F\xC0\xD4 |0 # <CJK>
+<U6430> \x8F\xC0\xD5 |0 # <CJK>
+<U6435> \x8F\xC0\xD6 |0 # <CJK>
+<U643D> \x8F\xC0\xD7 |0 # <CJK>
+<U643F> \x8F\xC0\xD8 |0 # <CJK>
+<U644B> \x8F\xC0\xD9 |0 # <CJK>
+<U644F> \x8F\xC0\xDA |0 # <CJK>
+<U6451> \x8F\xC0\xDB |0 # <CJK>
+<U6452> \x8F\xC0\xDC |0 # <CJK>
+<U6453> \x8F\xC0\xDD |0 # <CJK>
+<U6454> \x8F\xC0\xDE |0 # <CJK>
+<U645A> \x8F\xC0\xDF |0 # <CJK>
+<U645B> \x8F\xC0\xE0 |0 # <CJK>
+<U645C> \x8F\xC0\xE1 |0 # <CJK>
+<U645D> \x8F\xC0\xE2 |0 # <CJK>
+<U645F> \x8F\xC0\xE3 |0 # <CJK>
+<U6460> \x8F\xC0\xE4 |0 # <CJK>
+<U6461> \x8F\xC0\xE5 |0 # <CJK>
+<U6463> \x8F\xC0\xE6 |0 # <CJK>
+<U646D> \x8F\xC0\xE7 |0 # <CJK>
+<U6473> \x8F\xC0\xE8 |0 # <CJK>
+<U6474> \x8F\xC0\xE9 |0 # <CJK>
+<U647B> \x8F\xC0\xEA |0 # <CJK>
+<U647D> \x8F\xC0\xEB |0 # <CJK>
+<U6485> \x8F\xC0\xEC |0 # <CJK>
+<U6487> \x8F\xC0\xED |0 # <CJK>
+<U648F> \x8F\xC0\xEE |0 # <CJK>
+<U6490> \x8F\xC0\xEF |0 # <CJK>
+<U6491> \x8F\xC0\xF0 |0 # <CJK>
+<U6498> \x8F\xC0\xF1 |0 # <CJK>
+<U6499> \x8F\xC0\xF2 |0 # <CJK>
+<U649B> \x8F\xC0\xF3 |0 # <CJK>
+<U649D> \x8F\xC0\xF4 |0 # <CJK>
+<U649F> \x8F\xC0\xF5 |0 # <CJK>
+<U64A1> \x8F\xC0\xF6 |0 # <CJK>
+<U64A3> \x8F\xC0\xF7 |0 # <CJK>
+<U64A6> \x8F\xC0\xF8 |0 # <CJK>
+<U64A8> \x8F\xC0\xF9 |0 # <CJK>
+<U64AC> \x8F\xC0\xFA |0 # <CJK>
+<U64B3> \x8F\xC0\xFB |0 # <CJK>
+<U64BD> \x8F\xC0\xFC |0 # <CJK>
+<U64BE> \x8F\xC0\xFD |0 # <CJK>
+<U64BF> \x8F\xC0\xFE |0 # <CJK>
+<U64C4> \x8F\xC1\xA1 |0 # <CJK>
+<U64C9> \x8F\xC1\xA2 |0 # <CJK>
+<U64CA> \x8F\xC1\xA3 |0 # <CJK>
+<U64CB> \x8F\xC1\xA4 |0 # <CJK>
+<U64CC> \x8F\xC1\xA5 |0 # <CJK>
+<U64CE> \x8F\xC1\xA6 |0 # <CJK>
+<U64D0> \x8F\xC1\xA7 |0 # <CJK>
+<U64D1> \x8F\xC1\xA8 |0 # <CJK>
+<U64D5> \x8F\xC1\xA9 |0 # <CJK>
+<U64D7> \x8F\xC1\xAA |0 # <CJK>
+<U64E4> \x8F\xC1\xAB |0 # <CJK>
+<U64E5> \x8F\xC1\xAC |0 # <CJK>
+<U64E9> \x8F\xC1\xAD |0 # <CJK>
+<U64EA> \x8F\xC1\xAE |0 # <CJK>
+<U64ED> \x8F\xC1\xAF |0 # <CJK>
+<U64F0> \x8F\xC1\xB0 |0 # <CJK>
+<U64F5> \x8F\xC1\xB1 |0 # <CJK>
+<U64F7> \x8F\xC1\xB2 |0 # <CJK>
+<U64FB> \x8F\xC1\xB3 |0 # <CJK>
+<U64FF> \x8F\xC1\xB4 |0 # <CJK>
+<U6501> \x8F\xC1\xB5 |0 # <CJK>
+<U6504> \x8F\xC1\xB6 |0 # <CJK>
+<U6508> \x8F\xC1\xB7 |0 # <CJK>
+<U6509> \x8F\xC1\xB8 |0 # <CJK>
+<U650A> \x8F\xC1\xB9 |0 # <CJK>
+<U650F> \x8F\xC1\xBA |0 # <CJK>
+<U6513> \x8F\xC1\xBB |0 # <CJK>
+<U6514> \x8F\xC1\xBC |0 # <CJK>
+<U6516> \x8F\xC1\xBD |0 # <CJK>
+<U6519> \x8F\xC1\xBE |0 # <CJK>
+<U651B> \x8F\xC1\xBF |0 # <CJK>
+<U651E> \x8F\xC1\xC0 |0 # <CJK>
+<U651F> \x8F\xC1\xC1 |0 # <CJK>
+<U6522> \x8F\xC1\xC2 |0 # <CJK>
+<U6526> \x8F\xC1\xC3 |0 # <CJK>
+<U6529> \x8F\xC1\xC4 |0 # <CJK>
+<U652E> \x8F\xC1\xC5 |0 # <CJK>
+<U6531> \x8F\xC1\xC6 |0 # <CJK>
+<U653A> \x8F\xC1\xC7 |0 # <CJK>
+<U653C> \x8F\xC1\xC8 |0 # <CJK>
+<U653D> \x8F\xC1\xC9 |0 # <CJK>
+<U6543> \x8F\xC1\xCA |0 # <CJK>
+<U6547> \x8F\xC1\xCB |0 # <CJK>
+<U6549> \x8F\xC1\xCC |0 # <CJK>
+<U6550> \x8F\xC1\xCD |0 # <CJK>
+<U6552> \x8F\xC1\xCE |0 # <CJK>
+<U6554> \x8F\xC1\xCF |0 # <CJK>
+<U655F> \x8F\xC1\xD0 |0 # <CJK>
+<U6560> \x8F\xC1\xD1 |0 # <CJK>
+<U6567> \x8F\xC1\xD2 |0 # <CJK>
+<U656B> \x8F\xC1\xD3 |0 # <CJK>
+<U657A> \x8F\xC1\xD4 |0 # <CJK>
+<U657D> \x8F\xC1\xD5 |0 # <CJK>
+<U6581> \x8F\xC1\xD6 |0 # <CJK>
+<U6585> \x8F\xC1\xD7 |0 # <CJK>
+<U658A> \x8F\xC1\xD8 |0 # <CJK>
+<U6592> \x8F\xC1\xD9 |0 # <CJK>
+<U6595> \x8F\xC1\xDA |0 # <CJK>
+<U6598> \x8F\xC1\xDB |0 # <CJK>
+<U659D> \x8F\xC1\xDC |0 # <CJK>
+<U65A0> \x8F\xC1\xDD |0 # <CJK>
+<U65A3> \x8F\xC1\xDE |0 # <CJK>
+<U65A6> \x8F\xC1\xDF |0 # <CJK>
+<U65AE> \x8F\xC1\xE0 |0 # <CJK>
+<U65B2> \x8F\xC1\xE1 |0 # <CJK>
+<U65B3> \x8F\xC1\xE2 |0 # <CJK>
+<U65B4> \x8F\xC1\xE3 |0 # <CJK>
+<U65BF> \x8F\xC1\xE4 |0 # <CJK>
+<U65C2> \x8F\xC1\xE5 |0 # <CJK>
+<U65C8> \x8F\xC1\xE6 |0 # <CJK>
+<U65C9> \x8F\xC1\xE7 |0 # <CJK>
+<U65CE> \x8F\xC1\xE8 |0 # <CJK>
+<U65D0> \x8F\xC1\xE9 |0 # <CJK>
+<U65D4> \x8F\xC1\xEA |0 # <CJK>
+<U65D6> \x8F\xC1\xEB |0 # <CJK>
+<U65D8> \x8F\xC1\xEC |0 # <CJK>
+<U65DF> \x8F\xC1\xED |0 # <CJK>
+<U65F0> \x8F\xC1\xEE |0 # <CJK>
+<U65F2> \x8F\xC1\xEF |0 # <CJK>
+<U65F4> \x8F\xC1\xF0 |0 # <CJK>
+<U65F5> \x8F\xC1\xF1 |0 # <CJK>
+<U65F9> \x8F\xC1\xF2 |0 # <CJK>
+<U65FE> \x8F\xC1\xF3 |0 # <CJK>
+<U65FF> \x8F\xC1\xF4 |0 # <CJK>
+<U6600> \x8F\xC1\xF5 |0 # <CJK>
+<U6604> \x8F\xC1\xF6 |0 # <CJK>
+<U6608> \x8F\xC1\xF7 |0 # <CJK>
+<U6609> \x8F\xC1\xF8 |0 # <CJK>
+<U660D> \x8F\xC1\xF9 |0 # <CJK>
+<U6611> \x8F\xC1\xFA |0 # <CJK>
+<U6612> \x8F\xC1\xFB |0 # <CJK>
+<U6615> \x8F\xC1\xFC |0 # <CJK>
+<U6616> \x8F\xC1\xFD |0 # <CJK>
+<U661D> \x8F\xC1\xFE |0 # <CJK>
+<U661E> \x8F\xC2\xA1 |0 # <CJK>
+<U6621> \x8F\xC2\xA2 |0 # <CJK>
+<U6622> \x8F\xC2\xA3 |0 # <CJK>
+<U6623> \x8F\xC2\xA4 |0 # <CJK>
+<U6624> \x8F\xC2\xA5 |0 # <CJK>
+<U6626> \x8F\xC2\xA6 |0 # <CJK>
+<U6629> \x8F\xC2\xA7 |0 # <CJK>
+<U662A> \x8F\xC2\xA8 |0 # <CJK>
+<U662B> \x8F\xC2\xA9 |0 # <CJK>
+<U662C> \x8F\xC2\xAA |0 # <CJK>
+<U662E> \x8F\xC2\xAB |0 # <CJK>
+<U6630> \x8F\xC2\xAC |0 # <CJK>
+<U6631> \x8F\xC2\xAD |0 # <CJK>
+<U6633> \x8F\xC2\xAE |0 # <CJK>
+<U6639> \x8F\xC2\xAF |0 # <CJK>
+<U6637> \x8F\xC2\xB0 |0 # <CJK>
+<U6640> \x8F\xC2\xB1 |0 # <CJK>
+<U6645> \x8F\xC2\xB2 |0 # <CJK>
+<U6646> \x8F\xC2\xB3 |0 # <CJK>
+<U664A> \x8F\xC2\xB4 |0 # <CJK>
+<U664C> \x8F\xC2\xB5 |0 # <CJK>
+<U6651> \x8F\xC2\xB6 |0 # <CJK>
+<U664E> \x8F\xC2\xB7 |0 # <CJK>
+<U6657> \x8F\xC2\xB8 |0 # <CJK>
+<U6658> \x8F\xC2\xB9 |0 # <CJK>
+<U6659> \x8F\xC2\xBA |0 # <CJK>
+<U665B> \x8F\xC2\xBB |0 # <CJK>
+<U665C> \x8F\xC2\xBC |0 # <CJK>
+<U6660> \x8F\xC2\xBD |0 # <CJK>
+<U6661> \x8F\xC2\xBE |0 # <CJK>
+<U66FB> \x8F\xC2\xBF |0 # <CJK>
+<U666A> \x8F\xC2\xC0 |0 # <CJK>
+<U666B> \x8F\xC2\xC1 |0 # <CJK>
+<U666C> \x8F\xC2\xC2 |0 # <CJK>
+<U667E> \x8F\xC2\xC3 |0 # <CJK>
+<U6673> \x8F\xC2\xC4 |0 # <CJK>
+<U6675> \x8F\xC2\xC5 |0 # <CJK>
+<U667F> \x8F\xC2\xC6 |0 # <CJK>
+<U6677> \x8F\xC2\xC7 |0 # <CJK>
+<U6678> \x8F\xC2\xC8 |0 # <CJK>
+<U6679> \x8F\xC2\xC9 |0 # <CJK>
+<U667B> \x8F\xC2\xCA |0 # <CJK>
+<U6680> \x8F\xC2\xCB |0 # <CJK>
+<U667C> \x8F\xC2\xCC |0 # <CJK>
+<U668B> \x8F\xC2\xCD |0 # <CJK>
+<U668C> \x8F\xC2\xCE |0 # <CJK>
+<U668D> \x8F\xC2\xCF |0 # <CJK>
+<U6690> \x8F\xC2\xD0 |0 # <CJK>
+<U6692> \x8F\xC2\xD1 |0 # <CJK>
+<U6699> \x8F\xC2\xD2 |0 # <CJK>
+<U669A> \x8F\xC2\xD3 |0 # <CJK>
+<U669B> \x8F\xC2\xD4 |0 # <CJK>
+<U669C> \x8F\xC2\xD5 |0 # <CJK>
+<U669F> \x8F\xC2\xD6 |0 # <CJK>
+<U66A0> \x8F\xC2\xD7 |0 # <CJK>
+<U66A4> \x8F\xC2\xD8 |0 # <CJK>
+<U66AD> \x8F\xC2\xD9 |0 # <CJK>
+<U66B1> \x8F\xC2\xDA |0 # <CJK>
+<U66B2> \x8F\xC2\xDB |0 # <CJK>
+<U66B5> \x8F\xC2\xDC |0 # <CJK>
+<U66BB> \x8F\xC2\xDD |0 # <CJK>
+<U66BF> \x8F\xC2\xDE |0 # <CJK>
+<U66C0> \x8F\xC2\xDF |0 # <CJK>
+<U66C2> \x8F\xC2\xE0 |0 # <CJK>
+<U66C3> \x8F\xC2\xE1 |0 # <CJK>
+<U66C8> \x8F\xC2\xE2 |0 # <CJK>
+<U66CC> \x8F\xC2\xE3 |0 # <CJK>
+<U66CE> \x8F\xC2\xE4 |0 # <CJK>
+<U66CF> \x8F\xC2\xE5 |0 # <CJK>
+<U66D4> \x8F\xC2\xE6 |0 # <CJK>
+<U66DB> \x8F\xC2\xE7 |0 # <CJK>
+<U66DF> \x8F\xC2\xE8 |0 # <CJK>
+<U66E8> \x8F\xC2\xE9 |0 # <CJK>
+<U66EB> \x8F\xC2\xEA |0 # <CJK>
+<U66EC> \x8F\xC2\xEB |0 # <CJK>
+<U66EE> \x8F\xC2\xEC |0 # <CJK>
+<U66FA> \x8F\xC2\xED |0 # <CJK>
+<U6705> \x8F\xC2\xEE |0 # <CJK>
+<U6707> \x8F\xC2\xEF |0 # <CJK>
+<U670E> \x8F\xC2\xF0 |0 # <CJK>
+<U6713> \x8F\xC2\xF1 |0 # <CJK>
+<U6719> \x8F\xC2\xF2 |0 # <CJK>
+<U671C> \x8F\xC2\xF3 |0 # <CJK>
+<U6720> \x8F\xC2\xF4 |0 # <CJK>
+<U6722> \x8F\xC2\xF5 |0 # <CJK>
+<U6733> \x8F\xC2\xF6 |0 # <CJK>
+<U673E> \x8F\xC2\xF7 |0 # <CJK>
+<U6745> \x8F\xC2\xF8 |0 # <CJK>
+<U6747> \x8F\xC2\xF9 |0 # <CJK>
+<U6748> \x8F\xC2\xFA |0 # <CJK>
+<U674C> \x8F\xC2\xFB |0 # <CJK>
+<U6754> \x8F\xC2\xFC |0 # <CJK>
+<U6755> \x8F\xC2\xFD |0 # <CJK>
+<U675D> \x8F\xC2\xFE |0 # <CJK>
+<U6766> \x8F\xC3\xA1 |0 # <CJK>
+<U676C> \x8F\xC3\xA2 |0 # <CJK>
+<U676E> \x8F\xC3\xA3 |0 # <CJK>
+<U6774> \x8F\xC3\xA4 |0 # <CJK>
+<U6776> \x8F\xC3\xA5 |0 # <CJK>
+<U677B> \x8F\xC3\xA6 |0 # <CJK>
+<U6781> \x8F\xC3\xA7 |0 # <CJK>
+<U6784> \x8F\xC3\xA8 |0 # <CJK>
+<U678E> \x8F\xC3\xA9 |0 # <CJK>
+<U678F> \x8F\xC3\xAA |0 # <CJK>
+<U6791> \x8F\xC3\xAB |0 # <CJK>
+<U6793> \x8F\xC3\xAC |0 # <CJK>
+<U6796> \x8F\xC3\xAD |0 # <CJK>
+<U6798> \x8F\xC3\xAE |0 # <CJK>
+<U6799> \x8F\xC3\xAF |0 # <CJK>
+<U679B> \x8F\xC3\xB0 |0 # <CJK>
+<U67B0> \x8F\xC3\xB1 |0 # <CJK>
+<U67B1> \x8F\xC3\xB2 |0 # <CJK>
+<U67B2> \x8F\xC3\xB3 |0 # <CJK>
+<U67B5> \x8F\xC3\xB4 |0 # <CJK>
+<U67BB> \x8F\xC3\xB5 |0 # <CJK>
+<U67BC> \x8F\xC3\xB6 |0 # <CJK>
+<U67BD> \x8F\xC3\xB7 |0 # <CJK>
+<U67F9> \x8F\xC3\xB8 |0 # <CJK>
+<U67C0> \x8F\xC3\xB9 |0 # <CJK>
+<U67C2> \x8F\xC3\xBA |0 # <CJK>
+<U67C3> \x8F\xC3\xBB |0 # <CJK>
+<U67C5> \x8F\xC3\xBC |0 # <CJK>
+<U67C8> \x8F\xC3\xBD |0 # <CJK>
+<U67C9> \x8F\xC3\xBE |0 # <CJK>
+<U67D2> \x8F\xC3\xBF |0 # <CJK>
+<U67D7> \x8F\xC3\xC0 |0 # <CJK>
+<U67D9> \x8F\xC3\xC1 |0 # <CJK>
+<U67DC> \x8F\xC3\xC2 |0 # <CJK>
+<U67E1> \x8F\xC3\xC3 |0 # <CJK>
+<U67E6> \x8F\xC3\xC4 |0 # <CJK>
+<U67F0> \x8F\xC3\xC5 |0 # <CJK>
+<U67F2> \x8F\xC3\xC6 |0 # <CJK>
+<U67F6> \x8F\xC3\xC7 |0 # <CJK>
+<U67F7> \x8F\xC3\xC8 |0 # <CJK>
+<U6852> \x8F\xC3\xC9 |0 # <CJK>
+<U6814> \x8F\xC3\xCA |0 # <CJK>
+<U6819> \x8F\xC3\xCB |0 # <CJK>
+<U681D> \x8F\xC3\xCC |0 # <CJK>
+<U681F> \x8F\xC3\xCD |0 # <CJK>
+<U6828> \x8F\xC3\xCE |0 # <CJK>
+<U6827> \x8F\xC3\xCF |0 # <CJK>
+<U682C> \x8F\xC3\xD0 |0 # <CJK>
+<U682D> \x8F\xC3\xD1 |0 # <CJK>
+<U682F> \x8F\xC3\xD2 |0 # <CJK>
+<U6830> \x8F\xC3\xD3 |0 # <CJK>
+<U6831> \x8F\xC3\xD4 |0 # <CJK>
+<U6833> \x8F\xC3\xD5 |0 # <CJK>
+<U683B> \x8F\xC3\xD6 |0 # <CJK>
+<U683F> \x8F\xC3\xD7 |0 # <CJK>
+<U6844> \x8F\xC3\xD8 |0 # <CJK>
+<U6845> \x8F\xC3\xD9 |0 # <CJK>
+<U684A> \x8F\xC3\xDA |0 # <CJK>
+<U684C> \x8F\xC3\xDB |0 # <CJK>
+<U6855> \x8F\xC3\xDC |0 # <CJK>
+<U6857> \x8F\xC3\xDD |0 # <CJK>
+<U6858> \x8F\xC3\xDE |0 # <CJK>
+<U685B> \x8F\xC3\xDF |0 # <CJK>
+<U686B> \x8F\xC3\xE0 |0 # <CJK>
+<U686E> \x8F\xC3\xE1 |0 # <CJK>
+<U686F> \x8F\xC3\xE2 |0 # <CJK>
+<U6870> \x8F\xC3\xE3 |0 # <CJK>
+<U6871> \x8F\xC3\xE4 |0 # <CJK>
+<U6872> \x8F\xC3\xE5 |0 # <CJK>
+<U6875> \x8F\xC3\xE6 |0 # <CJK>
+<U6879> \x8F\xC3\xE7 |0 # <CJK>
+<U687A> \x8F\xC3\xE8 |0 # <CJK>
+<U687B> \x8F\xC3\xE9 |0 # <CJK>
+<U687C> \x8F\xC3\xEA |0 # <CJK>
+<U6882> \x8F\xC3\xEB |0 # <CJK>
+<U6884> \x8F\xC3\xEC |0 # <CJK>
+<U6886> \x8F\xC3\xED |0 # <CJK>
+<U6888> \x8F\xC3\xEE |0 # <CJK>
+<U6896> \x8F\xC3\xEF |0 # <CJK>
+<U6898> \x8F\xC3\xF0 |0 # <CJK>
+<U689A> \x8F\xC3\xF1 |0 # <CJK>
+<U689C> \x8F\xC3\xF2 |0 # <CJK>
+<U68A1> \x8F\xC3\xF3 |0 # <CJK>
+<U68A3> \x8F\xC3\xF4 |0 # <CJK>
+<U68A5> \x8F\xC3\xF5 |0 # <CJK>
+<U68A9> \x8F\xC3\xF6 |0 # <CJK>
+<U68AA> \x8F\xC3\xF7 |0 # <CJK>
+<U68AE> \x8F\xC3\xF8 |0 # <CJK>
+<U68B2> \x8F\xC3\xF9 |0 # <CJK>
+<U68BB> \x8F\xC3\xFA |0 # <CJK>
+<U68C5> \x8F\xC3\xFB |0 # <CJK>
+<U68C8> \x8F\xC3\xFC |0 # <CJK>
+<U68CC> \x8F\xC3\xFD |0 # <CJK>
+<U68CF> \x8F\xC3\xFE |0 # <CJK>
+<U68D0> \x8F\xC4\xA1 |0 # <CJK>
+<U68D1> \x8F\xC4\xA2 |0 # <CJK>
+<U68D3> \x8F\xC4\xA3 |0 # <CJK>
+<U68D6> \x8F\xC4\xA4 |0 # <CJK>
+<U68D9> \x8F\xC4\xA5 |0 # <CJK>
+<U68DC> \x8F\xC4\xA6 |0 # <CJK>
+<U68DD> \x8F\xC4\xA7 |0 # <CJK>
+<U68E5> \x8F\xC4\xA8 |0 # <CJK>
+<U68E8> \x8F\xC4\xA9 |0 # <CJK>
+<U68EA> \x8F\xC4\xAA |0 # <CJK>
+<U68EB> \x8F\xC4\xAB |0 # <CJK>
+<U68EC> \x8F\xC4\xAC |0 # <CJK>
+<U68ED> \x8F\xC4\xAD |0 # <CJK>
+<U68F0> \x8F\xC4\xAE |0 # <CJK>
+<U68F1> \x8F\xC4\xAF |0 # <CJK>
+<U68F5> \x8F\xC4\xB0 |0 # <CJK>
+<U68F6> \x8F\xC4\xB1 |0 # <CJK>
+<U68FB> \x8F\xC4\xB2 |0 # <CJK>
+<U68FC> \x8F\xC4\xB3 |0 # <CJK>
+<U68FD> \x8F\xC4\xB4 |0 # <CJK>
+<U6906> \x8F\xC4\xB5 |0 # <CJK>
+<U6909> \x8F\xC4\xB6 |0 # <CJK>
+<U690A> \x8F\xC4\xB7 |0 # <CJK>
+<U6910> \x8F\xC4\xB8 |0 # <CJK>
+<U6911> \x8F\xC4\xB9 |0 # <CJK>
+<U6913> \x8F\xC4\xBA |0 # <CJK>
+<U6916> \x8F\xC4\xBB |0 # <CJK>
+<U6917> \x8F\xC4\xBC |0 # <CJK>
+<U6931> \x8F\xC4\xBD |0 # <CJK>
+<U6933> \x8F\xC4\xBE |0 # <CJK>
+<U6935> \x8F\xC4\xBF |0 # <CJK>
+<U6938> \x8F\xC4\xC0 |0 # <CJK>
+<U693B> \x8F\xC4\xC1 |0 # <CJK>
+<U6942> \x8F\xC4\xC2 |0 # <CJK>
+<U6945> \x8F\xC4\xC3 |0 # <CJK>
+<U6949> \x8F\xC4\xC4 |0 # <CJK>
+<U694E> \x8F\xC4\xC5 |0 # <CJK>
+<U6957> \x8F\xC4\xC6 |0 # <CJK>
+<U695B> \x8F\xC4\xC7 |0 # <CJK>
+<U6963> \x8F\xC4\xC8 |0 # <CJK>
+<U6964> \x8F\xC4\xC9 |0 # <CJK>
+<U6965> \x8F\xC4\xCA |0 # <CJK>
+<U6966> \x8F\xC4\xCB |0 # <CJK>
+<U6968> \x8F\xC4\xCC |0 # <CJK>
+<U6969> \x8F\xC4\xCD |0 # <CJK>
+<U696C> \x8F\xC4\xCE |0 # <CJK>
+<U6970> \x8F\xC4\xCF |0 # <CJK>
+<U6971> \x8F\xC4\xD0 |0 # <CJK>
+<U6972> \x8F\xC4\xD1 |0 # <CJK>
+<U697A> \x8F\xC4\xD2 |0 # <CJK>
+<U697B> \x8F\xC4\xD3 |0 # <CJK>
+<U697F> \x8F\xC4\xD4 |0 # <CJK>
+<U6980> \x8F\xC4\xD5 |0 # <CJK>
+<U698D> \x8F\xC4\xD6 |0 # <CJK>
+<U6992> \x8F\xC4\xD7 |0 # <CJK>
+<U6996> \x8F\xC4\xD8 |0 # <CJK>
+<U6998> \x8F\xC4\xD9 |0 # <CJK>
+<U69A1> \x8F\xC4\xDA |0 # <CJK>
+<U69A5> \x8F\xC4\xDB |0 # <CJK>
+<U69A6> \x8F\xC4\xDC |0 # <CJK>
+<U69A8> \x8F\xC4\xDD |0 # <CJK>
+<U69AB> \x8F\xC4\xDE |0 # <CJK>
+<U69AD> \x8F\xC4\xDF |0 # <CJK>
+<U69AF> \x8F\xC4\xE0 |0 # <CJK>
+<U69B7> \x8F\xC4\xE1 |0 # <CJK>
+<U69B8> \x8F\xC4\xE2 |0 # <CJK>
+<U69BA> \x8F\xC4\xE3 |0 # <CJK>
+<U69BC> \x8F\xC4\xE4 |0 # <CJK>
+<U69C5> \x8F\xC4\xE5 |0 # <CJK>
+<U69C8> \x8F\xC4\xE6 |0 # <CJK>
+<U69D1> \x8F\xC4\xE7 |0 # <CJK>
+<U69D6> \x8F\xC4\xE8 |0 # <CJK>
+<U69D7> \x8F\xC4\xE9 |0 # <CJK>
+<U69E2> \x8F\xC4\xEA |0 # <CJK>
+<U69E5> \x8F\xC4\xEB |0 # <CJK>
+<U69EE> \x8F\xC4\xEC |0 # <CJK>
+<U69EF> \x8F\xC4\xED |0 # <CJK>
+<U69F1> \x8F\xC4\xEE |0 # <CJK>
+<U69F3> \x8F\xC4\xEF |0 # <CJK>
+<U69F5> \x8F\xC4\xF0 |0 # <CJK>
+<U69FE> \x8F\xC4\xF1 |0 # <CJK>
+<U6A00> \x8F\xC4\xF2 |0 # <CJK>
+<U6A01> \x8F\xC4\xF3 |0 # <CJK>
+<U6A03> \x8F\xC4\xF4 |0 # <CJK>
+<U6A0F> \x8F\xC4\xF5 |0 # <CJK>
+<U6A11> \x8F\xC4\xF6 |0 # <CJK>
+<U6A15> \x8F\xC4\xF7 |0 # <CJK>
+<U6A1A> \x8F\xC4\xF8 |0 # <CJK>
+<U6A1D> \x8F\xC4\xF9 |0 # <CJK>
+<U6A20> \x8F\xC4\xFA |0 # <CJK>
+<U6A24> \x8F\xC4\xFB |0 # <CJK>
+<U6A28> \x8F\xC4\xFC |0 # <CJK>
+<U6A30> \x8F\xC4\xFD |0 # <CJK>
+<U6A32> \x8F\xC4\xFE |0 # <CJK>
+<U6A34> \x8F\xC5\xA1 |0 # <CJK>
+<U6A37> \x8F\xC5\xA2 |0 # <CJK>
+<U6A3B> \x8F\xC5\xA3 |0 # <CJK>
+<U6A3E> \x8F\xC5\xA4 |0 # <CJK>
+<U6A3F> \x8F\xC5\xA5 |0 # <CJK>
+<U6A45> \x8F\xC5\xA6 |0 # <CJK>
+<U6A46> \x8F\xC5\xA7 |0 # <CJK>
+<U6A49> \x8F\xC5\xA8 |0 # <CJK>
+<U6A4A> \x8F\xC5\xA9 |0 # <CJK>
+<U6A4E> \x8F\xC5\xAA |0 # <CJK>
+<U6A50> \x8F\xC5\xAB |0 # <CJK>
+<U6A51> \x8F\xC5\xAC |0 # <CJK>
+<U6A52> \x8F\xC5\xAD |0 # <CJK>
+<U6A55> \x8F\xC5\xAE |0 # <CJK>
+<U6A56> \x8F\xC5\xAF |0 # <CJK>
+<U6A5B> \x8F\xC5\xB0 |0 # <CJK>
+<U6A64> \x8F\xC5\xB1 |0 # <CJK>
+<U6A67> \x8F\xC5\xB2 |0 # <CJK>
+<U6A6A> \x8F\xC5\xB3 |0 # <CJK>
+<U6A71> \x8F\xC5\xB4 |0 # <CJK>
+<U6A73> \x8F\xC5\xB5 |0 # <CJK>
+<U6A7E> \x8F\xC5\xB6 |0 # <CJK>
+<U6A81> \x8F\xC5\xB7 |0 # <CJK>
+<U6A83> \x8F\xC5\xB8 |0 # <CJK>
+<U6A86> \x8F\xC5\xB9 |0 # <CJK>
+<U6A87> \x8F\xC5\xBA |0 # <CJK>
+<U6A89> \x8F\xC5\xBB |0 # <CJK>
+<U6A8B> \x8F\xC5\xBC |0 # <CJK>
+<U6A91> \x8F\xC5\xBD |0 # <CJK>
+<U6A9B> \x8F\xC5\xBE |0 # <CJK>
+<U6A9D> \x8F\xC5\xBF |0 # <CJK>
+<U6A9E> \x8F\xC5\xC0 |0 # <CJK>
+<U6A9F> \x8F\xC5\xC1 |0 # <CJK>
+<U6AA5> \x8F\xC5\xC2 |0 # <CJK>
+<U6AAB> \x8F\xC5\xC3 |0 # <CJK>
+<U6AAF> \x8F\xC5\xC4 |0 # <CJK>
+<U6AB0> \x8F\xC5\xC5 |0 # <CJK>
+<U6AB1> \x8F\xC5\xC6 |0 # <CJK>
+<U6AB4> \x8F\xC5\xC7 |0 # <CJK>
+<U6ABD> \x8F\xC5\xC8 |0 # <CJK>
+<U6ABE> \x8F\xC5\xC9 |0 # <CJK>
+<U6ABF> \x8F\xC5\xCA |0 # <CJK>
+<U6AC6> \x8F\xC5\xCB |0 # <CJK>
+<U6AC9> \x8F\xC5\xCC |0 # <CJK>
+<U6AC8> \x8F\xC5\xCD |0 # <CJK>
+<U6ACC> \x8F\xC5\xCE |0 # <CJK>
+<U6AD0> \x8F\xC5\xCF |0 # <CJK>
+<U6AD4> \x8F\xC5\xD0 |0 # <CJK>
+<U6AD5> \x8F\xC5\xD1 |0 # <CJK>
+<U6AD6> \x8F\xC5\xD2 |0 # <CJK>
+<U6ADC> \x8F\xC5\xD3 |0 # <CJK>
+<U6ADD> \x8F\xC5\xD4 |0 # <CJK>
+<U6AE4> \x8F\xC5\xD5 |0 # <CJK>
+<U6AE7> \x8F\xC5\xD6 |0 # <CJK>
+<U6AEC> \x8F\xC5\xD7 |0 # <CJK>
+<U6AF0> \x8F\xC5\xD8 |0 # <CJK>
+<U6AF1> \x8F\xC5\xD9 |0 # <CJK>
+<U6AF2> \x8F\xC5\xDA |0 # <CJK>
+<U6AFC> \x8F\xC5\xDB |0 # <CJK>
+<U6AFD> \x8F\xC5\xDC |0 # <CJK>
+<U6B02> \x8F\xC5\xDD |0 # <CJK>
+<U6B03> \x8F\xC5\xDE |0 # <CJK>
+<U6B06> \x8F\xC5\xDF |0 # <CJK>
+<U6B07> \x8F\xC5\xE0 |0 # <CJK>
+<U6B09> \x8F\xC5\xE1 |0 # <CJK>
+<U6B0F> \x8F\xC5\xE2 |0 # <CJK>
+<U6B10> \x8F\xC5\xE3 |0 # <CJK>
+<U6B11> \x8F\xC5\xE4 |0 # <CJK>
+<U6B17> \x8F\xC5\xE5 |0 # <CJK>
+<U6B1B> \x8F\xC5\xE6 |0 # <CJK>
+<U6B1E> \x8F\xC5\xE7 |0 # <CJK>
+<U6B24> \x8F\xC5\xE8 |0 # <CJK>
+<U6B28> \x8F\xC5\xE9 |0 # <CJK>
+<U6B2B> \x8F\xC5\xEA |0 # <CJK>
+<U6B2C> \x8F\xC5\xEB |0 # <CJK>
+<U6B2F> \x8F\xC5\xEC |0 # <CJK>
+<U6B35> \x8F\xC5\xED |0 # <CJK>
+<U6B36> \x8F\xC5\xEE |0 # <CJK>
+<U6B3B> \x8F\xC5\xEF |0 # <CJK>
+<U6B3F> \x8F\xC5\xF0 |0 # <CJK>
+<U6B46> \x8F\xC5\xF1 |0 # <CJK>
+<U6B4A> \x8F\xC5\xF2 |0 # <CJK>
+<U6B4D> \x8F\xC5\xF3 |0 # <CJK>
+<U6B52> \x8F\xC5\xF4 |0 # <CJK>
+<U6B56> \x8F\xC5\xF5 |0 # <CJK>
+<U6B58> \x8F\xC5\xF6 |0 # <CJK>
+<U6B5D> \x8F\xC5\xF7 |0 # <CJK>
+<U6B60> \x8F\xC5\xF8 |0 # <CJK>
+<U6B67> \x8F\xC5\xF9 |0 # <CJK>
+<U6B6B> \x8F\xC5\xFA |0 # <CJK>
+<U6B6E> \x8F\xC5\xFB |0 # <CJK>
+<U6B70> \x8F\xC5\xFC |0 # <CJK>
+<U6B75> \x8F\xC5\xFD |0 # <CJK>
+<U6B7D> \x8F\xC5\xFE |0 # <CJK>
+<U6B7E> \x8F\xC6\xA1 |0 # <CJK>
+<U6B82> \x8F\xC6\xA2 |0 # <CJK>
+<U6B85> \x8F\xC6\xA3 |0 # <CJK>
+<U6B97> \x8F\xC6\xA4 |0 # <CJK>
+<U6B9B> \x8F\xC6\xA5 |0 # <CJK>
+<U6B9F> \x8F\xC6\xA6 |0 # <CJK>
+<U6BA0> \x8F\xC6\xA7 |0 # <CJK>
+<U6BA2> \x8F\xC6\xA8 |0 # <CJK>
+<U6BA3> \x8F\xC6\xA9 |0 # <CJK>
+<U6BA8> \x8F\xC6\xAA |0 # <CJK>
+<U6BA9> \x8F\xC6\xAB |0 # <CJK>
+<U6BAC> \x8F\xC6\xAC |0 # <CJK>
+<U6BAD> \x8F\xC6\xAD |0 # <CJK>
+<U6BAE> \x8F\xC6\xAE |0 # <CJK>
+<U6BB0> \x8F\xC6\xAF |0 # <CJK>
+<U6BB8> \x8F\xC6\xB0 |0 # <CJK>
+<U6BB9> \x8F\xC6\xB1 |0 # <CJK>
+<U6BBD> \x8F\xC6\xB2 |0 # <CJK>
+<U6BBE> \x8F\xC6\xB3 |0 # <CJK>
+<U6BC3> \x8F\xC6\xB4 |0 # <CJK>
+<U6BC4> \x8F\xC6\xB5 |0 # <CJK>
+<U6BC9> \x8F\xC6\xB6 |0 # <CJK>
+<U6BCC> \x8F\xC6\xB7 |0 # <CJK>
+<U6BD6> \x8F\xC6\xB8 |0 # <CJK>
+<U6BDA> \x8F\xC6\xB9 |0 # <CJK>
+<U6BE1> \x8F\xC6\xBA |0 # <CJK>
+<U6BE3> \x8F\xC6\xBB |0 # <CJK>
+<U6BE6> \x8F\xC6\xBC |0 # <CJK>
+<U6BE7> \x8F\xC6\xBD |0 # <CJK>
+<U6BEE> \x8F\xC6\xBE |0 # <CJK>
+<U6BF1> \x8F\xC6\xBF |0 # <CJK>
+<U6BF7> \x8F\xC6\xC0 |0 # <CJK>
+<U6BF9> \x8F\xC6\xC1 |0 # <CJK>
+<U6BFF> \x8F\xC6\xC2 |0 # <CJK>
+<U6C02> \x8F\xC6\xC3 |0 # <CJK>
+<U6C04> \x8F\xC6\xC4 |0 # <CJK>
+<U6C05> \x8F\xC6\xC5 |0 # <CJK>
+<U6C09> \x8F\xC6\xC6 |0 # <CJK>
+<U6C0D> \x8F\xC6\xC7 |0 # <CJK>
+<U6C0E> \x8F\xC6\xC8 |0 # <CJK>
+<U6C10> \x8F\xC6\xC9 |0 # <CJK>
+<U6C12> \x8F\xC6\xCA |0 # <CJK>
+<U6C19> \x8F\xC6\xCB |0 # <CJK>
+<U6C1F> \x8F\xC6\xCC |0 # <CJK>
+<U6C26> \x8F\xC6\xCD |0 # <CJK>
+<U6C27> \x8F\xC6\xCE |0 # <CJK>
+<U6C28> \x8F\xC6\xCF |0 # <CJK>
+<U6C2C> \x8F\xC6\xD0 |0 # <CJK>
+<U6C2E> \x8F\xC6\xD1 |0 # <CJK>
+<U6C33> \x8F\xC6\xD2 |0 # <CJK>
+<U6C35> \x8F\xC6\xD3 |0 # <CJK>
+<U6C36> \x8F\xC6\xD4 |0 # <CJK>
+<U6C3A> \x8F\xC6\xD5 |0 # <CJK>
+<U6C3B> \x8F\xC6\xD6 |0 # <CJK>
+<U6C3F> \x8F\xC6\xD7 |0 # <CJK>
+<U6C4A> \x8F\xC6\xD8 |0 # <CJK>
+<U6C4B> \x8F\xC6\xD9 |0 # <CJK>
+<U6C4D> \x8F\xC6\xDA |0 # <CJK>
+<U6C4F> \x8F\xC6\xDB |0 # <CJK>
+<U6C52> \x8F\xC6\xDC |0 # <CJK>
+<U6C54> \x8F\xC6\xDD |0 # <CJK>
+<U6C59> \x8F\xC6\xDE |0 # <CJK>
+<U6C5B> \x8F\xC6\xDF |0 # <CJK>
+<U6C5C> \x8F\xC6\xE0 |0 # <CJK>
+<U6C6B> \x8F\xC6\xE1 |0 # <CJK>
+<U6C6D> \x8F\xC6\xE2 |0 # <CJK>
+<U6C6F> \x8F\xC6\xE3 |0 # <CJK>
+<U6C74> \x8F\xC6\xE4 |0 # <CJK>
+<U6C76> \x8F\xC6\xE5 |0 # <CJK>
+<U6C78> \x8F\xC6\xE6 |0 # <CJK>
+<U6C79> \x8F\xC6\xE7 |0 # <CJK>
+<U6C7B> \x8F\xC6\xE8 |0 # <CJK>
+<U6C85> \x8F\xC6\xE9 |0 # <CJK>
+<U6C86> \x8F\xC6\xEA |0 # <CJK>
+<U6C87> \x8F\xC6\xEB |0 # <CJK>
+<U6C89> \x8F\xC6\xEC |0 # <CJK>
+<U6C94> \x8F\xC6\xED |0 # <CJK>
+<U6C95> \x8F\xC6\xEE |0 # <CJK>
+<U6C97> \x8F\xC6\xEF |0 # <CJK>
+<U6C98> \x8F\xC6\xF0 |0 # <CJK>
+<U6C9C> \x8F\xC6\xF1 |0 # <CJK>
+<U6C9F> \x8F\xC6\xF2 |0 # <CJK>
+<U6CB0> \x8F\xC6\xF3 |0 # <CJK>
+<U6CB2> \x8F\xC6\xF4 |0 # <CJK>
+<U6CB4> \x8F\xC6\xF5 |0 # <CJK>
+<U6CC2> \x8F\xC6\xF6 |0 # <CJK>
+<U6CC6> \x8F\xC6\xF7 |0 # <CJK>
+<U6CCD> \x8F\xC6\xF8 |0 # <CJK>
+<U6CCF> \x8F\xC6\xF9 |0 # <CJK>
+<U6CD0> \x8F\xC6\xFA |0 # <CJK>
+<U6CD1> \x8F\xC6\xFB |0 # <CJK>
+<U6CD2> \x8F\xC6\xFC |0 # <CJK>
+<U6CD4> \x8F\xC6\xFD |0 # <CJK>
+<U6CD6> \x8F\xC6\xFE |0 # <CJK>
+<U6CDA> \x8F\xC7\xA1 |0 # <CJK>
+<U6CDC> \x8F\xC7\xA2 |0 # <CJK>
+<U6CE0> \x8F\xC7\xA3 |0 # <CJK>
+<U6CE7> \x8F\xC7\xA4 |0 # <CJK>
+<U6CE9> \x8F\xC7\xA5 |0 # <CJK>
+<U6CEB> \x8F\xC7\xA6 |0 # <CJK>
+<U6CEC> \x8F\xC7\xA7 |0 # <CJK>
+<U6CEE> \x8F\xC7\xA8 |0 # <CJK>
+<U6CF2> \x8F\xC7\xA9 |0 # <CJK>
+<U6CF4> \x8F\xC7\xAA |0 # <CJK>
+<U6D04> \x8F\xC7\xAB |0 # <CJK>
+<U6D07> \x8F\xC7\xAC |0 # <CJK>
+<U6D0A> \x8F\xC7\xAD |0 # <CJK>
+<U6D0E> \x8F\xC7\xAE |0 # <CJK>
+<U6D0F> \x8F\xC7\xAF |0 # <CJK>
+<U6D11> \x8F\xC7\xB0 |0 # <CJK>
+<U6D13> \x8F\xC7\xB1 |0 # <CJK>
+<U6D1A> \x8F\xC7\xB2 |0 # <CJK>
+<U6D26> \x8F\xC7\xB3 |0 # <CJK>
+<U6D27> \x8F\xC7\xB4 |0 # <CJK>
+<U6D28> \x8F\xC7\xB5 |0 # <CJK>
+<U6C67> \x8F\xC7\xB6 |0 # <CJK>
+<U6D2E> \x8F\xC7\xB7 |0 # <CJK>
+<U6D2F> \x8F\xC7\xB8 |0 # <CJK>
+<U6D31> \x8F\xC7\xB9 |0 # <CJK>
+<U6D39> \x8F\xC7\xBA |0 # <CJK>
+<U6D3C> \x8F\xC7\xBB |0 # <CJK>
+<U6D3F> \x8F\xC7\xBC |0 # <CJK>
+<U6D57> \x8F\xC7\xBD |0 # <CJK>
+<U6D5E> \x8F\xC7\xBE |0 # <CJK>
+<U6D5F> \x8F\xC7\xBF |0 # <CJK>
+<U6D61> \x8F\xC7\xC0 |0 # <CJK>
+<U6D65> \x8F\xC7\xC1 |0 # <CJK>
+<U6D67> \x8F\xC7\xC2 |0 # <CJK>
+<U6D6F> \x8F\xC7\xC3 |0 # <CJK>
+<U6D70> \x8F\xC7\xC4 |0 # <CJK>
+<U6D7C> \x8F\xC7\xC5 |0 # <CJK>
+<U6D82> \x8F\xC7\xC6 |0 # <CJK>
+<U6D87> \x8F\xC7\xC7 |0 # <CJK>
+<U6D91> \x8F\xC7\xC8 |0 # <CJK>
+<U6D92> \x8F\xC7\xC9 |0 # <CJK>
+<U6D94> \x8F\xC7\xCA |0 # <CJK>
+<U6D96> \x8F\xC7\xCB |0 # <CJK>
+<U6D97> \x8F\xC7\xCC |0 # <CJK>
+<U6D98> \x8F\xC7\xCD |0 # <CJK>
+<U6DAA> \x8F\xC7\xCE |0 # <CJK>
+<U6DAC> \x8F\xC7\xCF |0 # <CJK>
+<U6DB4> \x8F\xC7\xD0 |0 # <CJK>
+<U6DB7> \x8F\xC7\xD1 |0 # <CJK>
+<U6DB9> \x8F\xC7\xD2 |0 # <CJK>
+<U6DBD> \x8F\xC7\xD3 |0 # <CJK>
+<U6DBF> \x8F\xC7\xD4 |0 # <CJK>
+<U6DC4> \x8F\xC7\xD5 |0 # <CJK>
+<U6DC8> \x8F\xC7\xD6 |0 # <CJK>
+<U6DCA> \x8F\xC7\xD7 |0 # <CJK>
+<U6DCE> \x8F\xC7\xD8 |0 # <CJK>
+<U6DCF> \x8F\xC7\xD9 |0 # <CJK>
+<U6DD6> \x8F\xC7\xDA |0 # <CJK>
+<U6DDB> \x8F\xC7\xDB |0 # <CJK>
+<U6DDD> \x8F\xC7\xDC |0 # <CJK>
+<U6DDF> \x8F\xC7\xDD |0 # <CJK>
+<U6DE0> \x8F\xC7\xDE |0 # <CJK>
+<U6DE2> \x8F\xC7\xDF |0 # <CJK>
+<U6DE5> \x8F\xC7\xE0 |0 # <CJK>
+<U6DE9> \x8F\xC7\xE1 |0 # <CJK>
+<U6DEF> \x8F\xC7\xE2 |0 # <CJK>
+<U6DF0> \x8F\xC7\xE3 |0 # <CJK>
+<U6DF4> \x8F\xC7\xE4 |0 # <CJK>
+<U6DF6> \x8F\xC7\xE5 |0 # <CJK>
+<U6DFC> \x8F\xC7\xE6 |0 # <CJK>
+<U6E00> \x8F\xC7\xE7 |0 # <CJK>
+<U6E04> \x8F\xC7\xE8 |0 # <CJK>
+<U6E1E> \x8F\xC7\xE9 |0 # <CJK>
+<U6E22> \x8F\xC7\xEA |0 # <CJK>
+<U6E27> \x8F\xC7\xEB |0 # <CJK>
+<U6E32> \x8F\xC7\xEC |0 # <CJK>
+<U6E36> \x8F\xC7\xED |0 # <CJK>
+<U6E39> \x8F\xC7\xEE |0 # <CJK>
+<U6E3B> \x8F\xC7\xEF |0 # <CJK>
+<U6E3C> \x8F\xC7\xF0 |0 # <CJK>
+<U6E44> \x8F\xC7\xF1 |0 # <CJK>
+<U6E45> \x8F\xC7\xF2 |0 # <CJK>
+<U6E48> \x8F\xC7\xF3 |0 # <CJK>
+<U6E49> \x8F\xC7\xF4 |0 # <CJK>
+<U6E4B> \x8F\xC7\xF5 |0 # <CJK>
+<U6E4F> \x8F\xC7\xF6 |0 # <CJK>
+<U6E51> \x8F\xC7\xF7 |0 # <CJK>
+<U6E52> \x8F\xC7\xF8 |0 # <CJK>
+<U6E53> \x8F\xC7\xF9 |0 # <CJK>
+<U6E54> \x8F\xC7\xFA |0 # <CJK>
+<U6E57> \x8F\xC7\xFB |0 # <CJK>
+<U6E5C> \x8F\xC7\xFC |0 # <CJK>
+<U6E5D> \x8F\xC7\xFD |0 # <CJK>
+<U6E5E> \x8F\xC7\xFE |0 # <CJK>
+<U6E62> \x8F\xC8\xA1 |0 # <CJK>
+<U6E63> \x8F\xC8\xA2 |0 # <CJK>
+<U6E68> \x8F\xC8\xA3 |0 # <CJK>
+<U6E73> \x8F\xC8\xA4 |0 # <CJK>
+<U6E7B> \x8F\xC8\xA5 |0 # <CJK>
+<U6E7D> \x8F\xC8\xA6 |0 # <CJK>
+<U6E8D> \x8F\xC8\xA7 |0 # <CJK>
+<U6E93> \x8F\xC8\xA8 |0 # <CJK>
+<U6E99> \x8F\xC8\xA9 |0 # <CJK>
+<U6EA0> \x8F\xC8\xAA |0 # <CJK>
+<U6EA7> \x8F\xC8\xAB |0 # <CJK>
+<U6EAD> \x8F\xC8\xAC |0 # <CJK>
+<U6EAE> \x8F\xC8\xAD |0 # <CJK>
+<U6EB1> \x8F\xC8\xAE |0 # <CJK>
+<U6EB3> \x8F\xC8\xAF |0 # <CJK>
+<U6EBB> \x8F\xC8\xB0 |0 # <CJK>
+<U6EBF> \x8F\xC8\xB1 |0 # <CJK>
+<U6EC0> \x8F\xC8\xB2 |0 # <CJK>
+<U6EC1> \x8F\xC8\xB3 |0 # <CJK>
+<U6EC3> \x8F\xC8\xB4 |0 # <CJK>
+<U6EC7> \x8F\xC8\xB5 |0 # <CJK>
+<U6EC8> \x8F\xC8\xB6 |0 # <CJK>
+<U6ECA> \x8F\xC8\xB7 |0 # <CJK>
+<U6ECD> \x8F\xC8\xB8 |0 # <CJK>
+<U6ECE> \x8F\xC8\xB9 |0 # <CJK>
+<U6ECF> \x8F\xC8\xBA |0 # <CJK>
+<U6EEB> \x8F\xC8\xBB |0 # <CJK>
+<U6EED> \x8F\xC8\xBC |0 # <CJK>
+<U6EEE> \x8F\xC8\xBD |0 # <CJK>
+<U6EF9> \x8F\xC8\xBE |0 # <CJK>
+<U6EFB> \x8F\xC8\xBF |0 # <CJK>
+<U6EFD> \x8F\xC8\xC0 |0 # <CJK>
+<U6F04> \x8F\xC8\xC1 |0 # <CJK>
+<U6F08> \x8F\xC8\xC2 |0 # <CJK>
+<U6F0A> \x8F\xC8\xC3 |0 # <CJK>
+<U6F0C> \x8F\xC8\xC4 |0 # <CJK>
+<U6F0D> \x8F\xC8\xC5 |0 # <CJK>
+<U6F16> \x8F\xC8\xC6 |0 # <CJK>
+<U6F18> \x8F\xC8\xC7 |0 # <CJK>
+<U6F1A> \x8F\xC8\xC8 |0 # <CJK>
+<U6F1B> \x8F\xC8\xC9 |0 # <CJK>
+<U6F26> \x8F\xC8\xCA |0 # <CJK>
+<U6F29> \x8F\xC8\xCB |0 # <CJK>
+<U6F2A> \x8F\xC8\xCC |0 # <CJK>
+<U6F2F> \x8F\xC8\xCD |0 # <CJK>
+<U6F30> \x8F\xC8\xCE |0 # <CJK>
+<U6F33> \x8F\xC8\xCF |0 # <CJK>
+<U6F36> \x8F\xC8\xD0 |0 # <CJK>
+<U6F3B> \x8F\xC8\xD1 |0 # <CJK>
+<U6F3C> \x8F\xC8\xD2 |0 # <CJK>
+<U6F2D> \x8F\xC8\xD3 |0 # <CJK>
+<U6F4F> \x8F\xC8\xD4 |0 # <CJK>
+<U6F51> \x8F\xC8\xD5 |0 # <CJK>
+<U6F52> \x8F\xC8\xD6 |0 # <CJK>
+<U6F53> \x8F\xC8\xD7 |0 # <CJK>
+<U6F57> \x8F\xC8\xD8 |0 # <CJK>
+<U6F59> \x8F\xC8\xD9 |0 # <CJK>
+<U6F5A> \x8F\xC8\xDA |0 # <CJK>
+<U6F5D> \x8F\xC8\xDB |0 # <CJK>
+<U6F5E> \x8F\xC8\xDC |0 # <CJK>
+<U6F61> \x8F\xC8\xDD |0 # <CJK>
+<U6F62> \x8F\xC8\xDE |0 # <CJK>
+<U6F68> \x8F\xC8\xDF |0 # <CJK>
+<U6F6C> \x8F\xC8\xE0 |0 # <CJK>
+<U6F7D> \x8F\xC8\xE1 |0 # <CJK>
+<U6F7E> \x8F\xC8\xE2 |0 # <CJK>
+<U6F83> \x8F\xC8\xE3 |0 # <CJK>
+<U6F87> \x8F\xC8\xE4 |0 # <CJK>
+<U6F88> \x8F\xC8\xE5 |0 # <CJK>
+<U6F8B> \x8F\xC8\xE6 |0 # <CJK>
+<U6F8C> \x8F\xC8\xE7 |0 # <CJK>
+<U6F8D> \x8F\xC8\xE8 |0 # <CJK>
+<U6F90> \x8F\xC8\xE9 |0 # <CJK>
+<U6F92> \x8F\xC8\xEA |0 # <CJK>
+<U6F93> \x8F\xC8\xEB |0 # <CJK>
+<U6F94> \x8F\xC8\xEC |0 # <CJK>
+<U6F96> \x8F\xC8\xED |0 # <CJK>
+<U6F9A> \x8F\xC8\xEE |0 # <CJK>
+<U6F9F> \x8F\xC8\xEF |0 # <CJK>
+<U6FA0> \x8F\xC8\xF0 |0 # <CJK>
+<U6FA5> \x8F\xC8\xF1 |0 # <CJK>
+<U6FA6> \x8F\xC8\xF2 |0 # <CJK>
+<U6FA7> \x8F\xC8\xF3 |0 # <CJK>
+<U6FA8> \x8F\xC8\xF4 |0 # <CJK>
+<U6FAE> \x8F\xC8\xF5 |0 # <CJK>
+<U6FAF> \x8F\xC8\xF6 |0 # <CJK>
+<U6FB0> \x8F\xC8\xF7 |0 # <CJK>
+<U6FB5> \x8F\xC8\xF8 |0 # <CJK>
+<U6FB6> \x8F\xC8\xF9 |0 # <CJK>
+<U6FBC> \x8F\xC8\xFA |0 # <CJK>
+<U6FC5> \x8F\xC8\xFB |0 # <CJK>
+<U6FC7> \x8F\xC8\xFC |0 # <CJK>
+<U6FC8> \x8F\xC8\xFD |0 # <CJK>
+<U6FCA> \x8F\xC8\xFE |0 # <CJK>
+<U6FDA> \x8F\xC9\xA1 |0 # <CJK>
+<U6FDE> \x8F\xC9\xA2 |0 # <CJK>
+<U6FE8> \x8F\xC9\xA3 |0 # <CJK>
+<U6FE9> \x8F\xC9\xA4 |0 # <CJK>
+<U6FF0> \x8F\xC9\xA5 |0 # <CJK>
+<U6FF5> \x8F\xC9\xA6 |0 # <CJK>
+<U6FF9> \x8F\xC9\xA7 |0 # <CJK>
+<U6FFC> \x8F\xC9\xA8 |0 # <CJK>
+<U6FFD> \x8F\xC9\xA9 |0 # <CJK>
+<U7000> \x8F\xC9\xAA |0 # <CJK>
+<U7005> \x8F\xC9\xAB |0 # <CJK>
+<U7006> \x8F\xC9\xAC |0 # <CJK>
+<U7007> \x8F\xC9\xAD |0 # <CJK>
+<U700D> \x8F\xC9\xAE |0 # <CJK>
+<U7017> \x8F\xC9\xAF |0 # <CJK>
+<U7020> \x8F\xC9\xB0 |0 # <CJK>
+<U7023> \x8F\xC9\xB1 |0 # <CJK>
+<U702F> \x8F\xC9\xB2 |0 # <CJK>
+<U7034> \x8F\xC9\xB3 |0 # <CJK>
+<U7037> \x8F\xC9\xB4 |0 # <CJK>
+<U7039> \x8F\xC9\xB5 |0 # <CJK>
+<U703C> \x8F\xC9\xB6 |0 # <CJK>
+<U7043> \x8F\xC9\xB7 |0 # <CJK>
+<U7044> \x8F\xC9\xB8 |0 # <CJK>
+<U7048> \x8F\xC9\xB9 |0 # <CJK>
+<U7049> \x8F\xC9\xBA |0 # <CJK>
+<U704A> \x8F\xC9\xBB |0 # <CJK>
+<U704B> \x8F\xC9\xBC |0 # <CJK>
+<U7054> \x8F\xC9\xBD |0 # <CJK>
+<U7055> \x8F\xC9\xBE |0 # <CJK>
+<U705D> \x8F\xC9\xBF |0 # <CJK>
+<U705E> \x8F\xC9\xC0 |0 # <CJK>
+<U704E> \x8F\xC9\xC1 |0 # <CJK>
+<U7064> \x8F\xC9\xC2 |0 # <CJK>
+<U7065> \x8F\xC9\xC3 |0 # <CJK>
+<U706C> \x8F\xC9\xC4 |0 # <CJK>
+<U706E> \x8F\xC9\xC5 |0 # <CJK>
+<U7075> \x8F\xC9\xC6 |0 # <CJK>
+<U7076> \x8F\xC9\xC7 |0 # <CJK>
+<U707E> \x8F\xC9\xC8 |0 # <CJK>
+<U7081> \x8F\xC9\xC9 |0 # <CJK>
+<U7085> \x8F\xC9\xCA |0 # <CJK>
+<U7086> \x8F\xC9\xCB |0 # <CJK>
+<U7094> \x8F\xC9\xCC |0 # <CJK>
+<U7095> \x8F\xC9\xCD |0 # <CJK>
+<U7096> \x8F\xC9\xCE |0 # <CJK>
+<U7097> \x8F\xC9\xCF |0 # <CJK>
+<U7098> \x8F\xC9\xD0 |0 # <CJK>
+<U709B> \x8F\xC9\xD1 |0 # <CJK>
+<U70A4> \x8F\xC9\xD2 |0 # <CJK>
+<U70AB> \x8F\xC9\xD3 |0 # <CJK>
+<U70B0> \x8F\xC9\xD4 |0 # <CJK>
+<U70B1> \x8F\xC9\xD5 |0 # <CJK>
+<U70B4> \x8F\xC9\xD6 |0 # <CJK>
+<U70B7> \x8F\xC9\xD7 |0 # <CJK>
+<U70CA> \x8F\xC9\xD8 |0 # <CJK>
+<U70D1> \x8F\xC9\xD9 |0 # <CJK>
+<U70D3> \x8F\xC9\xDA |0 # <CJK>
+<U70D4> \x8F\xC9\xDB |0 # <CJK>
+<U70D5> \x8F\xC9\xDC |0 # <CJK>
+<U70D6> \x8F\xC9\xDD |0 # <CJK>
+<U70D8> \x8F\xC9\xDE |0 # <CJK>
+<U70DC> \x8F\xC9\xDF |0 # <CJK>
+<U70E4> \x8F\xC9\xE0 |0 # <CJK>
+<U70FA> \x8F\xC9\xE1 |0 # <CJK>
+<U7103> \x8F\xC9\xE2 |0 # <CJK>
+<U7104> \x8F\xC9\xE3 |0 # <CJK>
+<U7105> \x8F\xC9\xE4 |0 # <CJK>
+<U7106> \x8F\xC9\xE5 |0 # <CJK>
+<U7107> \x8F\xC9\xE6 |0 # <CJK>
+<U710B> \x8F\xC9\xE7 |0 # <CJK>
+<U710C> \x8F\xC9\xE8 |0 # <CJK>
+<U710F> \x8F\xC9\xE9 |0 # <CJK>
+<U711E> \x8F\xC9\xEA |0 # <CJK>
+<U7120> \x8F\xC9\xEB |0 # <CJK>
+<U712B> \x8F\xC9\xEC |0 # <CJK>
+<U712D> \x8F\xC9\xED |0 # <CJK>
+<U712F> \x8F\xC9\xEE |0 # <CJK>
+<U7130> \x8F\xC9\xEF |0 # <CJK>
+<U7131> \x8F\xC9\xF0 |0 # <CJK>
+<U7138> \x8F\xC9\xF1 |0 # <CJK>
+<U7141> \x8F\xC9\xF2 |0 # <CJK>
+<U7145> \x8F\xC9\xF3 |0 # <CJK>
+<U7146> \x8F\xC9\xF4 |0 # <CJK>
+<U7147> \x8F\xC9\xF5 |0 # <CJK>
+<U714A> \x8F\xC9\xF6 |0 # <CJK>
+<U714B> \x8F\xC9\xF7 |0 # <CJK>
+<U7150> \x8F\xC9\xF8 |0 # <CJK>
+<U7152> \x8F\xC9\xF9 |0 # <CJK>
+<U7157> \x8F\xC9\xFA |0 # <CJK>
+<U715A> \x8F\xC9\xFB |0 # <CJK>
+<U715C> \x8F\xC9\xFC |0 # <CJK>
+<U715E> \x8F\xC9\xFD |0 # <CJK>
+<U7160> \x8F\xC9\xFE |0 # <CJK>
+<U7168> \x8F\xCA\xA1 |0 # <CJK>
+<U7179> \x8F\xCA\xA2 |0 # <CJK>
+<U7180> \x8F\xCA\xA3 |0 # <CJK>
+<U7185> \x8F\xCA\xA4 |0 # <CJK>
+<U7187> \x8F\xCA\xA5 |0 # <CJK>
+<U718C> \x8F\xCA\xA6 |0 # <CJK>
+<U7192> \x8F\xCA\xA7 |0 # <CJK>
+<U719A> \x8F\xCA\xA8 |0 # <CJK>
+<U719B> \x8F\xCA\xA9 |0 # <CJK>
+<U71A0> \x8F\xCA\xAA |0 # <CJK>
+<U71A2> \x8F\xCA\xAB |0 # <CJK>
+<U71AF> \x8F\xCA\xAC |0 # <CJK>
+<U71B0> \x8F\xCA\xAD |0 # <CJK>
+<U71B2> \x8F\xCA\xAE |0 # <CJK>
+<U71B3> \x8F\xCA\xAF |0 # <CJK>
+<U71BA> \x8F\xCA\xB0 |0 # <CJK>
+<U71BF> \x8F\xCA\xB1 |0 # <CJK>
+<U71C0> \x8F\xCA\xB2 |0 # <CJK>
+<U71C1> \x8F\xCA\xB3 |0 # <CJK>
+<U71C4> \x8F\xCA\xB4 |0 # <CJK>
+<U71CB> \x8F\xCA\xB5 |0 # <CJK>
+<U71CC> \x8F\xCA\xB6 |0 # <CJK>
+<U71D3> \x8F\xCA\xB7 |0 # <CJK>
+<U71D6> \x8F\xCA\xB8 |0 # <CJK>
+<U71D9> \x8F\xCA\xB9 |0 # <CJK>
+<U71DA> \x8F\xCA\xBA |0 # <CJK>
+<U71DC> \x8F\xCA\xBB |0 # <CJK>
+<U71F8> \x8F\xCA\xBC |0 # <CJK>
+<U71FE> \x8F\xCA\xBD |0 # <CJK>
+<U7200> \x8F\xCA\xBE |0 # <CJK>
+<U7207> \x8F\xCA\xBF |0 # <CJK>
+<U7208> \x8F\xCA\xC0 |0 # <CJK>
+<U7209> \x8F\xCA\xC1 |0 # <CJK>
+<U7213> \x8F\xCA\xC2 |0 # <CJK>
+<U7217> \x8F\xCA\xC3 |0 # <CJK>
+<U721A> \x8F\xCA\xC4 |0 # <CJK>
+<U721D> \x8F\xCA\xC5 |0 # <CJK>
+<U721F> \x8F\xCA\xC6 |0 # <CJK>
+<U7224> \x8F\xCA\xC7 |0 # <CJK>
+<U722B> \x8F\xCA\xC8 |0 # <CJK>
+<U722F> \x8F\xCA\xC9 |0 # <CJK>
+<U7234> \x8F\xCA\xCA |0 # <CJK>
+<U7238> \x8F\xCA\xCB |0 # <CJK>
+<U7239> \x8F\xCA\xCC |0 # <CJK>
+<U7241> \x8F\xCA\xCD |0 # <CJK>
+<U7242> \x8F\xCA\xCE |0 # <CJK>
+<U7243> \x8F\xCA\xCF |0 # <CJK>
+<U7245> \x8F\xCA\xD0 |0 # <CJK>
+<U724E> \x8F\xCA\xD1 |0 # <CJK>
+<U724F> \x8F\xCA\xD2 |0 # <CJK>
+<U7250> \x8F\xCA\xD3 |0 # <CJK>
+<U7253> \x8F\xCA\xD4 |0 # <CJK>
+<U7255> \x8F\xCA\xD5 |0 # <CJK>
+<U7256> \x8F\xCA\xD6 |0 # <CJK>
+<U725A> \x8F\xCA\xD7 |0 # <CJK>
+<U725C> \x8F\xCA\xD8 |0 # <CJK>
+<U725E> \x8F\xCA\xD9 |0 # <CJK>
+<U7260> \x8F\xCA\xDA |0 # <CJK>
+<U7263> \x8F\xCA\xDB |0 # <CJK>
+<U7268> \x8F\xCA\xDC |0 # <CJK>
+<U726B> \x8F\xCA\xDD |0 # <CJK>
+<U726E> \x8F\xCA\xDE |0 # <CJK>
+<U726F> \x8F\xCA\xDF |0 # <CJK>
+<U7271> \x8F\xCA\xE0 |0 # <CJK>
+<U7277> \x8F\xCA\xE1 |0 # <CJK>
+<U7278> \x8F\xCA\xE2 |0 # <CJK>
+<U727B> \x8F\xCA\xE3 |0 # <CJK>
+<U727C> \x8F\xCA\xE4 |0 # <CJK>
+<U727F> \x8F\xCA\xE5 |0 # <CJK>
+<U7284> \x8F\xCA\xE6 |0 # <CJK>
+<U7289> \x8F\xCA\xE7 |0 # <CJK>
+<U728D> \x8F\xCA\xE8 |0 # <CJK>
+<U728E> \x8F\xCA\xE9 |0 # <CJK>
+<U7293> \x8F\xCA\xEA |0 # <CJK>
+<U729B> \x8F\xCA\xEB |0 # <CJK>
+<U72A8> \x8F\xCA\xEC |0 # <CJK>
+<U72AD> \x8F\xCA\xED |0 # <CJK>
+<U72AE> \x8F\xCA\xEE |0 # <CJK>
+<U72B1> \x8F\xCA\xEF |0 # <CJK>
+<U72B4> \x8F\xCA\xF0 |0 # <CJK>
+<U72BE> \x8F\xCA\xF1 |0 # <CJK>
+<U72C1> \x8F\xCA\xF2 |0 # <CJK>
+<U72C7> \x8F\xCA\xF3 |0 # <CJK>
+<U72C9> \x8F\xCA\xF4 |0 # <CJK>
+<U72CC> \x8F\xCA\xF5 |0 # <CJK>
+<U72D5> \x8F\xCA\xF6 |0 # <CJK>
+<U72D6> \x8F\xCA\xF7 |0 # <CJK>
+<U72D8> \x8F\xCA\xF8 |0 # <CJK>
+<U72DF> \x8F\xCA\xF9 |0 # <CJK>
+<U72E5> \x8F\xCA\xFA |0 # <CJK>
+<U72F3> \x8F\xCA\xFB |0 # <CJK>
+<U72F4> \x8F\xCA\xFC |0 # <CJK>
+<U72FA> \x8F\xCA\xFD |0 # <CJK>
+<U72FB> \x8F\xCA\xFE |0 # <CJK>
+<U72FE> \x8F\xCB\xA1 |0 # <CJK>
+<U7302> \x8F\xCB\xA2 |0 # <CJK>
+<U7304> \x8F\xCB\xA3 |0 # <CJK>
+<U7305> \x8F\xCB\xA4 |0 # <CJK>
+<U7307> \x8F\xCB\xA5 |0 # <CJK>
+<U730B> \x8F\xCB\xA6 |0 # <CJK>
+<U730D> \x8F\xCB\xA7 |0 # <CJK>
+<U7312> \x8F\xCB\xA8 |0 # <CJK>
+<U7313> \x8F\xCB\xA9 |0 # <CJK>
+<U7318> \x8F\xCB\xAA |0 # <CJK>
+<U7319> \x8F\xCB\xAB |0 # <CJK>
+<U731E> \x8F\xCB\xAC |0 # <CJK>
+<U7322> \x8F\xCB\xAD |0 # <CJK>
+<U7324> \x8F\xCB\xAE |0 # <CJK>
+<U7327> \x8F\xCB\xAF |0 # <CJK>
+<U7328> \x8F\xCB\xB0 |0 # <CJK>
+<U732C> \x8F\xCB\xB1 |0 # <CJK>
+<U7331> \x8F\xCB\xB2 |0 # <CJK>
+<U7332> \x8F\xCB\xB3 |0 # <CJK>
+<U7335> \x8F\xCB\xB4 |0 # <CJK>
+<U733A> \x8F\xCB\xB5 |0 # <CJK>
+<U733B> \x8F\xCB\xB6 |0 # <CJK>
+<U733D> \x8F\xCB\xB7 |0 # <CJK>
+<U7343> \x8F\xCB\xB8 |0 # <CJK>
+<U734D> \x8F\xCB\xB9 |0 # <CJK>
+<U7350> \x8F\xCB\xBA |0 # <CJK>
+<U7352> \x8F\xCB\xBB |0 # <CJK>
+<U7356> \x8F\xCB\xBC |0 # <CJK>
+<U7358> \x8F\xCB\xBD |0 # <CJK>
+<U735D> \x8F\xCB\xBE |0 # <CJK>
+<U735E> \x8F\xCB\xBF |0 # <CJK>
+<U735F> \x8F\xCB\xC0 |0 # <CJK>
+<U7360> \x8F\xCB\xC1 |0 # <CJK>
+<U7366> \x8F\xCB\xC2 |0 # <CJK>
+<U7367> \x8F\xCB\xC3 |0 # <CJK>
+<U7369> \x8F\xCB\xC4 |0 # <CJK>
+<U736B> \x8F\xCB\xC5 |0 # <CJK>
+<U736C> \x8F\xCB\xC6 |0 # <CJK>
+<U736E> \x8F\xCB\xC7 |0 # <CJK>
+<U736F> \x8F\xCB\xC8 |0 # <CJK>
+<U7371> \x8F\xCB\xC9 |0 # <CJK>
+<U7377> \x8F\xCB\xCA |0 # <CJK>
+<U7379> \x8F\xCB\xCB |0 # <CJK>
+<U737C> \x8F\xCB\xCC |0 # <CJK>
+<U7380> \x8F\xCB\xCD |0 # <CJK>
+<U7381> \x8F\xCB\xCE |0 # <CJK>
+<U7383> \x8F\xCB\xCF |0 # <CJK>
+<U7385> \x8F\xCB\xD0 |0 # <CJK>
+<U7386> \x8F\xCB\xD1 |0 # <CJK>
+<U738E> \x8F\xCB\xD2 |0 # <CJK>
+<U7390> \x8F\xCB\xD3 |0 # <CJK>
+<U7393> \x8F\xCB\xD4 |0 # <CJK>
+<U7395> \x8F\xCB\xD5 |0 # <CJK>
+<U7397> \x8F\xCB\xD6 |0 # <CJK>
+<U7398> \x8F\xCB\xD7 |0 # <CJK>
+<U739C> \x8F\xCB\xD8 |0 # <CJK>
+<U739E> \x8F\xCB\xD9 |0 # <CJK>
+<U739F> \x8F\xCB\xDA |0 # <CJK>
+<U73A0> \x8F\xCB\xDB |0 # <CJK>
+<U73A2> \x8F\xCB\xDC |0 # <CJK>
+<U73A5> \x8F\xCB\xDD |0 # <CJK>
+<U73A6> \x8F\xCB\xDE |0 # <CJK>
+<U73AA> \x8F\xCB\xDF |0 # <CJK>
+<U73AB> \x8F\xCB\xE0 |0 # <CJK>
+<U73AD> \x8F\xCB\xE1 |0 # <CJK>
+<U73B5> \x8F\xCB\xE2 |0 # <CJK>
+<U73B7> \x8F\xCB\xE3 |0 # <CJK>
+<U73B9> \x8F\xCB\xE4 |0 # <CJK>
+<U73BC> \x8F\xCB\xE5 |0 # <CJK>
+<U73BD> \x8F\xCB\xE6 |0 # <CJK>
+<U73BF> \x8F\xCB\xE7 |0 # <CJK>
+<U73C5> \x8F\xCB\xE8 |0 # <CJK>
+<U73C6> \x8F\xCB\xE9 |0 # <CJK>
+<U73C9> \x8F\xCB\xEA |0 # <CJK>
+<U73CB> \x8F\xCB\xEB |0 # <CJK>
+<U73CC> \x8F\xCB\xEC |0 # <CJK>
+<U73CF> \x8F\xCB\xED |0 # <CJK>
+<U73D2> \x8F\xCB\xEE |0 # <CJK>
+<U73D3> \x8F\xCB\xEF |0 # <CJK>
+<U73D6> \x8F\xCB\xF0 |0 # <CJK>
+<U73D9> \x8F\xCB\xF1 |0 # <CJK>
+<U73DD> \x8F\xCB\xF2 |0 # <CJK>
+<U73E1> \x8F\xCB\xF3 |0 # <CJK>
+<U73E3> \x8F\xCB\xF4 |0 # <CJK>
+<U73E6> \x8F\xCB\xF5 |0 # <CJK>
+<U73E7> \x8F\xCB\xF6 |0 # <CJK>
+<U73E9> \x8F\xCB\xF7 |0 # <CJK>
+<U73F4> \x8F\xCB\xF8 |0 # <CJK>
+<U73F5> \x8F\xCB\xF9 |0 # <CJK>
+<U73F7> \x8F\xCB\xFA |0 # <CJK>
+<U73F9> \x8F\xCB\xFB |0 # <CJK>
+<U73FA> \x8F\xCB\xFC |0 # <CJK>
+<U73FB> \x8F\xCB\xFD |0 # <CJK>
+<U73FD> \x8F\xCB\xFE |0 # <CJK>
+<U73FF> \x8F\xCC\xA1 |0 # <CJK>
+<U7400> \x8F\xCC\xA2 |0 # <CJK>
+<U7401> \x8F\xCC\xA3 |0 # <CJK>
+<U7404> \x8F\xCC\xA4 |0 # <CJK>
+<U7407> \x8F\xCC\xA5 |0 # <CJK>
+<U740A> \x8F\xCC\xA6 |0 # <CJK>
+<U7411> \x8F\xCC\xA7 |0 # <CJK>
+<U741A> \x8F\xCC\xA8 |0 # <CJK>
+<U741B> \x8F\xCC\xA9 |0 # <CJK>
+<U7424> \x8F\xCC\xAA |0 # <CJK>
+<U7426> \x8F\xCC\xAB |0 # <CJK>
+<U7428> \x8F\xCC\xAC |0 # <CJK>
+<U7429> \x8F\xCC\xAD |0 # <CJK>
+<U742A> \x8F\xCC\xAE |0 # <CJK>
+<U742B> \x8F\xCC\xAF |0 # <CJK>
+<U742C> \x8F\xCC\xB0 |0 # <CJK>
+<U742D> \x8F\xCC\xB1 |0 # <CJK>
+<U742E> \x8F\xCC\xB2 |0 # <CJK>
+<U742F> \x8F\xCC\xB3 |0 # <CJK>
+<U7430> \x8F\xCC\xB4 |0 # <CJK>
+<U7431> \x8F\xCC\xB5 |0 # <CJK>
+<U7439> \x8F\xCC\xB6 |0 # <CJK>
+<U7440> \x8F\xCC\xB7 |0 # <CJK>
+<U7443> \x8F\xCC\xB8 |0 # <CJK>
+<U7444> \x8F\xCC\xB9 |0 # <CJK>
+<U7446> \x8F\xCC\xBA |0 # <CJK>
+<U7447> \x8F\xCC\xBB |0 # <CJK>
+<U744B> \x8F\xCC\xBC |0 # <CJK>
+<U744D> \x8F\xCC\xBD |0 # <CJK>
+<U7451> \x8F\xCC\xBE |0 # <CJK>
+<U7452> \x8F\xCC\xBF |0 # <CJK>
+<U7457> \x8F\xCC\xC0 |0 # <CJK>
+<U745D> \x8F\xCC\xC1 |0 # <CJK>
+<U7462> \x8F\xCC\xC2 |0 # <CJK>
+<U7466> \x8F\xCC\xC3 |0 # <CJK>
+<U7467> \x8F\xCC\xC4 |0 # <CJK>
+<U7468> \x8F\xCC\xC5 |0 # <CJK>
+<U746B> \x8F\xCC\xC6 |0 # <CJK>
+<U746D> \x8F\xCC\xC7 |0 # <CJK>
+<U746E> \x8F\xCC\xC8 |0 # <CJK>
+<U7471> \x8F\xCC\xC9 |0 # <CJK>
+<U7472> \x8F\xCC\xCA |0 # <CJK>
+<U7480> \x8F\xCC\xCB |0 # <CJK>
+<U7481> \x8F\xCC\xCC |0 # <CJK>
+<U7485> \x8F\xCC\xCD |0 # <CJK>
+<U7486> \x8F\xCC\xCE |0 # <CJK>
+<U7487> \x8F\xCC\xCF |0 # <CJK>
+<U7489> \x8F\xCC\xD0 |0 # <CJK>
+<U748F> \x8F\xCC\xD1 |0 # <CJK>
+<U7490> \x8F\xCC\xD2 |0 # <CJK>
+<U7491> \x8F\xCC\xD3 |0 # <CJK>
+<U7492> \x8F\xCC\xD4 |0 # <CJK>
+<U7498> \x8F\xCC\xD5 |0 # <CJK>
+<U7499> \x8F\xCC\xD6 |0 # <CJK>
+<U749A> \x8F\xCC\xD7 |0 # <CJK>
+<U749C> \x8F\xCC\xD8 |0 # <CJK>
+<U749F> \x8F\xCC\xD9 |0 # <CJK>
+<U74A0> \x8F\xCC\xDA |0 # <CJK>
+<U74A1> \x8F\xCC\xDB |0 # <CJK>
+<U74A3> \x8F\xCC\xDC |0 # <CJK>
+<U74A6> \x8F\xCC\xDD |0 # <CJK>
+<U74A8> \x8F\xCC\xDE |0 # <CJK>
+<U74A9> \x8F\xCC\xDF |0 # <CJK>
+<U74AA> \x8F\xCC\xE0 |0 # <CJK>
+<U74AB> \x8F\xCC\xE1 |0 # <CJK>
+<U74AE> \x8F\xCC\xE2 |0 # <CJK>
+<U74AF> \x8F\xCC\xE3 |0 # <CJK>
+<U74B1> \x8F\xCC\xE4 |0 # <CJK>
+<U74B2> \x8F\xCC\xE5 |0 # <CJK>
+<U74B5> \x8F\xCC\xE6 |0 # <CJK>
+<U74B9> \x8F\xCC\xE7 |0 # <CJK>
+<U74BB> \x8F\xCC\xE8 |0 # <CJK>
+<U74BF> \x8F\xCC\xE9 |0 # <CJK>
+<U74C8> \x8F\xCC\xEA |0 # <CJK>
+<U74C9> \x8F\xCC\xEB |0 # <CJK>
+<U74CC> \x8F\xCC\xEC |0 # <CJK>
+<U74D0> \x8F\xCC\xED |0 # <CJK>
+<U74D3> \x8F\xCC\xEE |0 # <CJK>
+<U74D8> \x8F\xCC\xEF |0 # <CJK>
+<U74DA> \x8F\xCC\xF0 |0 # <CJK>
+<U74DB> \x8F\xCC\xF1 |0 # <CJK>
+<U74DE> \x8F\xCC\xF2 |0 # <CJK>
+<U74DF> \x8F\xCC\xF3 |0 # <CJK>
+<U74E4> \x8F\xCC\xF4 |0 # <CJK>
+<U74E8> \x8F\xCC\xF5 |0 # <CJK>
+<U74EA> \x8F\xCC\xF6 |0 # <CJK>
+<U74EB> \x8F\xCC\xF7 |0 # <CJK>
+<U74EF> \x8F\xCC\xF8 |0 # <CJK>
+<U74F4> \x8F\xCC\xF9 |0 # <CJK>
+<U74FA> \x8F\xCC\xFA |0 # <CJK>
+<U74FB> \x8F\xCC\xFB |0 # <CJK>
+<U74FC> \x8F\xCC\xFC |0 # <CJK>
+<U74FF> \x8F\xCC\xFD |0 # <CJK>
+<U7506> \x8F\xCC\xFE |0 # <CJK>
+<U7512> \x8F\xCD\xA1 |0 # <CJK>
+<U7516> \x8F\xCD\xA2 |0 # <CJK>
+<U7517> \x8F\xCD\xA3 |0 # <CJK>
+<U7520> \x8F\xCD\xA4 |0 # <CJK>
+<U7521> \x8F\xCD\xA5 |0 # <CJK>
+<U7524> \x8F\xCD\xA6 |0 # <CJK>
+<U7527> \x8F\xCD\xA7 |0 # <CJK>
+<U7529> \x8F\xCD\xA8 |0 # <CJK>
+<U752A> \x8F\xCD\xA9 |0 # <CJK>
+<U752F> \x8F\xCD\xAA |0 # <CJK>
+<U7536> \x8F\xCD\xAB |0 # <CJK>
+<U7539> \x8F\xCD\xAC |0 # <CJK>
+<U753D> \x8F\xCD\xAD |0 # <CJK>
+<U753E> \x8F\xCD\xAE |0 # <CJK>
+<U753F> \x8F\xCD\xAF |0 # <CJK>
+<U7540> \x8F\xCD\xB0 |0 # <CJK>
+<U7543> \x8F\xCD\xB1 |0 # <CJK>
+<U7547> \x8F\xCD\xB2 |0 # <CJK>
+<U7548> \x8F\xCD\xB3 |0 # <CJK>
+<U754E> \x8F\xCD\xB4 |0 # <CJK>
+<U7550> \x8F\xCD\xB5 |0 # <CJK>
+<U7552> \x8F\xCD\xB6 |0 # <CJK>
+<U7557> \x8F\xCD\xB7 |0 # <CJK>
+<U755E> \x8F\xCD\xB8 |0 # <CJK>
+<U755F> \x8F\xCD\xB9 |0 # <CJK>
+<U7561> \x8F\xCD\xBA |0 # <CJK>
+<U756F> \x8F\xCD\xBB |0 # <CJK>
+<U7571> \x8F\xCD\xBC |0 # <CJK>
+<U7579> \x8F\xCD\xBD |0 # <CJK>
+<U757A> \x8F\xCD\xBE |0 # <CJK>
+<U757B> \x8F\xCD\xBF |0 # <CJK>
+<U757C> \x8F\xCD\xC0 |0 # <CJK>
+<U757D> \x8F\xCD\xC1 |0 # <CJK>
+<U757E> \x8F\xCD\xC2 |0 # <CJK>
+<U7581> \x8F\xCD\xC3 |0 # <CJK>
+<U7585> \x8F\xCD\xC4 |0 # <CJK>
+<U7590> \x8F\xCD\xC5 |0 # <CJK>
+<U7592> \x8F\xCD\xC6 |0 # <CJK>
+<U7593> \x8F\xCD\xC7 |0 # <CJK>
+<U7595> \x8F\xCD\xC8 |0 # <CJK>
+<U7599> \x8F\xCD\xC9 |0 # <CJK>
+<U759C> \x8F\xCD\xCA |0 # <CJK>
+<U75A2> \x8F\xCD\xCB |0 # <CJK>
+<U75A4> \x8F\xCD\xCC |0 # <CJK>
+<U75B4> \x8F\xCD\xCD |0 # <CJK>
+<U75BA> \x8F\xCD\xCE |0 # <CJK>
+<U75BF> \x8F\xCD\xCF |0 # <CJK>
+<U75C0> \x8F\xCD\xD0 |0 # <CJK>
+<U75C1> \x8F\xCD\xD1 |0 # <CJK>
+<U75C4> \x8F\xCD\xD2 |0 # <CJK>
+<U75C6> \x8F\xCD\xD3 |0 # <CJK>
+<U75CC> \x8F\xCD\xD4 |0 # <CJK>
+<U75CE> \x8F\xCD\xD5 |0 # <CJK>
+<U75CF> \x8F\xCD\xD6 |0 # <CJK>
+<U75D7> \x8F\xCD\xD7 |0 # <CJK>
+<U75DC> \x8F\xCD\xD8 |0 # <CJK>
+<U75DF> \x8F\xCD\xD9 |0 # <CJK>
+<U75E0> \x8F\xCD\xDA |0 # <CJK>
+<U75E1> \x8F\xCD\xDB |0 # <CJK>
+<U75E4> \x8F\xCD\xDC |0 # <CJK>
+<U75E7> \x8F\xCD\xDD |0 # <CJK>
+<U75EC> \x8F\xCD\xDE |0 # <CJK>
+<U75EE> \x8F\xCD\xDF |0 # <CJK>
+<U75EF> \x8F\xCD\xE0 |0 # <CJK>
+<U75F1> \x8F\xCD\xE1 |0 # <CJK>
+<U75F9> \x8F\xCD\xE2 |0 # <CJK>
+<U7600> \x8F\xCD\xE3 |0 # <CJK>
+<U7602> \x8F\xCD\xE4 |0 # <CJK>
+<U7603> \x8F\xCD\xE5 |0 # <CJK>
+<U7604> \x8F\xCD\xE6 |0 # <CJK>
+<U7607> \x8F\xCD\xE7 |0 # <CJK>
+<U7608> \x8F\xCD\xE8 |0 # <CJK>
+<U760A> \x8F\xCD\xE9 |0 # <CJK>
+<U760C> \x8F\xCD\xEA |0 # <CJK>
+<U760F> \x8F\xCD\xEB |0 # <CJK>
+<U7612> \x8F\xCD\xEC |0 # <CJK>
+<U7613> \x8F\xCD\xED |0 # <CJK>
+<U7615> \x8F\xCD\xEE |0 # <CJK>
+<U7616> \x8F\xCD\xEF |0 # <CJK>
+<U7619> \x8F\xCD\xF0 |0 # <CJK>
+<U761B> \x8F\xCD\xF1 |0 # <CJK>
+<U761C> \x8F\xCD\xF2 |0 # <CJK>
+<U761D> \x8F\xCD\xF3 |0 # <CJK>
+<U761E> \x8F\xCD\xF4 |0 # <CJK>
+<U7623> \x8F\xCD\xF5 |0 # <CJK>
+<U7625> \x8F\xCD\xF6 |0 # <CJK>
+<U7626> \x8F\xCD\xF7 |0 # <CJK>
+<U7629> \x8F\xCD\xF8 |0 # <CJK>
+<U762D> \x8F\xCD\xF9 |0 # <CJK>
+<U7632> \x8F\xCD\xFA |0 # <CJK>
+<U7633> \x8F\xCD\xFB |0 # <CJK>
+<U7635> \x8F\xCD\xFC |0 # <CJK>
+<U7638> \x8F\xCD\xFD |0 # <CJK>
+<U7639> \x8F\xCD\xFE |0 # <CJK>
+<U763A> \x8F\xCE\xA1 |0 # <CJK>
+<U763C> \x8F\xCE\xA2 |0 # <CJK>
+<U764A> \x8F\xCE\xA3 |0 # <CJK>
+<U7640> \x8F\xCE\xA4 |0 # <CJK>
+<U7641> \x8F\xCE\xA5 |0 # <CJK>
+<U7643> \x8F\xCE\xA6 |0 # <CJK>
+<U7644> \x8F\xCE\xA7 |0 # <CJK>
+<U7645> \x8F\xCE\xA8 |0 # <CJK>
+<U7649> \x8F\xCE\xA9 |0 # <CJK>
+<U764B> \x8F\xCE\xAA |0 # <CJK>
+<U7655> \x8F\xCE\xAB |0 # <CJK>
+<U7659> \x8F\xCE\xAC |0 # <CJK>
+<U765F> \x8F\xCE\xAD |0 # <CJK>
+<U7664> \x8F\xCE\xAE |0 # <CJK>
+<U7665> \x8F\xCE\xAF |0 # <CJK>
+<U766D> \x8F\xCE\xB0 |0 # <CJK>
+<U766E> \x8F\xCE\xB1 |0 # <CJK>
+<U766F> \x8F\xCE\xB2 |0 # <CJK>
+<U7671> \x8F\xCE\xB3 |0 # <CJK>
+<U7674> \x8F\xCE\xB4 |0 # <CJK>
+<U7681> \x8F\xCE\xB5 |0 # <CJK>
+<U7685> \x8F\xCE\xB6 |0 # <CJK>
+<U768C> \x8F\xCE\xB7 |0 # <CJK>
+<U768D> \x8F\xCE\xB8 |0 # <CJK>
+<U7695> \x8F\xCE\xB9 |0 # <CJK>
+<U769B> \x8F\xCE\xBA |0 # <CJK>
+<U769C> \x8F\xCE\xBB |0 # <CJK>
+<U769D> \x8F\xCE\xBC |0 # <CJK>
+<U769F> \x8F\xCE\xBD |0 # <CJK>
+<U76A0> \x8F\xCE\xBE |0 # <CJK>
+<U76A2> \x8F\xCE\xBF |0 # <CJK>
+<U76A3> \x8F\xCE\xC0 |0 # <CJK>
+<U76A4> \x8F\xCE\xC1 |0 # <CJK>
+<U76A5> \x8F\xCE\xC2 |0 # <CJK>
+<U76A6> \x8F\xCE\xC3 |0 # <CJK>
+<U76A7> \x8F\xCE\xC4 |0 # <CJK>
+<U76A8> \x8F\xCE\xC5 |0 # <CJK>
+<U76AA> \x8F\xCE\xC6 |0 # <CJK>
+<U76AD> \x8F\xCE\xC7 |0 # <CJK>
+<U76BD> \x8F\xCE\xC8 |0 # <CJK>
+<U76C1> \x8F\xCE\xC9 |0 # <CJK>
+<U76C5> \x8F\xCE\xCA |0 # <CJK>
+<U76C9> \x8F\xCE\xCB |0 # <CJK>
+<U76CB> \x8F\xCE\xCC |0 # <CJK>
+<U76CC> \x8F\xCE\xCD |0 # <CJK>
+<U76CE> \x8F\xCE\xCE |0 # <CJK>
+<U76D4> \x8F\xCE\xCF |0 # <CJK>
+<U76D9> \x8F\xCE\xD0 |0 # <CJK>
+<U76E0> \x8F\xCE\xD1 |0 # <CJK>
+<U76E6> \x8F\xCE\xD2 |0 # <CJK>
+<U76E8> \x8F\xCE\xD3 |0 # <CJK>
+<U76EC> \x8F\xCE\xD4 |0 # <CJK>
+<U76F0> \x8F\xCE\xD5 |0 # <CJK>
+<U76F1> \x8F\xCE\xD6 |0 # <CJK>
+<U76F6> \x8F\xCE\xD7 |0 # <CJK>
+<U76F9> \x8F\xCE\xD8 |0 # <CJK>
+<U76FC> \x8F\xCE\xD9 |0 # <CJK>
+<U7700> \x8F\xCE\xDA |0 # <CJK>
+<U7706> \x8F\xCE\xDB |0 # <CJK>
+<U770A> \x8F\xCE\xDC |0 # <CJK>
+<U770E> \x8F\xCE\xDD |0 # <CJK>
+<U7712> \x8F\xCE\xDE |0 # <CJK>
+<U7714> \x8F\xCE\xDF |0 # <CJK>
+<U7715> \x8F\xCE\xE0 |0 # <CJK>
+<U7717> \x8F\xCE\xE1 |0 # <CJK>
+<U7719> \x8F\xCE\xE2 |0 # <CJK>
+<U771A> \x8F\xCE\xE3 |0 # <CJK>
+<U771C> \x8F\xCE\xE4 |0 # <CJK>
+<U7722> \x8F\xCE\xE5 |0 # <CJK>
+<U7728> \x8F\xCE\xE6 |0 # <CJK>
+<U772D> \x8F\xCE\xE7 |0 # <CJK>
+<U772E> \x8F\xCE\xE8 |0 # <CJK>
+<U772F> \x8F\xCE\xE9 |0 # <CJK>
+<U7734> \x8F\xCE\xEA |0 # <CJK>
+<U7735> \x8F\xCE\xEB |0 # <CJK>
+<U7736> \x8F\xCE\xEC |0 # <CJK>
+<U7739> \x8F\xCE\xED |0 # <CJK>
+<U773D> \x8F\xCE\xEE |0 # <CJK>
+<U773E> \x8F\xCE\xEF |0 # <CJK>
+<U7742> \x8F\xCE\xF0 |0 # <CJK>
+<U7745> \x8F\xCE\xF1 |0 # <CJK>
+<U7746> \x8F\xCE\xF2 |0 # <CJK>
+<U774A> \x8F\xCE\xF3 |0 # <CJK>
+<U774D> \x8F\xCE\xF4 |0 # <CJK>
+<U774E> \x8F\xCE\xF5 |0 # <CJK>
+<U774F> \x8F\xCE\xF6 |0 # <CJK>
+<U7752> \x8F\xCE\xF7 |0 # <CJK>
+<U7756> \x8F\xCE\xF8 |0 # <CJK>
+<U7757> \x8F\xCE\xF9 |0 # <CJK>
+<U775C> \x8F\xCE\xFA |0 # <CJK>
+<U775E> \x8F\xCE\xFB |0 # <CJK>
+<U775F> \x8F\xCE\xFC |0 # <CJK>
+<U7760> \x8F\xCE\xFD |0 # <CJK>
+<U7762> \x8F\xCE\xFE |0 # <CJK>
+<U7764> \x8F\xCF\xA1 |0 # <CJK>
+<U7767> \x8F\xCF\xA2 |0 # <CJK>
+<U776A> \x8F\xCF\xA3 |0 # <CJK>
+<U776C> \x8F\xCF\xA4 |0 # <CJK>
+<U7770> \x8F\xCF\xA5 |0 # <CJK>
+<U7772> \x8F\xCF\xA6 |0 # <CJK>
+<U7773> \x8F\xCF\xA7 |0 # <CJK>
+<U7774> \x8F\xCF\xA8 |0 # <CJK>
+<U777A> \x8F\xCF\xA9 |0 # <CJK>
+<U777D> \x8F\xCF\xAA |0 # <CJK>
+<U7780> \x8F\xCF\xAB |0 # <CJK>
+<U7784> \x8F\xCF\xAC |0 # <CJK>
+<U778C> \x8F\xCF\xAD |0 # <CJK>
+<U778D> \x8F\xCF\xAE |0 # <CJK>
+<U7794> \x8F\xCF\xAF |0 # <CJK>
+<U7795> \x8F\xCF\xB0 |0 # <CJK>
+<U7796> \x8F\xCF\xB1 |0 # <CJK>
+<U779A> \x8F\xCF\xB2 |0 # <CJK>
+<U779F> \x8F\xCF\xB3 |0 # <CJK>
+<U77A2> \x8F\xCF\xB4 |0 # <CJK>
+<U77A7> \x8F\xCF\xB5 |0 # <CJK>
+<U77AA> \x8F\xCF\xB6 |0 # <CJK>
+<U77AE> \x8F\xCF\xB7 |0 # <CJK>
+<U77AF> \x8F\xCF\xB8 |0 # <CJK>
+<U77B1> \x8F\xCF\xB9 |0 # <CJK>
+<U77B5> \x8F\xCF\xBA |0 # <CJK>
+<U77BE> \x8F\xCF\xBB |0 # <CJK>
+<U77C3> \x8F\xCF\xBC |0 # <CJK>
+<U77C9> \x8F\xCF\xBD |0 # <CJK>
+<U77D1> \x8F\xCF\xBE |0 # <CJK>
+<U77D2> \x8F\xCF\xBF |0 # <CJK>
+<U77D5> \x8F\xCF\xC0 |0 # <CJK>
+<U77D9> \x8F\xCF\xC1 |0 # <CJK>
+<U77DE> \x8F\xCF\xC2 |0 # <CJK>
+<U77DF> \x8F\xCF\xC3 |0 # <CJK>
+<U77E0> \x8F\xCF\xC4 |0 # <CJK>
+<U77E4> \x8F\xCF\xC5 |0 # <CJK>
+<U77E6> \x8F\xCF\xC6 |0 # <CJK>
+<U77EA> \x8F\xCF\xC7 |0 # <CJK>
+<U77EC> \x8F\xCF\xC8 |0 # <CJK>
+<U77F0> \x8F\xCF\xC9 |0 # <CJK>
+<U77F1> \x8F\xCF\xCA |0 # <CJK>
+<U77F4> \x8F\xCF\xCB |0 # <CJK>
+<U77F8> \x8F\xCF\xCC |0 # <CJK>
+<U77FB> \x8F\xCF\xCD |0 # <CJK>
+<U7805> \x8F\xCF\xCE |0 # <CJK>
+<U7806> \x8F\xCF\xCF |0 # <CJK>
+<U7809> \x8F\xCF\xD0 |0 # <CJK>
+<U780D> \x8F\xCF\xD1 |0 # <CJK>
+<U780E> \x8F\xCF\xD2 |0 # <CJK>
+<U7811> \x8F\xCF\xD3 |0 # <CJK>
+<U781D> \x8F\xCF\xD4 |0 # <CJK>
+<U7821> \x8F\xCF\xD5 |0 # <CJK>
+<U7822> \x8F\xCF\xD6 |0 # <CJK>
+<U7823> \x8F\xCF\xD7 |0 # <CJK>
+<U782D> \x8F\xCF\xD8 |0 # <CJK>
+<U782E> \x8F\xCF\xD9 |0 # <CJK>
+<U7830> \x8F\xCF\xDA |0 # <CJK>
+<U7835> \x8F\xCF\xDB |0 # <CJK>
+<U7837> \x8F\xCF\xDC |0 # <CJK>
+<U7843> \x8F\xCF\xDD |0 # <CJK>
+<U7844> \x8F\xCF\xDE |0 # <CJK>
+<U7847> \x8F\xCF\xDF |0 # <CJK>
+<U7848> \x8F\xCF\xE0 |0 # <CJK>
+<U784C> \x8F\xCF\xE1 |0 # <CJK>
+<U784E> \x8F\xCF\xE2 |0 # <CJK>
+<U7852> \x8F\xCF\xE3 |0 # <CJK>
+<U785C> \x8F\xCF\xE4 |0 # <CJK>
+<U785E> \x8F\xCF\xE5 |0 # <CJK>
+<U7860> \x8F\xCF\xE6 |0 # <CJK>
+<U7861> \x8F\xCF\xE7 |0 # <CJK>
+<U7863> \x8F\xCF\xE8 |0 # <CJK>
+<U7864> \x8F\xCF\xE9 |0 # <CJK>
+<U7868> \x8F\xCF\xEA |0 # <CJK>
+<U786A> \x8F\xCF\xEB |0 # <CJK>
+<U786E> \x8F\xCF\xEC |0 # <CJK>
+<U787A> \x8F\xCF\xED |0 # <CJK>
+<U787E> \x8F\xCF\xEE |0 # <CJK>
+<U788A> \x8F\xCF\xEF |0 # <CJK>
+<U788F> \x8F\xCF\xF0 |0 # <CJK>
+<U7894> \x8F\xCF\xF1 |0 # <CJK>
+<U7898> \x8F\xCF\xF2 |0 # <CJK>
+<U78A1> \x8F\xCF\xF3 |0 # <CJK>
+<U789D> \x8F\xCF\xF4 |0 # <CJK>
+<U789E> \x8F\xCF\xF5 |0 # <CJK>
+<U789F> \x8F\xCF\xF6 |0 # <CJK>
+<U78A4> \x8F\xCF\xF7 |0 # <CJK>
+<U78A8> \x8F\xCF\xF8 |0 # <CJK>
+<U78AC> \x8F\xCF\xF9 |0 # <CJK>
+<U78AD> \x8F\xCF\xFA |0 # <CJK>
+<U78B0> \x8F\xCF\xFB |0 # <CJK>
+<U78B1> \x8F\xCF\xFC |0 # <CJK>
+<U78B2> \x8F\xCF\xFD |0 # <CJK>
+<U78B3> \x8F\xCF\xFE |0 # <CJK>
+<U78BB> \x8F\xD0\xA1 |0 # <CJK>
+<U78BD> \x8F\xD0\xA2 |0 # <CJK>
+<U78BF> \x8F\xD0\xA3 |0 # <CJK>
+<U78C7> \x8F\xD0\xA4 |0 # <CJK>
+<U78C8> \x8F\xD0\xA5 |0 # <CJK>
+<U78C9> \x8F\xD0\xA6 |0 # <CJK>
+<U78CC> \x8F\xD0\xA7 |0 # <CJK>
+<U78CE> \x8F\xD0\xA8 |0 # <CJK>
+<U78D2> \x8F\xD0\xA9 |0 # <CJK>
+<U78D3> \x8F\xD0\xAA |0 # <CJK>
+<U78D5> \x8F\xD0\xAB |0 # <CJK>
+<U78D6> \x8F\xD0\xAC |0 # <CJK>
+<U78E4> \x8F\xD0\xAD |0 # <CJK>
+<U78DB> \x8F\xD0\xAE |0 # <CJK>
+<U78DF> \x8F\xD0\xAF |0 # <CJK>
+<U78E0> \x8F\xD0\xB0 |0 # <CJK>
+<U78E1> \x8F\xD0\xB1 |0 # <CJK>
+<U78E6> \x8F\xD0\xB2 |0 # <CJK>
+<U78EA> \x8F\xD0\xB3 |0 # <CJK>
+<U78F2> \x8F\xD0\xB4 |0 # <CJK>
+<U78F3> \x8F\xD0\xB5 |0 # <CJK>
+<U7900> \x8F\xD0\xB6 |0 # <CJK>
+<U78F6> \x8F\xD0\xB7 |0 # <CJK>
+<U78F7> \x8F\xD0\xB8 |0 # <CJK>
+<U78FA> \x8F\xD0\xB9 |0 # <CJK>
+<U78FB> \x8F\xD0\xBA |0 # <CJK>
+<U78FF> \x8F\xD0\xBB |0 # <CJK>
+<U7906> \x8F\xD0\xBC |0 # <CJK>
+<U790C> \x8F\xD0\xBD |0 # <CJK>
+<U7910> \x8F\xD0\xBE |0 # <CJK>
+<U791A> \x8F\xD0\xBF |0 # <CJK>
+<U791C> \x8F\xD0\xC0 |0 # <CJK>
+<U791E> \x8F\xD0\xC1 |0 # <CJK>
+<U791F> \x8F\xD0\xC2 |0 # <CJK>
+<U7920> \x8F\xD0\xC3 |0 # <CJK>
+<U7925> \x8F\xD0\xC4 |0 # <CJK>
+<U7927> \x8F\xD0\xC5 |0 # <CJK>
+<U7929> \x8F\xD0\xC6 |0 # <CJK>
+<U792D> \x8F\xD0\xC7 |0 # <CJK>
+<U7931> \x8F\xD0\xC8 |0 # <CJK>
+<U7934> \x8F\xD0\xC9 |0 # <CJK>
+<U7935> \x8F\xD0\xCA |0 # <CJK>
+<U793B> \x8F\xD0\xCB |0 # <CJK>
+<U793D> \x8F\xD0\xCC |0 # <CJK>
+<U793F> \x8F\xD0\xCD |0 # <CJK>
+<U7944> \x8F\xD0\xCE |0 # <CJK>
+<U7945> \x8F\xD0\xCF |0 # <CJK>
+<U7946> \x8F\xD0\xD0 |0 # <CJK>
+<U794A> \x8F\xD0\xD1 |0 # <CJK>
+<U794B> \x8F\xD0\xD2 |0 # <CJK>
+<U794F> \x8F\xD0\xD3 |0 # <CJK>
+<U7951> \x8F\xD0\xD4 |0 # <CJK>
+<U7954> \x8F\xD0\xD5 |0 # <CJK>
+<U7958> \x8F\xD0\xD6 |0 # <CJK>
+<U795B> \x8F\xD0\xD7 |0 # <CJK>
+<U795C> \x8F\xD0\xD8 |0 # <CJK>
+<U7967> \x8F\xD0\xD9 |0 # <CJK>
+<U7969> \x8F\xD0\xDA |0 # <CJK>
+<U796B> \x8F\xD0\xDB |0 # <CJK>
+<U7972> \x8F\xD0\xDC |0 # <CJK>
+<U7979> \x8F\xD0\xDD |0 # <CJK>
+<U797B> \x8F\xD0\xDE |0 # <CJK>
+<U797C> \x8F\xD0\xDF |0 # <CJK>
+<U797E> \x8F\xD0\xE0 |0 # <CJK>
+<U798B> \x8F\xD0\xE1 |0 # <CJK>
+<U798C> \x8F\xD0\xE2 |0 # <CJK>
+<U7991> \x8F\xD0\xE3 |0 # <CJK>
+<U7993> \x8F\xD0\xE4 |0 # <CJK>
+<U7994> \x8F\xD0\xE5 |0 # <CJK>
+<U7995> \x8F\xD0\xE6 |0 # <CJK>
+<U7996> \x8F\xD0\xE7 |0 # <CJK>
+<U7998> \x8F\xD0\xE8 |0 # <CJK>
+<U799B> \x8F\xD0\xE9 |0 # <CJK>
+<U799C> \x8F\xD0\xEA |0 # <CJK>
+<U79A1> \x8F\xD0\xEB |0 # <CJK>
+<U79A8> \x8F\xD0\xEC |0 # <CJK>
+<U79A9> \x8F\xD0\xED |0 # <CJK>
+<U79AB> \x8F\xD0\xEE |0 # <CJK>
+<U79AF> \x8F\xD0\xEF |0 # <CJK>
+<U79B1> \x8F\xD0\xF0 |0 # <CJK>
+<U79B4> \x8F\xD0\xF1 |0 # <CJK>
+<U79B8> \x8F\xD0\xF2 |0 # <CJK>
+<U79BB> \x8F\xD0\xF3 |0 # <CJK>
+<U79C2> \x8F\xD0\xF4 |0 # <CJK>
+<U79C4> \x8F\xD0\xF5 |0 # <CJK>
+<U79C7> \x8F\xD0\xF6 |0 # <CJK>
+<U79C8> \x8F\xD0\xF7 |0 # <CJK>
+<U79CA> \x8F\xD0\xF8 |0 # <CJK>
+<U79CF> \x8F\xD0\xF9 |0 # <CJK>
+<U79D4> \x8F\xD0\xFA |0 # <CJK>
+<U79D6> \x8F\xD0\xFB |0 # <CJK>
+<U79DA> \x8F\xD0\xFC |0 # <CJK>
+<U79DD> \x8F\xD0\xFD |0 # <CJK>
+<U79DE> \x8F\xD0\xFE |0 # <CJK>
+<U79E0> \x8F\xD1\xA1 |0 # <CJK>
+<U79E2> \x8F\xD1\xA2 |0 # <CJK>
+<U79E5> \x8F\xD1\xA3 |0 # <CJK>
+<U79EA> \x8F\xD1\xA4 |0 # <CJK>
+<U79EB> \x8F\xD1\xA5 |0 # <CJK>
+<U79ED> \x8F\xD1\xA6 |0 # <CJK>
+<U79F1> \x8F\xD1\xA7 |0 # <CJK>
+<U79F8> \x8F\xD1\xA8 |0 # <CJK>
+<U79FC> \x8F\xD1\xA9 |0 # <CJK>
+<U7A02> \x8F\xD1\xAA |0 # <CJK>
+<U7A03> \x8F\xD1\xAB |0 # <CJK>
+<U7A07> \x8F\xD1\xAC |0 # <CJK>
+<U7A09> \x8F\xD1\xAD |0 # <CJK>
+<U7A0A> \x8F\xD1\xAE |0 # <CJK>
+<U7A0C> \x8F\xD1\xAF |0 # <CJK>
+<U7A11> \x8F\xD1\xB0 |0 # <CJK>
+<U7A15> \x8F\xD1\xB1 |0 # <CJK>
+<U7A1B> \x8F\xD1\xB2 |0 # <CJK>
+<U7A1E> \x8F\xD1\xB3 |0 # <CJK>
+<U7A21> \x8F\xD1\xB4 |0 # <CJK>
+<U7A27> \x8F\xD1\xB5 |0 # <CJK>
+<U7A2B> \x8F\xD1\xB6 |0 # <CJK>
+<U7A2D> \x8F\xD1\xB7 |0 # <CJK>
+<U7A2F> \x8F\xD1\xB8 |0 # <CJK>
+<U7A30> \x8F\xD1\xB9 |0 # <CJK>
+<U7A34> \x8F\xD1\xBA |0 # <CJK>
+<U7A35> \x8F\xD1\xBB |0 # <CJK>
+<U7A38> \x8F\xD1\xBC |0 # <CJK>
+<U7A39> \x8F\xD1\xBD |0 # <CJK>
+<U7A3A> \x8F\xD1\xBE |0 # <CJK>
+<U7A44> \x8F\xD1\xBF |0 # <CJK>
+<U7A45> \x8F\xD1\xC0 |0 # <CJK>
+<U7A47> \x8F\xD1\xC1 |0 # <CJK>
+<U7A48> \x8F\xD1\xC2 |0 # <CJK>
+<U7A4C> \x8F\xD1\xC3 |0 # <CJK>
+<U7A55> \x8F\xD1\xC4 |0 # <CJK>
+<U7A56> \x8F\xD1\xC5 |0 # <CJK>
+<U7A59> \x8F\xD1\xC6 |0 # <CJK>
+<U7A5C> \x8F\xD1\xC7 |0 # <CJK>
+<U7A5D> \x8F\xD1\xC8 |0 # <CJK>
+<U7A5F> \x8F\xD1\xC9 |0 # <CJK>
+<U7A60> \x8F\xD1\xCA |0 # <CJK>
+<U7A65> \x8F\xD1\xCB |0 # <CJK>
+<U7A67> \x8F\xD1\xCC |0 # <CJK>
+<U7A6A> \x8F\xD1\xCD |0 # <CJK>
+<U7A6D> \x8F\xD1\xCE |0 # <CJK>
+<U7A75> \x8F\xD1\xCF |0 # <CJK>
+<U7A78> \x8F\xD1\xD0 |0 # <CJK>
+<U7A7E> \x8F\xD1\xD1 |0 # <CJK>
+<U7A80> \x8F\xD1\xD2 |0 # <CJK>
+<U7A82> \x8F\xD1\xD3 |0 # <CJK>
+<U7A85> \x8F\xD1\xD4 |0 # <CJK>
+<U7A86> \x8F\xD1\xD5 |0 # <CJK>
+<U7A8A> \x8F\xD1\xD6 |0 # <CJK>
+<U7A8B> \x8F\xD1\xD7 |0 # <CJK>
+<U7A90> \x8F\xD1\xD8 |0 # <CJK>
+<U7A91> \x8F\xD1\xD9 |0 # <CJK>
+<U7A94> \x8F\xD1\xDA |0 # <CJK>
+<U7A9E> \x8F\xD1\xDB |0 # <CJK>
+<U7AA0> \x8F\xD1\xDC |0 # <CJK>
+<U7AA3> \x8F\xD1\xDD |0 # <CJK>
+<U7AAC> \x8F\xD1\xDE |0 # <CJK>
+<U7AB3> \x8F\xD1\xDF |0 # <CJK>
+<U7AB5> \x8F\xD1\xE0 |0 # <CJK>
+<U7AB9> \x8F\xD1\xE1 |0 # <CJK>
+<U7ABB> \x8F\xD1\xE2 |0 # <CJK>
+<U7ABC> \x8F\xD1\xE3 |0 # <CJK>
+<U7AC6> \x8F\xD1\xE4 |0 # <CJK>
+<U7AC9> \x8F\xD1\xE5 |0 # <CJK>
+<U7ACC> \x8F\xD1\xE6 |0 # <CJK>
+<U7ACE> \x8F\xD1\xE7 |0 # <CJK>
+<U7AD1> \x8F\xD1\xE8 |0 # <CJK>
+<U7ADB> \x8F\xD1\xE9 |0 # <CJK>
+<U7AE8> \x8F\xD1\xEA |0 # <CJK>
+<U7AE9> \x8F\xD1\xEB |0 # <CJK>
+<U7AEB> \x8F\xD1\xEC |0 # <CJK>
+<U7AEC> \x8F\xD1\xED |0 # <CJK>
+<U7AF1> \x8F\xD1\xEE |0 # <CJK>
+<U7AF4> \x8F\xD1\xEF |0 # <CJK>
+<U7AFB> \x8F\xD1\xF0 |0 # <CJK>
+<U7AFD> \x8F\xD1\xF1 |0 # <CJK>
+<U7AFE> \x8F\xD1\xF2 |0 # <CJK>
+<U7B07> \x8F\xD1\xF3 |0 # <CJK>
+<U7B14> \x8F\xD1\xF4 |0 # <CJK>
+<U7B1F> \x8F\xD1\xF5 |0 # <CJK>
+<U7B23> \x8F\xD1\xF6 |0 # <CJK>
+<U7B27> \x8F\xD1\xF7 |0 # <CJK>
+<U7B29> \x8F\xD1\xF8 |0 # <CJK>
+<U7B2A> \x8F\xD1\xF9 |0 # <CJK>
+<U7B2B> \x8F\xD1\xFA |0 # <CJK>
+<U7B2D> \x8F\xD1\xFB |0 # <CJK>
+<U7B2E> \x8F\xD1\xFC |0 # <CJK>
+<U7B2F> \x8F\xD1\xFD |0 # <CJK>
+<U7B30> \x8F\xD1\xFE |0 # <CJK>
+<U7B31> \x8F\xD2\xA1 |0 # <CJK>
+<U7B34> \x8F\xD2\xA2 |0 # <CJK>
+<U7B3D> \x8F\xD2\xA3 |0 # <CJK>
+<U7B3F> \x8F\xD2\xA4 |0 # <CJK>
+<U7B40> \x8F\xD2\xA5 |0 # <CJK>
+<U7B41> \x8F\xD2\xA6 |0 # <CJK>
+<U7B47> \x8F\xD2\xA7 |0 # <CJK>
+<U7B4E> \x8F\xD2\xA8 |0 # <CJK>
+<U7B55> \x8F\xD2\xA9 |0 # <CJK>
+<U7B60> \x8F\xD2\xAA |0 # <CJK>
+<U7B64> \x8F\xD2\xAB |0 # <CJK>
+<U7B66> \x8F\xD2\xAC |0 # <CJK>
+<U7B69> \x8F\xD2\xAD |0 # <CJK>
+<U7B6A> \x8F\xD2\xAE |0 # <CJK>
+<U7B6D> \x8F\xD2\xAF |0 # <CJK>
+<U7B6F> \x8F\xD2\xB0 |0 # <CJK>
+<U7B72> \x8F\xD2\xB1 |0 # <CJK>
+<U7B73> \x8F\xD2\xB2 |0 # <CJK>
+<U7B77> \x8F\xD2\xB3 |0 # <CJK>
+<U7B84> \x8F\xD2\xB4 |0 # <CJK>
+<U7B89> \x8F\xD2\xB5 |0 # <CJK>
+<U7B8E> \x8F\xD2\xB6 |0 # <CJK>
+<U7B90> \x8F\xD2\xB7 |0 # <CJK>
+<U7B91> \x8F\xD2\xB8 |0 # <CJK>
+<U7B96> \x8F\xD2\xB9 |0 # <CJK>
+<U7B9B> \x8F\xD2\xBA |0 # <CJK>
+<U7B9E> \x8F\xD2\xBB |0 # <CJK>
+<U7BA0> \x8F\xD2\xBC |0 # <CJK>
+<U7BA5> \x8F\xD2\xBD |0 # <CJK>
+<U7BAC> \x8F\xD2\xBE |0 # <CJK>
+<U7BAF> \x8F\xD2\xBF |0 # <CJK>
+<U7BB0> \x8F\xD2\xC0 |0 # <CJK>
+<U7BB2> \x8F\xD2\xC1 |0 # <CJK>
+<U7BB5> \x8F\xD2\xC2 |0 # <CJK>
+<U7BB6> \x8F\xD2\xC3 |0 # <CJK>
+<U7BBA> \x8F\xD2\xC4 |0 # <CJK>
+<U7BBB> \x8F\xD2\xC5 |0 # <CJK>
+<U7BBC> \x8F\xD2\xC6 |0 # <CJK>
+<U7BBD> \x8F\xD2\xC7 |0 # <CJK>
+<U7BC2> \x8F\xD2\xC8 |0 # <CJK>
+<U7BC5> \x8F\xD2\xC9 |0 # <CJK>
+<U7BC8> \x8F\xD2\xCA |0 # <CJK>
+<U7BCA> \x8F\xD2\xCB |0 # <CJK>
+<U7BD4> \x8F\xD2\xCC |0 # <CJK>
+<U7BD6> \x8F\xD2\xCD |0 # <CJK>
+<U7BD7> \x8F\xD2\xCE |0 # <CJK>
+<U7BD9> \x8F\xD2\xCF |0 # <CJK>
+<U7BDA> \x8F\xD2\xD0 |0 # <CJK>
+<U7BDB> \x8F\xD2\xD1 |0 # <CJK>
+<U7BE8> \x8F\xD2\xD2 |0 # <CJK>
+<U7BEA> \x8F\xD2\xD3 |0 # <CJK>
+<U7BF2> \x8F\xD2\xD4 |0 # <CJK>
+<U7BF4> \x8F\xD2\xD5 |0 # <CJK>
+<U7BF5> \x8F\xD2\xD6 |0 # <CJK>
+<U7BF8> \x8F\xD2\xD7 |0 # <CJK>
+<U7BF9> \x8F\xD2\xD8 |0 # <CJK>
+<U7BFA> \x8F\xD2\xD9 |0 # <CJK>
+<U7BFC> \x8F\xD2\xDA |0 # <CJK>
+<U7BFE> \x8F\xD2\xDB |0 # <CJK>
+<U7C01> \x8F\xD2\xDC |0 # <CJK>
+<U7C02> \x8F\xD2\xDD |0 # <CJK>
+<U7C03> \x8F\xD2\xDE |0 # <CJK>
+<U7C04> \x8F\xD2\xDF |0 # <CJK>
+<U7C06> \x8F\xD2\xE0 |0 # <CJK>
+<U7C09> \x8F\xD2\xE1 |0 # <CJK>
+<U7C0B> \x8F\xD2\xE2 |0 # <CJK>
+<U7C0C> \x8F\xD2\xE3 |0 # <CJK>
+<U7C0E> \x8F\xD2\xE4 |0 # <CJK>
+<U7C0F> \x8F\xD2\xE5 |0 # <CJK>
+<U7C19> \x8F\xD2\xE6 |0 # <CJK>
+<U7C1B> \x8F\xD2\xE7 |0 # <CJK>
+<U7C20> \x8F\xD2\xE8 |0 # <CJK>
+<U7C25> \x8F\xD2\xE9 |0 # <CJK>
+<U7C26> \x8F\xD2\xEA |0 # <CJK>
+<U7C28> \x8F\xD2\xEB |0 # <CJK>
+<U7C2C> \x8F\xD2\xEC |0 # <CJK>
+<U7C31> \x8F\xD2\xED |0 # <CJK>
+<U7C33> \x8F\xD2\xEE |0 # <CJK>
+<U7C34> \x8F\xD2\xEF |0 # <CJK>
+<U7C36> \x8F\xD2\xF0 |0 # <CJK>
+<U7C39> \x8F\xD2\xF1 |0 # <CJK>
+<U7C3A> \x8F\xD2\xF2 |0 # <CJK>
+<U7C46> \x8F\xD2\xF3 |0 # <CJK>
+<U7C4A> \x8F\xD2\xF4 |0 # <CJK>
+<U7C55> \x8F\xD2\xF5 |0 # <CJK>
+<U7C51> \x8F\xD2\xF6 |0 # <CJK>
+<U7C52> \x8F\xD2\xF7 |0 # <CJK>
+<U7C53> \x8F\xD2\xF8 |0 # <CJK>
+<U7C59> \x8F\xD2\xF9 |0 # <CJK>
+<U7C5A> \x8F\xD2\xFA |0 # <CJK>
+<U7C5B> \x8F\xD2\xFB |0 # <CJK>
+<U7C5C> \x8F\xD2\xFC |0 # <CJK>
+<U7C5D> \x8F\xD2\xFD |0 # <CJK>
+<U7C5E> \x8F\xD2\xFE |0 # <CJK>
+<U7C61> \x8F\xD3\xA1 |0 # <CJK>
+<U7C63> \x8F\xD3\xA2 |0 # <CJK>
+<U7C67> \x8F\xD3\xA3 |0 # <CJK>
+<U7C69> \x8F\xD3\xA4 |0 # <CJK>
+<U7C6D> \x8F\xD3\xA5 |0 # <CJK>
+<U7C6E> \x8F\xD3\xA6 |0 # <CJK>
+<U7C70> \x8F\xD3\xA7 |0 # <CJK>
+<U7C72> \x8F\xD3\xA8 |0 # <CJK>
+<U7C79> \x8F\xD3\xA9 |0 # <CJK>
+<U7C7C> \x8F\xD3\xAA |0 # <CJK>
+<U7C7D> \x8F\xD3\xAB |0 # <CJK>
+<U7C86> \x8F\xD3\xAC |0 # <CJK>
+<U7C87> \x8F\xD3\xAD |0 # <CJK>
+<U7C8F> \x8F\xD3\xAE |0 # <CJK>
+<U7C94> \x8F\xD3\xAF |0 # <CJK>
+<U7C9E> \x8F\xD3\xB0 |0 # <CJK>
+<U7CA0> \x8F\xD3\xB1 |0 # <CJK>
+<U7CA6> \x8F\xD3\xB2 |0 # <CJK>
+<U7CB0> \x8F\xD3\xB3 |0 # <CJK>
+<U7CB6> \x8F\xD3\xB4 |0 # <CJK>
+<U7CB7> \x8F\xD3\xB5 |0 # <CJK>
+<U7CBA> \x8F\xD3\xB6 |0 # <CJK>
+<U7CBB> \x8F\xD3\xB7 |0 # <CJK>
+<U7CBC> \x8F\xD3\xB8 |0 # <CJK>
+<U7CBF> \x8F\xD3\xB9 |0 # <CJK>
+<U7CC4> \x8F\xD3\xBA |0 # <CJK>
+<U7CC7> \x8F\xD3\xBB |0 # <CJK>
+<U7CC8> \x8F\xD3\xBC |0 # <CJK>
+<U7CC9> \x8F\xD3\xBD |0 # <CJK>
+<U7CCD> \x8F\xD3\xBE |0 # <CJK>
+<U7CCF> \x8F\xD3\xBF |0 # <CJK>
+<U7CD3> \x8F\xD3\xC0 |0 # <CJK>
+<U7CD4> \x8F\xD3\xC1 |0 # <CJK>
+<U7CD5> \x8F\xD3\xC2 |0 # <CJK>
+<U7CD7> \x8F\xD3\xC3 |0 # <CJK>
+<U7CD9> \x8F\xD3\xC4 |0 # <CJK>
+<U7CDA> \x8F\xD3\xC5 |0 # <CJK>
+<U7CDD> \x8F\xD3\xC6 |0 # <CJK>
+<U7CE6> \x8F\xD3\xC7 |0 # <CJK>
+<U7CE9> \x8F\xD3\xC8 |0 # <CJK>
+<U7CEB> \x8F\xD3\xC9 |0 # <CJK>
+<U7CF5> \x8F\xD3\xCA |0 # <CJK>
+<U7D03> \x8F\xD3\xCB |0 # <CJK>
+<U7D07> \x8F\xD3\xCC |0 # <CJK>
+<U7D08> \x8F\xD3\xCD |0 # <CJK>
+<U7D09> \x8F\xD3\xCE |0 # <CJK>
+<U7D0F> \x8F\xD3\xCF |0 # <CJK>
+<U7D11> \x8F\xD3\xD0 |0 # <CJK>
+<U7D12> \x8F\xD3\xD1 |0 # <CJK>
+<U7D13> \x8F\xD3\xD2 |0 # <CJK>
+<U7D16> \x8F\xD3\xD3 |0 # <CJK>
+<U7D1D> \x8F\xD3\xD4 |0 # <CJK>
+<U7D1E> \x8F\xD3\xD5 |0 # <CJK>
+<U7D23> \x8F\xD3\xD6 |0 # <CJK>
+<U7D26> \x8F\xD3\xD7 |0 # <CJK>
+<U7D2A> \x8F\xD3\xD8 |0 # <CJK>
+<U7D2D> \x8F\xD3\xD9 |0 # <CJK>
+<U7D31> \x8F\xD3\xDA |0 # <CJK>
+<U7D3C> \x8F\xD3\xDB |0 # <CJK>
+<U7D3D> \x8F\xD3\xDC |0 # <CJK>
+<U7D3E> \x8F\xD3\xDD |0 # <CJK>
+<U7D40> \x8F\xD3\xDE |0 # <CJK>
+<U7D41> \x8F\xD3\xDF |0 # <CJK>
+<U7D47> \x8F\xD3\xE0 |0 # <CJK>
+<U7D48> \x8F\xD3\xE1 |0 # <CJK>
+<U7D4D> \x8F\xD3\xE2 |0 # <CJK>
+<U7D51> \x8F\xD3\xE3 |0 # <CJK>
+<U7D53> \x8F\xD3\xE4 |0 # <CJK>
+<U7D57> \x8F\xD3\xE5 |0 # <CJK>
+<U7D59> \x8F\xD3\xE6 |0 # <CJK>
+<U7D5A> \x8F\xD3\xE7 |0 # <CJK>
+<U7D5C> \x8F\xD3\xE8 |0 # <CJK>
+<U7D5D> \x8F\xD3\xE9 |0 # <CJK>
+<U7D65> \x8F\xD3\xEA |0 # <CJK>
+<U7D67> \x8F\xD3\xEB |0 # <CJK>
+<U7D6A> \x8F\xD3\xEC |0 # <CJK>
+<U7D70> \x8F\xD3\xED |0 # <CJK>
+<U7D78> \x8F\xD3\xEE |0 # <CJK>
+<U7D7A> \x8F\xD3\xEF |0 # <CJK>
+<U7D7B> \x8F\xD3\xF0 |0 # <CJK>
+<U7D7F> \x8F\xD3\xF1 |0 # <CJK>
+<U7D81> \x8F\xD3\xF2 |0 # <CJK>
+<U7D82> \x8F\xD3\xF3 |0 # <CJK>
+<U7D83> \x8F\xD3\xF4 |0 # <CJK>
+<U7D85> \x8F\xD3\xF5 |0 # <CJK>
+<U7D86> \x8F\xD3\xF6 |0 # <CJK>
+<U7D88> \x8F\xD3\xF7 |0 # <CJK>
+<U7D8B> \x8F\xD3\xF8 |0 # <CJK>
+<U7D8C> \x8F\xD3\xF9 |0 # <CJK>
+<U7D8D> \x8F\xD3\xFA |0 # <CJK>
+<U7D91> \x8F\xD3\xFB |0 # <CJK>
+<U7D96> \x8F\xD3\xFC |0 # <CJK>
+<U7D97> \x8F\xD3\xFD |0 # <CJK>
+<U7D9D> \x8F\xD3\xFE |0 # <CJK>
+<U7D9E> \x8F\xD4\xA1 |0 # <CJK>
+<U7DA6> \x8F\xD4\xA2 |0 # <CJK>
+<U7DA7> \x8F\xD4\xA3 |0 # <CJK>
+<U7DAA> \x8F\xD4\xA4 |0 # <CJK>
+<U7DB3> \x8F\xD4\xA5 |0 # <CJK>
+<U7DB6> \x8F\xD4\xA6 |0 # <CJK>
+<U7DB7> \x8F\xD4\xA7 |0 # <CJK>
+<U7DB9> \x8F\xD4\xA8 |0 # <CJK>
+<U7DC2> \x8F\xD4\xA9 |0 # <CJK>
+<U7DC3> \x8F\xD4\xAA |0 # <CJK>
+<U7DC4> \x8F\xD4\xAB |0 # <CJK>
+<U7DC5> \x8F\xD4\xAC |0 # <CJK>
+<U7DC6> \x8F\xD4\xAD |0 # <CJK>
+<U7DCC> \x8F\xD4\xAE |0 # <CJK>
+<U7DCD> \x8F\xD4\xAF |0 # <CJK>
+<U7DCE> \x8F\xD4\xB0 |0 # <CJK>
+<U7DD7> \x8F\xD4\xB1 |0 # <CJK>
+<U7DD9> \x8F\xD4\xB2 |0 # <CJK>
+<U7E00> \x8F\xD4\xB3 |0 # <CJK>
+<U7DE2> \x8F\xD4\xB4 |0 # <CJK>
+<U7DE5> \x8F\xD4\xB5 |0 # <CJK>
+<U7DE6> \x8F\xD4\xB6 |0 # <CJK>
+<U7DEA> \x8F\xD4\xB7 |0 # <CJK>
+<U7DEB> \x8F\xD4\xB8 |0 # <CJK>
+<U7DED> \x8F\xD4\xB9 |0 # <CJK>
+<U7DF1> \x8F\xD4\xBA |0 # <CJK>
+<U7DF5> \x8F\xD4\xBB |0 # <CJK>
+<U7DF6> \x8F\xD4\xBC |0 # <CJK>
+<U7DF9> \x8F\xD4\xBD |0 # <CJK>
+<U7DFA> \x8F\xD4\xBE |0 # <CJK>
+<U7E08> \x8F\xD4\xBF |0 # <CJK>
+<U7E10> \x8F\xD4\xC0 |0 # <CJK>
+<U7E11> \x8F\xD4\xC1 |0 # <CJK>
+<U7E15> \x8F\xD4\xC2 |0 # <CJK>
+<U7E17> \x8F\xD4\xC3 |0 # <CJK>
+<U7E1C> \x8F\xD4\xC4 |0 # <CJK>
+<U7E1D> \x8F\xD4\xC5 |0 # <CJK>
+<U7E20> \x8F\xD4\xC6 |0 # <CJK>
+<U7E27> \x8F\xD4\xC7 |0 # <CJK>
+<U7E28> \x8F\xD4\xC8 |0 # <CJK>
+<U7E2C> \x8F\xD4\xC9 |0 # <CJK>
+<U7E2D> \x8F\xD4\xCA |0 # <CJK>
+<U7E2F> \x8F\xD4\xCB |0 # <CJK>
+<U7E33> \x8F\xD4\xCC |0 # <CJK>
+<U7E36> \x8F\xD4\xCD |0 # <CJK>
+<U7E3F> \x8F\xD4\xCE |0 # <CJK>
+<U7E44> \x8F\xD4\xCF |0 # <CJK>
+<U7E45> \x8F\xD4\xD0 |0 # <CJK>
+<U7E47> \x8F\xD4\xD1 |0 # <CJK>
+<U7E4E> \x8F\xD4\xD2 |0 # <CJK>
+<U7E50> \x8F\xD4\xD3 |0 # <CJK>
+<U7E52> \x8F\xD4\xD4 |0 # <CJK>
+<U7E58> \x8F\xD4\xD5 |0 # <CJK>
+<U7E5F> \x8F\xD4\xD6 |0 # <CJK>
+<U7E61> \x8F\xD4\xD7 |0 # <CJK>
+<U7E62> \x8F\xD4\xD8 |0 # <CJK>
+<U7E65> \x8F\xD4\xD9 |0 # <CJK>
+<U7E6B> \x8F\xD4\xDA |0 # <CJK>
+<U7E6E> \x8F\xD4\xDB |0 # <CJK>
+<U7E6F> \x8F\xD4\xDC |0 # <CJK>
+<U7E73> \x8F\xD4\xDD |0 # <CJK>
+<U7E78> \x8F\xD4\xDE |0 # <CJK>
+<U7E7E> \x8F\xD4\xDF |0 # <CJK>
+<U7E81> \x8F\xD4\xE0 |0 # <CJK>
+<U7E86> \x8F\xD4\xE1 |0 # <CJK>
+<U7E87> \x8F\xD4\xE2 |0 # <CJK>
+<U7E8A> \x8F\xD4\xE3 |0 # <CJK>
+<U7E8D> \x8F\xD4\xE4 |0 # <CJK>
+<U7E91> \x8F\xD4\xE5 |0 # <CJK>
+<U7E95> \x8F\xD4\xE6 |0 # <CJK>
+<U7E98> \x8F\xD4\xE7 |0 # <CJK>
+<U7E9A> \x8F\xD4\xE8 |0 # <CJK>
+<U7E9D> \x8F\xD4\xE9 |0 # <CJK>
+<U7E9E> \x8F\xD4\xEA |0 # <CJK>
+<U7F3C> \x8F\xD4\xEB |0 # <CJK>
+<U7F3B> \x8F\xD4\xEC |0 # <CJK>
+<U7F3D> \x8F\xD4\xED |0 # <CJK>
+<U7F3E> \x8F\xD4\xEE |0 # <CJK>
+<U7F3F> \x8F\xD4\xEF |0 # <CJK>
+<U7F43> \x8F\xD4\xF0 |0 # <CJK>
+<U7F44> \x8F\xD4\xF1 |0 # <CJK>
+<U7F47> \x8F\xD4\xF2 |0 # <CJK>
+<U7F4F> \x8F\xD4\xF3 |0 # <CJK>
+<U7F52> \x8F\xD4\xF4 |0 # <CJK>
+<U7F53> \x8F\xD4\xF5 |0 # <CJK>
+<U7F5B> \x8F\xD4\xF6 |0 # <CJK>
+<U7F5C> \x8F\xD4\xF7 |0 # <CJK>
+<U7F5D> \x8F\xD4\xF8 |0 # <CJK>
+<U7F61> \x8F\xD4\xF9 |0 # <CJK>
+<U7F63> \x8F\xD4\xFA |0 # <CJK>
+<U7F64> \x8F\xD4\xFB |0 # <CJK>
+<U7F65> \x8F\xD4\xFC |0 # <CJK>
+<U7F66> \x8F\xD4\xFD |0 # <CJK>
+<U7F6D> \x8F\xD4\xFE |0 # <CJK>
+<U7F71> \x8F\xD5\xA1 |0 # <CJK>
+<U7F7D> \x8F\xD5\xA2 |0 # <CJK>
+<U7F7E> \x8F\xD5\xA3 |0 # <CJK>
+<U7F7F> \x8F\xD5\xA4 |0 # <CJK>
+<U7F80> \x8F\xD5\xA5 |0 # <CJK>
+<U7F8B> \x8F\xD5\xA6 |0 # <CJK>
+<U7F8D> \x8F\xD5\xA7 |0 # <CJK>
+<U7F8F> \x8F\xD5\xA8 |0 # <CJK>
+<U7F90> \x8F\xD5\xA9 |0 # <CJK>
+<U7F91> \x8F\xD5\xAA |0 # <CJK>
+<U7F96> \x8F\xD5\xAB |0 # <CJK>
+<U7F97> \x8F\xD5\xAC |0 # <CJK>
+<U7F9C> \x8F\xD5\xAD |0 # <CJK>
+<U7FA1> \x8F\xD5\xAE |0 # <CJK>
+<U7FA2> \x8F\xD5\xAF |0 # <CJK>
+<U7FA6> \x8F\xD5\xB0 |0 # <CJK>
+<U7FAA> \x8F\xD5\xB1 |0 # <CJK>
+<U7FAD> \x8F\xD5\xB2 |0 # <CJK>
+<U7FB4> \x8F\xD5\xB3 |0 # <CJK>
+<U7FBC> \x8F\xD5\xB4 |0 # <CJK>
+<U7FBF> \x8F\xD5\xB5 |0 # <CJK>
+<U7FC0> \x8F\xD5\xB6 |0 # <CJK>
+<U7FC3> \x8F\xD5\xB7 |0 # <CJK>
+<U7FC8> \x8F\xD5\xB8 |0 # <CJK>
+<U7FCE> \x8F\xD5\xB9 |0 # <CJK>
+<U7FCF> \x8F\xD5\xBA |0 # <CJK>
+<U7FDB> \x8F\xD5\xBB |0 # <CJK>
+<U7FDF> \x8F\xD5\xBC |0 # <CJK>
+<U7FE3> \x8F\xD5\xBD |0 # <CJK>
+<U7FE5> \x8F\xD5\xBE |0 # <CJK>
+<U7FE8> \x8F\xD5\xBF |0 # <CJK>
+<U7FEC> \x8F\xD5\xC0 |0 # <CJK>
+<U7FEE> \x8F\xD5\xC1 |0 # <CJK>
+<U7FEF> \x8F\xD5\xC2 |0 # <CJK>
+<U7FF2> \x8F\xD5\xC3 |0 # <CJK>
+<U7FFA> \x8F\xD5\xC4 |0 # <CJK>
+<U7FFD> \x8F\xD5\xC5 |0 # <CJK>
+<U7FFE> \x8F\xD5\xC6 |0 # <CJK>
+<U7FFF> \x8F\xD5\xC7 |0 # <CJK>
+<U8007> \x8F\xD5\xC8 |0 # <CJK>
+<U8008> \x8F\xD5\xC9 |0 # <CJK>
+<U800A> \x8F\xD5\xCA |0 # <CJK>
+<U800D> \x8F\xD5\xCB |0 # <CJK>
+<U800E> \x8F\xD5\xCC |0 # <CJK>
+<U800F> \x8F\xD5\xCD |0 # <CJK>
+<U8011> \x8F\xD5\xCE |0 # <CJK>
+<U8013> \x8F\xD5\xCF |0 # <CJK>
+<U8014> \x8F\xD5\xD0 |0 # <CJK>
+<U8016> \x8F\xD5\xD1 |0 # <CJK>
+<U801D> \x8F\xD5\xD2 |0 # <CJK>
+<U801E> \x8F\xD5\xD3 |0 # <CJK>
+<U801F> \x8F\xD5\xD4 |0 # <CJK>
+<U8020> \x8F\xD5\xD5 |0 # <CJK>
+<U8024> \x8F\xD5\xD6 |0 # <CJK>
+<U8026> \x8F\xD5\xD7 |0 # <CJK>
+<U802C> \x8F\xD5\xD8 |0 # <CJK>
+<U802E> \x8F\xD5\xD9 |0 # <CJK>
+<U8030> \x8F\xD5\xDA |0 # <CJK>
+<U8034> \x8F\xD5\xDB |0 # <CJK>
+<U8035> \x8F\xD5\xDC |0 # <CJK>
+<U8037> \x8F\xD5\xDD |0 # <CJK>
+<U8039> \x8F\xD5\xDE |0 # <CJK>
+<U803A> \x8F\xD5\xDF |0 # <CJK>
+<U803C> \x8F\xD5\xE0 |0 # <CJK>
+<U803E> \x8F\xD5\xE1 |0 # <CJK>
+<U8040> \x8F\xD5\xE2 |0 # <CJK>
+<U8044> \x8F\xD5\xE3 |0 # <CJK>
+<U8060> \x8F\xD5\xE4 |0 # <CJK>
+<U8064> \x8F\xD5\xE5 |0 # <CJK>
+<U8066> \x8F\xD5\xE6 |0 # <CJK>
+<U806D> \x8F\xD5\xE7 |0 # <CJK>
+<U8071> \x8F\xD5\xE8 |0 # <CJK>
+<U8075> \x8F\xD5\xE9 |0 # <CJK>
+<U8081> \x8F\xD5\xEA |0 # <CJK>
+<U8088> \x8F\xD5\xEB |0 # <CJK>
+<U808E> \x8F\xD5\xEC |0 # <CJK>
+<U809C> \x8F\xD5\xED |0 # <CJK>
+<U809E> \x8F\xD5\xEE |0 # <CJK>
+<U80A6> \x8F\xD5\xEF |0 # <CJK>
+<U80A7> \x8F\xD5\xF0 |0 # <CJK>
+<U80AB> \x8F\xD5\xF1 |0 # <CJK>
+<U80B8> \x8F\xD5\xF2 |0 # <CJK>
+<U80B9> \x8F\xD5\xF3 |0 # <CJK>
+<U80C8> \x8F\xD5\xF4 |0 # <CJK>
+<U80CD> \x8F\xD5\xF5 |0 # <CJK>
+<U80CF> \x8F\xD5\xF6 |0 # <CJK>
+<U80D2> \x8F\xD5\xF7 |0 # <CJK>
+<U80D4> \x8F\xD5\xF8 |0 # <CJK>
+<U80D5> \x8F\xD5\xF9 |0 # <CJK>
+<U80D7> \x8F\xD5\xFA |0 # <CJK>
+<U80D8> \x8F\xD5\xFB |0 # <CJK>
+<U80E0> \x8F\xD5\xFC |0 # <CJK>
+<U80ED> \x8F\xD5\xFD |0 # <CJK>
+<U80EE> \x8F\xD5\xFE |0 # <CJK>
+<U80F0> \x8F\xD6\xA1 |0 # <CJK>
+<U80F2> \x8F\xD6\xA2 |0 # <CJK>
+<U80F3> \x8F\xD6\xA3 |0 # <CJK>
+<U80F6> \x8F\xD6\xA4 |0 # <CJK>
+<U80F9> \x8F\xD6\xA5 |0 # <CJK>
+<U80FA> \x8F\xD6\xA6 |0 # <CJK>
+<U80FE> \x8F\xD6\xA7 |0 # <CJK>
+<U8103> \x8F\xD6\xA8 |0 # <CJK>
+<U810B> \x8F\xD6\xA9 |0 # <CJK>
+<U8116> \x8F\xD6\xAA |0 # <CJK>
+<U8117> \x8F\xD6\xAB |0 # <CJK>
+<U8118> \x8F\xD6\xAC |0 # <CJK>
+<U811C> \x8F\xD6\xAD |0 # <CJK>
+<U811E> \x8F\xD6\xAE |0 # <CJK>
+<U8120> \x8F\xD6\xAF |0 # <CJK>
+<U8124> \x8F\xD6\xB0 |0 # <CJK>
+<U8127> \x8F\xD6\xB1 |0 # <CJK>
+<U812C> \x8F\xD6\xB2 |0 # <CJK>
+<U8130> \x8F\xD6\xB3 |0 # <CJK>
+<U8135> \x8F\xD6\xB4 |0 # <CJK>
+<U813A> \x8F\xD6\xB5 |0 # <CJK>
+<U813C> \x8F\xD6\xB6 |0 # <CJK>
+<U8145> \x8F\xD6\xB7 |0 # <CJK>
+<U8147> \x8F\xD6\xB8 |0 # <CJK>
+<U814A> \x8F\xD6\xB9 |0 # <CJK>
+<U814C> \x8F\xD6\xBA |0 # <CJK>
+<U8152> \x8F\xD6\xBB |0 # <CJK>
+<U8157> \x8F\xD6\xBC |0 # <CJK>
+<U8160> \x8F\xD6\xBD |0 # <CJK>
+<U8161> \x8F\xD6\xBE |0 # <CJK>
+<U8167> \x8F\xD6\xBF |0 # <CJK>
+<U8168> \x8F\xD6\xC0 |0 # <CJK>
+<U8169> \x8F\xD6\xC1 |0 # <CJK>
+<U816D> \x8F\xD6\xC2 |0 # <CJK>
+<U816F> \x8F\xD6\xC3 |0 # <CJK>
+<U8177> \x8F\xD6\xC4 |0 # <CJK>
+<U8181> \x8F\xD6\xC5 |0 # <CJK>
+<U8190> \x8F\xD6\xC6 |0 # <CJK>
+<U8184> \x8F\xD6\xC7 |0 # <CJK>
+<U8185> \x8F\xD6\xC8 |0 # <CJK>
+<U8186> \x8F\xD6\xC9 |0 # <CJK>
+<U818B> \x8F\xD6\xCA |0 # <CJK>
+<U818E> \x8F\xD6\xCB |0 # <CJK>
+<U8196> \x8F\xD6\xCC |0 # <CJK>
+<U8198> \x8F\xD6\xCD |0 # <CJK>
+<U819B> \x8F\xD6\xCE |0 # <CJK>
+<U819E> \x8F\xD6\xCF |0 # <CJK>
+<U81A2> \x8F\xD6\xD0 |0 # <CJK>
+<U81AE> \x8F\xD6\xD1 |0 # <CJK>
+<U81B2> \x8F\xD6\xD2 |0 # <CJK>
+<U81B4> \x8F\xD6\xD3 |0 # <CJK>
+<U81BB> \x8F\xD6\xD4 |0 # <CJK>
+<U81CB> \x8F\xD6\xD5 |0 # <CJK>
+<U81C3> \x8F\xD6\xD6 |0 # <CJK>
+<U81C5> \x8F\xD6\xD7 |0 # <CJK>
+<U81CA> \x8F\xD6\xD8 |0 # <CJK>
+<U81CE> \x8F\xD6\xD9 |0 # <CJK>
+<U81CF> \x8F\xD6\xDA |0 # <CJK>
+<U81D5> \x8F\xD6\xDB |0 # <CJK>
+<U81D7> \x8F\xD6\xDC |0 # <CJK>
+<U81DB> \x8F\xD6\xDD |0 # <CJK>
+<U81DD> \x8F\xD6\xDE |0 # <CJK>
+<U81DE> \x8F\xD6\xDF |0 # <CJK>
+<U81E1> \x8F\xD6\xE0 |0 # <CJK>
+<U81E4> \x8F\xD6\xE1 |0 # <CJK>
+<U81EB> \x8F\xD6\xE2 |0 # <CJK>
+<U81EC> \x8F\xD6\xE3 |0 # <CJK>
+<U81F0> \x8F\xD6\xE4 |0 # <CJK>
+<U81F1> \x8F\xD6\xE5 |0 # <CJK>
+<U81F2> \x8F\xD6\xE6 |0 # <CJK>
+<U81F5> \x8F\xD6\xE7 |0 # <CJK>
+<U81F6> \x8F\xD6\xE8 |0 # <CJK>
+<U81F8> \x8F\xD6\xE9 |0 # <CJK>
+<U81F9> \x8F\xD6\xEA |0 # <CJK>
+<U81FD> \x8F\xD6\xEB |0 # <CJK>
+<U81FF> \x8F\xD6\xEC |0 # <CJK>
+<U8200> \x8F\xD6\xED |0 # <CJK>
+<U8203> \x8F\xD6\xEE |0 # <CJK>
+<U820F> \x8F\xD6\xEF |0 # <CJK>
+<U8213> \x8F\xD6\xF0 |0 # <CJK>
+<U8214> \x8F\xD6\xF1 |0 # <CJK>
+<U8219> \x8F\xD6\xF2 |0 # <CJK>
+<U821A> \x8F\xD6\xF3 |0 # <CJK>
+<U821D> \x8F\xD6\xF4 |0 # <CJK>
+<U8221> \x8F\xD6\xF5 |0 # <CJK>
+<U8222> \x8F\xD6\xF6 |0 # <CJK>
+<U8228> \x8F\xD6\xF7 |0 # <CJK>
+<U8232> \x8F\xD6\xF8 |0 # <CJK>
+<U8234> \x8F\xD6\xF9 |0 # <CJK>
+<U823A> \x8F\xD6\xFA |0 # <CJK>
+<U8243> \x8F\xD6\xFB |0 # <CJK>
+<U8244> \x8F\xD6\xFC |0 # <CJK>
+<U8245> \x8F\xD6\xFD |0 # <CJK>
+<U8246> \x8F\xD6\xFE |0 # <CJK>
+<U824B> \x8F\xD7\xA1 |0 # <CJK>
+<U824E> \x8F\xD7\xA2 |0 # <CJK>
+<U824F> \x8F\xD7\xA3 |0 # <CJK>
+<U8251> \x8F\xD7\xA4 |0 # <CJK>
+<U8256> \x8F\xD7\xA5 |0 # <CJK>
+<U825C> \x8F\xD7\xA6 |0 # <CJK>
+<U8260> \x8F\xD7\xA7 |0 # <CJK>
+<U8263> \x8F\xD7\xA8 |0 # <CJK>
+<U8267> \x8F\xD7\xA9 |0 # <CJK>
+<U826D> \x8F\xD7\xAA |0 # <CJK>
+<U8274> \x8F\xD7\xAB |0 # <CJK>
+<U827B> \x8F\xD7\xAC |0 # <CJK>
+<U827D> \x8F\xD7\xAD |0 # <CJK>
+<U827F> \x8F\xD7\xAE |0 # <CJK>
+<U8280> \x8F\xD7\xAF |0 # <CJK>
+<U8281> \x8F\xD7\xB0 |0 # <CJK>
+<U8283> \x8F\xD7\xB1 |0 # <CJK>
+<U8284> \x8F\xD7\xB2 |0 # <CJK>
+<U8287> \x8F\xD7\xB3 |0 # <CJK>
+<U8289> \x8F\xD7\xB4 |0 # <CJK>
+<U828A> \x8F\xD7\xB5 |0 # <CJK>
+<U828E> \x8F\xD7\xB6 |0 # <CJK>
+<U8291> \x8F\xD7\xB7 |0 # <CJK>
+<U8294> \x8F\xD7\xB8 |0 # <CJK>
+<U8296> \x8F\xD7\xB9 |0 # <CJK>
+<U8298> \x8F\xD7\xBA |0 # <CJK>
+<U829A> \x8F\xD7\xBB |0 # <CJK>
+<U829B> \x8F\xD7\xBC |0 # <CJK>
+<U82A0> \x8F\xD7\xBD |0 # <CJK>
+<U82A1> \x8F\xD7\xBE |0 # <CJK>
+<U82A3> \x8F\xD7\xBF |0 # <CJK>
+<U82A4> \x8F\xD7\xC0 |0 # <CJK>
+<U82A7> \x8F\xD7\xC1 |0 # <CJK>
+<U82A8> \x8F\xD7\xC2 |0 # <CJK>
+<U82A9> \x8F\xD7\xC3 |0 # <CJK>
+<U82AA> \x8F\xD7\xC4 |0 # <CJK>
+<U82AE> \x8F\xD7\xC5 |0 # <CJK>
+<U82B0> \x8F\xD7\xC6 |0 # <CJK>
+<U82B2> \x8F\xD7\xC7 |0 # <CJK>
+<U82B4> \x8F\xD7\xC8 |0 # <CJK>
+<U82B7> \x8F\xD7\xC9 |0 # <CJK>
+<U82BA> \x8F\xD7\xCA |0 # <CJK>
+<U82BC> \x8F\xD7\xCB |0 # <CJK>
+<U82BE> \x8F\xD7\xCC |0 # <CJK>
+<U82BF> \x8F\xD7\xCD |0 # <CJK>
+<U82C6> \x8F\xD7\xCE |0 # <CJK>
+<U82D0> \x8F\xD7\xCF |0 # <CJK>
+<U82D5> \x8F\xD7\xD0 |0 # <CJK>
+<U82DA> \x8F\xD7\xD1 |0 # <CJK>
+<U82E0> \x8F\xD7\xD2 |0 # <CJK>
+<U82E2> \x8F\xD7\xD3 |0 # <CJK>
+<U82E4> \x8F\xD7\xD4 |0 # <CJK>
+<U82E8> \x8F\xD7\xD5 |0 # <CJK>
+<U82EA> \x8F\xD7\xD6 |0 # <CJK>
+<U82ED> \x8F\xD7\xD7 |0 # <CJK>
+<U82EF> \x8F\xD7\xD8 |0 # <CJK>
+<U82F6> \x8F\xD7\xD9 |0 # <CJK>
+<U82F7> \x8F\xD7\xDA |0 # <CJK>
+<U82FD> \x8F\xD7\xDB |0 # <CJK>
+<U82FE> \x8F\xD7\xDC |0 # <CJK>
+<U8300> \x8F\xD7\xDD |0 # <CJK>
+<U8301> \x8F\xD7\xDE |0 # <CJK>
+<U8307> \x8F\xD7\xDF |0 # <CJK>
+<U8308> \x8F\xD7\xE0 |0 # <CJK>
+<U830A> \x8F\xD7\xE1 |0 # <CJK>
+<U830B> \x8F\xD7\xE2 |0 # <CJK>
+<U8354> \x8F\xD7\xE3 |0 # <CJK>
+<U831B> \x8F\xD7\xE4 |0 # <CJK>
+<U831D> \x8F\xD7\xE5 |0 # <CJK>
+<U831E> \x8F\xD7\xE6 |0 # <CJK>
+<U831F> \x8F\xD7\xE7 |0 # <CJK>
+<U8321> \x8F\xD7\xE8 |0 # <CJK>
+<U8322> \x8F\xD7\xE9 |0 # <CJK>
+<U832C> \x8F\xD7\xEA |0 # <CJK>
+<U832D> \x8F\xD7\xEB |0 # <CJK>
+<U832E> \x8F\xD7\xEC |0 # <CJK>
+<U8330> \x8F\xD7\xED |0 # <CJK>
+<U8333> \x8F\xD7\xEE |0 # <CJK>
+<U8337> \x8F\xD7\xEF |0 # <CJK>
+<U833A> \x8F\xD7\xF0 |0 # <CJK>
+<U833C> \x8F\xD7\xF1 |0 # <CJK>
+<U833D> \x8F\xD7\xF2 |0 # <CJK>
+<U8342> \x8F\xD7\xF3 |0 # <CJK>
+<U8343> \x8F\xD7\xF4 |0 # <CJK>
+<U8344> \x8F\xD7\xF5 |0 # <CJK>
+<U8347> \x8F\xD7\xF6 |0 # <CJK>
+<U834D> \x8F\xD7\xF7 |0 # <CJK>
+<U834E> \x8F\xD7\xF8 |0 # <CJK>
+<U8351> \x8F\xD7\xF9 |0 # <CJK>
+<U8355> \x8F\xD7\xFA |0 # <CJK>
+<U8356> \x8F\xD7\xFB |0 # <CJK>
+<U8357> \x8F\xD7\xFC |0 # <CJK>
+<U8370> \x8F\xD7\xFD |0 # <CJK>
+<U8378> \x8F\xD7\xFE |0 # <CJK>
+<U837D> \x8F\xD8\xA1 |0 # <CJK>
+<U837F> \x8F\xD8\xA2 |0 # <CJK>
+<U8380> \x8F\xD8\xA3 |0 # <CJK>
+<U8382> \x8F\xD8\xA4 |0 # <CJK>
+<U8384> \x8F\xD8\xA5 |0 # <CJK>
+<U8386> \x8F\xD8\xA6 |0 # <CJK>
+<U838D> \x8F\xD8\xA7 |0 # <CJK>
+<U8392> \x8F\xD8\xA8 |0 # <CJK>
+<U8394> \x8F\xD8\xA9 |0 # <CJK>
+<U8395> \x8F\xD8\xAA |0 # <CJK>
+<U8398> \x8F\xD8\xAB |0 # <CJK>
+<U8399> \x8F\xD8\xAC |0 # <CJK>
+<U839B> \x8F\xD8\xAD |0 # <CJK>
+<U839C> \x8F\xD8\xAE |0 # <CJK>
+<U839D> \x8F\xD8\xAF |0 # <CJK>
+<U83A6> \x8F\xD8\xB0 |0 # <CJK>
+<U83A7> \x8F\xD8\xB1 |0 # <CJK>
+<U83A9> \x8F\xD8\xB2 |0 # <CJK>
+<U83AC> \x8F\xD8\xB3 |0 # <CJK>
+<U83BE> \x8F\xD8\xB4 |0 # <CJK>
+<U83BF> \x8F\xD8\xB5 |0 # <CJK>
+<U83C0> \x8F\xD8\xB6 |0 # <CJK>
+<U83C7> \x8F\xD8\xB7 |0 # <CJK>
+<U83C9> \x8F\xD8\xB8 |0 # <CJK>
+<U83CF> \x8F\xD8\xB9 |0 # <CJK>
+<U83D0> \x8F\xD8\xBA |0 # <CJK>
+<U83D1> \x8F\xD8\xBB |0 # <CJK>
+<U83D4> \x8F\xD8\xBC |0 # <CJK>
+<U83DD> \x8F\xD8\xBD |0 # <CJK>
+<U8353> \x8F\xD8\xBE |0 # <CJK>
+<U83E8> \x8F\xD8\xBF |0 # <CJK>
+<U83EA> \x8F\xD8\xC0 |0 # <CJK>
+<U83F6> \x8F\xD8\xC1 |0 # <CJK>
+<U83F8> \x8F\xD8\xC2 |0 # <CJK>
+<U83F9> \x8F\xD8\xC3 |0 # <CJK>
+<U83FC> \x8F\xD8\xC4 |0 # <CJK>
+<U8401> \x8F\xD8\xC5 |0 # <CJK>
+<U8406> \x8F\xD8\xC6 |0 # <CJK>
+<U840A> \x8F\xD8\xC7 |0 # <CJK>
+<U840F> \x8F\xD8\xC8 |0 # <CJK>
+<U8411> \x8F\xD8\xC9 |0 # <CJK>
+<U8415> \x8F\xD8\xCA |0 # <CJK>
+<U8419> \x8F\xD8\xCB |0 # <CJK>
+<U83AD> \x8F\xD8\xCC |0 # <CJK>
+<U842F> \x8F\xD8\xCD |0 # <CJK>
+<U8439> \x8F\xD8\xCE |0 # <CJK>
+<U8445> \x8F\xD8\xCF |0 # <CJK>
+<U8447> \x8F\xD8\xD0 |0 # <CJK>
+<U8448> \x8F\xD8\xD1 |0 # <CJK>
+<U844A> \x8F\xD8\xD2 |0 # <CJK>
+<U844D> \x8F\xD8\xD3 |0 # <CJK>
+<U844F> \x8F\xD8\xD4 |0 # <CJK>
+<U8451> \x8F\xD8\xD5 |0 # <CJK>
+<U8452> \x8F\xD8\xD6 |0 # <CJK>
+<U8456> \x8F\xD8\xD7 |0 # <CJK>
+<U8458> \x8F\xD8\xD8 |0 # <CJK>
+<U8459> \x8F\xD8\xD9 |0 # <CJK>
+<U845A> \x8F\xD8\xDA |0 # <CJK>
+<U845C> \x8F\xD8\xDB |0 # <CJK>
+<U8460> \x8F\xD8\xDC |0 # <CJK>
+<U8464> \x8F\xD8\xDD |0 # <CJK>
+<U8465> \x8F\xD8\xDE |0 # <CJK>
+<U8467> \x8F\xD8\xDF |0 # <CJK>
+<U846A> \x8F\xD8\xE0 |0 # <CJK>
+<U8470> \x8F\xD8\xE1 |0 # <CJK>
+<U8473> \x8F\xD8\xE2 |0 # <CJK>
+<U8474> \x8F\xD8\xE3 |0 # <CJK>
+<U8476> \x8F\xD8\xE4 |0 # <CJK>
+<U8478> \x8F\xD8\xE5 |0 # <CJK>
+<U847C> \x8F\xD8\xE6 |0 # <CJK>
+<U847D> \x8F\xD8\xE7 |0 # <CJK>
+<U8481> \x8F\xD8\xE8 |0 # <CJK>
+<U8485> \x8F\xD8\xE9 |0 # <CJK>
+<U8492> \x8F\xD8\xEA |0 # <CJK>
+<U8493> \x8F\xD8\xEB |0 # <CJK>
+<U8495> \x8F\xD8\xEC |0 # <CJK>
+<U849E> \x8F\xD8\xED |0 # <CJK>
+<U84A6> \x8F\xD8\xEE |0 # <CJK>
+<U84A8> \x8F\xD8\xEF |0 # <CJK>
+<U84A9> \x8F\xD8\xF0 |0 # <CJK>
+<U84AA> \x8F\xD8\xF1 |0 # <CJK>
+<U84AF> \x8F\xD8\xF2 |0 # <CJK>
+<U84B1> \x8F\xD8\xF3 |0 # <CJK>
+<U84B4> \x8F\xD8\xF4 |0 # <CJK>
+<U84BA> \x8F\xD8\xF5 |0 # <CJK>
+<U84BD> \x8F\xD8\xF6 |0 # <CJK>
+<U84BE> \x8F\xD8\xF7 |0 # <CJK>
+<U84C0> \x8F\xD8\xF8 |0 # <CJK>
+<U84C2> \x8F\xD8\xF9 |0 # <CJK>
+<U84C7> \x8F\xD8\xFA |0 # <CJK>
+<U84C8> \x8F\xD8\xFB |0 # <CJK>
+<U84CC> \x8F\xD8\xFC |0 # <CJK>
+<U84CF> \x8F\xD8\xFD |0 # <CJK>
+<U84D3> \x8F\xD8\xFE |0 # <CJK>
+<U84DC> \x8F\xD9\xA1 |0 # <CJK>
+<U84E7> \x8F\xD9\xA2 |0 # <CJK>
+<U84EA> \x8F\xD9\xA3 |0 # <CJK>
+<U84EF> \x8F\xD9\xA4 |0 # <CJK>
+<U84F0> \x8F\xD9\xA5 |0 # <CJK>
+<U84F1> \x8F\xD9\xA6 |0 # <CJK>
+<U84F2> \x8F\xD9\xA7 |0 # <CJK>
+<U84F7> \x8F\xD9\xA8 |0 # <CJK>
+<U8532> \x8F\xD9\xA9 |0 # <CJK>
+<U84FA> \x8F\xD9\xAA |0 # <CJK>
+<U84FB> \x8F\xD9\xAB |0 # <CJK>
+<U84FD> \x8F\xD9\xAC |0 # <CJK>
+<U8502> \x8F\xD9\xAD |0 # <CJK>
+<U8503> \x8F\xD9\xAE |0 # <CJK>
+<U8507> \x8F\xD9\xAF |0 # <CJK>
+<U850C> \x8F\xD9\xB0 |0 # <CJK>
+<U850E> \x8F\xD9\xB1 |0 # <CJK>
+<U8510> \x8F\xD9\xB2 |0 # <CJK>
+<U851C> \x8F\xD9\xB3 |0 # <CJK>
+<U851E> \x8F\xD9\xB4 |0 # <CJK>
+<U8522> \x8F\xD9\xB5 |0 # <CJK>
+<U8523> \x8F\xD9\xB6 |0 # <CJK>
+<U8524> \x8F\xD9\xB7 |0 # <CJK>
+<U8525> \x8F\xD9\xB8 |0 # <CJK>
+<U8527> \x8F\xD9\xB9 |0 # <CJK>
+<U852A> \x8F\xD9\xBA |0 # <CJK>
+<U852B> \x8F\xD9\xBB |0 # <CJK>
+<U852F> \x8F\xD9\xBC |0 # <CJK>
+<U8533> \x8F\xD9\xBD |0 # <CJK>
+<U8534> \x8F\xD9\xBE |0 # <CJK>
+<U8536> \x8F\xD9\xBF |0 # <CJK>
+<U853F> \x8F\xD9\xC0 |0 # <CJK>
+<U8546> \x8F\xD9\xC1 |0 # <CJK>
+<U854F> \x8F\xD9\xC2 |0 # <CJK>
+<U8550> \x8F\xD9\xC3 |0 # <CJK>
+<U8551> \x8F\xD9\xC4 |0 # <CJK>
+<U8552> \x8F\xD9\xC5 |0 # <CJK>
+<U8553> \x8F\xD9\xC6 |0 # <CJK>
+<U8556> \x8F\xD9\xC7 |0 # <CJK>
+<U8559> \x8F\xD9\xC8 |0 # <CJK>
+<U855C> \x8F\xD9\xC9 |0 # <CJK>
+<U855D> \x8F\xD9\xCA |0 # <CJK>
+<U855E> \x8F\xD9\xCB |0 # <CJK>
+<U855F> \x8F\xD9\xCC |0 # <CJK>
+<U8560> \x8F\xD9\xCD |0 # <CJK>
+<U8561> \x8F\xD9\xCE |0 # <CJK>
+<U8562> \x8F\xD9\xCF |0 # <CJK>
+<U8564> \x8F\xD9\xD0 |0 # <CJK>
+<U856B> \x8F\xD9\xD1 |0 # <CJK>
+<U856F> \x8F\xD9\xD2 |0 # <CJK>
+<U8579> \x8F\xD9\xD3 |0 # <CJK>
+<U857A> \x8F\xD9\xD4 |0 # <CJK>
+<U857B> \x8F\xD9\xD5 |0 # <CJK>
+<U857D> \x8F\xD9\xD6 |0 # <CJK>
+<U857F> \x8F\xD9\xD7 |0 # <CJK>
+<U8581> \x8F\xD9\xD8 |0 # <CJK>
+<U8585> \x8F\xD9\xD9 |0 # <CJK>
+<U8586> \x8F\xD9\xDA |0 # <CJK>
+<U8589> \x8F\xD9\xDB |0 # <CJK>
+<U858B> \x8F\xD9\xDC |0 # <CJK>
+<U858C> \x8F\xD9\xDD |0 # <CJK>
+<U858F> \x8F\xD9\xDE |0 # <CJK>
+<U8593> \x8F\xD9\xDF |0 # <CJK>
+<U8598> \x8F\xD9\xE0 |0 # <CJK>
+<U859D> \x8F\xD9\xE1 |0 # <CJK>
+<U859F> \x8F\xD9\xE2 |0 # <CJK>
+<U85A0> \x8F\xD9\xE3 |0 # <CJK>
+<U85A2> \x8F\xD9\xE4 |0 # <CJK>
+<U85A5> \x8F\xD9\xE5 |0 # <CJK>
+<U85A7> \x8F\xD9\xE6 |0 # <CJK>
+<U85B4> \x8F\xD9\xE7 |0 # <CJK>
+<U85B6> \x8F\xD9\xE8 |0 # <CJK>
+<U85B7> \x8F\xD9\xE9 |0 # <CJK>
+<U85B8> \x8F\xD9\xEA |0 # <CJK>
+<U85BC> \x8F\xD9\xEB |0 # <CJK>
+<U85BD> \x8F\xD9\xEC |0 # <CJK>
+<U85BE> \x8F\xD9\xED |0 # <CJK>
+<U85BF> \x8F\xD9\xEE |0 # <CJK>
+<U85C2> \x8F\xD9\xEF |0 # <CJK>
+<U85C7> \x8F\xD9\xF0 |0 # <CJK>
+<U85CA> \x8F\xD9\xF1 |0 # <CJK>
+<U85CB> \x8F\xD9\xF2 |0 # <CJK>
+<U85CE> \x8F\xD9\xF3 |0 # <CJK>
+<U85AD> \x8F\xD9\xF4 |0 # <CJK>
+<U85D8> \x8F\xD9\xF5 |0 # <CJK>
+<U85DA> \x8F\xD9\xF6 |0 # <CJK>
+<U85DF> \x8F\xD9\xF7 |0 # <CJK>
+<U85E0> \x8F\xD9\xF8 |0 # <CJK>
+<U85E6> \x8F\xD9\xF9 |0 # <CJK>
+<U85E8> \x8F\xD9\xFA |0 # <CJK>
+<U85ED> \x8F\xD9\xFB |0 # <CJK>
+<U85F3> \x8F\xD9\xFC |0 # <CJK>
+<U85F6> \x8F\xD9\xFD |0 # <CJK>
+<U85FC> \x8F\xD9\xFE |0 # <CJK>
+<U85FF> \x8F\xDA\xA1 |0 # <CJK>
+<U8600> \x8F\xDA\xA2 |0 # <CJK>
+<U8604> \x8F\xDA\xA3 |0 # <CJK>
+<U8605> \x8F\xDA\xA4 |0 # <CJK>
+<U860D> \x8F\xDA\xA5 |0 # <CJK>
+<U860E> \x8F\xDA\xA6 |0 # <CJK>
+<U8610> \x8F\xDA\xA7 |0 # <CJK>
+<U8611> \x8F\xDA\xA8 |0 # <CJK>
+<U8612> \x8F\xDA\xA9 |0 # <CJK>
+<U8618> \x8F\xDA\xAA |0 # <CJK>
+<U8619> \x8F\xDA\xAB |0 # <CJK>
+<U861B> \x8F\xDA\xAC |0 # <CJK>
+<U861E> \x8F\xDA\xAD |0 # <CJK>
+<U8621> \x8F\xDA\xAE |0 # <CJK>
+<U8627> \x8F\xDA\xAF |0 # <CJK>
+<U8629> \x8F\xDA\xB0 |0 # <CJK>
+<U8636> \x8F\xDA\xB1 |0 # <CJK>
+<U8638> \x8F\xDA\xB2 |0 # <CJK>
+<U863A> \x8F\xDA\xB3 |0 # <CJK>
+<U863C> \x8F\xDA\xB4 |0 # <CJK>
+<U863D> \x8F\xDA\xB5 |0 # <CJK>
+<U8640> \x8F\xDA\xB6 |0 # <CJK>
+<U8642> \x8F\xDA\xB7 |0 # <CJK>
+<U8646> \x8F\xDA\xB8 |0 # <CJK>
+<U8652> \x8F\xDA\xB9 |0 # <CJK>
+<U8653> \x8F\xDA\xBA |0 # <CJK>
+<U8656> \x8F\xDA\xBB |0 # <CJK>
+<U8657> \x8F\xDA\xBC |0 # <CJK>
+<U8658> \x8F\xDA\xBD |0 # <CJK>
+<U8659> \x8F\xDA\xBE |0 # <CJK>
+<U865D> \x8F\xDA\xBF |0 # <CJK>
+<U8660> \x8F\xDA\xC0 |0 # <CJK>
+<U8661> \x8F\xDA\xC1 |0 # <CJK>
+<U8662> \x8F\xDA\xC2 |0 # <CJK>
+<U8663> \x8F\xDA\xC3 |0 # <CJK>
+<U8664> \x8F\xDA\xC4 |0 # <CJK>
+<U8669> \x8F\xDA\xC5 |0 # <CJK>
+<U866C> \x8F\xDA\xC6 |0 # <CJK>
+<U866F> \x8F\xDA\xC7 |0 # <CJK>
+<U8675> \x8F\xDA\xC8 |0 # <CJK>
+<U8676> \x8F\xDA\xC9 |0 # <CJK>
+<U8677> \x8F\xDA\xCA |0 # <CJK>
+<U867A> \x8F\xDA\xCB |0 # <CJK>
+<U868D> \x8F\xDA\xCC |0 # <CJK>
+<U8691> \x8F\xDA\xCD |0 # <CJK>
+<U8696> \x8F\xDA\xCE |0 # <CJK>
+<U8698> \x8F\xDA\xCF |0 # <CJK>
+<U869A> \x8F\xDA\xD0 |0 # <CJK>
+<U869C> \x8F\xDA\xD1 |0 # <CJK>
+<U86A1> \x8F\xDA\xD2 |0 # <CJK>
+<U86A6> \x8F\xDA\xD3 |0 # <CJK>
+<U86A7> \x8F\xDA\xD4 |0 # <CJK>
+<U86A8> \x8F\xDA\xD5 |0 # <CJK>
+<U86AD> \x8F\xDA\xD6 |0 # <CJK>
+<U86B1> \x8F\xDA\xD7 |0 # <CJK>
+<U86B3> \x8F\xDA\xD8 |0 # <CJK>
+<U86B4> \x8F\xDA\xD9 |0 # <CJK>
+<U86B5> \x8F\xDA\xDA |0 # <CJK>
+<U86B7> \x8F\xDA\xDB |0 # <CJK>
+<U86B8> \x8F\xDA\xDC |0 # <CJK>
+<U86B9> \x8F\xDA\xDD |0 # <CJK>
+<U86BF> \x8F\xDA\xDE |0 # <CJK>
+<U86C0> \x8F\xDA\xDF |0 # <CJK>
+<U86C1> \x8F\xDA\xE0 |0 # <CJK>
+<U86C3> \x8F\xDA\xE1 |0 # <CJK>
+<U86C5> \x8F\xDA\xE2 |0 # <CJK>
+<U86D1> \x8F\xDA\xE3 |0 # <CJK>
+<U86D2> \x8F\xDA\xE4 |0 # <CJK>
+<U86D5> \x8F\xDA\xE5 |0 # <CJK>
+<U86D7> \x8F\xDA\xE6 |0 # <CJK>
+<U86DA> \x8F\xDA\xE7 |0 # <CJK>
+<U86DC> \x8F\xDA\xE8 |0 # <CJK>
+<U86E0> \x8F\xDA\xE9 |0 # <CJK>
+<U86E3> \x8F\xDA\xEA |0 # <CJK>
+<U86E5> \x8F\xDA\xEB |0 # <CJK>
+<U86E7> \x8F\xDA\xEC |0 # <CJK>
+<U8688> \x8F\xDA\xED |0 # <CJK>
+<U86FA> \x8F\xDA\xEE |0 # <CJK>
+<U86FC> \x8F\xDA\xEF |0 # <CJK>
+<U86FD> \x8F\xDA\xF0 |0 # <CJK>
+<U8704> \x8F\xDA\xF1 |0 # <CJK>
+<U8705> \x8F\xDA\xF2 |0 # <CJK>
+<U8707> \x8F\xDA\xF3 |0 # <CJK>
+<U870B> \x8F\xDA\xF4 |0 # <CJK>
+<U870E> \x8F\xDA\xF5 |0 # <CJK>
+<U870F> \x8F\xDA\xF6 |0 # <CJK>
+<U8710> \x8F\xDA\xF7 |0 # <CJK>
+<U8713> \x8F\xDA\xF8 |0 # <CJK>
+<U8714> \x8F\xDA\xF9 |0 # <CJK>
+<U8719> \x8F\xDA\xFA |0 # <CJK>
+<U871E> \x8F\xDA\xFB |0 # <CJK>
+<U871F> \x8F\xDA\xFC |0 # <CJK>
+<U8721> \x8F\xDA\xFD |0 # <CJK>
+<U8723> \x8F\xDA\xFE |0 # <CJK>
+<U8728> \x8F\xDB\xA1 |0 # <CJK>
+<U872E> \x8F\xDB\xA2 |0 # <CJK>
+<U872F> \x8F\xDB\xA3 |0 # <CJK>
+<U8731> \x8F\xDB\xA4 |0 # <CJK>
+<U8732> \x8F\xDB\xA5 |0 # <CJK>
+<U8739> \x8F\xDB\xA6 |0 # <CJK>
+<U873A> \x8F\xDB\xA7 |0 # <CJK>
+<U873C> \x8F\xDB\xA8 |0 # <CJK>
+<U873D> \x8F\xDB\xA9 |0 # <CJK>
+<U873E> \x8F\xDB\xAA |0 # <CJK>
+<U8740> \x8F\xDB\xAB |0 # <CJK>
+<U8743> \x8F\xDB\xAC |0 # <CJK>
+<U8745> \x8F\xDB\xAD |0 # <CJK>
+<U874D> \x8F\xDB\xAE |0 # <CJK>
+<U8758> \x8F\xDB\xAF |0 # <CJK>
+<U875D> \x8F\xDB\xB0 |0 # <CJK>
+<U8761> \x8F\xDB\xB1 |0 # <CJK>
+<U8764> \x8F\xDB\xB2 |0 # <CJK>
+<U8765> \x8F\xDB\xB3 |0 # <CJK>
+<U876F> \x8F\xDB\xB4 |0 # <CJK>
+<U8771> \x8F\xDB\xB5 |0 # <CJK>
+<U8772> \x8F\xDB\xB6 |0 # <CJK>
+<U877B> \x8F\xDB\xB7 |0 # <CJK>
+<U8783> \x8F\xDB\xB8 |0 # <CJK>
+<U8784> \x8F\xDB\xB9 |0 # <CJK>
+<U8785> \x8F\xDB\xBA |0 # <CJK>
+<U8786> \x8F\xDB\xBB |0 # <CJK>
+<U8787> \x8F\xDB\xBC |0 # <CJK>
+<U8788> \x8F\xDB\xBD |0 # <CJK>
+<U8789> \x8F\xDB\xBE |0 # <CJK>
+<U878B> \x8F\xDB\xBF |0 # <CJK>
+<U878C> \x8F\xDB\xC0 |0 # <CJK>
+<U8790> \x8F\xDB\xC1 |0 # <CJK>
+<U8793> \x8F\xDB\xC2 |0 # <CJK>
+<U8795> \x8F\xDB\xC3 |0 # <CJK>
+<U8797> \x8F\xDB\xC4 |0 # <CJK>
+<U8798> \x8F\xDB\xC5 |0 # <CJK>
+<U8799> \x8F\xDB\xC6 |0 # <CJK>
+<U879E> \x8F\xDB\xC7 |0 # <CJK>
+<U87A0> \x8F\xDB\xC8 |0 # <CJK>
+<U87A3> \x8F\xDB\xC9 |0 # <CJK>
+<U87A7> \x8F\xDB\xCA |0 # <CJK>
+<U87AC> \x8F\xDB\xCB |0 # <CJK>
+<U87AD> \x8F\xDB\xCC |0 # <CJK>
+<U87AE> \x8F\xDB\xCD |0 # <CJK>
+<U87B1> \x8F\xDB\xCE |0 # <CJK>
+<U87B5> \x8F\xDB\xCF |0 # <CJK>
+<U87BE> \x8F\xDB\xD0 |0 # <CJK>
+<U87BF> \x8F\xDB\xD1 |0 # <CJK>
+<U87C1> \x8F\xDB\xD2 |0 # <CJK>
+<U87C8> \x8F\xDB\xD3 |0 # <CJK>
+<U87C9> \x8F\xDB\xD4 |0 # <CJK>
+<U87CA> \x8F\xDB\xD5 |0 # <CJK>
+<U87CE> \x8F\xDB\xD6 |0 # <CJK>
+<U87D5> \x8F\xDB\xD7 |0 # <CJK>
+<U87D6> \x8F\xDB\xD8 |0 # <CJK>
+<U87D9> \x8F\xDB\xD9 |0 # <CJK>
+<U87DA> \x8F\xDB\xDA |0 # <CJK>
+<U87DC> \x8F\xDB\xDB |0 # <CJK>
+<U87DF> \x8F\xDB\xDC |0 # <CJK>
+<U87E2> \x8F\xDB\xDD |0 # <CJK>
+<U87E3> \x8F\xDB\xDE |0 # <CJK>
+<U87E4> \x8F\xDB\xDF |0 # <CJK>
+<U87EA> \x8F\xDB\xE0 |0 # <CJK>
+<U87EB> \x8F\xDB\xE1 |0 # <CJK>
+<U87ED> \x8F\xDB\xE2 |0 # <CJK>
+<U87F1> \x8F\xDB\xE3 |0 # <CJK>
+<U87F3> \x8F\xDB\xE4 |0 # <CJK>
+<U87F8> \x8F\xDB\xE5 |0 # <CJK>
+<U87FA> \x8F\xDB\xE6 |0 # <CJK>
+<U87FF> \x8F\xDB\xE7 |0 # <CJK>
+<U8801> \x8F\xDB\xE8 |0 # <CJK>
+<U8803> \x8F\xDB\xE9 |0 # <CJK>
+<U8806> \x8F\xDB\xEA |0 # <CJK>
+<U8809> \x8F\xDB\xEB |0 # <CJK>
+<U880A> \x8F\xDB\xEC |0 # <CJK>
+<U880B> \x8F\xDB\xED |0 # <CJK>
+<U8810> \x8F\xDB\xEE |0 # <CJK>
+<U8819> \x8F\xDB\xEF |0 # <CJK>
+<U8812> \x8F\xDB\xF0 |0 # <CJK>
+<U8813> \x8F\xDB\xF1 |0 # <CJK>
+<U8814> \x8F\xDB\xF2 |0 # <CJK>
+<U8818> \x8F\xDB\xF3 |0 # <CJK>
+<U881A> \x8F\xDB\xF4 |0 # <CJK>
+<U881B> \x8F\xDB\xF5 |0 # <CJK>
+<U881C> \x8F\xDB\xF6 |0 # <CJK>
+<U881E> \x8F\xDB\xF7 |0 # <CJK>
+<U881F> \x8F\xDB\xF8 |0 # <CJK>
+<U8828> \x8F\xDB\xF9 |0 # <CJK>
+<U882D> \x8F\xDB\xFA |0 # <CJK>
+<U882E> \x8F\xDB\xFB |0 # <CJK>
+<U8830> \x8F\xDB\xFC |0 # <CJK>
+<U8832> \x8F\xDB\xFD |0 # <CJK>
+<U8835> \x8F\xDB\xFE |0 # <CJK>
+<U883A> \x8F\xDC\xA1 |0 # <CJK>
+<U883C> \x8F\xDC\xA2 |0 # <CJK>
+<U8841> \x8F\xDC\xA3 |0 # <CJK>
+<U8843> \x8F\xDC\xA4 |0 # <CJK>
+<U8845> \x8F\xDC\xA5 |0 # <CJK>
+<U8848> \x8F\xDC\xA6 |0 # <CJK>
+<U8849> \x8F\xDC\xA7 |0 # <CJK>
+<U884A> \x8F\xDC\xA8 |0 # <CJK>
+<U884B> \x8F\xDC\xA9 |0 # <CJK>
+<U884E> \x8F\xDC\xAA |0 # <CJK>
+<U8851> \x8F\xDC\xAB |0 # <CJK>
+<U8855> \x8F\xDC\xAC |0 # <CJK>
+<U8856> \x8F\xDC\xAD |0 # <CJK>
+<U8858> \x8F\xDC\xAE |0 # <CJK>
+<U885A> \x8F\xDC\xAF |0 # <CJK>
+<U885C> \x8F\xDC\xB0 |0 # <CJK>
+<U885F> \x8F\xDC\xB1 |0 # <CJK>
+<U8860> \x8F\xDC\xB2 |0 # <CJK>
+<U8864> \x8F\xDC\xB3 |0 # <CJK>
+<U8869> \x8F\xDC\xB4 |0 # <CJK>
+<U8871> \x8F\xDC\xB5 |0 # <CJK>
+<U8879> \x8F\xDC\xB6 |0 # <CJK>
+<U887B> \x8F\xDC\xB7 |0 # <CJK>
+<U8880> \x8F\xDC\xB8 |0 # <CJK>
+<U8898> \x8F\xDC\xB9 |0 # <CJK>
+<U889A> \x8F\xDC\xBA |0 # <CJK>
+<U889B> \x8F\xDC\xBB |0 # <CJK>
+<U889C> \x8F\xDC\xBC |0 # <CJK>
+<U889F> \x8F\xDC\xBD |0 # <CJK>
+<U88A0> \x8F\xDC\xBE |0 # <CJK>
+<U88A8> \x8F\xDC\xBF |0 # <CJK>
+<U88AA> \x8F\xDC\xC0 |0 # <CJK>
+<U88BA> \x8F\xDC\xC1 |0 # <CJK>
+<U88BD> \x8F\xDC\xC2 |0 # <CJK>
+<U88BE> \x8F\xDC\xC3 |0 # <CJK>
+<U88C0> \x8F\xDC\xC4 |0 # <CJK>
+<U88CA> \x8F\xDC\xC5 |0 # <CJK>
+<U88CB> \x8F\xDC\xC6 |0 # <CJK>
+<U88CC> \x8F\xDC\xC7 |0 # <CJK>
+<U88CD> \x8F\xDC\xC8 |0 # <CJK>
+<U88CE> \x8F\xDC\xC9 |0 # <CJK>
+<U88D1> \x8F\xDC\xCA |0 # <CJK>
+<U88D2> \x8F\xDC\xCB |0 # <CJK>
+<U88D3> \x8F\xDC\xCC |0 # <CJK>
+<U88DB> \x8F\xDC\xCD |0 # <CJK>
+<U88DE> \x8F\xDC\xCE |0 # <CJK>
+<U88E7> \x8F\xDC\xCF |0 # <CJK>
+<U88EF> \x8F\xDC\xD0 |0 # <CJK>
+<U88F0> \x8F\xDC\xD1 |0 # <CJK>
+<U88F1> \x8F\xDC\xD2 |0 # <CJK>
+<U88F5> \x8F\xDC\xD3 |0 # <CJK>
+<U88F7> \x8F\xDC\xD4 |0 # <CJK>
+<U8901> \x8F\xDC\xD5 |0 # <CJK>
+<U8906> \x8F\xDC\xD6 |0 # <CJK>
+<U890D> \x8F\xDC\xD7 |0 # <CJK>
+<U890E> \x8F\xDC\xD8 |0 # <CJK>
+<U890F> \x8F\xDC\xD9 |0 # <CJK>
+<U8915> \x8F\xDC\xDA |0 # <CJK>
+<U8916> \x8F\xDC\xDB |0 # <CJK>
+<U8918> \x8F\xDC\xDC |0 # <CJK>
+<U8919> \x8F\xDC\xDD |0 # <CJK>
+<U891A> \x8F\xDC\xDE |0 # <CJK>
+<U891C> \x8F\xDC\xDF |0 # <CJK>
+<U8920> \x8F\xDC\xE0 |0 # <CJK>
+<U8926> \x8F\xDC\xE1 |0 # <CJK>
+<U8927> \x8F\xDC\xE2 |0 # <CJK>
+<U8928> \x8F\xDC\xE3 |0 # <CJK>
+<U8930> \x8F\xDC\xE4 |0 # <CJK>
+<U8931> \x8F\xDC\xE5 |0 # <CJK>
+<U8932> \x8F\xDC\xE6 |0 # <CJK>
+<U8935> \x8F\xDC\xE7 |0 # <CJK>
+<U8939> \x8F\xDC\xE8 |0 # <CJK>
+<U893A> \x8F\xDC\xE9 |0 # <CJK>
+<U893E> \x8F\xDC\xEA |0 # <CJK>
+<U8940> \x8F\xDC\xEB |0 # <CJK>
+<U8942> \x8F\xDC\xEC |0 # <CJK>
+<U8945> \x8F\xDC\xED |0 # <CJK>
+<U8946> \x8F\xDC\xEE |0 # <CJK>
+<U8949> \x8F\xDC\xEF |0 # <CJK>
+<U894F> \x8F\xDC\xF0 |0 # <CJK>
+<U8952> \x8F\xDC\xF1 |0 # <CJK>
+<U8957> \x8F\xDC\xF2 |0 # <CJK>
+<U895A> \x8F\xDC\xF3 |0 # <CJK>
+<U895B> \x8F\xDC\xF4 |0 # <CJK>
+<U895C> \x8F\xDC\xF5 |0 # <CJK>
+<U8961> \x8F\xDC\xF6 |0 # <CJK>
+<U8962> \x8F\xDC\xF7 |0 # <CJK>
+<U8963> \x8F\xDC\xF8 |0 # <CJK>
+<U896B> \x8F\xDC\xF9 |0 # <CJK>
+<U896E> \x8F\xDC\xFA |0 # <CJK>
+<U8970> \x8F\xDC\xFB |0 # <CJK>
+<U8973> \x8F\xDC\xFC |0 # <CJK>
+<U8975> \x8F\xDC\xFD |0 # <CJK>
+<U897A> \x8F\xDC\xFE |0 # <CJK>
+<U897B> \x8F\xDD\xA1 |0 # <CJK>
+<U897C> \x8F\xDD\xA2 |0 # <CJK>
+<U897D> \x8F\xDD\xA3 |0 # <CJK>
+<U8989> \x8F\xDD\xA4 |0 # <CJK>
+<U898D> \x8F\xDD\xA5 |0 # <CJK>
+<U8990> \x8F\xDD\xA6 |0 # <CJK>
+<U8994> \x8F\xDD\xA7 |0 # <CJK>
+<U8995> \x8F\xDD\xA8 |0 # <CJK>
+<U899B> \x8F\xDD\xA9 |0 # <CJK>
+<U899C> \x8F\xDD\xAA |0 # <CJK>
+<U899F> \x8F\xDD\xAB |0 # <CJK>
+<U89A0> \x8F\xDD\xAC |0 # <CJK>
+<U89A5> \x8F\xDD\xAD |0 # <CJK>
+<U89B0> \x8F\xDD\xAE |0 # <CJK>
+<U89B4> \x8F\xDD\xAF |0 # <CJK>
+<U89B5> \x8F\xDD\xB0 |0 # <CJK>
+<U89B6> \x8F\xDD\xB1 |0 # <CJK>
+<U89B7> \x8F\xDD\xB2 |0 # <CJK>
+<U89BC> \x8F\xDD\xB3 |0 # <CJK>
+<U89D4> \x8F\xDD\xB4 |0 # <CJK>
+<U89D5> \x8F\xDD\xB5 |0 # <CJK>
+<U89D6> \x8F\xDD\xB6 |0 # <CJK>
+<U89D7> \x8F\xDD\xB7 |0 # <CJK>
+<U89D8> \x8F\xDD\xB8 |0 # <CJK>
+<U89E5> \x8F\xDD\xB9 |0 # <CJK>
+<U89E9> \x8F\xDD\xBA |0 # <CJK>
+<U89EB> \x8F\xDD\xBB |0 # <CJK>
+<U89ED> \x8F\xDD\xBC |0 # <CJK>
+<U89F1> \x8F\xDD\xBD |0 # <CJK>
+<U89F3> \x8F\xDD\xBE |0 # <CJK>
+<U89F6> \x8F\xDD\xBF |0 # <CJK>
+<U89F9> \x8F\xDD\xC0 |0 # <CJK>
+<U89FD> \x8F\xDD\xC1 |0 # <CJK>
+<U89FF> \x8F\xDD\xC2 |0 # <CJK>
+<U8A04> \x8F\xDD\xC3 |0 # <CJK>
+<U8A05> \x8F\xDD\xC4 |0 # <CJK>
+<U8A07> \x8F\xDD\xC5 |0 # <CJK>
+<U8A0F> \x8F\xDD\xC6 |0 # <CJK>
+<U8A11> \x8F\xDD\xC7 |0 # <CJK>
+<U8A12> \x8F\xDD\xC8 |0 # <CJK>
+<U8A14> \x8F\xDD\xC9 |0 # <CJK>
+<U8A15> \x8F\xDD\xCA |0 # <CJK>
+<U8A1E> \x8F\xDD\xCB |0 # <CJK>
+<U8A20> \x8F\xDD\xCC |0 # <CJK>
+<U8A22> \x8F\xDD\xCD |0 # <CJK>
+<U8A24> \x8F\xDD\xCE |0 # <CJK>
+<U8A26> \x8F\xDD\xCF |0 # <CJK>
+<U8A2B> \x8F\xDD\xD0 |0 # <CJK>
+<U8A2C> \x8F\xDD\xD1 |0 # <CJK>
+<U8A2F> \x8F\xDD\xD2 |0 # <CJK>
+<U8A35> \x8F\xDD\xD3 |0 # <CJK>
+<U8A37> \x8F\xDD\xD4 |0 # <CJK>
+<U8A3D> \x8F\xDD\xD5 |0 # <CJK>
+<U8A3E> \x8F\xDD\xD6 |0 # <CJK>
+<U8A40> \x8F\xDD\xD7 |0 # <CJK>
+<U8A43> \x8F\xDD\xD8 |0 # <CJK>
+<U8A45> \x8F\xDD\xD9 |0 # <CJK>
+<U8A47> \x8F\xDD\xDA |0 # <CJK>
+<U8A49> \x8F\xDD\xDB |0 # <CJK>
+<U8A4D> \x8F\xDD\xDC |0 # <CJK>
+<U8A4E> \x8F\xDD\xDD |0 # <CJK>
+<U8A53> \x8F\xDD\xDE |0 # <CJK>
+<U8A56> \x8F\xDD\xDF |0 # <CJK>
+<U8A57> \x8F\xDD\xE0 |0 # <CJK>
+<U8A58> \x8F\xDD\xE1 |0 # <CJK>
+<U8A5C> \x8F\xDD\xE2 |0 # <CJK>
+<U8A5D> \x8F\xDD\xE3 |0 # <CJK>
+<U8A61> \x8F\xDD\xE4 |0 # <CJK>
+<U8A65> \x8F\xDD\xE5 |0 # <CJK>
+<U8A67> \x8F\xDD\xE6 |0 # <CJK>
+<U8A75> \x8F\xDD\xE7 |0 # <CJK>
+<U8A76> \x8F\xDD\xE8 |0 # <CJK>
+<U8A77> \x8F\xDD\xE9 |0 # <CJK>
+<U8A79> \x8F\xDD\xEA |0 # <CJK>
+<U8A7A> \x8F\xDD\xEB |0 # <CJK>
+<U8A7B> \x8F\xDD\xEC |0 # <CJK>
+<U8A7E> \x8F\xDD\xED |0 # <CJK>
+<U8A7F> \x8F\xDD\xEE |0 # <CJK>
+<U8A80> \x8F\xDD\xEF |0 # <CJK>
+<U8A83> \x8F\xDD\xF0 |0 # <CJK>
+<U8A86> \x8F\xDD\xF1 |0 # <CJK>
+<U8A8B> \x8F\xDD\xF2 |0 # <CJK>
+<U8A8F> \x8F\xDD\xF3 |0 # <CJK>
+<U8A90> \x8F\xDD\xF4 |0 # <CJK>
+<U8A92> \x8F\xDD\xF5 |0 # <CJK>
+<U8A96> \x8F\xDD\xF6 |0 # <CJK>
+<U8A97> \x8F\xDD\xF7 |0 # <CJK>
+<U8A99> \x8F\xDD\xF8 |0 # <CJK>
+<U8A9F> \x8F\xDD\xF9 |0 # <CJK>
+<U8AA7> \x8F\xDD\xFA |0 # <CJK>
+<U8AA9> \x8F\xDD\xFB |0 # <CJK>
+<U8AAE> \x8F\xDD\xFC |0 # <CJK>
+<U8AAF> \x8F\xDD\xFD |0 # <CJK>
+<U8AB3> \x8F\xDD\xFE |0 # <CJK>
+<U8AB6> \x8F\xDE\xA1 |0 # <CJK>
+<U8AB7> \x8F\xDE\xA2 |0 # <CJK>
+<U8ABB> \x8F\xDE\xA3 |0 # <CJK>
+<U8ABE> \x8F\xDE\xA4 |0 # <CJK>
+<U8AC3> \x8F\xDE\xA5 |0 # <CJK>
+<U8AC6> \x8F\xDE\xA6 |0 # <CJK>
+<U8AC8> \x8F\xDE\xA7 |0 # <CJK>
+<U8AC9> \x8F\xDE\xA8 |0 # <CJK>
+<U8ACA> \x8F\xDE\xA9 |0 # <CJK>
+<U8AD1> \x8F\xDE\xAA |0 # <CJK>
+<U8AD3> \x8F\xDE\xAB |0 # <CJK>
+<U8AD4> \x8F\xDE\xAC |0 # <CJK>
+<U8AD5> \x8F\xDE\xAD |0 # <CJK>
+<U8AD7> \x8F\xDE\xAE |0 # <CJK>
+<U8ADD> \x8F\xDE\xAF |0 # <CJK>
+<U8ADF> \x8F\xDE\xB0 |0 # <CJK>
+<U8AEC> \x8F\xDE\xB1 |0 # <CJK>
+<U8AF0> \x8F\xDE\xB2 |0 # <CJK>
+<U8AF4> \x8F\xDE\xB3 |0 # <CJK>
+<U8AF5> \x8F\xDE\xB4 |0 # <CJK>
+<U8AF6> \x8F\xDE\xB5 |0 # <CJK>
+<U8AFC> \x8F\xDE\xB6 |0 # <CJK>
+<U8AFF> \x8F\xDE\xB7 |0 # <CJK>
+<U8B05> \x8F\xDE\xB8 |0 # <CJK>
+<U8B06> \x8F\xDE\xB9 |0 # <CJK>
+<U8B0B> \x8F\xDE\xBA |0 # <CJK>
+<U8B11> \x8F\xDE\xBB |0 # <CJK>
+<U8B1C> \x8F\xDE\xBC |0 # <CJK>
+<U8B1E> \x8F\xDE\xBD |0 # <CJK>
+<U8B1F> \x8F\xDE\xBE |0 # <CJK>
+<U8B0A> \x8F\xDE\xBF |0 # <CJK>
+<U8B2D> \x8F\xDE\xC0 |0 # <CJK>
+<U8B30> \x8F\xDE\xC1 |0 # <CJK>
+<U8B37> \x8F\xDE\xC2 |0 # <CJK>
+<U8B3C> \x8F\xDE\xC3 |0 # <CJK>
+<U8B42> \x8F\xDE\xC4 |0 # <CJK>
+<U8B43> \x8F\xDE\xC5 |0 # <CJK>
+<U8B44> \x8F\xDE\xC6 |0 # <CJK>
+<U8B45> \x8F\xDE\xC7 |0 # <CJK>
+<U8B46> \x8F\xDE\xC8 |0 # <CJK>
+<U8B48> \x8F\xDE\xC9 |0 # <CJK>
+<U8B52> \x8F\xDE\xCA |0 # <CJK>
+<U8B53> \x8F\xDE\xCB |0 # <CJK>
+<U8B54> \x8F\xDE\xCC |0 # <CJK>
+<U8B59> \x8F\xDE\xCD |0 # <CJK>
+<U8B4D> \x8F\xDE\xCE |0 # <CJK>
+<U8B5E> \x8F\xDE\xCF |0 # <CJK>
+<U8B63> \x8F\xDE\xD0 |0 # <CJK>
+<U8B6D> \x8F\xDE\xD1 |0 # <CJK>
+<U8B76> \x8F\xDE\xD2 |0 # <CJK>
+<U8B78> \x8F\xDE\xD3 |0 # <CJK>
+<U8B79> \x8F\xDE\xD4 |0 # <CJK>
+<U8B7C> \x8F\xDE\xD5 |0 # <CJK>
+<U8B7E> \x8F\xDE\xD6 |0 # <CJK>
+<U8B81> \x8F\xDE\xD7 |0 # <CJK>
+<U8B84> \x8F\xDE\xD8 |0 # <CJK>
+<U8B85> \x8F\xDE\xD9 |0 # <CJK>
+<U8B8B> \x8F\xDE\xDA |0 # <CJK>
+<U8B8D> \x8F\xDE\xDB |0 # <CJK>
+<U8B8F> \x8F\xDE\xDC |0 # <CJK>
+<U8B94> \x8F\xDE\xDD |0 # <CJK>
+<U8B95> \x8F\xDE\xDE |0 # <CJK>
+<U8B9C> \x8F\xDE\xDF |0 # <CJK>
+<U8B9E> \x8F\xDE\xE0 |0 # <CJK>
+<U8B9F> \x8F\xDE\xE1 |0 # <CJK>
+<U8C38> \x8F\xDE\xE2 |0 # <CJK>
+<U8C39> \x8F\xDE\xE3 |0 # <CJK>
+<U8C3D> \x8F\xDE\xE4 |0 # <CJK>
+<U8C3E> \x8F\xDE\xE5 |0 # <CJK>
+<U8C45> \x8F\xDE\xE6 |0 # <CJK>
+<U8C47> \x8F\xDE\xE7 |0 # <CJK>
+<U8C49> \x8F\xDE\xE8 |0 # <CJK>
+<U8C4B> \x8F\xDE\xE9 |0 # <CJK>
+<U8C4F> \x8F\xDE\xEA |0 # <CJK>
+<U8C51> \x8F\xDE\xEB |0 # <CJK>
+<U8C53> \x8F\xDE\xEC |0 # <CJK>
+<U8C54> \x8F\xDE\xED |0 # <CJK>
+<U8C57> \x8F\xDE\xEE |0 # <CJK>
+<U8C58> \x8F\xDE\xEF |0 # <CJK>
+<U8C5B> \x8F\xDE\xF0 |0 # <CJK>
+<U8C5D> \x8F\xDE\xF1 |0 # <CJK>
+<U8C59> \x8F\xDE\xF2 |0 # <CJK>
+<U8C63> \x8F\xDE\xF3 |0 # <CJK>
+<U8C64> \x8F\xDE\xF4 |0 # <CJK>
+<U8C66> \x8F\xDE\xF5 |0 # <CJK>
+<U8C68> \x8F\xDE\xF6 |0 # <CJK>
+<U8C69> \x8F\xDE\xF7 |0 # <CJK>
+<U8C6D> \x8F\xDE\xF8 |0 # <CJK>
+<U8C73> \x8F\xDE\xF9 |0 # <CJK>
+<U8C75> \x8F\xDE\xFA |0 # <CJK>
+<U8C76> \x8F\xDE\xFB |0 # <CJK>
+<U8C7B> \x8F\xDE\xFC |0 # <CJK>
+<U8C7E> \x8F\xDE\xFD |0 # <CJK>
+<U8C86> \x8F\xDE\xFE |0 # <CJK>
+<U8C87> \x8F\xDF\xA1 |0 # <CJK>
+<U8C8B> \x8F\xDF\xA2 |0 # <CJK>
+<U8C90> \x8F\xDF\xA3 |0 # <CJK>
+<U8C92> \x8F\xDF\xA4 |0 # <CJK>
+<U8C93> \x8F\xDF\xA5 |0 # <CJK>
+<U8C99> \x8F\xDF\xA6 |0 # <CJK>
+<U8C9B> \x8F\xDF\xA7 |0 # <CJK>
+<U8C9C> \x8F\xDF\xA8 |0 # <CJK>
+<U8CA4> \x8F\xDF\xA9 |0 # <CJK>
+<U8CB9> \x8F\xDF\xAA |0 # <CJK>
+<U8CBA> \x8F\xDF\xAB |0 # <CJK>
+<U8CC5> \x8F\xDF\xAC |0 # <CJK>
+<U8CC6> \x8F\xDF\xAD |0 # <CJK>
+<U8CC9> \x8F\xDF\xAE |0 # <CJK>
+<U8CCB> \x8F\xDF\xAF |0 # <CJK>
+<U8CCF> \x8F\xDF\xB0 |0 # <CJK>
+<U8CD6> \x8F\xDF\xB1 |0 # <CJK>
+<U8CD5> \x8F\xDF\xB2 |0 # <CJK>
+<U8CD9> \x8F\xDF\xB3 |0 # <CJK>
+<U8CDD> \x8F\xDF\xB4 |0 # <CJK>
+<U8CE1> \x8F\xDF\xB5 |0 # <CJK>
+<U8CE8> \x8F\xDF\xB6 |0 # <CJK>
+<U8CEC> \x8F\xDF\xB7 |0 # <CJK>
+<U8CEF> \x8F\xDF\xB8 |0 # <CJK>
+<U8CF0> \x8F\xDF\xB9 |0 # <CJK>
+<U8CF2> \x8F\xDF\xBA |0 # <CJK>
+<U8CF5> \x8F\xDF\xBB |0 # <CJK>
+<U8CF7> \x8F\xDF\xBC |0 # <CJK>
+<U8CF8> \x8F\xDF\xBD |0 # <CJK>
+<U8CFE> \x8F\xDF\xBE |0 # <CJK>
+<U8CFF> \x8F\xDF\xBF |0 # <CJK>
+<U8D01> \x8F\xDF\xC0 |0 # <CJK>
+<U8D03> \x8F\xDF\xC1 |0 # <CJK>
+<U8D09> \x8F\xDF\xC2 |0 # <CJK>
+<U8D12> \x8F\xDF\xC3 |0 # <CJK>
+<U8D17> \x8F\xDF\xC4 |0 # <CJK>
+<U8D1B> \x8F\xDF\xC5 |0 # <CJK>
+<U8D65> \x8F\xDF\xC6 |0 # <CJK>
+<U8D69> \x8F\xDF\xC7 |0 # <CJK>
+<U8D6C> \x8F\xDF\xC8 |0 # <CJK>
+<U8D6E> \x8F\xDF\xC9 |0 # <CJK>
+<U8D7F> \x8F\xDF\xCA |0 # <CJK>
+<U8D82> \x8F\xDF\xCB |0 # <CJK>
+<U8D84> \x8F\xDF\xCC |0 # <CJK>
+<U8D88> \x8F\xDF\xCD |0 # <CJK>
+<U8D8D> \x8F\xDF\xCE |0 # <CJK>
+<U8D90> \x8F\xDF\xCF |0 # <CJK>
+<U8D91> \x8F\xDF\xD0 |0 # <CJK>
+<U8D95> \x8F\xDF\xD1 |0 # <CJK>
+<U8D9E> \x8F\xDF\xD2 |0 # <CJK>
+<U8D9F> \x8F\xDF\xD3 |0 # <CJK>
+<U8DA0> \x8F\xDF\xD4 |0 # <CJK>
+<U8DA6> \x8F\xDF\xD5 |0 # <CJK>
+<U8DAB> \x8F\xDF\xD6 |0 # <CJK>
+<U8DAC> \x8F\xDF\xD7 |0 # <CJK>
+<U8DAF> \x8F\xDF\xD8 |0 # <CJK>
+<U8DB2> \x8F\xDF\xD9 |0 # <CJK>
+<U8DB5> \x8F\xDF\xDA |0 # <CJK>
+<U8DB7> \x8F\xDF\xDB |0 # <CJK>
+<U8DB9> \x8F\xDF\xDC |0 # <CJK>
+<U8DBB> \x8F\xDF\xDD |0 # <CJK>
+<U8DC0> \x8F\xDF\xDE |0 # <CJK>
+<U8DC5> \x8F\xDF\xDF |0 # <CJK>
+<U8DC6> \x8F\xDF\xE0 |0 # <CJK>
+<U8DC7> \x8F\xDF\xE1 |0 # <CJK>
+<U8DC8> \x8F\xDF\xE2 |0 # <CJK>
+<U8DCA> \x8F\xDF\xE3 |0 # <CJK>
+<U8DCE> \x8F\xDF\xE4 |0 # <CJK>
+<U8DD1> \x8F\xDF\xE5 |0 # <CJK>
+<U8DD4> \x8F\xDF\xE6 |0 # <CJK>
+<U8DD5> \x8F\xDF\xE7 |0 # <CJK>
+<U8DD7> \x8F\xDF\xE8 |0 # <CJK>
+<U8DD9> \x8F\xDF\xE9 |0 # <CJK>
+<U8DE4> \x8F\xDF\xEA |0 # <CJK>
+<U8DE5> \x8F\xDF\xEB |0 # <CJK>
+<U8DE7> \x8F\xDF\xEC |0 # <CJK>
+<U8DEC> \x8F\xDF\xED |0 # <CJK>
+<U8DF0> \x8F\xDF\xEE |0 # <CJK>
+<U8DBC> \x8F\xDF\xEF |0 # <CJK>
+<U8DF1> \x8F\xDF\xF0 |0 # <CJK>
+<U8DF2> \x8F\xDF\xF1 |0 # <CJK>
+<U8DF4> \x8F\xDF\xF2 |0 # <CJK>
+<U8DFD> \x8F\xDF\xF3 |0 # <CJK>
+<U8E01> \x8F\xDF\xF4 |0 # <CJK>
+<U8E04> \x8F\xDF\xF5 |0 # <CJK>
+<U8E05> \x8F\xDF\xF6 |0 # <CJK>
+<U8E06> \x8F\xDF\xF7 |0 # <CJK>
+<U8E0B> \x8F\xDF\xF8 |0 # <CJK>
+<U8E11> \x8F\xDF\xF9 |0 # <CJK>
+<U8E14> \x8F\xDF\xFA |0 # <CJK>
+<U8E16> \x8F\xDF\xFB |0 # <CJK>
+<U8E20> \x8F\xDF\xFC |0 # <CJK>
+<U8E21> \x8F\xDF\xFD |0 # <CJK>
+<U8E22> \x8F\xDF\xFE |0 # <CJK>
+<U8E23> \x8F\xE0\xA1 |0 # <CJK>
+<U8E26> \x8F\xE0\xA2 |0 # <CJK>
+<U8E27> \x8F\xE0\xA3 |0 # <CJK>
+<U8E31> \x8F\xE0\xA4 |0 # <CJK>
+<U8E33> \x8F\xE0\xA5 |0 # <CJK>
+<U8E36> \x8F\xE0\xA6 |0 # <CJK>
+<U8E37> \x8F\xE0\xA7 |0 # <CJK>
+<U8E38> \x8F\xE0\xA8 |0 # <CJK>
+<U8E39> \x8F\xE0\xA9 |0 # <CJK>
+<U8E3D> \x8F\xE0\xAA |0 # <CJK>
+<U8E40> \x8F\xE0\xAB |0 # <CJK>
+<U8E41> \x8F\xE0\xAC |0 # <CJK>
+<U8E4B> \x8F\xE0\xAD |0 # <CJK>
+<U8E4D> \x8F\xE0\xAE |0 # <CJK>
+<U8E4E> \x8F\xE0\xAF |0 # <CJK>
+<U8E4F> \x8F\xE0\xB0 |0 # <CJK>
+<U8E54> \x8F\xE0\xB1 |0 # <CJK>
+<U8E5B> \x8F\xE0\xB2 |0 # <CJK>
+<U8E5C> \x8F\xE0\xB3 |0 # <CJK>
+<U8E5D> \x8F\xE0\xB4 |0 # <CJK>
+<U8E5E> \x8F\xE0\xB5 |0 # <CJK>
+<U8E61> \x8F\xE0\xB6 |0 # <CJK>
+<U8E62> \x8F\xE0\xB7 |0 # <CJK>
+<U8E69> \x8F\xE0\xB8 |0 # <CJK>
+<U8E6C> \x8F\xE0\xB9 |0 # <CJK>
+<U8E6D> \x8F\xE0\xBA |0 # <CJK>
+<U8E6F> \x8F\xE0\xBB |0 # <CJK>
+<U8E70> \x8F\xE0\xBC |0 # <CJK>
+<U8E71> \x8F\xE0\xBD |0 # <CJK>
+<U8E79> \x8F\xE0\xBE |0 # <CJK>
+<U8E7A> \x8F\xE0\xBF |0 # <CJK>
+<U8E7B> \x8F\xE0\xC0 |0 # <CJK>
+<U8E82> \x8F\xE0\xC1 |0 # <CJK>
+<U8E83> \x8F\xE0\xC2 |0 # <CJK>
+<U8E89> \x8F\xE0\xC3 |0 # <CJK>
+<U8E90> \x8F\xE0\xC4 |0 # <CJK>
+<U8E92> \x8F\xE0\xC5 |0 # <CJK>
+<U8E95> \x8F\xE0\xC6 |0 # <CJK>
+<U8E9A> \x8F\xE0\xC7 |0 # <CJK>
+<U8E9B> \x8F\xE0\xC8 |0 # <CJK>
+<U8E9D> \x8F\xE0\xC9 |0 # <CJK>
+<U8E9E> \x8F\xE0\xCA |0 # <CJK>
+<U8EA2> \x8F\xE0\xCB |0 # <CJK>
+<U8EA7> \x8F\xE0\xCC |0 # <CJK>
+<U8EA9> \x8F\xE0\xCD |0 # <CJK>
+<U8EAD> \x8F\xE0\xCE |0 # <CJK>
+<U8EAE> \x8F\xE0\xCF |0 # <CJK>
+<U8EB3> \x8F\xE0\xD0 |0 # <CJK>
+<U8EB5> \x8F\xE0\xD1 |0 # <CJK>
+<U8EBA> \x8F\xE0\xD2 |0 # <CJK>
+<U8EBB> \x8F\xE0\xD3 |0 # <CJK>
+<U8EC0> \x8F\xE0\xD4 |0 # <CJK>
+<U8EC1> \x8F\xE0\xD5 |0 # <CJK>
+<U8EC3> \x8F\xE0\xD6 |0 # <CJK>
+<U8EC4> \x8F\xE0\xD7 |0 # <CJK>
+<U8EC7> \x8F\xE0\xD8 |0 # <CJK>
+<U8ECF> \x8F\xE0\xD9 |0 # <CJK>
+<U8ED1> \x8F\xE0\xDA |0 # <CJK>
+<U8ED4> \x8F\xE0\xDB |0 # <CJK>
+<U8EDC> \x8F\xE0\xDC |0 # <CJK>
+<U8EE8> \x8F\xE0\xDD |0 # <CJK>
+<U8EEE> \x8F\xE0\xDE |0 # <CJK>
+<U8EF0> \x8F\xE0\xDF |0 # <CJK>
+<U8EF1> \x8F\xE0\xE0 |0 # <CJK>
+<U8EF7> \x8F\xE0\xE1 |0 # <CJK>
+<U8EF9> \x8F\xE0\xE2 |0 # <CJK>
+<U8EFA> \x8F\xE0\xE3 |0 # <CJK>
+<U8EED> \x8F\xE0\xE4 |0 # <CJK>
+<U8F00> \x8F\xE0\xE5 |0 # <CJK>
+<U8F02> \x8F\xE0\xE6 |0 # <CJK>
+<U8F07> \x8F\xE0\xE7 |0 # <CJK>
+<U8F08> \x8F\xE0\xE8 |0 # <CJK>
+<U8F0F> \x8F\xE0\xE9 |0 # <CJK>
+<U8F10> \x8F\xE0\xEA |0 # <CJK>
+<U8F16> \x8F\xE0\xEB |0 # <CJK>
+<U8F17> \x8F\xE0\xEC |0 # <CJK>
+<U8F18> \x8F\xE0\xED |0 # <CJK>
+<U8F1E> \x8F\xE0\xEE |0 # <CJK>
+<U8F20> \x8F\xE0\xEF |0 # <CJK>
+<U8F21> \x8F\xE0\xF0 |0 # <CJK>
+<U8F23> \x8F\xE0\xF1 |0 # <CJK>
+<U8F25> \x8F\xE0\xF2 |0 # <CJK>
+<U8F27> \x8F\xE0\xF3 |0 # <CJK>
+<U8F28> \x8F\xE0\xF4 |0 # <CJK>
+<U8F2C> \x8F\xE0\xF5 |0 # <CJK>
+<U8F2D> \x8F\xE0\xF6 |0 # <CJK>
+<U8F2E> \x8F\xE0\xF7 |0 # <CJK>
+<U8F34> \x8F\xE0\xF8 |0 # <CJK>
+<U8F35> \x8F\xE0\xF9 |0 # <CJK>
+<U8F36> \x8F\xE0\xFA |0 # <CJK>
+<U8F37> \x8F\xE0\xFB |0 # <CJK>
+<U8F3A> \x8F\xE0\xFC |0 # <CJK>
+<U8F40> \x8F\xE0\xFD |0 # <CJK>
+<U8F41> \x8F\xE0\xFE |0 # <CJK>
+<U8F43> \x8F\xE1\xA1 |0 # <CJK>
+<U8F47> \x8F\xE1\xA2 |0 # <CJK>
+<U8F4F> \x8F\xE1\xA3 |0 # <CJK>
+<U8F51> \x8F\xE1\xA4 |0 # <CJK>
+<U8F52> \x8F\xE1\xA5 |0 # <CJK>
+<U8F53> \x8F\xE1\xA6 |0 # <CJK>
+<U8F54> \x8F\xE1\xA7 |0 # <CJK>
+<U8F55> \x8F\xE1\xA8 |0 # <CJK>
+<U8F58> \x8F\xE1\xA9 |0 # <CJK>
+<U8F5D> \x8F\xE1\xAA |0 # <CJK>
+<U8F5E> \x8F\xE1\xAB |0 # <CJK>
+<U8F65> \x8F\xE1\xAC |0 # <CJK>
+<U8F9D> \x8F\xE1\xAD |0 # <CJK>
+<U8FA0> \x8F\xE1\xAE |0 # <CJK>
+<U8FA1> \x8F\xE1\xAF |0 # <CJK>
+<U8FA4> \x8F\xE1\xB0 |0 # <CJK>
+<U8FA5> \x8F\xE1\xB1 |0 # <CJK>
+<U8FA6> \x8F\xE1\xB2 |0 # <CJK>
+<U8FB5> \x8F\xE1\xB3 |0 # <CJK>
+<U8FB6> \x8F\xE1\xB4 |0 # <CJK>
+<U8FB8> \x8F\xE1\xB5 |0 # <CJK>
+<U8FBE> \x8F\xE1\xB6 |0 # <CJK>
+<U8FC0> \x8F\xE1\xB7 |0 # <CJK>
+<U8FC1> \x8F\xE1\xB8 |0 # <CJK>
+<U8FC6> \x8F\xE1\xB9 |0 # <CJK>
+<U8FCA> \x8F\xE1\xBA |0 # <CJK>
+<U8FCB> \x8F\xE1\xBB |0 # <CJK>
+<U8FCD> \x8F\xE1\xBC |0 # <CJK>
+<U8FD0> \x8F\xE1\xBD |0 # <CJK>
+<U8FD2> \x8F\xE1\xBE |0 # <CJK>
+<U8FD3> \x8F\xE1\xBF |0 # <CJK>
+<U8FD5> \x8F\xE1\xC0 |0 # <CJK>
+<U8FE0> \x8F\xE1\xC1 |0 # <CJK>
+<U8FE3> \x8F\xE1\xC2 |0 # <CJK>
+<U8FE4> \x8F\xE1\xC3 |0 # <CJK>
+<U8FE8> \x8F\xE1\xC4 |0 # <CJK>
+<U8FEE> \x8F\xE1\xC5 |0 # <CJK>
+<U8FF1> \x8F\xE1\xC6 |0 # <CJK>
+<U8FF5> \x8F\xE1\xC7 |0 # <CJK>
+<U8FF6> \x8F\xE1\xC8 |0 # <CJK>
+<U8FFB> \x8F\xE1\xC9 |0 # <CJK>
+<U8FFE> \x8F\xE1\xCA |0 # <CJK>
+<U9002> \x8F\xE1\xCB |0 # <CJK>
+<U9004> \x8F\xE1\xCC |0 # <CJK>
+<U9008> \x8F\xE1\xCD |0 # <CJK>
+<U900C> \x8F\xE1\xCE |0 # <CJK>
+<U9018> \x8F\xE1\xCF |0 # <CJK>
+<U901B> \x8F\xE1\xD0 |0 # <CJK>
+<U9028> \x8F\xE1\xD1 |0 # <CJK>
+<U9029> \x8F\xE1\xD2 |0 # <CJK>
+<U902F> \x8F\xE1\xD3 |0 # <CJK>
+<U902A> \x8F\xE1\xD4 |0 # <CJK>
+<U902C> \x8F\xE1\xD5 |0 # <CJK>
+<U902D> \x8F\xE1\xD6 |0 # <CJK>
+<U9033> \x8F\xE1\xD7 |0 # <CJK>
+<U9034> \x8F\xE1\xD8 |0 # <CJK>
+<U9037> \x8F\xE1\xD9 |0 # <CJK>
+<U903F> \x8F\xE1\xDA |0 # <CJK>
+<U9043> \x8F\xE1\xDB |0 # <CJK>
+<U9044> \x8F\xE1\xDC |0 # <CJK>
+<U904C> \x8F\xE1\xDD |0 # <CJK>
+<U905B> \x8F\xE1\xDE |0 # <CJK>
+<U905D> \x8F\xE1\xDF |0 # <CJK>
+<U9062> \x8F\xE1\xE0 |0 # <CJK>
+<U9066> \x8F\xE1\xE1 |0 # <CJK>
+<U9067> \x8F\xE1\xE2 |0 # <CJK>
+<U906C> \x8F\xE1\xE3 |0 # <CJK>
+<U9070> \x8F\xE1\xE4 |0 # <CJK>
+<U9074> \x8F\xE1\xE5 |0 # <CJK>
+<U9079> \x8F\xE1\xE6 |0 # <CJK>
+<U9085> \x8F\xE1\xE7 |0 # <CJK>
+<U9088> \x8F\xE1\xE8 |0 # <CJK>
+<U908B> \x8F\xE1\xE9 |0 # <CJK>
+<U908C> \x8F\xE1\xEA |0 # <CJK>
+<U908E> \x8F\xE1\xEB |0 # <CJK>
+<U9090> \x8F\xE1\xEC |0 # <CJK>
+<U9095> \x8F\xE1\xED |0 # <CJK>
+<U9097> \x8F\xE1\xEE |0 # <CJK>
+<U9098> \x8F\xE1\xEF |0 # <CJK>
+<U9099> \x8F\xE1\xF0 |0 # <CJK>
+<U909B> \x8F\xE1\xF1 |0 # <CJK>
+<U90A0> \x8F\xE1\xF2 |0 # <CJK>
+<U90A1> \x8F\xE1\xF3 |0 # <CJK>
+<U90A2> \x8F\xE1\xF4 |0 # <CJK>
+<U90A5> \x8F\xE1\xF5 |0 # <CJK>
+<U90B0> \x8F\xE1\xF6 |0 # <CJK>
+<U90B2> \x8F\xE1\xF7 |0 # <CJK>
+<U90B3> \x8F\xE1\xF8 |0 # <CJK>
+<U90B4> \x8F\xE1\xF9 |0 # <CJK>
+<U90B6> \x8F\xE1\xFA |0 # <CJK>
+<U90BD> \x8F\xE1\xFB |0 # <CJK>
+<U90CC> \x8F\xE1\xFC |0 # <CJK>
+<U90BE> \x8F\xE1\xFD |0 # <CJK>
+<U90C3> \x8F\xE1\xFE |0 # <CJK>
+<U90C4> \x8F\xE2\xA1 |0 # <CJK>
+<U90C5> \x8F\xE2\xA2 |0 # <CJK>
+<U90C7> \x8F\xE2\xA3 |0 # <CJK>
+<U90C8> \x8F\xE2\xA4 |0 # <CJK>
+<U90D5> \x8F\xE2\xA5 |0 # <CJK>
+<U90D7> \x8F\xE2\xA6 |0 # <CJK>
+<U90D8> \x8F\xE2\xA7 |0 # <CJK>
+<U90D9> \x8F\xE2\xA8 |0 # <CJK>
+<U90DC> \x8F\xE2\xA9 |0 # <CJK>
+<U90DD> \x8F\xE2\xAA |0 # <CJK>
+<U90DF> \x8F\xE2\xAB |0 # <CJK>
+<U90E5> \x8F\xE2\xAC |0 # <CJK>
+<U90D2> \x8F\xE2\xAD |0 # <CJK>
+<U90F6> \x8F\xE2\xAE |0 # <CJK>
+<U90EB> \x8F\xE2\xAF |0 # <CJK>
+<U90EF> \x8F\xE2\xB0 |0 # <CJK>
+<U90F0> \x8F\xE2\xB1 |0 # <CJK>
+<U90F4> \x8F\xE2\xB2 |0 # <CJK>
+<U90FE> \x8F\xE2\xB3 |0 # <CJK>
+<U90FF> \x8F\xE2\xB4 |0 # <CJK>
+<U9100> \x8F\xE2\xB5 |0 # <CJK>
+<U9104> \x8F\xE2\xB6 |0 # <CJK>
+<U9105> \x8F\xE2\xB7 |0 # <CJK>
+<U9106> \x8F\xE2\xB8 |0 # <CJK>
+<U9108> \x8F\xE2\xB9 |0 # <CJK>
+<U910D> \x8F\xE2\xBA |0 # <CJK>
+<U9110> \x8F\xE2\xBB |0 # <CJK>
+<U9114> \x8F\xE2\xBC |0 # <CJK>
+<U9116> \x8F\xE2\xBD |0 # <CJK>
+<U9117> \x8F\xE2\xBE |0 # <CJK>
+<U9118> \x8F\xE2\xBF |0 # <CJK>
+<U911A> \x8F\xE2\xC0 |0 # <CJK>
+<U911C> \x8F\xE2\xC1 |0 # <CJK>
+<U911E> \x8F\xE2\xC2 |0 # <CJK>
+<U9120> \x8F\xE2\xC3 |0 # <CJK>
+<U9125> \x8F\xE2\xC4 |0 # <CJK>
+<U9122> \x8F\xE2\xC5 |0 # <CJK>
+<U9123> \x8F\xE2\xC6 |0 # <CJK>
+<U9127> \x8F\xE2\xC7 |0 # <CJK>
+<U9129> \x8F\xE2\xC8 |0 # <CJK>
+<U912E> \x8F\xE2\xC9 |0 # <CJK>
+<U912F> \x8F\xE2\xCA |0 # <CJK>
+<U9131> \x8F\xE2\xCB |0 # <CJK>
+<U9134> \x8F\xE2\xCC |0 # <CJK>
+<U9136> \x8F\xE2\xCD |0 # <CJK>
+<U9137> \x8F\xE2\xCE |0 # <CJK>
+<U9139> \x8F\xE2\xCF |0 # <CJK>
+<U913A> \x8F\xE2\xD0 |0 # <CJK>
+<U913C> \x8F\xE2\xD1 |0 # <CJK>
+<U913D> \x8F\xE2\xD2 |0 # <CJK>
+<U9143> \x8F\xE2\xD3 |0 # <CJK>
+<U9147> \x8F\xE2\xD4 |0 # <CJK>
+<U9148> \x8F\xE2\xD5 |0 # <CJK>
+<U914F> \x8F\xE2\xD6 |0 # <CJK>
+<U9153> \x8F\xE2\xD7 |0 # <CJK>
+<U9157> \x8F\xE2\xD8 |0 # <CJK>
+<U9159> \x8F\xE2\xD9 |0 # <CJK>
+<U915A> \x8F\xE2\xDA |0 # <CJK>
+<U915B> \x8F\xE2\xDB |0 # <CJK>
+<U9161> \x8F\xE2\xDC |0 # <CJK>
+<U9164> \x8F\xE2\xDD |0 # <CJK>
+<U9167> \x8F\xE2\xDE |0 # <CJK>
+<U916D> \x8F\xE2\xDF |0 # <CJK>
+<U9174> \x8F\xE2\xE0 |0 # <CJK>
+<U9179> \x8F\xE2\xE1 |0 # <CJK>
+<U917A> \x8F\xE2\xE2 |0 # <CJK>
+<U917B> \x8F\xE2\xE3 |0 # <CJK>
+<U9181> \x8F\xE2\xE4 |0 # <CJK>
+<U9183> \x8F\xE2\xE5 |0 # <CJK>
+<U9185> \x8F\xE2\xE6 |0 # <CJK>
+<U9186> \x8F\xE2\xE7 |0 # <CJK>
+<U918A> \x8F\xE2\xE8 |0 # <CJK>
+<U918E> \x8F\xE2\xE9 |0 # <CJK>
+<U9191> \x8F\xE2\xEA |0 # <CJK>
+<U9193> \x8F\xE2\xEB |0 # <CJK>
+<U9194> \x8F\xE2\xEC |0 # <CJK>
+<U9195> \x8F\xE2\xED |0 # <CJK>
+<U9198> \x8F\xE2\xEE |0 # <CJK>
+<U919E> \x8F\xE2\xEF |0 # <CJK>
+<U91A1> \x8F\xE2\xF0 |0 # <CJK>
+<U91A6> \x8F\xE2\xF1 |0 # <CJK>
+<U91A8> \x8F\xE2\xF2 |0 # <CJK>
+<U91AC> \x8F\xE2\xF3 |0 # <CJK>
+<U91AD> \x8F\xE2\xF4 |0 # <CJK>
+<U91AE> \x8F\xE2\xF5 |0 # <CJK>
+<U91B0> \x8F\xE2\xF6 |0 # <CJK>
+<U91B1> \x8F\xE2\xF7 |0 # <CJK>
+<U91B2> \x8F\xE2\xF8 |0 # <CJK>
+<U91B3> \x8F\xE2\xF9 |0 # <CJK>
+<U91B6> \x8F\xE2\xFA |0 # <CJK>
+<U91BB> \x8F\xE2\xFB |0 # <CJK>
+<U91BC> \x8F\xE2\xFC |0 # <CJK>
+<U91BD> \x8F\xE2\xFD |0 # <CJK>
+<U91BF> \x8F\xE2\xFE |0 # <CJK>
+<U91C2> \x8F\xE3\xA1 |0 # <CJK>
+<U91C3> \x8F\xE3\xA2 |0 # <CJK>
+<U91C5> \x8F\xE3\xA3 |0 # <CJK>
+<U91D3> \x8F\xE3\xA4 |0 # <CJK>
+<U91D4> \x8F\xE3\xA5 |0 # <CJK>
+<U91D7> \x8F\xE3\xA6 |0 # <CJK>
+<U91D9> \x8F\xE3\xA7 |0 # <CJK>
+<U91DA> \x8F\xE3\xA8 |0 # <CJK>
+<U91DE> \x8F\xE3\xA9 |0 # <CJK>
+<U91E4> \x8F\xE3\xAA |0 # <CJK>
+<U91E5> \x8F\xE3\xAB |0 # <CJK>
+<U91E9> \x8F\xE3\xAC |0 # <CJK>
+<U91EA> \x8F\xE3\xAD |0 # <CJK>
+<U91EC> \x8F\xE3\xAE |0 # <CJK>
+<U91ED> \x8F\xE3\xAF |0 # <CJK>
+<U91EE> \x8F\xE3\xB0 |0 # <CJK>
+<U91EF> \x8F\xE3\xB1 |0 # <CJK>
+<U91F0> \x8F\xE3\xB2 |0 # <CJK>
+<U91F1> \x8F\xE3\xB3 |0 # <CJK>
+<U91F7> \x8F\xE3\xB4 |0 # <CJK>
+<U91F9> \x8F\xE3\xB5 |0 # <CJK>
+<U91FB> \x8F\xE3\xB6 |0 # <CJK>
+<U91FD> \x8F\xE3\xB7 |0 # <CJK>
+<U9200> \x8F\xE3\xB8 |0 # <CJK>
+<U9201> \x8F\xE3\xB9 |0 # <CJK>
+<U9204> \x8F\xE3\xBA |0 # <CJK>
+<U9205> \x8F\xE3\xBB |0 # <CJK>
+<U9206> \x8F\xE3\xBC |0 # <CJK>
+<U9207> \x8F\xE3\xBD |0 # <CJK>
+<U9209> \x8F\xE3\xBE |0 # <CJK>
+<U920A> \x8F\xE3\xBF |0 # <CJK>
+<U920C> \x8F\xE3\xC0 |0 # <CJK>
+<U9210> \x8F\xE3\xC1 |0 # <CJK>
+<U9212> \x8F\xE3\xC2 |0 # <CJK>
+<U9213> \x8F\xE3\xC3 |0 # <CJK>
+<U9216> \x8F\xE3\xC4 |0 # <CJK>
+<U9218> \x8F\xE3\xC5 |0 # <CJK>
+<U921C> \x8F\xE3\xC6 |0 # <CJK>
+<U921D> \x8F\xE3\xC7 |0 # <CJK>
+<U9223> \x8F\xE3\xC8 |0 # <CJK>
+<U9224> \x8F\xE3\xC9 |0 # <CJK>
+<U9225> \x8F\xE3\xCA |0 # <CJK>
+<U9226> \x8F\xE3\xCB |0 # <CJK>
+<U9228> \x8F\xE3\xCC |0 # <CJK>
+<U922E> \x8F\xE3\xCD |0 # <CJK>
+<U922F> \x8F\xE3\xCE |0 # <CJK>
+<U9230> \x8F\xE3\xCF |0 # <CJK>
+<U9233> \x8F\xE3\xD0 |0 # <CJK>
+<U9235> \x8F\xE3\xD1 |0 # <CJK>
+<U9236> \x8F\xE3\xD2 |0 # <CJK>
+<U9238> \x8F\xE3\xD3 |0 # <CJK>
+<U9239> \x8F\xE3\xD4 |0 # <CJK>
+<U923A> \x8F\xE3\xD5 |0 # <CJK>
+<U923C> \x8F\xE3\xD6 |0 # <CJK>
+<U923E> \x8F\xE3\xD7 |0 # <CJK>
+<U9240> \x8F\xE3\xD8 |0 # <CJK>
+<U9242> \x8F\xE3\xD9 |0 # <CJK>
+<U9243> \x8F\xE3\xDA |0 # <CJK>
+<U9246> \x8F\xE3\xDB |0 # <CJK>
+<U9247> \x8F\xE3\xDC |0 # <CJK>
+<U924A> \x8F\xE3\xDD |0 # <CJK>
+<U924D> \x8F\xE3\xDE |0 # <CJK>
+<U924E> \x8F\xE3\xDF |0 # <CJK>
+<U924F> \x8F\xE3\xE0 |0 # <CJK>
+<U9251> \x8F\xE3\xE1 |0 # <CJK>
+<U9258> \x8F\xE3\xE2 |0 # <CJK>
+<U9259> \x8F\xE3\xE3 |0 # <CJK>
+<U925C> \x8F\xE3\xE4 |0 # <CJK>
+<U925D> \x8F\xE3\xE5 |0 # <CJK>
+<U9260> \x8F\xE3\xE6 |0 # <CJK>
+<U9261> \x8F\xE3\xE7 |0 # <CJK>
+<U9265> \x8F\xE3\xE8 |0 # <CJK>
+<U9267> \x8F\xE3\xE9 |0 # <CJK>
+<U9268> \x8F\xE3\xEA |0 # <CJK>
+<U9269> \x8F\xE3\xEB |0 # <CJK>
+<U926E> \x8F\xE3\xEC |0 # <CJK>
+<U926F> \x8F\xE3\xED |0 # <CJK>
+<U9270> \x8F\xE3\xEE |0 # <CJK>
+<U9275> \x8F\xE3\xEF |0 # <CJK>
+<U9276> \x8F\xE3\xF0 |0 # <CJK>
+<U9277> \x8F\xE3\xF1 |0 # <CJK>
+<U9278> \x8F\xE3\xF2 |0 # <CJK>
+<U9279> \x8F\xE3\xF3 |0 # <CJK>
+<U927B> \x8F\xE3\xF4 |0 # <CJK>
+<U927C> \x8F\xE3\xF5 |0 # <CJK>
+<U927D> \x8F\xE3\xF6 |0 # <CJK>
+<U927F> \x8F\xE3\xF7 |0 # <CJK>
+<U9288> \x8F\xE3\xF8 |0 # <CJK>
+<U9289> \x8F\xE3\xF9 |0 # <CJK>
+<U928A> \x8F\xE3\xFA |0 # <CJK>
+<U928D> \x8F\xE3\xFB |0 # <CJK>
+<U928E> \x8F\xE3\xFC |0 # <CJK>
+<U9292> \x8F\xE3\xFD |0 # <CJK>
+<U9297> \x8F\xE3\xFE |0 # <CJK>
+<U9299> \x8F\xE4\xA1 |0 # <CJK>
+<U929F> \x8F\xE4\xA2 |0 # <CJK>
+<U92A0> \x8F\xE4\xA3 |0 # <CJK>
+<U92A4> \x8F\xE4\xA4 |0 # <CJK>
+<U92A5> \x8F\xE4\xA5 |0 # <CJK>
+<U92A7> \x8F\xE4\xA6 |0 # <CJK>
+<U92A8> \x8F\xE4\xA7 |0 # <CJK>
+<U92AB> \x8F\xE4\xA8 |0 # <CJK>
+<U92AF> \x8F\xE4\xA9 |0 # <CJK>
+<U92B2> \x8F\xE4\xAA |0 # <CJK>
+<U92B6> \x8F\xE4\xAB |0 # <CJK>
+<U92B8> \x8F\xE4\xAC |0 # <CJK>
+<U92BA> \x8F\xE4\xAD |0 # <CJK>
+<U92BB> \x8F\xE4\xAE |0 # <CJK>
+<U92BC> \x8F\xE4\xAF |0 # <CJK>
+<U92BD> \x8F\xE4\xB0 |0 # <CJK>
+<U92BF> \x8F\xE4\xB1 |0 # <CJK>
+<U92C0> \x8F\xE4\xB2 |0 # <CJK>
+<U92C1> \x8F\xE4\xB3 |0 # <CJK>
+<U92C2> \x8F\xE4\xB4 |0 # <CJK>
+<U92C3> \x8F\xE4\xB5 |0 # <CJK>
+<U92C5> \x8F\xE4\xB6 |0 # <CJK>
+<U92C6> \x8F\xE4\xB7 |0 # <CJK>
+<U92C7> \x8F\xE4\xB8 |0 # <CJK>
+<U92C8> \x8F\xE4\xB9 |0 # <CJK>
+<U92CB> \x8F\xE4\xBA |0 # <CJK>
+<U92CC> \x8F\xE4\xBB |0 # <CJK>
+<U92CD> \x8F\xE4\xBC |0 # <CJK>
+<U92CE> \x8F\xE4\xBD |0 # <CJK>
+<U92D0> \x8F\xE4\xBE |0 # <CJK>
+<U92D3> \x8F\xE4\xBF |0 # <CJK>
+<U92D5> \x8F\xE4\xC0 |0 # <CJK>
+<U92D7> \x8F\xE4\xC1 |0 # <CJK>
+<U92D8> \x8F\xE4\xC2 |0 # <CJK>
+<U92D9> \x8F\xE4\xC3 |0 # <CJK>
+<U92DC> \x8F\xE4\xC4 |0 # <CJK>
+<U92DD> \x8F\xE4\xC5 |0 # <CJK>
+<U92DF> \x8F\xE4\xC6 |0 # <CJK>
+<U92E0> \x8F\xE4\xC7 |0 # <CJK>
+<U92E1> \x8F\xE4\xC8 |0 # <CJK>
+<U92E3> \x8F\xE4\xC9 |0 # <CJK>
+<U92E5> \x8F\xE4\xCA |0 # <CJK>
+<U92E7> \x8F\xE4\xCB |0 # <CJK>
+<U92E8> \x8F\xE4\xCC |0 # <CJK>
+<U92EC> \x8F\xE4\xCD |0 # <CJK>
+<U92EE> \x8F\xE4\xCE |0 # <CJK>
+<U92F0> \x8F\xE4\xCF |0 # <CJK>
+<U92F9> \x8F\xE4\xD0 |0 # <CJK>
+<U92FB> \x8F\xE4\xD1 |0 # <CJK>
+<U92FF> \x8F\xE4\xD2 |0 # <CJK>
+<U9300> \x8F\xE4\xD3 |0 # <CJK>
+<U9302> \x8F\xE4\xD4 |0 # <CJK>
+<U9308> \x8F\xE4\xD5 |0 # <CJK>
+<U930D> \x8F\xE4\xD6 |0 # <CJK>
+<U9311> \x8F\xE4\xD7 |0 # <CJK>
+<U9314> \x8F\xE4\xD8 |0 # <CJK>
+<U9315> \x8F\xE4\xD9 |0 # <CJK>
+<U931C> \x8F\xE4\xDA |0 # <CJK>
+<U931D> \x8F\xE4\xDB |0 # <CJK>
+<U931E> \x8F\xE4\xDC |0 # <CJK>
+<U931F> \x8F\xE4\xDD |0 # <CJK>
+<U9321> \x8F\xE4\xDE |0 # <CJK>
+<U9324> \x8F\xE4\xDF |0 # <CJK>
+<U9325> \x8F\xE4\xE0 |0 # <CJK>
+<U9327> \x8F\xE4\xE1 |0 # <CJK>
+<U9329> \x8F\xE4\xE2 |0 # <CJK>
+<U932A> \x8F\xE4\xE3 |0 # <CJK>
+<U9333> \x8F\xE4\xE4 |0 # <CJK>
+<U9334> \x8F\xE4\xE5 |0 # <CJK>
+<U9336> \x8F\xE4\xE6 |0 # <CJK>
+<U9337> \x8F\xE4\xE7 |0 # <CJK>
+<U9347> \x8F\xE4\xE8 |0 # <CJK>
+<U9348> \x8F\xE4\xE9 |0 # <CJK>
+<U9349> \x8F\xE4\xEA |0 # <CJK>
+<U9350> \x8F\xE4\xEB |0 # <CJK>
+<U9351> \x8F\xE4\xEC |0 # <CJK>
+<U9352> \x8F\xE4\xED |0 # <CJK>
+<U9355> \x8F\xE4\xEE |0 # <CJK>
+<U9357> \x8F\xE4\xEF |0 # <CJK>
+<U9358> \x8F\xE4\xF0 |0 # <CJK>
+<U935A> \x8F\xE4\xF1 |0 # <CJK>
+<U935E> \x8F\xE4\xF2 |0 # <CJK>
+<U9364> \x8F\xE4\xF3 |0 # <CJK>
+<U9365> \x8F\xE4\xF4 |0 # <CJK>
+<U9367> \x8F\xE4\xF5 |0 # <CJK>
+<U9369> \x8F\xE4\xF6 |0 # <CJK>
+<U936A> \x8F\xE4\xF7 |0 # <CJK>
+<U936D> \x8F\xE4\xF8 |0 # <CJK>
+<U936F> \x8F\xE4\xF9 |0 # <CJK>
+<U9370> \x8F\xE4\xFA |0 # <CJK>
+<U9371> \x8F\xE4\xFB |0 # <CJK>
+<U9373> \x8F\xE4\xFC |0 # <CJK>
+<U9374> \x8F\xE4\xFD |0 # <CJK>
+<U9376> \x8F\xE4\xFE |0 # <CJK>
+<U937A> \x8F\xE5\xA1 |0 # <CJK>
+<U937D> \x8F\xE5\xA2 |0 # <CJK>
+<U937F> \x8F\xE5\xA3 |0 # <CJK>
+<U9380> \x8F\xE5\xA4 |0 # <CJK>
+<U9381> \x8F\xE5\xA5 |0 # <CJK>
+<U9382> \x8F\xE5\xA6 |0 # <CJK>
+<U9388> \x8F\xE5\xA7 |0 # <CJK>
+<U938A> \x8F\xE5\xA8 |0 # <CJK>
+<U938B> \x8F\xE5\xA9 |0 # <CJK>
+<U938D> \x8F\xE5\xAA |0 # <CJK>
+<U938F> \x8F\xE5\xAB |0 # <CJK>
+<U9392> \x8F\xE5\xAC |0 # <CJK>
+<U9395> \x8F\xE5\xAD |0 # <CJK>
+<U9398> \x8F\xE5\xAE |0 # <CJK>
+<U939B> \x8F\xE5\xAF |0 # <CJK>
+<U939E> \x8F\xE5\xB0 |0 # <CJK>
+<U93A1> \x8F\xE5\xB1 |0 # <CJK>
+<U93A3> \x8F\xE5\xB2 |0 # <CJK>
+<U93A4> \x8F\xE5\xB3 |0 # <CJK>
+<U93A6> \x8F\xE5\xB4 |0 # <CJK>
+<U93A8> \x8F\xE5\xB5 |0 # <CJK>
+<U93AB> \x8F\xE5\xB6 |0 # <CJK>
+<U93B4> \x8F\xE5\xB7 |0 # <CJK>
+<U93B5> \x8F\xE5\xB8 |0 # <CJK>
+<U93B6> \x8F\xE5\xB9 |0 # <CJK>
+<U93BA> \x8F\xE5\xBA |0 # <CJK>
+<U93A9> \x8F\xE5\xBB |0 # <CJK>
+<U93C1> \x8F\xE5\xBC |0 # <CJK>
+<U93C4> \x8F\xE5\xBD |0 # <CJK>
+<U93C5> \x8F\xE5\xBE |0 # <CJK>
+<U93C6> \x8F\xE5\xBF |0 # <CJK>
+<U93C7> \x8F\xE5\xC0 |0 # <CJK>
+<U93C9> \x8F\xE5\xC1 |0 # <CJK>
+<U93CA> \x8F\xE5\xC2 |0 # <CJK>
+<U93CB> \x8F\xE5\xC3 |0 # <CJK>
+<U93CC> \x8F\xE5\xC4 |0 # <CJK>
+<U93CD> \x8F\xE5\xC5 |0 # <CJK>
+<U93D3> \x8F\xE5\xC6 |0 # <CJK>
+<U93D9> \x8F\xE5\xC7 |0 # <CJK>
+<U93DC> \x8F\xE5\xC8 |0 # <CJK>
+<U93DE> \x8F\xE5\xC9 |0 # <CJK>
+<U93DF> \x8F\xE5\xCA |0 # <CJK>
+<U93E2> \x8F\xE5\xCB |0 # <CJK>
+<U93E6> \x8F\xE5\xCC |0 # <CJK>
+<U93E7> \x8F\xE5\xCD |0 # <CJK>
+<U93F9> \x8F\xE5\xCE |0 # <CJK>
+<U93F7> \x8F\xE5\xCF |0 # <CJK>
+<U93F8> \x8F\xE5\xD0 |0 # <CJK>
+<U93FA> \x8F\xE5\xD1 |0 # <CJK>
+<U93FB> \x8F\xE5\xD2 |0 # <CJK>
+<U93FD> \x8F\xE5\xD3 |0 # <CJK>
+<U9401> \x8F\xE5\xD4 |0 # <CJK>
+<U9402> \x8F\xE5\xD5 |0 # <CJK>
+<U9404> \x8F\xE5\xD6 |0 # <CJK>
+<U9408> \x8F\xE5\xD7 |0 # <CJK>
+<U9409> \x8F\xE5\xD8 |0 # <CJK>
+<U940D> \x8F\xE5\xD9 |0 # <CJK>
+<U940E> \x8F\xE5\xDA |0 # <CJK>
+<U940F> \x8F\xE5\xDB |0 # <CJK>
+<U9415> \x8F\xE5\xDC |0 # <CJK>
+<U9416> \x8F\xE5\xDD |0 # <CJK>
+<U9417> \x8F\xE5\xDE |0 # <CJK>
+<U941F> \x8F\xE5\xDF |0 # <CJK>
+<U942E> \x8F\xE5\xE0 |0 # <CJK>
+<U942F> \x8F\xE5\xE1 |0 # <CJK>
+<U9431> \x8F\xE5\xE2 |0 # <CJK>
+<U9432> \x8F\xE5\xE3 |0 # <CJK>
+<U9433> \x8F\xE5\xE4 |0 # <CJK>
+<U9434> \x8F\xE5\xE5 |0 # <CJK>
+<U943B> \x8F\xE5\xE6 |0 # <CJK>
+<U943F> \x8F\xE5\xE7 |0 # <CJK>
+<U943D> \x8F\xE5\xE8 |0 # <CJK>
+<U9443> \x8F\xE5\xE9 |0 # <CJK>
+<U9445> \x8F\xE5\xEA |0 # <CJK>
+<U9448> \x8F\xE5\xEB |0 # <CJK>
+<U944A> \x8F\xE5\xEC |0 # <CJK>
+<U944C> \x8F\xE5\xED |0 # <CJK>
+<U9455> \x8F\xE5\xEE |0 # <CJK>
+<U9459> \x8F\xE5\xEF |0 # <CJK>
+<U945C> \x8F\xE5\xF0 |0 # <CJK>
+<U945F> \x8F\xE5\xF1 |0 # <CJK>
+<U9461> \x8F\xE5\xF2 |0 # <CJK>
+<U9463> \x8F\xE5\xF3 |0 # <CJK>
+<U9468> \x8F\xE5\xF4 |0 # <CJK>
+<U946B> \x8F\xE5\xF5 |0 # <CJK>
+<U946D> \x8F\xE5\xF6 |0 # <CJK>
+<U946E> \x8F\xE5\xF7 |0 # <CJK>
+<U946F> \x8F\xE5\xF8 |0 # <CJK>
+<U9471> \x8F\xE5\xF9 |0 # <CJK>
+<U9472> \x8F\xE5\xFA |0 # <CJK>
+<U9484> \x8F\xE5\xFB |0 # <CJK>
+<U9483> \x8F\xE5\xFC |0 # <CJK>
+<U9578> \x8F\xE5\xFD |0 # <CJK>
+<U9579> \x8F\xE5\xFE |0 # <CJK>
+<U957E> \x8F\xE6\xA1 |0 # <CJK>
+<U9584> \x8F\xE6\xA2 |0 # <CJK>
+<U9588> \x8F\xE6\xA3 |0 # <CJK>
+<U958C> \x8F\xE6\xA4 |0 # <CJK>
+<U958D> \x8F\xE6\xA5 |0 # <CJK>
+<U958E> \x8F\xE6\xA6 |0 # <CJK>
+<U959D> \x8F\xE6\xA7 |0 # <CJK>
+<U959E> \x8F\xE6\xA8 |0 # <CJK>
+<U959F> \x8F\xE6\xA9 |0 # <CJK>
+<U95A1> \x8F\xE6\xAA |0 # <CJK>
+<U95A6> \x8F\xE6\xAB |0 # <CJK>
+<U95A9> \x8F\xE6\xAC |0 # <CJK>
+<U95AB> \x8F\xE6\xAD |0 # <CJK>
+<U95AC> \x8F\xE6\xAE |0 # <CJK>
+<U95B4> \x8F\xE6\xAF |0 # <CJK>
+<U95B6> \x8F\xE6\xB0 |0 # <CJK>
+<U95BA> \x8F\xE6\xB1 |0 # <CJK>
+<U95BD> \x8F\xE6\xB2 |0 # <CJK>
+<U95BF> \x8F\xE6\xB3 |0 # <CJK>
+<U95C6> \x8F\xE6\xB4 |0 # <CJK>
+<U95C8> \x8F\xE6\xB5 |0 # <CJK>
+<U95C9> \x8F\xE6\xB6 |0 # <CJK>
+<U95CB> \x8F\xE6\xB7 |0 # <CJK>
+<U95D0> \x8F\xE6\xB8 |0 # <CJK>
+<U95D1> \x8F\xE6\xB9 |0 # <CJK>
+<U95D2> \x8F\xE6\xBA |0 # <CJK>
+<U95D3> \x8F\xE6\xBB |0 # <CJK>
+<U95D9> \x8F\xE6\xBC |0 # <CJK>
+<U95DA> \x8F\xE6\xBD |0 # <CJK>
+<U95DD> \x8F\xE6\xBE |0 # <CJK>
+<U95DE> \x8F\xE6\xBF |0 # <CJK>
+<U95DF> \x8F\xE6\xC0 |0 # <CJK>
+<U95E0> \x8F\xE6\xC1 |0 # <CJK>
+<U95E4> \x8F\xE6\xC2 |0 # <CJK>
+<U95E6> \x8F\xE6\xC3 |0 # <CJK>
+<U961D> \x8F\xE6\xC4 |0 # <CJK>
+<U961E> \x8F\xE6\xC5 |0 # <CJK>
+<U9622> \x8F\xE6\xC6 |0 # <CJK>
+<U9624> \x8F\xE6\xC7 |0 # <CJK>
+<U9625> \x8F\xE6\xC8 |0 # <CJK>
+<U9626> \x8F\xE6\xC9 |0 # <CJK>
+<U962C> \x8F\xE6\xCA |0 # <CJK>
+<U9631> \x8F\xE6\xCB |0 # <CJK>
+<U9633> \x8F\xE6\xCC |0 # <CJK>
+<U9637> \x8F\xE6\xCD |0 # <CJK>
+<U9638> \x8F\xE6\xCE |0 # <CJK>
+<U9639> \x8F\xE6\xCF |0 # <CJK>
+<U963A> \x8F\xE6\xD0 |0 # <CJK>
+<U963C> \x8F\xE6\xD1 |0 # <CJK>
+<U963D> \x8F\xE6\xD2 |0 # <CJK>
+<U9641> \x8F\xE6\xD3 |0 # <CJK>
+<U9652> \x8F\xE6\xD4 |0 # <CJK>
+<U9654> \x8F\xE6\xD5 |0 # <CJK>
+<U9656> \x8F\xE6\xD6 |0 # <CJK>
+<U9657> \x8F\xE6\xD7 |0 # <CJK>
+<U9658> \x8F\xE6\xD8 |0 # <CJK>
+<U9661> \x8F\xE6\xD9 |0 # <CJK>
+<U966E> \x8F\xE6\xDA |0 # <CJK>
+<U9674> \x8F\xE6\xDB |0 # <CJK>
+<U967B> \x8F\xE6\xDC |0 # <CJK>
+<U967C> \x8F\xE6\xDD |0 # <CJK>
+<U967E> \x8F\xE6\xDE |0 # <CJK>
+<U967F> \x8F\xE6\xDF |0 # <CJK>
+<U9681> \x8F\xE6\xE0 |0 # <CJK>
+<U9682> \x8F\xE6\xE1 |0 # <CJK>
+<U9683> \x8F\xE6\xE2 |0 # <CJK>
+<U9684> \x8F\xE6\xE3 |0 # <CJK>
+<U9689> \x8F\xE6\xE4 |0 # <CJK>
+<U9691> \x8F\xE6\xE5 |0 # <CJK>
+<U9696> \x8F\xE6\xE6 |0 # <CJK>
+<U969A> \x8F\xE6\xE7 |0 # <CJK>
+<U969D> \x8F\xE6\xE8 |0 # <CJK>
+<U969F> \x8F\xE6\xE9 |0 # <CJK>
+<U96A4> \x8F\xE6\xEA |0 # <CJK>
+<U96A5> \x8F\xE6\xEB |0 # <CJK>
+<U96A6> \x8F\xE6\xEC |0 # <CJK>
+<U96A9> \x8F\xE6\xED |0 # <CJK>
+<U96AE> \x8F\xE6\xEE |0 # <CJK>
+<U96AF> \x8F\xE6\xEF |0 # <CJK>
+<U96B3> \x8F\xE6\xF0 |0 # <CJK>
+<U96BA> \x8F\xE6\xF1 |0 # <CJK>
+<U96CA> \x8F\xE6\xF2 |0 # <CJK>
+<U96D2> \x8F\xE6\xF3 |0 # <CJK>
+<U5DB2> \x8F\xE6\xF4 |0 # <CJK>
+<U96D8> \x8F\xE6\xF5 |0 # <CJK>
+<U96DA> \x8F\xE6\xF6 |0 # <CJK>
+<U96DD> \x8F\xE6\xF7 |0 # <CJK>
+<U96DE> \x8F\xE6\xF8 |0 # <CJK>
+<U96DF> \x8F\xE6\xF9 |0 # <CJK>
+<U96E9> \x8F\xE6\xFA |0 # <CJK>
+<U96EF> \x8F\xE6\xFB |0 # <CJK>
+<U96F1> \x8F\xE6\xFC |0 # <CJK>
+<U96FA> \x8F\xE6\xFD |0 # <CJK>
+<U9702> \x8F\xE6\xFE |0 # <CJK>
+<U9703> \x8F\xE7\xA1 |0 # <CJK>
+<U9705> \x8F\xE7\xA2 |0 # <CJK>
+<U9709> \x8F\xE7\xA3 |0 # <CJK>
+<U971A> \x8F\xE7\xA4 |0 # <CJK>
+<U971B> \x8F\xE7\xA5 |0 # <CJK>
+<U971D> \x8F\xE7\xA6 |0 # <CJK>
+<U9721> \x8F\xE7\xA7 |0 # <CJK>
+<U9722> \x8F\xE7\xA8 |0 # <CJK>
+<U9723> \x8F\xE7\xA9 |0 # <CJK>
+<U9728> \x8F\xE7\xAA |0 # <CJK>
+<U9731> \x8F\xE7\xAB |0 # <CJK>
+<U9733> \x8F\xE7\xAC |0 # <CJK>
+<U9741> \x8F\xE7\xAD |0 # <CJK>
+<U9743> \x8F\xE7\xAE |0 # <CJK>
+<U974A> \x8F\xE7\xAF |0 # <CJK>
+<U974E> \x8F\xE7\xB0 |0 # <CJK>
+<U974F> \x8F\xE7\xB1 |0 # <CJK>
+<U9755> \x8F\xE7\xB2 |0 # <CJK>
+<U9757> \x8F\xE7\xB3 |0 # <CJK>
+<U9758> \x8F\xE7\xB4 |0 # <CJK>
+<U975A> \x8F\xE7\xB5 |0 # <CJK>
+<U975B> \x8F\xE7\xB6 |0 # <CJK>
+<U9763> \x8F\xE7\xB7 |0 # <CJK>
+<U9767> \x8F\xE7\xB8 |0 # <CJK>
+<U976A> \x8F\xE7\xB9 |0 # <CJK>
+<U976E> \x8F\xE7\xBA |0 # <CJK>
+<U9773> \x8F\xE7\xBB |0 # <CJK>
+<U9776> \x8F\xE7\xBC |0 # <CJK>
+<U9777> \x8F\xE7\xBD |0 # <CJK>
+<U9778> \x8F\xE7\xBE |0 # <CJK>
+<U977B> \x8F\xE7\xBF |0 # <CJK>
+<U977D> \x8F\xE7\xC0 |0 # <CJK>
+<U977F> \x8F\xE7\xC1 |0 # <CJK>
+<U9780> \x8F\xE7\xC2 |0 # <CJK>
+<U9789> \x8F\xE7\xC3 |0 # <CJK>
+<U9795> \x8F\xE7\xC4 |0 # <CJK>
+<U9796> \x8F\xE7\xC5 |0 # <CJK>
+<U9797> \x8F\xE7\xC6 |0 # <CJK>
+<U9799> \x8F\xE7\xC7 |0 # <CJK>
+<U979A> \x8F\xE7\xC8 |0 # <CJK>
+<U979E> \x8F\xE7\xC9 |0 # <CJK>
+<U979F> \x8F\xE7\xCA |0 # <CJK>
+<U97A2> \x8F\xE7\xCB |0 # <CJK>
+<U97AC> \x8F\xE7\xCC |0 # <CJK>
+<U97AE> \x8F\xE7\xCD |0 # <CJK>
+<U97B1> \x8F\xE7\xCE |0 # <CJK>
+<U97B2> \x8F\xE7\xCF |0 # <CJK>
+<U97B5> \x8F\xE7\xD0 |0 # <CJK>
+<U97B6> \x8F\xE7\xD1 |0 # <CJK>
+<U97B8> \x8F\xE7\xD2 |0 # <CJK>
+<U97B9> \x8F\xE7\xD3 |0 # <CJK>
+<U97BA> \x8F\xE7\xD4 |0 # <CJK>
+<U97BC> \x8F\xE7\xD5 |0 # <CJK>
+<U97BE> \x8F\xE7\xD6 |0 # <CJK>
+<U97BF> \x8F\xE7\xD7 |0 # <CJK>
+<U97C1> \x8F\xE7\xD8 |0 # <CJK>
+<U97C4> \x8F\xE7\xD9 |0 # <CJK>
+<U97C5> \x8F\xE7\xDA |0 # <CJK>
+<U97C7> \x8F\xE7\xDB |0 # <CJK>
+<U97C9> \x8F\xE7\xDC |0 # <CJK>
+<U97CA> \x8F\xE7\xDD |0 # <CJK>
+<U97CC> \x8F\xE7\xDE |0 # <CJK>
+<U97CD> \x8F\xE7\xDF |0 # <CJK>
+<U97CE> \x8F\xE7\xE0 |0 # <CJK>
+<U97D0> \x8F\xE7\xE1 |0 # <CJK>
+<U97D1> \x8F\xE7\xE2 |0 # <CJK>
+<U97D4> \x8F\xE7\xE3 |0 # <CJK>
+<U97D7> \x8F\xE7\xE4 |0 # <CJK>
+<U97D8> \x8F\xE7\xE5 |0 # <CJK>
+<U97D9> \x8F\xE7\xE6 |0 # <CJK>
+<U97DD> \x8F\xE7\xE7 |0 # <CJK>
+<U97DE> \x8F\xE7\xE8 |0 # <CJK>
+<U97E0> \x8F\xE7\xE9 |0 # <CJK>
+<U97DB> \x8F\xE7\xEA |0 # <CJK>
+<U97E1> \x8F\xE7\xEB |0 # <CJK>
+<U97E4> \x8F\xE7\xEC |0 # <CJK>
+<U97EF> \x8F\xE7\xED |0 # <CJK>
+<U97F1> \x8F\xE7\xEE |0 # <CJK>
+<U97F4> \x8F\xE7\xEF |0 # <CJK>
+<U97F7> \x8F\xE7\xF0 |0 # <CJK>
+<U97F8> \x8F\xE7\xF1 |0 # <CJK>
+<U97FA> \x8F\xE7\xF2 |0 # <CJK>
+<U9807> \x8F\xE7\xF3 |0 # <CJK>
+<U980A> \x8F\xE7\xF4 |0 # <CJK>
+<U9819> \x8F\xE7\xF5 |0 # <CJK>
+<U980D> \x8F\xE7\xF6 |0 # <CJK>
+<U980E> \x8F\xE7\xF7 |0 # <CJK>
+<U9814> \x8F\xE7\xF8 |0 # <CJK>
+<U9816> \x8F\xE7\xF9 |0 # <CJK>
+<U981C> \x8F\xE7\xFA |0 # <CJK>
+<U981E> \x8F\xE7\xFB |0 # <CJK>
+<U9820> \x8F\xE7\xFC |0 # <CJK>
+<U9823> \x8F\xE7\xFD |0 # <CJK>
+<U9826> \x8F\xE7\xFE |0 # <CJK>
+<U982B> \x8F\xE8\xA1 |0 # <CJK>
+<U982E> \x8F\xE8\xA2 |0 # <CJK>
+<U982F> \x8F\xE8\xA3 |0 # <CJK>
+<U9830> \x8F\xE8\xA4 |0 # <CJK>
+<U9832> \x8F\xE8\xA5 |0 # <CJK>
+<U9833> \x8F\xE8\xA6 |0 # <CJK>
+<U9835> \x8F\xE8\xA7 |0 # <CJK>
+<U9825> \x8F\xE8\xA8 |0 # <CJK>
+<U983E> \x8F\xE8\xA9 |0 # <CJK>
+<U9844> \x8F\xE8\xAA |0 # <CJK>
+<U9847> \x8F\xE8\xAB |0 # <CJK>
+<U984A> \x8F\xE8\xAC |0 # <CJK>
+<U9851> \x8F\xE8\xAD |0 # <CJK>
+<U9852> \x8F\xE8\xAE |0 # <CJK>
+<U9853> \x8F\xE8\xAF |0 # <CJK>
+<U9856> \x8F\xE8\xB0 |0 # <CJK>
+<U9857> \x8F\xE8\xB1 |0 # <CJK>
+<U9859> \x8F\xE8\xB2 |0 # <CJK>
+<U985A> \x8F\xE8\xB3 |0 # <CJK>
+<U9862> \x8F\xE8\xB4 |0 # <CJK>
+<U9863> \x8F\xE8\xB5 |0 # <CJK>
+<U9865> \x8F\xE8\xB6 |0 # <CJK>
+<U9866> \x8F\xE8\xB7 |0 # <CJK>
+<U986A> \x8F\xE8\xB8 |0 # <CJK>
+<U986C> \x8F\xE8\xB9 |0 # <CJK>
+<U98AB> \x8F\xE8\xBA |0 # <CJK>
+<U98AD> \x8F\xE8\xBB |0 # <CJK>
+<U98AE> \x8F\xE8\xBC |0 # <CJK>
+<U98B0> \x8F\xE8\xBD |0 # <CJK>
+<U98B4> \x8F\xE8\xBE |0 # <CJK>
+<U98B7> \x8F\xE8\xBF |0 # <CJK>
+<U98B8> \x8F\xE8\xC0 |0 # <CJK>
+<U98BA> \x8F\xE8\xC1 |0 # <CJK>
+<U98BB> \x8F\xE8\xC2 |0 # <CJK>
+<U98BF> \x8F\xE8\xC3 |0 # <CJK>
+<U98C2> \x8F\xE8\xC4 |0 # <CJK>
+<U98C5> \x8F\xE8\xC5 |0 # <CJK>
+<U98C8> \x8F\xE8\xC6 |0 # <CJK>
+<U98CC> \x8F\xE8\xC7 |0 # <CJK>
+<U98E1> \x8F\xE8\xC8 |0 # <CJK>
+<U98E3> \x8F\xE8\xC9 |0 # <CJK>
+<U98E5> \x8F\xE8\xCA |0 # <CJK>
+<U98E6> \x8F\xE8\xCB |0 # <CJK>
+<U98E7> \x8F\xE8\xCC |0 # <CJK>
+<U98EA> \x8F\xE8\xCD |0 # <CJK>
+<U98F3> \x8F\xE8\xCE |0 # <CJK>
+<U98F6> \x8F\xE8\xCF |0 # <CJK>
+<U9902> \x8F\xE8\xD0 |0 # <CJK>
+<U9907> \x8F\xE8\xD1 |0 # <CJK>
+<U9908> \x8F\xE8\xD2 |0 # <CJK>
+<U9911> \x8F\xE8\xD3 |0 # <CJK>
+<U9915> \x8F\xE8\xD4 |0 # <CJK>
+<U9916> \x8F\xE8\xD5 |0 # <CJK>
+<U9917> \x8F\xE8\xD6 |0 # <CJK>
+<U991A> \x8F\xE8\xD7 |0 # <CJK>
+<U991B> \x8F\xE8\xD8 |0 # <CJK>
+<U991C> \x8F\xE8\xD9 |0 # <CJK>
+<U991F> \x8F\xE8\xDA |0 # <CJK>
+<U9922> \x8F\xE8\xDB |0 # <CJK>
+<U9926> \x8F\xE8\xDC |0 # <CJK>
+<U9927> \x8F\xE8\xDD |0 # <CJK>
+<U992B> \x8F\xE8\xDE |0 # <CJK>
+<U9931> \x8F\xE8\xDF |0 # <CJK>
+<U9932> \x8F\xE8\xE0 |0 # <CJK>
+<U9933> \x8F\xE8\xE1 |0 # <CJK>
+<U9934> \x8F\xE8\xE2 |0 # <CJK>
+<U9935> \x8F\xE8\xE3 |0 # <CJK>
+<U9939> \x8F\xE8\xE4 |0 # <CJK>
+<U993A> \x8F\xE8\xE5 |0 # <CJK>
+<U993B> \x8F\xE8\xE6 |0 # <CJK>
+<U993C> \x8F\xE8\xE7 |0 # <CJK>
+<U9940> \x8F\xE8\xE8 |0 # <CJK>
+<U9941> \x8F\xE8\xE9 |0 # <CJK>
+<U9946> \x8F\xE8\xEA |0 # <CJK>
+<U9947> \x8F\xE8\xEB |0 # <CJK>
+<U9948> \x8F\xE8\xEC |0 # <CJK>
+<U994D> \x8F\xE8\xED |0 # <CJK>
+<U994E> \x8F\xE8\xEE |0 # <CJK>
+<U9954> \x8F\xE8\xEF |0 # <CJK>
+<U9958> \x8F\xE8\xF0 |0 # <CJK>
+<U9959> \x8F\xE8\xF1 |0 # <CJK>
+<U995B> \x8F\xE8\xF2 |0 # <CJK>
+<U995C> \x8F\xE8\xF3 |0 # <CJK>
+<U995E> \x8F\xE8\xF4 |0 # <CJK>
+<U995F> \x8F\xE8\xF5 |0 # <CJK>
+<U9960> \x8F\xE8\xF6 |0 # <CJK>
+<U999B> \x8F\xE8\xF7 |0 # <CJK>
+<U999D> \x8F\xE8\xF8 |0 # <CJK>
+<U999F> \x8F\xE8\xF9 |0 # <CJK>
+<U99A6> \x8F\xE8\xFA |0 # <CJK>
+<U99B0> \x8F\xE8\xFB |0 # <CJK>
+<U99B1> \x8F\xE8\xFC |0 # <CJK>
+<U99B2> \x8F\xE8\xFD |0 # <CJK>
+<U99B5> \x8F\xE8\xFE |0 # <CJK>
+<U99B9> \x8F\xE9\xA1 |0 # <CJK>
+<U99BA> \x8F\xE9\xA2 |0 # <CJK>
+<U99BD> \x8F\xE9\xA3 |0 # <CJK>
+<U99BF> \x8F\xE9\xA4 |0 # <CJK>
+<U99C3> \x8F\xE9\xA5 |0 # <CJK>
+<U99C9> \x8F\xE9\xA6 |0 # <CJK>
+<U99D3> \x8F\xE9\xA7 |0 # <CJK>
+<U99D4> \x8F\xE9\xA8 |0 # <CJK>
+<U99D9> \x8F\xE9\xA9 |0 # <CJK>
+<U99DA> \x8F\xE9\xAA |0 # <CJK>
+<U99DC> \x8F\xE9\xAB |0 # <CJK>
+<U99DE> \x8F\xE9\xAC |0 # <CJK>
+<U99E7> \x8F\xE9\xAD |0 # <CJK>
+<U99EA> \x8F\xE9\xAE |0 # <CJK>
+<U99EB> \x8F\xE9\xAF |0 # <CJK>
+<U99EC> \x8F\xE9\xB0 |0 # <CJK>
+<U99F0> \x8F\xE9\xB1 |0 # <CJK>
+<U99F4> \x8F\xE9\xB2 |0 # <CJK>
+<U99F5> \x8F\xE9\xB3 |0 # <CJK>
+<U99F9> \x8F\xE9\xB4 |0 # <CJK>
+<U99FD> \x8F\xE9\xB5 |0 # <CJK>
+<U99FE> \x8F\xE9\xB6 |0 # <CJK>
+<U9A02> \x8F\xE9\xB7 |0 # <CJK>
+<U9A03> \x8F\xE9\xB8 |0 # <CJK>
+<U9A04> \x8F\xE9\xB9 |0 # <CJK>
+<U9A0B> \x8F\xE9\xBA |0 # <CJK>
+<U9A0C> \x8F\xE9\xBB |0 # <CJK>
+<U9A10> \x8F\xE9\xBC |0 # <CJK>
+<U9A11> \x8F\xE9\xBD |0 # <CJK>
+<U9A16> \x8F\xE9\xBE |0 # <CJK>
+<U9A1E> \x8F\xE9\xBF |0 # <CJK>
+<U9A20> \x8F\xE9\xC0 |0 # <CJK>
+<U9A22> \x8F\xE9\xC1 |0 # <CJK>
+<U9A23> \x8F\xE9\xC2 |0 # <CJK>
+<U9A24> \x8F\xE9\xC3 |0 # <CJK>
+<U9A27> \x8F\xE9\xC4 |0 # <CJK>
+<U9A2D> \x8F\xE9\xC5 |0 # <CJK>
+<U9A2E> \x8F\xE9\xC6 |0 # <CJK>
+<U9A33> \x8F\xE9\xC7 |0 # <CJK>
+<U9A35> \x8F\xE9\xC8 |0 # <CJK>
+<U9A36> \x8F\xE9\xC9 |0 # <CJK>
+<U9A38> \x8F\xE9\xCA |0 # <CJK>
+<U9A47> \x8F\xE9\xCB |0 # <CJK>
+<U9A41> \x8F\xE9\xCC |0 # <CJK>
+<U9A44> \x8F\xE9\xCD |0 # <CJK>
+<U9A4A> \x8F\xE9\xCE |0 # <CJK>
+<U9A4B> \x8F\xE9\xCF |0 # <CJK>
+<U9A4C> \x8F\xE9\xD0 |0 # <CJK>
+<U9A4E> \x8F\xE9\xD1 |0 # <CJK>
+<U9A51> \x8F\xE9\xD2 |0 # <CJK>
+<U9A54> \x8F\xE9\xD3 |0 # <CJK>
+<U9A56> \x8F\xE9\xD4 |0 # <CJK>
+<U9A5D> \x8F\xE9\xD5 |0 # <CJK>
+<U9AAA> \x8F\xE9\xD6 |0 # <CJK>
+<U9AAC> \x8F\xE9\xD7 |0 # <CJK>
+<U9AAE> \x8F\xE9\xD8 |0 # <CJK>
+<U9AAF> \x8F\xE9\xD9 |0 # <CJK>
+<U9AB2> \x8F\xE9\xDA |0 # <CJK>
+<U9AB4> \x8F\xE9\xDB |0 # <CJK>
+<U9AB5> \x8F\xE9\xDC |0 # <CJK>
+<U9AB6> \x8F\xE9\xDD |0 # <CJK>
+<U9AB9> \x8F\xE9\xDE |0 # <CJK>
+<U9ABB> \x8F\xE9\xDF |0 # <CJK>
+<U9ABE> \x8F\xE9\xE0 |0 # <CJK>
+<U9ABF> \x8F\xE9\xE1 |0 # <CJK>
+<U9AC1> \x8F\xE9\xE2 |0 # <CJK>
+<U9AC3> \x8F\xE9\xE3 |0 # <CJK>
+<U9AC6> \x8F\xE9\xE4 |0 # <CJK>
+<U9AC8> \x8F\xE9\xE5 |0 # <CJK>
+<U9ACE> \x8F\xE9\xE6 |0 # <CJK>
+<U9AD0> \x8F\xE9\xE7 |0 # <CJK>
+<U9AD2> \x8F\xE9\xE8 |0 # <CJK>
+<U9AD5> \x8F\xE9\xE9 |0 # <CJK>
+<U9AD6> \x8F\xE9\xEA |0 # <CJK>
+<U9AD7> \x8F\xE9\xEB |0 # <CJK>
+<U9ADB> \x8F\xE9\xEC |0 # <CJK>
+<U9ADC> \x8F\xE9\xED |0 # <CJK>
+<U9AE0> \x8F\xE9\xEE |0 # <CJK>
+<U9AE4> \x8F\xE9\xEF |0 # <CJK>
+<U9AE5> \x8F\xE9\xF0 |0 # <CJK>
+<U9AE7> \x8F\xE9\xF1 |0 # <CJK>
+<U9AE9> \x8F\xE9\xF2 |0 # <CJK>
+<U9AEC> \x8F\xE9\xF3 |0 # <CJK>
+<U9AF2> \x8F\xE9\xF4 |0 # <CJK>
+<U9AF3> \x8F\xE9\xF5 |0 # <CJK>
+<U9AF5> \x8F\xE9\xF6 |0 # <CJK>
+<U9AF9> \x8F\xE9\xF7 |0 # <CJK>
+<U9AFA> \x8F\xE9\xF8 |0 # <CJK>
+<U9AFD> \x8F\xE9\xF9 |0 # <CJK>
+<U9AFF> \x8F\xE9\xFA |0 # <CJK>
+<U9B00> \x8F\xE9\xFB |0 # <CJK>
+<U9B01> \x8F\xE9\xFC |0 # <CJK>
+<U9B02> \x8F\xE9\xFD |0 # <CJK>
+<U9B03> \x8F\xE9\xFE |0 # <CJK>
+<U9B04> \x8F\xEA\xA1 |0 # <CJK>
+<U9B05> \x8F\xEA\xA2 |0 # <CJK>
+<U9B08> \x8F\xEA\xA3 |0 # <CJK>
+<U9B09> \x8F\xEA\xA4 |0 # <CJK>
+<U9B0B> \x8F\xEA\xA5 |0 # <CJK>
+<U9B0C> \x8F\xEA\xA6 |0 # <CJK>
+<U9B0D> \x8F\xEA\xA7 |0 # <CJK>
+<U9B0E> \x8F\xEA\xA8 |0 # <CJK>
+<U9B10> \x8F\xEA\xA9 |0 # <CJK>
+<U9B12> \x8F\xEA\xAA |0 # <CJK>
+<U9B16> \x8F\xEA\xAB |0 # <CJK>
+<U9B19> \x8F\xEA\xAC |0 # <CJK>
+<U9B1B> \x8F\xEA\xAD |0 # <CJK>
+<U9B1C> \x8F\xEA\xAE |0 # <CJK>
+<U9B20> \x8F\xEA\xAF |0 # <CJK>
+<U9B26> \x8F\xEA\xB0 |0 # <CJK>
+<U9B2B> \x8F\xEA\xB1 |0 # <CJK>
+<U9B2D> \x8F\xEA\xB2 |0 # <CJK>
+<U9B33> \x8F\xEA\xB3 |0 # <CJK>
+<U9B34> \x8F\xEA\xB4 |0 # <CJK>
+<U9B35> \x8F\xEA\xB5 |0 # <CJK>
+<U9B37> \x8F\xEA\xB6 |0 # <CJK>
+<U9B39> \x8F\xEA\xB7 |0 # <CJK>
+<U9B3A> \x8F\xEA\xB8 |0 # <CJK>
+<U9B3D> \x8F\xEA\xB9 |0 # <CJK>
+<U9B48> \x8F\xEA\xBA |0 # <CJK>
+<U9B4B> \x8F\xEA\xBB |0 # <CJK>
+<U9B4C> \x8F\xEA\xBC |0 # <CJK>
+<U9B55> \x8F\xEA\xBD |0 # <CJK>
+<U9B56> \x8F\xEA\xBE |0 # <CJK>
+<U9B57> \x8F\xEA\xBF |0 # <CJK>
+<U9B5B> \x8F\xEA\xC0 |0 # <CJK>
+<U9B5E> \x8F\xEA\xC1 |0 # <CJK>
+<U9B61> \x8F\xEA\xC2 |0 # <CJK>
+<U9B63> \x8F\xEA\xC3 |0 # <CJK>
+<U9B65> \x8F\xEA\xC4 |0 # <CJK>
+<U9B66> \x8F\xEA\xC5 |0 # <CJK>
+<U9B68> \x8F\xEA\xC6 |0 # <CJK>
+<U9B6A> \x8F\xEA\xC7 |0 # <CJK>
+<U9B6B> \x8F\xEA\xC8 |0 # <CJK>
+<U9B6C> \x8F\xEA\xC9 |0 # <CJK>
+<U9B6D> \x8F\xEA\xCA |0 # <CJK>
+<U9B6E> \x8F\xEA\xCB |0 # <CJK>
+<U9B73> \x8F\xEA\xCC |0 # <CJK>
+<U9B75> \x8F\xEA\xCD |0 # <CJK>
+<U9B77> \x8F\xEA\xCE |0 # <CJK>
+<U9B78> \x8F\xEA\xCF |0 # <CJK>
+<U9B79> \x8F\xEA\xD0 |0 # <CJK>
+<U9B7F> \x8F\xEA\xD1 |0 # <CJK>
+<U9B80> \x8F\xEA\xD2 |0 # <CJK>
+<U9B84> \x8F\xEA\xD3 |0 # <CJK>
+<U9B85> \x8F\xEA\xD4 |0 # <CJK>
+<U9B86> \x8F\xEA\xD5 |0 # <CJK>
+<U9B87> \x8F\xEA\xD6 |0 # <CJK>
+<U9B89> \x8F\xEA\xD7 |0 # <CJK>
+<U9B8A> \x8F\xEA\xD8 |0 # <CJK>
+<U9B8B> \x8F\xEA\xD9 |0 # <CJK>
+<U9B8D> \x8F\xEA\xDA |0 # <CJK>
+<U9B8F> \x8F\xEA\xDB |0 # <CJK>
+<U9B90> \x8F\xEA\xDC |0 # <CJK>
+<U9B94> \x8F\xEA\xDD |0 # <CJK>
+<U9B9A> \x8F\xEA\xDE |0 # <CJK>
+<U9B9D> \x8F\xEA\xDF |0 # <CJK>
+<U9B9E> \x8F\xEA\xE0 |0 # <CJK>
+<U9BA6> \x8F\xEA\xE1 |0 # <CJK>
+<U9BA7> \x8F\xEA\xE2 |0 # <CJK>
+<U9BA9> \x8F\xEA\xE3 |0 # <CJK>
+<U9BAC> \x8F\xEA\xE4 |0 # <CJK>
+<U9BB0> \x8F\xEA\xE5 |0 # <CJK>
+<U9BB1> \x8F\xEA\xE6 |0 # <CJK>
+<U9BB2> \x8F\xEA\xE7 |0 # <CJK>
+<U9BB7> \x8F\xEA\xE8 |0 # <CJK>
+<U9BB8> \x8F\xEA\xE9 |0 # <CJK>
+<U9BBB> \x8F\xEA\xEA |0 # <CJK>
+<U9BBC> \x8F\xEA\xEB |0 # <CJK>
+<U9BBE> \x8F\xEA\xEC |0 # <CJK>
+<U9BBF> \x8F\xEA\xED |0 # <CJK>
+<U9BC1> \x8F\xEA\xEE |0 # <CJK>
+<U9BC7> \x8F\xEA\xEF |0 # <CJK>
+<U9BC8> \x8F\xEA\xF0 |0 # <CJK>
+<U9BCE> \x8F\xEA\xF1 |0 # <CJK>
+<U9BD0> \x8F\xEA\xF2 |0 # <CJK>
+<U9BD7> \x8F\xEA\xF3 |0 # <CJK>
+<U9BD8> \x8F\xEA\xF4 |0 # <CJK>
+<U9BDD> \x8F\xEA\xF5 |0 # <CJK>
+<U9BDF> \x8F\xEA\xF6 |0 # <CJK>
+<U9BE5> \x8F\xEA\xF7 |0 # <CJK>
+<U9BE7> \x8F\xEA\xF8 |0 # <CJK>
+<U9BEA> \x8F\xEA\xF9 |0 # <CJK>
+<U9BEB> \x8F\xEA\xFA |0 # <CJK>
+<U9BEF> \x8F\xEA\xFB |0 # <CJK>
+<U9BF3> \x8F\xEA\xFC |0 # <CJK>
+<U9BF7> \x8F\xEA\xFD |0 # <CJK>
+<U9BF8> \x8F\xEA\xFE |0 # <CJK>
+<U9BF9> \x8F\xEB\xA1 |0 # <CJK>
+<U9BFA> \x8F\xEB\xA2 |0 # <CJK>
+<U9BFD> \x8F\xEB\xA3 |0 # <CJK>
+<U9BFF> \x8F\xEB\xA4 |0 # <CJK>
+<U9C00> \x8F\xEB\xA5 |0 # <CJK>
+<U9C02> \x8F\xEB\xA6 |0 # <CJK>
+<U9C0B> \x8F\xEB\xA7 |0 # <CJK>
+<U9C0F> \x8F\xEB\xA8 |0 # <CJK>
+<U9C11> \x8F\xEB\xA9 |0 # <CJK>
+<U9C16> \x8F\xEB\xAA |0 # <CJK>
+<U9C18> \x8F\xEB\xAB |0 # <CJK>
+<U9C19> \x8F\xEB\xAC |0 # <CJK>
+<U9C1A> \x8F\xEB\xAD |0 # <CJK>
+<U9C1C> \x8F\xEB\xAE |0 # <CJK>
+<U9C1E> \x8F\xEB\xAF |0 # <CJK>
+<U9C22> \x8F\xEB\xB0 |0 # <CJK>
+<U9C23> \x8F\xEB\xB1 |0 # <CJK>
+<U9C26> \x8F\xEB\xB2 |0 # <CJK>
+<U9C27> \x8F\xEB\xB3 |0 # <CJK>
+<U9C28> \x8F\xEB\xB4 |0 # <CJK>
+<U9C29> \x8F\xEB\xB5 |0 # <CJK>
+<U9C2A> \x8F\xEB\xB6 |0 # <CJK>
+<U9C31> \x8F\xEB\xB7 |0 # <CJK>
+<U9C35> \x8F\xEB\xB8 |0 # <CJK>
+<U9C36> \x8F\xEB\xB9 |0 # <CJK>
+<U9C37> \x8F\xEB\xBA |0 # <CJK>
+<U9C3D> \x8F\xEB\xBB |0 # <CJK>
+<U9C41> \x8F\xEB\xBC |0 # <CJK>
+<U9C43> \x8F\xEB\xBD |0 # <CJK>
+<U9C44> \x8F\xEB\xBE |0 # <CJK>
+<U9C45> \x8F\xEB\xBF |0 # <CJK>
+<U9C49> \x8F\xEB\xC0 |0 # <CJK>
+<U9C4A> \x8F\xEB\xC1 |0 # <CJK>
+<U9C4E> \x8F\xEB\xC2 |0 # <CJK>
+<U9C4F> \x8F\xEB\xC3 |0 # <CJK>
+<U9C50> \x8F\xEB\xC4 |0 # <CJK>
+<U9C53> \x8F\xEB\xC5 |0 # <CJK>
+<U9C54> \x8F\xEB\xC6 |0 # <CJK>
+<U9C56> \x8F\xEB\xC7 |0 # <CJK>
+<U9C58> \x8F\xEB\xC8 |0 # <CJK>
+<U9C5B> \x8F\xEB\xC9 |0 # <CJK>
+<U9C5D> \x8F\xEB\xCA |0 # <CJK>
+<U9C5E> \x8F\xEB\xCB |0 # <CJK>
+<U9C5F> \x8F\xEB\xCC |0 # <CJK>
+<U9C63> \x8F\xEB\xCD |0 # <CJK>
+<U9C69> \x8F\xEB\xCE |0 # <CJK>
+<U9C6A> \x8F\xEB\xCF |0 # <CJK>
+<U9C5C> \x8F\xEB\xD0 |0 # <CJK>
+<U9C6B> \x8F\xEB\xD1 |0 # <CJK>
+<U9C68> \x8F\xEB\xD2 |0 # <CJK>
+<U9C6E> \x8F\xEB\xD3 |0 # <CJK>
+<U9C70> \x8F\xEB\xD4 |0 # <CJK>
+<U9C72> \x8F\xEB\xD5 |0 # <CJK>
+<U9C75> \x8F\xEB\xD6 |0 # <CJK>
+<U9C77> \x8F\xEB\xD7 |0 # <CJK>
+<U9C7B> \x8F\xEB\xD8 |0 # <CJK>
+<U9CE6> \x8F\xEB\xD9 |0 # <CJK>
+<U9CF2> \x8F\xEB\xDA |0 # <CJK>
+<U9CF7> \x8F\xEB\xDB |0 # <CJK>
+<U9CF9> \x8F\xEB\xDC |0 # <CJK>
+<U9D0B> \x8F\xEB\xDD |0 # <CJK>
+<U9D02> \x8F\xEB\xDE |0 # <CJK>
+<U9D11> \x8F\xEB\xDF |0 # <CJK>
+<U9D17> \x8F\xEB\xE0 |0 # <CJK>
+<U9D18> \x8F\xEB\xE1 |0 # <CJK>
+<U9D1C> \x8F\xEB\xE2 |0 # <CJK>
+<U9D1D> \x8F\xEB\xE3 |0 # <CJK>
+<U9D1E> \x8F\xEB\xE4 |0 # <CJK>
+<U9D2F> \x8F\xEB\xE5 |0 # <CJK>
+<U9D30> \x8F\xEB\xE6 |0 # <CJK>
+<U9D32> \x8F\xEB\xE7 |0 # <CJK>
+<U9D33> \x8F\xEB\xE8 |0 # <CJK>
+<U9D34> \x8F\xEB\xE9 |0 # <CJK>
+<U9D3A> \x8F\xEB\xEA |0 # <CJK>
+<U9D3C> \x8F\xEB\xEB |0 # <CJK>
+<U9D45> \x8F\xEB\xEC |0 # <CJK>
+<U9D3D> \x8F\xEB\xED |0 # <CJK>
+<U9D42> \x8F\xEB\xEE |0 # <CJK>
+<U9D43> \x8F\xEB\xEF |0 # <CJK>
+<U9D47> \x8F\xEB\xF0 |0 # <CJK>
+<U9D4A> \x8F\xEB\xF1 |0 # <CJK>
+<U9D53> \x8F\xEB\xF2 |0 # <CJK>
+<U9D54> \x8F\xEB\xF3 |0 # <CJK>
+<U9D5F> \x8F\xEB\xF4 |0 # <CJK>
+<U9D63> \x8F\xEB\xF5 |0 # <CJK>
+<U9D62> \x8F\xEB\xF6 |0 # <CJK>
+<U9D65> \x8F\xEB\xF7 |0 # <CJK>
+<U9D69> \x8F\xEB\xF8 |0 # <CJK>
+<U9D6A> \x8F\xEB\xF9 |0 # <CJK>
+<U9D6B> \x8F\xEB\xFA |0 # <CJK>
+<U9D70> \x8F\xEB\xFB |0 # <CJK>
+<U9D76> \x8F\xEB\xFC |0 # <CJK>
+<U9D77> \x8F\xEB\xFD |0 # <CJK>
+<U9D7B> \x8F\xEB\xFE |0 # <CJK>
+<U9D7C> \x8F\xEC\xA1 |0 # <CJK>
+<U9D7E> \x8F\xEC\xA2 |0 # <CJK>
+<U9D83> \x8F\xEC\xA3 |0 # <CJK>
+<U9D84> \x8F\xEC\xA4 |0 # <CJK>
+<U9D86> \x8F\xEC\xA5 |0 # <CJK>
+<U9D8A> \x8F\xEC\xA6 |0 # <CJK>
+<U9D8D> \x8F\xEC\xA7 |0 # <CJK>
+<U9D8E> \x8F\xEC\xA8 |0 # <CJK>
+<U9D92> \x8F\xEC\xA9 |0 # <CJK>
+<U9D93> \x8F\xEC\xAA |0 # <CJK>
+<U9D95> \x8F\xEC\xAB |0 # <CJK>
+<U9D96> \x8F\xEC\xAC |0 # <CJK>
+<U9D97> \x8F\xEC\xAD |0 # <CJK>
+<U9D98> \x8F\xEC\xAE |0 # <CJK>
+<U9DA1> \x8F\xEC\xAF |0 # <CJK>
+<U9DAA> \x8F\xEC\xB0 |0 # <CJK>
+<U9DAC> \x8F\xEC\xB1 |0 # <CJK>
+<U9DAE> \x8F\xEC\xB2 |0 # <CJK>
+<U9DB1> \x8F\xEC\xB3 |0 # <CJK>
+<U9DB5> \x8F\xEC\xB4 |0 # <CJK>
+<U9DB9> \x8F\xEC\xB5 |0 # <CJK>
+<U9DBC> \x8F\xEC\xB6 |0 # <CJK>
+<U9DBF> \x8F\xEC\xB7 |0 # <CJK>
+<U9DC3> \x8F\xEC\xB8 |0 # <CJK>
+<U9DC7> \x8F\xEC\xB9 |0 # <CJK>
+<U9DC9> \x8F\xEC\xBA |0 # <CJK>
+<U9DCA> \x8F\xEC\xBB |0 # <CJK>
+<U9DD4> \x8F\xEC\xBC |0 # <CJK>
+<U9DD5> \x8F\xEC\xBD |0 # <CJK>
+<U9DD6> \x8F\xEC\xBE |0 # <CJK>
+<U9DD7> \x8F\xEC\xBF |0 # <CJK>
+<U9DDA> \x8F\xEC\xC0 |0 # <CJK>
+<U9DDE> \x8F\xEC\xC1 |0 # <CJK>
+<U9DDF> \x8F\xEC\xC2 |0 # <CJK>
+<U9DE0> \x8F\xEC\xC3 |0 # <CJK>
+<U9DE5> \x8F\xEC\xC4 |0 # <CJK>
+<U9DE7> \x8F\xEC\xC5 |0 # <CJK>
+<U9DE9> \x8F\xEC\xC6 |0 # <CJK>
+<U9DEB> \x8F\xEC\xC7 |0 # <CJK>
+<U9DEE> \x8F\xEC\xC8 |0 # <CJK>
+<U9DF0> \x8F\xEC\xC9 |0 # <CJK>
+<U9DF3> \x8F\xEC\xCA |0 # <CJK>
+<U9DF4> \x8F\xEC\xCB |0 # <CJK>
+<U9DFE> \x8F\xEC\xCC |0 # <CJK>
+<U9E0A> \x8F\xEC\xCD |0 # <CJK>
+<U9E02> \x8F\xEC\xCE |0 # <CJK>
+<U9E07> \x8F\xEC\xCF |0 # <CJK>
+<U9E0E> \x8F\xEC\xD0 |0 # <CJK>
+<U9E10> \x8F\xEC\xD1 |0 # <CJK>
+<U9E11> \x8F\xEC\xD2 |0 # <CJK>
+<U9E12> \x8F\xEC\xD3 |0 # <CJK>
+<U9E15> \x8F\xEC\xD4 |0 # <CJK>
+<U9E16> \x8F\xEC\xD5 |0 # <CJK>
+<U9E19> \x8F\xEC\xD6 |0 # <CJK>
+<U9E1C> \x8F\xEC\xD7 |0 # <CJK>
+<U9E1D> \x8F\xEC\xD8 |0 # <CJK>
+<U9E7A> \x8F\xEC\xD9 |0 # <CJK>
+<U9E7B> \x8F\xEC\xDA |0 # <CJK>
+<U9E7C> \x8F\xEC\xDB |0 # <CJK>
+<U9E80> \x8F\xEC\xDC |0 # <CJK>
+<U9E82> \x8F\xEC\xDD |0 # <CJK>
+<U9E83> \x8F\xEC\xDE |0 # <CJK>
+<U9E84> \x8F\xEC\xDF |0 # <CJK>
+<U9E85> \x8F\xEC\xE0 |0 # <CJK>
+<U9E87> \x8F\xEC\xE1 |0 # <CJK>
+<U9E8E> \x8F\xEC\xE2 |0 # <CJK>
+<U9E8F> \x8F\xEC\xE3 |0 # <CJK>
+<U9E96> \x8F\xEC\xE4 |0 # <CJK>
+<U9E98> \x8F\xEC\xE5 |0 # <CJK>
+<U9E9B> \x8F\xEC\xE6 |0 # <CJK>
+<U9E9E> \x8F\xEC\xE7 |0 # <CJK>
+<U9EA4> \x8F\xEC\xE8 |0 # <CJK>
+<U9EA8> \x8F\xEC\xE9 |0 # <CJK>
+<U9EAC> \x8F\xEC\xEA |0 # <CJK>
+<U9EAE> \x8F\xEC\xEB |0 # <CJK>
+<U9EAF> \x8F\xEC\xEC |0 # <CJK>
+<U9EB0> \x8F\xEC\xED |0 # <CJK>
+<U9EB3> \x8F\xEC\xEE |0 # <CJK>
+<U9EB4> \x8F\xEC\xEF |0 # <CJK>
+<U9EB5> \x8F\xEC\xF0 |0 # <CJK>
+<U9EC6> \x8F\xEC\xF1 |0 # <CJK>
+<U9EC8> \x8F\xEC\xF2 |0 # <CJK>
+<U9ECB> \x8F\xEC\xF3 |0 # <CJK>
+<U9ED5> \x8F\xEC\xF4 |0 # <CJK>
+<U9EDF> \x8F\xEC\xF5 |0 # <CJK>
+<U9EE4> \x8F\xEC\xF6 |0 # <CJK>
+<U9EE7> \x8F\xEC\xF7 |0 # <CJK>
+<U9EEC> \x8F\xEC\xF8 |0 # <CJK>
+<U9EED> \x8F\xEC\xF9 |0 # <CJK>
+<U9EEE> \x8F\xEC\xFA |0 # <CJK>
+<U9EF0> \x8F\xEC\xFB |0 # <CJK>
+<U9EF1> \x8F\xEC\xFC |0 # <CJK>
+<U9EF2> \x8F\xEC\xFD |0 # <CJK>
+<U9EF5> \x8F\xEC\xFE |0 # <CJK>
+<U9EF8> \x8F\xED\xA1 |0 # <CJK>
+<U9EFF> \x8F\xED\xA2 |0 # <CJK>
+<U9F02> \x8F\xED\xA3 |0 # <CJK>
+<U9F03> \x8F\xED\xA4 |0 # <CJK>
+<U9F09> \x8F\xED\xA5 |0 # <CJK>
+<U9F0F> \x8F\xED\xA6 |0 # <CJK>
+<U9F10> \x8F\xED\xA7 |0 # <CJK>
+<U9F11> \x8F\xED\xA8 |0 # <CJK>
+<U9F12> \x8F\xED\xA9 |0 # <CJK>
+<U9F14> \x8F\xED\xAA |0 # <CJK>
+<U9F16> \x8F\xED\xAB |0 # <CJK>
+<U9F17> \x8F\xED\xAC |0 # <CJK>
+<U9F19> \x8F\xED\xAD |0 # <CJK>
+<U9F1A> \x8F\xED\xAE |0 # <CJK>
+<U9F1B> \x8F\xED\xAF |0 # <CJK>
+<U9F1F> \x8F\xED\xB0 |0 # <CJK>
+<U9F22> \x8F\xED\xB1 |0 # <CJK>
+<U9F26> \x8F\xED\xB2 |0 # <CJK>
+<U9F2A> \x8F\xED\xB3 |0 # <CJK>
+<U9F2B> \x8F\xED\xB4 |0 # <CJK>
+<U9F2F> \x8F\xED\xB5 |0 # <CJK>
+<U9F31> \x8F\xED\xB6 |0 # <CJK>
+<U9F32> \x8F\xED\xB7 |0 # <CJK>
+<U9F34> \x8F\xED\xB8 |0 # <CJK>
+<U9F37> \x8F\xED\xB9 |0 # <CJK>
+<U9F39> \x8F\xED\xBA |0 # <CJK>
+<U9F3A> \x8F\xED\xBB |0 # <CJK>
+<U9F3C> \x8F\xED\xBC |0 # <CJK>
+<U9F3D> \x8F\xED\xBD |0 # <CJK>
+<U9F3F> \x8F\xED\xBE |0 # <CJK>
+<U9F41> \x8F\xED\xBF |0 # <CJK>
+<U9F43> \x8F\xED\xC0 |0 # <CJK>
+<U9F44> \x8F\xED\xC1 |0 # <CJK>
+<U9F45> \x8F\xED\xC2 |0 # <CJK>
+<U9F46> \x8F\xED\xC3 |0 # <CJK>
+<U9F47> \x8F\xED\xC4 |0 # <CJK>
+<U9F53> \x8F\xED\xC5 |0 # <CJK>
+<U9F55> \x8F\xED\xC6 |0 # <CJK>
+<U9F56> \x8F\xED\xC7 |0 # <CJK>
+<U9F57> \x8F\xED\xC8 |0 # <CJK>
+<U9F58> \x8F\xED\xC9 |0 # <CJK>
+<U9F5A> \x8F\xED\xCA |0 # <CJK>
+<U9F5D> \x8F\xED\xCB |0 # <CJK>
+<U9F5E> \x8F\xED\xCC |0 # <CJK>
+<U9F68> \x8F\xED\xCD |0 # <CJK>
+<U9F69> \x8F\xED\xCE |0 # <CJK>
+<U9F6D> \x8F\xED\xCF |0 # <CJK>
+<U9F6E> \x8F\xED\xD0 |0 # <CJK>
+<U9F6F> \x8F\xED\xD1 |0 # <CJK>
+<U9F70> \x8F\xED\xD2 |0 # <CJK>
+<U9F71> \x8F\xED\xD3 |0 # <CJK>
+<U9F73> \x8F\xED\xD4 |0 # <CJK>
+<U9F75> \x8F\xED\xD5 |0 # <CJK>
+<U9F7A> \x8F\xED\xD6 |0 # <CJK>
+<U9F7D> \x8F\xED\xD7 |0 # <CJK>
+<U9F8F> \x8F\xED\xD8 |0 # <CJK>
+<U9F90> \x8F\xED\xD9 |0 # <CJK>
+<U9F91> \x8F\xED\xDA |0 # <CJK>
+<U9F92> \x8F\xED\xDB |0 # <CJK>
+<U9F94> \x8F\xED\xDC |0 # <CJK>
+<U9F96> \x8F\xED\xDD |0 # <CJK>
+<U9F97> \x8F\xED\xDE |0 # <CJK>
+<U9F9E> \x8F\xED\xDF |0 # <CJK>
+<U9FA1> \x8F\xED\xE0 |0 # <CJK>
+<U9FA2> \x8F\xED\xE1 |0 # <CJK>
+<U9FA3> \x8F\xED\xE2 |0 # <CJK>
+<U9FA5> \x8F\xED\xE3 |0 # <CJK>
+
END CHARMAP
}
}
use Encode;
-our $VERSION = '0.02';
+our $VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use XSLoader;
XSLoader::load('Encode::JP',$VERSION);
use Encode::JP::JIS;
use Encode::JP::ISO_2022_JP;
+Encode::define_alias( qr/euc.*jp$/i => '"euc-jp"' );
+Encode::define_alias( qr/jp.*euc/i => '"euc-jp"' );
+Encode::define_alias( qr/ujis$/i => '"euc-jp"' );
+Encode::define_alias( qr/shift.*jis$/i => '"shiftjis"' );
+Encode::define_alias( qr/sjis$/i => '"shiftjis"' );
+Encode::define_alias( qr/^jis$/i => '"7bit-jis"' );
+
1;
__END__
=head1 NAME
=head1 SYNOPSIS
- use Encode 'encode';
+ use Encode qw/encode decode/;
$euc_jp = encode("euc-jp", $utf8); # loads Encode::JP implicitly
- $utf8 = encode("euc-jp", $euc_jp); # ditto
+ $utf8 = decode("euc-jp", $euc_jp); # ditto
=head1 ABSTRACT
This module implements Japanese charset encodings. Encodings
supported are as follows.
- euc-jp EUC (Extended Unix Character)
- shiftjis Shift JIS (aka MS Kanji)
- 7bit-jis 7bit JIS
- iso-2022-jp ISO-2022-JP (7bit JIS with all X201 converted to X208)
- macjapan Mac Japan (Shift JIS + Apple vendor mappings)
- cp932 Code Page 932 (Shift JIS + Microsoft vendor mappings)
+ Canonical Alias Description
+ --------------------------------------------------------------------
+ euc-jp /euc.*jp$/i EUC (Extended Unix Character)
+ /jp.*euc/i
+ /ujis$/i
+ shiftjis /shift.*jis$/i Shift JIS (aka MS Kanji)
+ /sjis$/i
+ 7bit-jis /^jis$/i 7bit JIS
+ iso-2022-jp ISO-2022-JP
+ (7bit JIS with all Halfwidth Kana
+ converted to Fullwidth)
+ macjapan Mac Japan (Shift JIS + Apple vendor mappings)
+ cp932 Code Page 932 (Shift JIS + Microsoft vendor mappings)
=head1 DESCRIPTION
=head1 BUGS
-JIS X0212-1990 is not supported.
-
ASCII part (0x00-0x7f) is preserved for all encodings, even though it
conflicts with mappings by the Unicode Consortium. See
use strict;
use ExtUtils::MakeMaker;
-my %tables = (EUC_JP => ['euc-jp.enc'],
+my %tables = (
+ EUC_JP => ['euc-jp.ucm'],
SHIFTJIS => ['shiftjis.enc'],
MACJAPAN => ['macJapan.enc'],
CP932 => ['cp932.enc'],
package Encode::KR;
-our $VERSION = '0.02';
+our $VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Encode;
use XSLoader;
XSLoader::load('Encode::KR',$VERSION);
+Encode::define_alias( qr/euc.*kr$/i => '"euc-kr"' );
+Encode::define_alias( qr/kr.*euc/i => '"euc-kr"' );
+
1;
__END__
=head1 NAME
=head1 SYNOPSIS
- use Encode 'encode';
+ use Encode qw/encode decode/;
$euc_kr = encode("euc-kr", $utf8); # loads Encode::KR implicitly
- $utf8 = encode("euc-kr", $euc_kr); # ditto
+ $utf8 = decode("euc-kr", $euc_kr); # ditto
=head1 DESCRIPTION
This module implements Korean charset encodings. Encodings supported
are as follows.
- euc-kr EUC (Extended Unix Character)
- ksc5601 Korean standard code set
- cp949 Code Page 949 (EUC-KR + Unified Hangul Code)
+
+ Canonical Alias Description
+ --------------------------------------------------------------------
+ euc-kr /euc.*kr$/i EUC (Extended Unix Character)
+ /kr.*euc/i
+ ksc5601 Korean standard code set
+ cp949 Code Page 949
+ (EUC-KR + Unified Hangul Code)
To find how to use this module in detail, see L<Encode>.
-CN/CN.pm
-CN/Makefile.PL
-compile
-encengine.c
-encode.h
-Encode.pm
-Encode.xs
-Encode/11643-1.enc
-Encode/11643-2.enc
-Encode/2022-cn.enc
-Encode/2022-jp.enc
-Encode/2022-jp1.enc
-Encode/2022-jp2.enc
-Encode/2022-kr.enc
-Encode/2022.enc
-Encode/7bit-greek.enc
-Encode/7bit-jis.enc
-Encode/7bit-kana.enc
-Encode/7bit-latin1.enc
-Encode/8859-1.enc
-Encode/8859-1.ucm
-Encode/8859-10.enc
-Encode/8859-10.ucm
-Encode/8859-11.enc
-Encode/8859-11.ucm
-Encode/8859-13.enc
-Encode/8859-13.ucm
-Encode/8859-14.enc
-Encode/8859-14.ucm
-Encode/8859-15.enc
-Encode/8859-15.ucm
-Encode/8859-16.enc
-Encode/8859-16.ucm
-Encode/8859-2.enc
-Encode/8859-2.ucm
-Encode/8859-3.enc
-Encode/8859-3.ucm
-Encode/8859-4.enc
-Encode/8859-4.ucm
-Encode/8859-5.enc
-Encode/8859-5.ucm
-Encode/8859-6.enc
-Encode/8859-6.ucm
-Encode/8859-7.enc
-Encode/8859-7.ucm
-Encode/8859-8.enc
-Encode/8859-8.ucm
-Encode/8859-9.enc
-Encode/8859-9.ucm
-Encode/ascii.enc
-Encode/ascii.ucm
-Encode/big5-hkscs.enc
-Encode/big5.enc
-Encode/cp1006.enc
-Encode/cp1047.enc
-Encode/cp1047.ucm
-Encode/cp1250.enc
-Encode/cp1250.ucm
-Encode/cp1251.enc
-Encode/cp1252.enc
-Encode/cp1253.enc
-Encode/cp1254.enc
-Encode/cp1255.enc
-Encode/cp1256.enc
-Encode/cp1257.enc
-Encode/cp1258.enc
-Encode/cp37.enc
-Encode/cp37.ucm
-Encode/cp424.enc
-Encode/cp437.enc
-Encode/cp737.enc
-Encode/cp775.enc
-Encode/cp850.enc
-Encode/cp852.enc
-Encode/cp855.enc
-Encode/cp856.enc
-Encode/cp857.enc
-Encode/cp860.enc
-Encode/cp861.enc
-Encode/cp862.enc
-Encode/cp863.enc
-Encode/cp864.enc
-Encode/cp865.enc
-Encode/cp866.enc
-Encode/cp869.enc
-Encode/cp874.enc
-Encode/cp932.enc
-Encode/cp936.enc
-Encode/cp949.enc
-Encode/cp950.enc
-Encode/dingbats.enc
-Encode/dingbats.ucm
-Encode/euc-cn.enc
-Encode/euc-jp-0212.enc
-Encode/euc-jp.enc
-Encode/euc-jp.ucm
-Encode/euc-kr.enc
-Encode/gb12345.enc
-Encode/gb1988.enc
-Encode/gb2312.enc
-Encode/gsm0338.enc
-Encode/ir-197.enc
-Encode/iso-ir-165.enc
-Encode/jis0201.enc
-Encode/jis0201.ucm
-Encode/jis0208.enc
-Encode/jis0212.enc
-Encode/koi8-f.enc
-Encode/koi8-f.ucm
-Encode/koi8-r.enc
-Encode/koi8-r.ucm
-Encode/koi8-u.enc
-Encode/koi8-u.ucm
-Encode/ksc5601.enc
-Encode/macCentEuro.enc
-Encode/macCroatian.enc
-Encode/macCyrillic.enc
-Encode/macDingbats.enc
-Encode/macGreek.enc
-Encode/macIceland.enc
-Encode/macJapan.enc
-Encode/macRoman.enc
-Encode/macRumanian.enc
-Encode/macSami.enc
-Encode/macThai.enc
-Encode/macTurkish.enc
-Encode/macUkraine.enc
-Encode/nextstep.enc
-Encode/nextstep.ucm
-Encode/posix-bc.enc
-Encode/posix-bc.ucm
-Encode/roman8.enc
-Encode/roman8.ucm
-Encode/shiftjis.enc
-Encode/symbol.enc
-Encode/symbol.ucm
-Encode/viscii.enc
-Encode/viscii.ucm
-JP/JP.pm
-JP/Makefile.PL
-KR/KR.pm
-KR/Makefile.PL
-lib/Encode/CN/HZ.pm
-lib/Encode/Encoding.pm
-lib/Encode/Internal.pm
-lib/Encode/iso10646_1.pm
-lib/Encode/JP/Constants.pm
-lib/Encode/JP/H2Z.pm
-lib/Encode/JP/ISO_2022_JP.pm
-lib/Encode/JP/JIS.pm
-lib/Encode/Tcl.pm
-lib/Encode/Tcl/Escape.pm
-lib/Encode/Tcl/Extended.pm
-lib/Encode/Tcl/Table.pm
-lib/Encode/ucs2_le.pm
-lib/Encode/Unicode.pm
-lib/Encode/utf8.pm
-lib/Encode/XS.pm
-lib/EncodeFormat.pod
-Makefile.PL
-MANIFEST
-README
-t/CN.t
-t/Encode.t
-t/japanese.pl
-t/JP.t
-t/table.euc
-t/table.ref
-t/Tcl.t
-t/TW.t
-TW/Makefile.PL
-TW/TW.pm
+AUTHORS List of authors
+CN/CN.pm Encode extension
+CN/Makefile.PL Encode extension
+Changes Change Log
+Encode.pm Encode extension
+Encode.xs Encode extension
+Encode/11643-1.enc Encode table
+Encode/11643-2.enc Encode table
+Encode/2022-cn.enc Encode table
+Encode/2022-jp.enc Encode table
+Encode/2022-jp1.enc Encode table
+Encode/2022-jp2.enc Encode table
+Encode/2022-kr.enc Encode table
+Encode/2022.enc Encode table
+Encode/7bit-greek.enc Encode table
+Encode/7bit-jis.enc Encode table
+Encode/7bit-kana.enc Encode table
+Encode/7bit-latin1.enc Encode table
+Encode/8859-1.enc Encode table
+Encode/8859-1.ucm Encode table
+Encode/8859-10.enc Encode table
+Encode/8859-10.ucm Encode table
+Encode/8859-11.enc Encode table
+Encode/8859-11.ucm Encode table
+Encode/8859-13.enc Encode table
+Encode/8859-13.ucm Encode table
+Encode/8859-14.enc Encode table
+Encode/8859-14.ucm Encode table
+Encode/8859-15.enc Encode table
+Encode/8859-15.ucm Encode table
+Encode/8859-16.enc Encode table
+Encode/8859-16.ucm Encode table
+Encode/8859-2.enc Encode table
+Encode/8859-2.ucm Encode table
+Encode/8859-3.enc Encode table
+Encode/8859-3.ucm Encode table
+Encode/8859-4.enc Encode table
+Encode/8859-4.ucm Encode table
+Encode/8859-5.enc Encode table
+Encode/8859-5.ucm Encode table
+Encode/8859-6.enc Encode table
+Encode/8859-6.ucm Encode table
+Encode/8859-7.enc Encode table
+Encode/8859-7.ucm Encode table
+Encode/8859-8.enc Encode table
+Encode/8859-8.ucm Encode table
+Encode/8859-9.enc Encode table
+Encode/8859-9.ucm Encode table
+Encode/ascii.enc Encode table
+Encode/ascii.ucm Encode table
+Encode/big5-hkscs.enc Encode table
+Encode/big5.enc Encode table
+Encode/cp1006.enc Encode table
+Encode/cp1047.enc Encode table
+Encode/cp1047.ucm Encode table
+Encode/cp1250.enc Encode table
+Encode/cp1250.ucm Encode table
+Encode/cp1251.enc Encode table
+Encode/cp1252.enc Encode table
+Encode/cp1253.enc Encode table
+Encode/cp1254.enc Encode table
+Encode/cp1255.enc Encode table
+Encode/cp1256.enc Encode table
+Encode/cp1257.enc Encode table
+Encode/cp1258.enc Encode table
+Encode/cp37.enc Encode table
+Encode/cp37.ucm Encode table
+Encode/cp424.enc Encode table
+Encode/cp437.enc Encode table
+Encode/cp737.enc Encode table
+Encode/cp775.enc Encode table
+Encode/cp850.enc Encode table
+Encode/cp852.enc Encode table
+Encode/cp855.enc Encode table
+Encode/cp856.enc Encode table
+Encode/cp857.enc Encode table
+Encode/cp860.enc Encode table
+Encode/cp861.enc Encode table
+Encode/cp862.enc Encode table
+Encode/cp863.enc Encode table
+Encode/cp864.enc Encode table
+Encode/cp865.enc Encode table
+Encode/cp866.enc Encode table
+Encode/cp869.enc Encode table
+Encode/cp874.enc Encode table
+Encode/cp932.enc Encode table
+Encode/cp936.enc Encode table
+Encode/cp949.enc Encode table
+Encode/cp950.enc Encode table
+Encode/dingbats.enc Encode table
+Encode/dingbats.ucm Encode table
+Encode/euc-cn.enc Encode table
+Encode/euc-jp.enc Encode table
+Encode/euc-jp.ucm Encode table
+Encode/euc-kr.enc Encode table
+Encode/gb12345.enc Encode table
+Encode/gb1988.enc Encode table
+Encode/gb2312.enc Encode table
+Encode/gsm0338.enc Encode table
+Encode/ir-197.enc Encode table
+Encode/iso-ir-165.enc Encode table
+Encode/jis0201.enc Encode table
+Encode/jis0201.ucm Encode table
+Encode/jis0208.enc Encode table
+Encode/jis0212.enc Encode table
+Encode/koi8-f.enc Encode table
+Encode/koi8-f.ucm Encode table
+Encode/koi8-r.enc Encode table
+Encode/koi8-r.ucm Encode table
+Encode/koi8-u.enc Encode table
+Encode/koi8-u.ucm Encode table
+Encode/ksc5601.enc Encode table
+Encode/macCentEuro.enc Encode table
+Encode/macCroatian.enc Encode table
+Encode/macCyrillic.enc Encode table
+Encode/macDingbats.enc Encode table
+Encode/macGreek.enc Encode table
+Encode/macIceland.enc Encode table
+Encode/macJapan.enc Encode table
+Encode/macRoman.enc Encode table
+Encode/macRumanian.enc Encode table
+Encode/macSami.enc Encode table
+Encode/macThai.enc Encode table
+Encode/macTurkish.enc Encode table
+Encode/macUkraine.enc Encode table
+Encode/nextstep.enc Encode table
+Encode/nextstep.ucm Encode table
+Encode/posix-bc.enc Encode table
+Encode/posix-bc.ucm Encode table
+Encode/roman8.enc Encode table
+Encode/roman8.ucm Encode table
+Encode/shiftjis.enc Encode table
+Encode/symbol.enc Encode table
+Encode/symbol.ucm Encode table
+Encode/viscii.enc Encode table
+Encode/viscii.ucm Encode table
+JP/JP.pm Encode extension
+JP/Makefile.PL Encode extension
+KR/KR.pm Encode extension
+KR/Makefile.PL Encode extension
+MANIFEST Encode extension
+Makefile.PL Encode extension makefile writer
+README Encode extension
+TW/Makefile.PL Encode extension
+TW/TW.pm Encode extension
+compile Encode extension
+encengine.c Encode extension
+encode.h Encode extension
+lib/Encode/CN/HZ.pm Encode extension
+lib/Encode/Description.pod General topics on character encodings
+lib/Encode/Encoding.pm Encode extension
+lib/Encode/Internal.pm Encode extension
+lib/Encode/JP/Constants.pm Encode extension
+lib/Encode/JP/H2Z.pm Encode extension
+lib/Encode/JP/ISO_2022_JP.pm Encode extension
+lib/Encode/JP/JIS.pm Encode extension
+lib/Encode/Tcl.pm Encode extension
+lib/Encode/Tcl/Escape.pm Encode extension
+lib/Encode/Tcl/Table.pm Encode extension
+lib/Encode/Unicode.pm Encode extension
+lib/Encode/XS.pm Encode extension
+lib/Encode/iso10646_1.pm Encode extension
+lib/Encode/ucs2_le.pm Encode extension
+lib/Encode/utf8.pm Encode extension
+lib/EncodeFormat.pod Encode extension
+t/CJKalias.t Encode extension test
+t/CN.t Encode extension test
+t/Encode.t Encode extension test
+t/JP.t Encode extension test
+t/TW.t Encode extension test
+t/Tcl.t Encode extension test
+t/jisx0208.euc Encode extension test
+t/jisx0208.ref Encode extension test
+t/jisx0212.euc Encode extension test
+t/jisx0212.ref Encode extension test
This module requires perl5.7.2 or later.
+QUESTIONS?
+
+If you have any questions "perldoc Encode" does not answer, please
+feel free to ask at perl-unicode@perl.org.
package Encode::TW;
-our $VERSION = '0.02';
+our $VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Encode;
use XSLoader;
XSLoader::load('Encode::TW',$VERSION);
+Encode::define_alias( qr/big-?5$/i => '"big5"' );
+Encode::define_alias( qr/big5-hk(?:scs)?/i => '"big5-hkscs"' );
+
1;
__END__
=head1 NAME
=head1 SYNOPSIS
- use Encode 'encode';
+ use Encode qw/encode decode/;
$big5 = encode("big5", $utf8); # loads Encode::TW implicitly
- $utf8 = encode("big5", $big5); # ditto
+ $utf8 = decode("big5", $big5); # ditto
=head1 DESCRIPTION
This module implements Taiwan-based Chinese charset encodings.
Encodings supported are as follows.
- big5 The original Big5 encoding
- big5-hkscs Big5 plus Cantonese characters in Hong Kong
- cp950 Code Page 950 (Big5 + Microsoft vendor mappings)
+ Canonical Alias Description
+ --------------------------------------------------------------------
+ big5 /big-?5$/i The original Big5 encoding
+ big5-hkscs /big5-hk(scs)?$/i Big5 plus Cantonese characters in
+ Hong Kong
+ cp950 Code Page 950
+ (Big5 + Microsoft vendor mappings)
To find how to use this module in detail, see L<Encode>.
no warnings 'redefine'; # to quell the "use Encode" below
use vars qw($VERSION);
-$VERSION = 0.01;
+$VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Encode::CN;
use Encode qw|encode decode|;
--- /dev/null
+
+=head1 NAME
+
+Encode - character encodings
+
+=head1 SYNOPSIS
+
+ use Encode;
+
+=head1 DESCRIPTION
+
+The C<Encode> module provides the interfaces between Perl's strings
+and the rest of the system. Perl strings are sequences of B<characters>.
+
+The repertoire of characters that Perl can represent is at least that
+defined by the Unicode Consortium. On most platforms the ordinal
+values of the characters (as returned by C<ord(ch)>) is the "Unicode
+codepoint" for the character (the exceptions are those platforms where
+the legacy encoding is some variant of EBCDIC rather than a super-set
+of ASCII - see L<perlebcdic>).
+
+Traditionaly computer data has been moved around in 8-bit chunks
+often called "bytes". These chunks are also known as "octets" in
+networking standards. Perl is widely used to manipulate data of
+many types - not only strings of characters representing human or
+computer languages but also "binary" data being the machines representation
+of numbers, pixels in an image - or just about anything.
+
+When Perl is processing "binary data" the programmer wants Perl to process
+"sequences of bytes". This is not a problem for Perl - as a byte has 256
+possible values it easily fits in Perl's much larger "logical character".
+
+Due to size concerns, each of B<CJK> (Chinese, Japanese & Korean) modules
+are not loaded in memory until the first time they're used. Although you
+don't have to C<use> the corresponding B<Encode::>(B<TW>|B<CN>|B<JP>|B<KR>)
+modules first, be aware that those encodings will not be in C<%encodings>
+until their module is loaded (either implicitly through using encodings
+contained in the same module, or via an explicit C<use>).
+
+=head2 TERMINOLOGY
+
+=over 4
+
+=item *
+
+I<character>: a character in the range 0..(2**32-1) (or more).
+(What Perl's strings are made of.)
+
+=item *
+
+I<byte>: a character in the range 0..255
+(A special case of a Perl character.)
+
+=item *
+
+I<octet>: 8 bits of data, with ordinal values 0..255
+(Term for bytes passed to or from a non-Perl context, e.g. disk file.)
+
+=back
+
+The marker [INTERNAL] marks Internal Implementation Details, in
+general meant only for those who think they know what they are doing,
+and such details may change in future releases.
+
+=head1 ENCODINGS
+
+=head2 Characteristics of an Encoding
+
+An encoding has a "repertoire" of characters that it can represent,
+and for each representable character there is at least one sequence of
+octets that represents it.
+
+=head2 Types of Encodings
+
+Encodings can be divided into the following types:
+
+=over 4
+
+=item * Fixed length 8-bit (or less) encodings.
+
+Each character is a single octet so may have a repertoire of up to
+256 characters. ASCII and iso-8859-* are typical examples.
+
+=item * Fixed length 16-bit encodings
+
+Each character is two octets so may have a repertoire of up to
+65 536 characters. Unicode's UCS-2 is an example. Also used for
+encodings for East Asian languages.
+
+=item * Fixed length 32-bit encodings.
+
+Not really very "encoded" encodings. The Unicode code points
+are just represented as 4-octet integers. None the less because
+different architectures use different representations of integers
+(so called "endian") there at least two disctinct encodings.
+
+=item * Multi-byte encodings
+
+The number of octets needed to represent a character varies.
+UTF-8 is a particularly complex but regular case of a multi-byte
+encoding. Several East Asian countries use a multi-byte encoding
+where 1-octet is used to cover western roman characters and Asian
+characters get 2-octets.
+(UTF-16 is strictly a multi-byte encoding taking either 2 or 4 octets
+to represent a Unicode code point.)
+
+=item * "Escape" encodings.
+
+These encodings embed "escape sequences" into the octet sequence
+which describe how the following octets are to be interpreted.
+The iso-2022-* family is typical. Following the escape sequence
+octets are encoded by an "embedded" encoding (which will be one
+of the above types) until another escape sequence switches to
+a different "embedded" encoding.
+
+These schemes are very flexible and can handle mixed languages but are
+very complex to process (and have state). No escape encodings are
+implemented for Perl yet.
+
+=back
+
+=head2 Specifying Encodings
+
+Encodings can be specified to the API described below in two ways:
+
+=over 4
+
+=item 1. By name
+
+Encoding names are strings with characters taken from a restricted
+repertoire. See L</"Encoding Names">.
+
+=item 2. As an object
+
+Encoding objects are returned by C<find_encoding($name, [$skip_external])>.
+If the second parameter is true, Encode will refrain from loading external
+modules for CJK encodings.
+
+=back
+
+=head2 Encoding Names
+
+Encoding names are case insensitive. White space in names is ignored.
+In addition an encoding may have aliases. Each encoding has one
+"canonical" name. The "canonical" name is chosen from the names of
+the encoding by picking the first in the following sequence:
+
+=over 4
+
+=item * The MIME name as defined in IETF RFCs.
+
+=item * The name in the IANA registry.
+
+=item * The name used by the organization that defined it.
+
+=back
+
+Because of all the alias issues, and because in the general case
+encodings have state C<Encode> uses the encoding object internally
+once an operation is in progress.
+
+As of Perl 5.8.0, at least the following encodings are recognized
+(the => marks aliases):
+
+ ASCII
+
+ US-ASCII => ASCII
+
+The Unicode:
+
+ UTF-8
+ UTF-16
+ UCS-2
+
+ ISO 10646-1 => UCS-2
+
+The ISO 8859 and KOI:
+
+ ISO 8859-1 ISO 8859-6 ISO 8859-11 KOI8-F
+ ISO 8859-2 ISO 8859-7 (12 doesn't exist) KOI8-R
+ ISO 8859-3 ISO 8859-8 ISO 8859-13 KOI8-U
+ ISO 8859-4 ISO 8859-9 ISO 8859-14
+ ISO 8859-5 ISO 8859-10 ISO 8859-15
+ ISO 8859-16
+
+ Latin1 => 8859-1 Latin6 => 8859-10
+ Latin2 => 8859-2 Latin7 => 8859-13
+ Latin3 => 8859-3 Latin8 => 8859-14
+ Latin4 => 8859-4 Latin9 => 8859-15
+ Latin5 => 8859-9 Latin10 => 8859-16
+
+ Cyrillic => 8859-5
+ Arabic => 8859-6
+ Greek => 8859-7
+ Hebrew => 8859-8
+ Thai => 8859-11
+ TIS620 => 8859-11
+
+The CJKV: Chinese, Japanese, Korean, Vietnamese:
+
+ ISO 2022 ISO 2022 JP-1 JIS 0201 GB 1988 Big5 EUC-CN
+ ISO 2022 CN ISO 2022 JP-2 JIS 0208 GB 2312 HZ EUC-JP
+ ISO 2022 JP ISO 2022 KR JIS 0210 GB 12345 CNS 11643 EUC-JP-0212
+ Shift-JIS GBK Big5-HKSCS EUC-KR
+ VISCII ISO-IR-165
+
+(Due to size concerns, additional Chinese encodings including C<GB 18030>,
+C<EUC-TW> and C<BIG5PLUS> are distributed separately on CPAN, under the name
+L<Encode::HanExtra>.)
+
+The PC codepages:
+
+ CP37 CP852 CP861 CP866 CP949 CP1251 CP1256
+ CP424 CP855 CP862 CP869 CP950 CP1252 CP1257
+ CP737 CP856 CP863 CP874 CP1006 CP1253 CP1258
+ CP775 CP857 CP864 CP932 CP1047 CP1254
+ CP850 CP860 CP865 CP936 CP1250 CP1255
+
+ WinLatin1 => CP1252
+ WinLatin2 => CP1250
+ WinCyrillic => CP1251
+ WinGreek => CP1253
+ WinTurkiskh => CP1254
+ WinHebrew => CP1255
+ WinArabic => CP1256
+ WinBaltic => CP1257
+ WinVietnamese => CP1258
+
+(All the CPI<NNN...> are available also as IBMI<NNN...>.)
+
+The Mac codepages:
+
+ MacCentralEuropean MacJapanese
+ MacCroatian MacRoman
+ MacCyrillic MacRomanian
+ MacDingbats MacSami
+ MacGreek MacThai
+ MacIcelandic MacTurkish
+ MacUkraine
+
+Miscellaneous:
+
+ 7bit-greek IR-197
+ 7bit-kana NeXTstep
+ 7bit-latin1 POSIX-BC
+ DingBats Roman8
+ GSM 0338 Symbol
+
+=head2 Encoding Classification
+
+Encodings
+
+ US-ASCII UTF-8 KOI8-R ISO-8859-*
+ ISO-2022-CN ISO-2022-JP ISO-2022-KR Big5
+ EUC-CN EUC-JP EUC-KR
+
+are L<http://www.iana.org/assignments/character-sets>-registered
+as preferred MIME names and may probably be used over the Internet.
+So is
+
+ Shift_JIS
+
+but despite its wide spread it bears the label of being
+Microsft proprietary.
+
+ UTF-16 KOI8-U ISO-2022-JP-2
+
+are IANA-registered preferred MIME names but probably shoule
+be avoided as encoding for web pages due to lack of browser
+support.
+
+
+ ISO-2022 (http://www.ecma.ch/ecma1/STAND/ECMA-035.HTM)
+ ISO-2022-JP-1 (http://www.faqs.org/rfcs/rfc2237.html)
+ ISO-IR-165 (http://www.faqs.org/rfcs/rfc1345.html)
+ GBK
+ VISCII
+ GB 12345 (only plains 1 and 2 available)
+ GB 18030
+ CNS 11643
+
+are totally valid encodings but not registered at IANA.
+
+ BIG5PLUS
+ EUC-JP-0212 (Encode::lib::Encode::Tcl::Extended)
+
+are a bit proprietary
+
+You may probably get some info on CJK encodings at
+
+ brief description for most of the mentioned CJK encodings
+ http://www.debian.org.ru/doc/manuals/intro-i18n/ch-codes.html
+
+ several years old, but still useful
+ http://www.oreilly.com/people/authors/lunde/cjk_inf.html
+
+ and some in-depth reading for the heroes :-)
+ http://www.ecma.ch/ecma1/STAND/ECMA-035.HTM (eq ISO-2022)
+ http://www.faqs.org/rfcs/rfc1345.txt
+
+
+=head1 PERL ENCODING API
+
+=head2 Generic Encoding Interface
+
+=over 4
+
+=item *
+
+ $bytes = encode(ENCODING, $string[, CHECK])
+
+Encodes string from Perl's internal form into I<ENCODING> and returns
+a sequence of octets. For CHECK see L</"Handling Malformed Data">.
+
+For example to convert (internally UTF-8 encoded) Unicode data
+to octets:
+
+ $octets = encode("utf8", $unicode);
+
+=item *
+
+ $string = decode(ENCODING, $bytes[, CHECK])
+
+Decode sequence of octets assumed to be in I<ENCODING> into Perl's
+internal form and returns the resulting string. For CHECK see
+L</"Handling Malformed Data">.
+
+For example to convert ISO-8859-1 data to UTF-8:
+
+ $utf8 = decode("latin1", $latin1);
+
+=item *
+
+ from_to($string, FROM_ENCODING, TO_ENCODING[, CHECK])
+
+Convert B<in-place> the data between two encodings. How did the data
+in $string originally get to be in FROM_ENCODING? Either using
+encode() or through PerlIO: See L</"Encoding and IO">. For CHECK
+see L</"Handling Malformed Data">.
+
+For example to convert ISO-8859-1 data to UTF-8:
+
+ from_to($data, "iso-8859-1", "utf-8");
+
+and to convert it back:
+
+ from_to($data, "utf-8", "iso-8859-1");
+
+Note that because the conversion happens in place, the data to be
+converted cannot be a string constant, it must be a scalar variable.
+
+=back
+
+=head2 Handling Malformed Data
+
+If CHECK is not set, C<undef> is returned. If the data is supposed to
+be UTF-8, an optional lexical warning (category utf8) is given. If
+CHECK is true but not a code reference, dies.
+
+It would desirable to have a way to indicate that transform should use
+the encodings "replacement character" - no such mechanism is defined yet.
+
+It is also planned to allow I<CHECK> to be a code reference.
+
+This is not yet implemented as there are design issues with what its
+arguments should be and how it returns its results.
+
+=over 4
+
+=item Scheme 1
+
+Passed remaining fragment of string being processed.
+Modifies it in place to remove bytes/characters it can understand
+and returns a string used to represent them.
+e.g.
+
+ sub fixup {
+ my $ch = substr($_[0],0,1,'');
+ return sprintf("\x{%02X}",ord($ch);
+ }
+
+This scheme is close to how underlying C code for Encode works, but gives
+the fixup routine very little context.
+
+=item Scheme 2
+
+Passed original string, and an index into it of the problem area, and
+output string so far. Appends what it will to output string and
+returns new index into original string. For example:
+
+ sub fixup {
+ # my ($s,$i,$d) = @_;
+ my $ch = substr($_[0],$_[1],1);
+ $_[2] .= sprintf("\x{%02X}",ord($ch);
+ return $_[1]+1;
+ }
+
+This scheme gives maximal control to the fixup routine but is more
+complicated to code, and may need internals of Encode to be tweaked to
+keep original string intact.
+
+=item Other Schemes
+
+Hybrids of above.
+
+Multiple return values rather than in-place modifications.
+
+Index into the string could be pos($str) allowing s/\G...//.
+
+=back
+
+=head2 UTF-8 / utf8
+
+The Unicode consortium defines the UTF-8 standard as a way of encoding
+the entire Unicode repertiore as sequences of octets. This encoding is
+expected to become very widespread. Perl can use this form internaly
+to represent strings, so conversions to and from this form are
+particularly efficient (as octets in memory do not have to change,
+just the meta-data that tells Perl how to treat them).
+
+=over 4
+
+=item *
+
+ $bytes = encode_utf8($string);
+
+The characters that comprise string are encoded in Perl's superset of UTF-8
+and the resulting octets returned as a sequence of bytes. All possible
+characters have a UTF-8 representation so this function cannot fail.
+
+=item *
+
+ $string = decode_utf8($bytes [,CHECK]);
+
+The sequence of octets represented by $bytes is decoded from UTF-8
+into a sequence of logical characters. Not all sequences of octets
+form valid UTF-8 encodings, so it is possible for this call to fail.
+For CHECK see L</"Handling Malformed Data">.
+
+=back
+
+=head2 Other Encodings of Unicode
+
+UTF-16 is similar to UCS-2, 16 bit or 2-byte chunks. UCS-2 can only
+represent 0..0xFFFF, while UTF-16 has a I<surrogate pair> scheme which
+allows it to cover the whole Unicode range.
+
+Surrogates are code points set aside to encode the 0x01000..0x10FFFF
+range of Unicode code points in pairs of 16-bit units. The I<high
+surrogates> are the range 0xD800..0xDBFF, and the I<low surrogates>
+are the range 0xDC00..0xDFFFF. The surrogate encoding is
+
+ $hi = ($uni - 0x10000) / 0x400 + 0xD800;
+ $lo = ($uni - 0x10000) % 0x400 + 0xDC00;
+
+and the decoding is
+
+ $uni = 0x10000 + ($hi - 0xD8000) * 0x400 + ($lo - 0xDC00);
+
+Encode implements big-endian UCS-2 aliased to "iso-10646-1" as that
+happens to be the name used by that representation when used with X11
+fonts.
+
+UTF-32 or UCS-4 is 32-bit or 4-byte chunks. Perl's logical characters
+can be considered as being in this form without encoding. An encoding
+to transfer strings in this form (e.g. to write them to a file) would
+need to
+
+ pack('L*', unpack('U*', $string)); # native
+ or
+ pack('V*', unpack('U*', $string)); # little-endian
+ or
+ pack('N*', unpack('U*', $string)); # big-endian
+
+depending on the endianness required.
+
+No UTF-32 encodings are implemented yet.
+
+Both UCS-2 and UCS-4 style encodings can have "byte order marks" by
+representing the code point 0xFFFE as the very first thing in a file.
+
+=head2 Listing available encodings
+
+ use Encode qw(encodings);
+ @list = encodings();
+
+Returns a list of the canonical names of the available encodings.
+
+=head2 Defining Aliases
+
+ use Encode qw(define_alias);
+ define_alias( newName => ENCODING);
+
+Allows newName to be used as am alias for ENCODING. ENCODING may be
+either the name of an encoding or and encoding object (as above).
+
+Currently I<newName> can be specified in the following ways:
+
+=over 4
+
+=item As a simple string.
+
+=item As a qr// compiled regular expression, e.g.:
+
+ define_alias( qr/^iso8859-(\d+)$/i => '"iso-8859-$1"' );
+
+In this case if I<ENCODING> is not a reference it is C<eval>-ed to
+allow C<$1> etc. to be subsituted. The example is one way to names as
+used in X11 font names to alias the MIME names for the iso-8859-*
+family. Note the double quote inside the single quote. If you are
+using regex here, y ou have to do so or it won't work in this case.
+
+=item As a code reference, e.g.:
+
+ define_alias( sub { return /^iso8859-(\d+)$/i ? "iso-8859-$1" : undef } , '');
+
+In this case C<$_> will be set to the name that is being looked up and
+I<ENCODING> is passed to the sub as its first argument. The example
+is another way to names as used in X11 font names to alias the MIME
+names for the iso-8859-* family.
+
+=back
+
+=head2 Defining Encodings
+
+ use Encode qw(define_alias);
+ define_encoding( $object, 'canonicalName' [,alias...]);
+
+Causes I<canonicalName> to be associated with I<$object>. The object
+should provide the interface described in L</"IMPLEMENTATION CLASSES">
+below. If more than two arguments are provided then additional
+arguments are taken as aliases for I<$object> as for C<define_alias>.
+
+=head1 Encoding and IO
+
+It is very common to want to do encoding transformations when
+reading or writing files, network connections, pipes etc.
+If Perl is configured to use the new 'perlio' IO system then
+C<Encode> provides a "layer" (See L<perliol>) which can transform
+data as it is read or written.
+
+Here is how the blind poet would modernise the encoding:
+
+ use Encode;
+ open(my $iliad,'<:encoding(iso-8859-7)','iliad.greek');
+ open(my $utf8,'>:utf8','iliad.utf8');
+ my @epic = <$iliad>;
+ print $utf8 @epic;
+ close($utf8);
+ close($illiad);
+
+In addition the new IO system can also be configured to read/write
+UTF-8 encoded characters (as noted above this is efficient):
+
+ open(my $fh,'>:utf8','anything');
+ print $fh "Any \x{0021} string \N{SMILEY FACE}\n";
+
+Either of the above forms of "layer" specifications can be made the default
+for a lexical scope with the C<use open ...> pragma. See L<open>.
+
+Once a handle is open is layers can be altered using C<binmode>.
+
+Without any such configuration, or if Perl itself is built using
+system's own IO, then write operations assume that file handle accepts
+only I<bytes> and will C<die> if a character larger than 255 is
+written to the handle. When reading, each octet from the handle
+becomes a byte-in-a-character. Note that this default is the same
+behaviour as bytes-only languages (including Perl before v5.6) would
+have, and is sufficient to handle native 8-bit encodings
+e.g. iso-8859-1, EBCDIC etc. and any legacy mechanisms for handling
+other encodings and binary data.
+
+In other cases it is the programs responsibility to transform
+characters into bytes using the API above before doing writes, and to
+transform the bytes read from a handle into characters before doing
+"character operations" (e.g. C<lc>, C</\W+/>, ...).
+
+You can also use PerlIO to convert larger amounts of data you don't
+want to bring into memory. For example to convert between ISO-8859-1
+(Latin 1) and UTF-8 (or UTF-EBCDIC in EBCDIC machines):
+
+ open(F, "<:encoding(iso-8859-1)", "data.txt") or die $!;
+ open(G, ">:utf8", "data.utf") or die $!;
+ while (<F>) { print G }
+
+ # Could also do "print G <F>" but that would pull
+ # the whole file into memory just to write it out again.
+
+More examples:
+
+ open(my $f, "<:encoding(cp1252)")
+ open(my $g, ">:encoding(iso-8859-2)")
+ open(my $h, ">:encoding(latin9)") # iso-8859-15
+
+See L<PerlIO> for more information.
+
+See also L<encoding> for how to change the default encoding of the
+data in your script.
+
+=head1 Encoding How to ...
+
+To do:
+
+=over 4
+
+=item * IO with mixed content (faking iso-2022-*)
+
+Encode::JP implements its own iso-2022 routines, however.
+
+=item * MIME's Content-Length:
+
+=item * UTF-8 strings in binary data.
+
+=item * Perl/Encode wrappers on non-Unicode XS modules.
+
+=back
+
+=head1 Messing with Perl's Internals
+
+The following API uses parts of Perl's internals in the current
+implementation. As such they are efficient, but may change.
+
+=over 4
+
+=item * is_utf8(STRING [, CHECK])
+
+[INTERNAL] Test whether the UTF-8 flag is turned on in the STRING.
+If CHECK is true, also checks the data in STRING for being well-formed
+UTF-8. Returns true if successful, false otherwise.
+
+=item *
+
+ _utf8_on(STRING)
+
+[INTERNAL] Turn on the UTF-8 flag in STRING. The data in STRING is
+B<not> checked for being well-formed UTF-8. Do not use unless you
+B<know> that the STRING is well-formed UTF-8. Returns the previous
+state of the UTF-8 flag (so please don't test the return value as
+I<not> success or failure), or C<undef> if STRING is not a string.
+
+=item *
+
+ _utf8_off(STRING)
+
+[INTERNAL] Turn off the UTF-8 flag in STRING. Do not use frivolously.
+Returns the previous state of the UTF-8 flag (so please don't test the
+return value as I<not> success or failure), or C<undef> if STRING is
+not a string.
+
+=back
+
+=head1 IMPLEMENTATION CLASSES
+
+As mentioned above encodings are (in the current implementation at least)
+defined by objects. The mapping of encoding name to object is via the
+C<%encodings> hash.
+
+The values of the hash can currently be either strings or objects.
+The string form may go away in the future. The string form occurs
+when C<encodings()> has scanned C<@INC> for loadable encodings but has
+not actually loaded the encoding in question. This is because the
+current "loading" process is all Perl and a bit slow.
+
+Once an encoding is loaded then value of the hash is object which
+implements the encoding. The object should provide the following
+interface:
+
+=over 4
+
+=item -E<gt>name
+
+Should return the string representing the canonical name of the encoding.
+
+=item -E<gt>new_sequence
+
+This is a placeholder for encodings with state. It should return an
+object which implements this interface, all current implementations
+return the original object.
+
+=item -E<gt>encode($string,$check)
+
+Should return the octet sequence representing I<$string>. If I<$check>
+is true it should modify I<$string> in place to remove the converted
+part (i.e. the whole string unless there is an error). If an error
+occurs it should return the octet sequence for the fragment of string
+that has been converted, and modify $string in-place to remove the
+converted part leaving it starting with the problem fragment.
+
+If check is is false then C<encode> should make a "best effort" to
+convert the string - for example by using a replacement character.
+
+=item -E<gt>decode($octets,$check)
+
+Should return the string that I<$octets> represents. If I<$check> is
+true it should modify I<$octets> in place to remove the converted part
+(i.e. the whole sequence unless there is an error). If an error
+occurs it should return the fragment of string that has been
+converted, and modify $octets in-place to remove the converted part
+leaving it starting with the problem fragment.
+
+If check is is false then C<decode> should make a "best effort" to
+convert the string - for example by using Unicode's "\x{FFFD}" as a
+replacement character.
+
+=back
+
+It should be noted that the check behaviour is different from the
+outer public API. The logic is that the "unchecked" case is useful
+when encoding is part of a stream which may be reporting errors
+(e.g. STDERR). In such cases it is desirable to get everything
+through somehow without causing additional errors which obscure the
+original one. Also the encoding is best placed to know what the
+correct replacement character is, so if that is the desired behaviour
+then letting low level code do it is the most efficient.
+
+In contrast if check is true, the scheme above allows the encoding to
+do as much as it can and tell layer above how much that was. What is
+lacking at present is a mechanism to report what went wrong. The most
+likely interface will be an additional method call to the object, or
+perhaps (to avoid forcing per-stream objects on otherwise stateless
+encodings) and additional parameter.
+
+It is also highly desirable that encoding classes inherit from
+C<Encode::Encoding> as a base class. This allows that class to define
+additional behaviour for all encoding objects. For example built in
+Unicode, UCS-2 and UTF-8 classes use :
+
+ package Encode::MyEncoding;
+ use base qw(Encode::Encoding);
+
+ __PACKAGE__->Define(qw(myCanonical myAlias));
+
+To create an object with bless {Name => ...},$class, and call
+define_encoding. They inherit their C<name> method from
+C<Encode::Encoding>.
+
+=head2 Compiled Encodings
+
+F<Encode.xs> provides a class C<Encode::XS> which provides the
+interface described above. It calls a generic octet-sequence to
+octet-sequence "engine" that is driven by tables (defined in
+F<encengine.c>). The same engine is used for both encode and
+decode. C<Encode:XS>'s C<encode> forces Perl's characters to their
+UTF-8 form and then treats them as just another multibyte
+encoding. C<Encode:XS>'s C<decode> transforms the sequence and then
+turns the UTF-8-ness flag as that is the form that the tables are
+defined to produce. For details of the engine see the comments in
+F<encengine.c>.
+
+The tables are produced by the Perl script F<compile> (the name needs
+to change so we can eventually install it somewhere). F<compile> can
+currently read two formats:
+
+=over 4
+
+=item *.enc
+
+This is a coined format used by Tcl. It is documented in
+Encode/EncodeFormat.pod.
+
+=item *.ucm
+
+This is the semi-standard format used by IBM's ICU package.
+
+=back
+
+F<compile> can write the following forms:
+
+=over 4
+
+=item *.ucm
+
+See above - the F<Encode/*.ucm> files provided with the distribution have
+been created from the original Tcl .enc files using this approach.
+
+=item *.c
+
+Produces tables as C data structures - this is used to build in encodings
+into F<Encode.so>/F<Encode.dll>.
+
+=item *.xs
+
+In theory this allows encodings to be stand-alone loadable Perl
+extensions. The process has not yet been tested. The plan is to use
+this approach for large East Asian encodings.
+
+=back
+
+The set of encodings built-in to F<Encode.so>/F<Encode.dll> is
+determined by F<Makefile.PL>. The current set is as follows:
+
+=over 4
+
+=item ascii and iso-8859-*
+
+That is all the common 8-bit "western" encodings.
+
+=item IBM-1047 and two other variants of EBCDIC.
+
+These are the same variants that are supported by EBCDIC Perl as
+"native" encodings. They are included to prove "reversibility" of
+some constructs in EBCDIC Perl.
+
+=item symbol and dingbats as used by Tk on X11.
+
+(The reason Encode got started was to support Perl/Tk.)
+
+=back
+
+That set is rather ad hoc and has been driven by the needs of the
+tests rather than the needs of typical applications. It is likely
+to be rationalized.
+
+=head1 SEE ALSO
+
+L<perlunicode>, L<perlebcdic>, L<perlfunc/open>, L<PerlIO>, L<encoding>,
+L<utf8>, the Perl Unicode Mailing List E<lt>perl-unicode@perl.orgE<gt>
+
+
+=cut
+
package Encode::Encoding;
# Base class for classes which implement encodings
use strict;
-our $VERSION = '0.02';
+our $VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
sub Define
{
1;
__END__
+
+=head1 NAME
+
+Encode::Encoding - Encode Implementation Base Class
+
+=head1 SYNOPSIS
+
+ package Encode::MyEncoding;
+ use base qw(Encode::Encoding);
+
+ __PACKAGE__->Define(qw(myCanonical myAlias));
+
+=head 1 DESCRIPTION
+
+As mentioned in L<Encode>, encodings are (in the current
+implementation at least) defined by objects. The mapping of encoding
+name to object is via the C<%encodings> hash.
+
+The values of the hash can currently be either strings or objects.
+The string form may go away in the future. The string form occurs
+when C<encodings()> has scanned C<@INC> for loadable encodings but has
+not actually loaded the encoding in question. This is because the
+current "loading" process is all Perl and a bit slow.
+
+Once an encoding is loaded then value of the hash is object which
+implements the encoding. The object should provide the following
+interface:
+
+=over 4
+
+=item -E<gt>name
+
+Should return the string representing the canonical name of the encoding.
+
+=item -E<gt>new_sequence
+
+This is a placeholder for encodings with state. It should return an
+object which implements this interface, all current implementations
+return the original object.
+
+=item -E<gt>encode($string,$check)
+
+Should return the octet sequence representing I<$string>. If I<$check>
+is true it should modify I<$string> in place to remove the converted
+part (i.e. the whole string unless there is an error). If an error
+occurs it should return the octet sequence for the fragment of string
+that has been converted, and modify $string in-place to remove the
+converted part leaving it starting with the problem fragment.
+
+If check is is false then C<encode> should make a "best effort" to
+convert the string - for example by using a replacement character.
+
+=item -E<gt>decode($octets,$check)
+
+Should return the string that I<$octets> represents. If I<$check> is
+true it should modify I<$octets> in place to remove the converted part
+(i.e. the whole sequence unless there is an error). If an error
+occurs it should return the fragment of string that has been
+converted, and modify $octets in-place to remove the converted part
+leaving it starting with the problem fragment.
+
+If check is is false then C<decode> should make a "best effort" to
+convert the string - for example by using Unicode's "\x{FFFD}" as a
+replacement character.
+
+=back
+
+It should be noted that the check behaviour is different from the
+outer public API. The logic is that the "unchecked" case is useful
+when encoding is part of a stream which may be reporting errors
+(e.g. STDERR). In such cases it is desirable to get everything
+through somehow without causing additional errors which obscure the
+original one. Also the encoding is best placed to know what the
+correct replacement character is, so if that is the desired behaviour
+then letting low level code do it is the most efficient.
+
+In contrast if check is true, the scheme above allows the encoding to
+do as much as it can and tell layer above how much that was. What is
+lacking at present is a mechanism to report what went wrong. The most
+likely interface will be an additional method call to the object, or
+perhaps (to avoid forcing per-stream objects on otherwise stateless
+encodings) and additional parameter.
+
+It is also highly desirable that encoding classes inherit from
+C<Encode::Encoding> as a base class. This allows that class to define
+additional behaviour for all encoding objects. For example built in
+Unicode, UCS-2 and UTF-8 classes use :
+
+ package Encode::MyEncoding;
+ use base qw(Encode::Encoding);
+
+ __PACKAGE__->Define(qw(myCanonical myAlias));
+
+To create an object with bless {Name => ...},$class, and call
+define_encoding. They inherit their C<name> method from
+C<Encode::Encoding>.
+
+=head2 Compiled Encodings
+
+F<Encode.xs> provides a class C<Encode::XS> which provides the
+interface described above. It calls a generic octet-sequence to
+octet-sequence "engine" that is driven by tables (defined in
+F<encengine.c>). The same engine is used for both encode and
+decode. C<Encode:XS>'s C<encode> forces Perl's characters to their
+UTF-8 form and then treats them as just another multibyte
+encoding. C<Encode:XS>'s C<decode> transforms the sequence and then
+turns the UTF-8-ness flag as that is the form that the tables are
+defined to produce. For details of the engine see the comments in
+F<encengine.c>.
+
+The tables are produced by the Perl script F<compile> (the name needs
+to change so we can eventually install it somewhere). F<compile> can
+currently read two formats:
+
+=over 4
+
+=item *.enc
+
+This is a coined format used by Tcl. It is documented in
+Encode/EncodeFormat.pod.
+
+=item *.ucm
+
+This is the semi-standard format used by IBM's ICU package.
+
+=back
+
+F<compile> can write the following forms:
+
+=over 4
+
+=item *.ucm
+
+See above - the F<Encode/*.ucm> files provided with the distribution have
+been created from the original Tcl .enc files using this approach.
+
+=item *.c
+
+Produces tables as C data structures - this is used to build in encodings
+into F<Encode.so>/F<Encode.dll>.
+
+=item *.xs
+
+In theory this allows encodings to be stand-alone loadable Perl
+extensions. The process has not yet been tested. The plan is to use
+this approach for large East Asian encodings.
+
+=back
+
+The set of encodings built-in to F<Encode.so>/F<Encode.dll> is
+determined by F<Makefile.PL>. The current set is as follows:
+
+=over 4
+
+=item ascii and iso-8859-*
+
+That is all the common 8-bit "western" encodings.
+
+=item IBM-1047 and two other variants of EBCDIC.
+
+These are the same variants that are supported by EBCDIC Perl as
+"native" encodings. They are included to prove "reversibility" of
+some constructs in EBCDIC Perl.
+
+=item symbol and dingbats as used by Tk on X11.
+
+(The reason Encode got started was to support Perl/Tk.)
+
+=back
+
+That set is rather ad hoc and has been driven by the needs of the
+tests rather than the needs of typical applications. It is likely
+to be rationalized.
+
+=cut
package Encode::Internal;
use strict;
-our $VERSION = do {my @r=(q$Revision: 0.30 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
# Dummy package that provides the encode interface but leaves data
#
-# $Id: Constants.pm,v 1.2 2001/05/18 05:14:38 dankogai Exp dankogai $
+# $Id: Constants.pm,v 0.92 2002/03/19 17:01:26 dankogai Exp $
#
package Encode::JP::Constants;
use strict;
use vars qw($RCSID $VERSION);
-$RCSID = q$Id: Constants.pm,v 1.2 2001/05/18 05:14:38 dankogai Exp dankogai $;
-$VERSION = do { my @r = (q$Revision: 1.2 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+$RCSID = q$Id: Constants.pm,v 0.92 2002/03/19 17:01:26 dankogai Exp $;
+$VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Carp;
#
-# $Id: H2Z.pm,v 0.77 2002/01/14 11:06:55 dankogai Exp $
+# $Id: H2Z.pm,v 0.92 2002/03/19 17:01:26 dankogai Exp $
#
package Encode::JP::H2Z;
use strict;
use vars qw($RCSID $VERSION);
-$RCSID = q$Id: H2Z.pm,v 0.77 2002/01/14 11:06:55 dankogai Exp $;
-$VERSION = do { my @r = (q$Revision: 0.77 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+$RCSID = q$Id: H2Z.pm,v 0.92 2002/03/19 17:01:26 dankogai Exp $;
+$VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
use Carp;
use base 'Encode::Encoding';
use vars qw($VERSION);
-$VERSION = 0.01;
+$VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
my $canon = 'iso-2022-jp';
my $obj = bless {name => $canon}, __PACKAGE__;
$obj->Define($canon);
+sub name { return $_[0]->{name}; }
+
#
# decode is identical to 7bit-jis
#
use strict;
use vars qw($VERSION);
-$VERSION = 0.01;
+$VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
# Just for the time being, we implement jis-7bit
# encoding via EUC
my $obj = bless {name => $canon}, __PACKAGE__;
$obj->Define($canon);
+sub name { return $_[0]->{name}; }
+
sub decode
{
my ($obj,$str,$chk) = @_;
}
}
use strict;
-our $VERSION = do {my @r=(q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.94 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use Encode qw(find_encoding);
use base 'Encode::Encoding';
use Carp;
require Encode::Tcl::Table;
require Encode::Tcl::Escape;
-require Encode::Tcl::Extended;
1;
__END__
L<Encode::Tcl::Escape>
-L<Encode::Tcl::Extended>
-
=cut
package Encode::Tcl::Escape;
use strict;
-our $VERSION = do {my @r=(q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
use Carp;
$val =~ /[\x30-\x3F]$/ ? 2 : # (only 2 is supported)
$val =~ /[\x40-\x5F]$/ ? 2 : # double byte
$val =~ /[\x60-\x6F]$/ ? 3 : # triple byte
- $val =~ /[\x70-\x7F]$/ ? 4 :
+ $val =~ /[\x70-\x7E]$/ ? 4 :
# 4 or more (only 4 is supported)
croak("odd sequence is defined");
}
else
{
- # strictly, ([\x20-\x2F]*[\x30-\x7E]). '?' for chopped.
- $str =~ s/^([\x20-\x2F]*[\x30-\x7E]?)//;
+ # strictly, ([\x21-\x2F]*[\x30-\x7E]). '?' for chopped.
+ $str =~ s/^([\x21-\x2F]*[\x30-\x7E]?)//;
if ($chk && ! length $str)
{
$str = "\e$1"; # split sequence
SINGLE SHIFT TWO (SS2) ESC 04/14
SINGLE SHIFT THREE (SS3) ESC 04/15
-Designation of control character sets are not supported.
+Designation of control character sets is not supported.
=head1 SEE ALSO
+++ /dev/null
-package Encode::Tcl::Extended;
-use strict;
-our $VERSION = do {my @r=(q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
-use base 'Encode::Encoding';
-
-use Carp;
-
-sub read
-{
- my ($obj,$fh,$name) = @_;
- my(%tbl, $enc, %ssc, @key);
- while (<$fh>)
- {
- next unless /^(\S+)\s+(.*)$/;
- my ($key,$val) = ($1,$2);
- $val =~ s/\{(.*?)\}/$1/;
- $val =~ s/\\x([0-9a-f]{2})/chr(hex($1))/ge;
-
- if($enc = Encode->getEncoding($key))
- {
- push @key, $val;
- $tbl{$val} = ref($enc) eq 'Encode::Tcl' ? $enc->loadEncoding : $enc;
- $ssc{$val} = substr($val,1) if $val =~ /^>/;
- }
- else
- {
- $obj->{$key} = $val;
- }
- }
- $obj->{'SSC'} = \%ssc; # single shift char
- $obj->{'Tbl'} = \%tbl; # encoding tables
- $obj->{'Key'} = \@key; # keys of table hash
- return $obj;
-}
-
-sub decode
-{
- my ($obj,$str,$chk) = @_;
- my $name = $obj->{'Name'};
- my $tbl = $obj->{'Tbl'};
- my $ssc = $obj->{'SSC'};
- my $cur = ''; # current state
- my $uni;
- while (length($str))
- {
- my $cc = substr($str,0,1,'');
- my $ch = ord($cc);
- if(!$cur && $ch > 0x7F)
- {
- $cur = '>';
- $cur .= $cc, next if $ssc->{$cur.$cc};
- }
- $ch ^= 0x80 if $cur;
-
- if(ref($tbl->{$cur}) ne 'Encode::Tcl::Table')
- {
- $uni .= $tbl->{$cur}->decode($cc);
- $cur = '';
- next;
- }
- my $rep = $tbl->{$cur}->{'Rep'};
- my $touni = $tbl->{$cur}->{'ToUni'};
- my $x;
- if (&$rep($ch) eq 'C')
- {
- $x = $touni->[0][$ch];
- }
- else
- {
- if(! length $str)
- {
- $str = $cc; # split leading byte
- last;
- }
- my $c2 = substr($str,0,1,'');
- $cc .= $c2;
- $x = $touni->[$ch][0x80 ^ ord($c2)];
- }
- unless (defined $x)
- {
- Encode::Tcl::no_map_in_decode($name, $cc.$str);
- }
- $uni .= $x;
- $cur = '';
- }
- if($chk)
- {
- $cur =~ s/>//;
- $_[1] = $cur ne '' ? $cur.$str : $str;
- }
- return $uni;
-}
-
-sub encode
-{
- my ($obj,$uni,$chk) = @_;
- my $name = $obj->{'Name'};
- my $tbl = $obj->{'Tbl'};
- my $ssc = $obj->{'SSC'};
- my $key = $obj->{'Key'};
- my $str;
- my $cur;
-
- while (length($uni))
- {
- my $ch = substr($uni,0,1,'');
- my $x;
- foreach my $k (@$key)
- {
- $x = ref($tbl->{$k}) ne 'Encode::Tcl::Table'
- ? $k =~ /^>/
- ? $tbl->{$k}->encode(chr(0x80 ^ ord $ch),1)
- : $tbl->{$k}->encode($ch,1)
- : $tbl->{$k}->{FmUni}->{$ch};
- $cur = $k, last if defined $x;
- }
- unless (defined $x)
- {
- unless($chk)
- {
- Encode::Tcl::no_map_in_encode(ord($ch), $name)
- }
- return undef;
- }
- if(ref($tbl->{$cur}) eq 'Encode::Tcl::Table')
- {
- my $def = $tbl->{$cur}->{'Def'};
- my $rep = $tbl->{$cur}->{'Rep'};
- my $r = &$rep($x);
- $x = pack($r,
- $cur =~ /^>/
- ? $r eq 'C' ? 0x80 ^ $x : 0x8080 ^ $x
- : $x);
- }
- $str .= $ssc->{$cur} if defined $ssc->{$cur};
- $str .= $x;
- }
- $_[1] = $uni if $chk;
- return $str;
-}
-1;
-__END__
-
-=head1 NAME
-
-Encode::Tcl::Extended - Tcl EUC encodings
-
-=head1 SYNOPSIS
-
-none
-
-=head1 DESCRIPTION
-
-This module is used internally by Encode::Tcl
-and handles type X of Tcl encodings (a Perl extenstion).
-
-Only F<euc-jp-0212.enc> belongs to type X.
-This is a variant of EUC-JP with JIS X 0212 in G3.
-If another Encode:: module would support the above encoding,
-this module should be removed.
-
-=head1 SEE ALSO
-
-L<Encode>
-
-L<Encode::Tcl>
-
-L<Encode::JP>
-
-=cut
package Encode::Tcl::Table;
use strict;
-our $VERSION = do {my @r=(q$Revision: 1.1 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
use Carp;
return $uni;
}
-
sub encode
{
my ($obj,$uni,$chk) = @_;
and handles types S, D, and M of Tcl encodings.
Implementation for type M is restricted to encodings
-in which bytes per a character is up to 2.
+in which the number of bytes per a character is up to 2.
=head1 SEE ALSO
package Encoding::Unicode;
use strict;
-our $VERSION = do {my @r=(q$Revision: 0.30 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
__PACKAGE__->Define('Unicode') unless ord('A') == 65;
package Encode::XS;
use strict;
-our $VERSION = do {my @r=(q$Revision: 0.40 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
1;
__END__
-
package Encode::iso10646_1;
use strict;
-our $VERSION = do {my @r=(q$Revision: 0.30 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
# Encoding is 16-bit network order Unicode (no surogates)
# Used for X font encodings
package Encode::ucs_2le;
use strict;
-our $VERSION = do {my @r=(q$Revision: 0.30 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
__PACKAGE__->Define(qw(UCS-2le UCS-2LE ucs-2le));
package Encode::utf8;
use strict;
-our $VERSION = do {my @r=(q$Revision: 0.30 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r};
+our $VERSION = do { my @r = (q$Revision: 0.92 $ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
+
use base 'Encode::Encoding';
# package to allow long-hand
# $octets = encode( utf8 => $string );
--- /dev/null
+use strict;
+use Encode::CN;
+use Encode::JP;
+use Encode::KR;
+use Encode::TW;
+
+print "# alias test\n";
+
+my %a2c;
+
+BEGIN {
+ %a2c = qw(
+ ja_JP.euc euc-jp
+ x-euc-jp euc-jp
+ zh_CN.euc euc-cn
+ x-euc-cn euc-cn
+ ko_KR.euc euc-kr
+ x-euc-kr euc-kr
+ ujis euc-jp
+ Shift_JIS shiftjis
+ x-sjis shiftjis
+ jis 7bit-jis
+ big-5 big5
+ zh_TW.Big5 big5
+ big5-hk big5-hkscs
+ );
+}
+
+use Test::More tests => scalar keys %a2c;
+
+foreach my $a (keys %a2c){
+ my $e = Encode::find_encoding($a);
+ is($e->name, $a2c{$a});
+}
+
BEGIN {
chdir 't' if -d 't';
- @INC = '../lib';
+ unshift @INC, '../lib';
require Config; import Config;
if ($Config{'extensions'} !~ /\bEncode\b/) {
print "1..0 # Skip: Encode was not built\n";
BEGIN {
chdir 't' if -d 't';
- push @INC, '../lib';
+ unshift @INC, '../lib';
require Config; import Config;
if ($Config{'extensions'} !~ /\bEncode\b/) {
print "1..0 # Skip: Encode was not built\n";
BEGIN {
- chdir 't' if -d 't';
- @INC = '../lib';
+ chdir 't' if -d 't' and $ENV{PWD} !~ m,/Encode[^/]*$,o;
+ unshift @INC, '../lib';
require Config; import Config;
if ($Config{'extensions'} !~ /\bEncode\b/) {
print "1..0 # Skip: Encode was not built\n";
$| = 1;
}
use strict;
-use Test::More tests => 22;
+use Test::More tests => 27;
+#use Test::More qw(no_plan);
use Encode;
use File::Basename;
use File::Spec;
use File::Compare;
require_ok "Encode::JP";
-my ($src, $uni, $dst, $txt);
+my ($src, $uni, $dst, $txt, $euc, $utf, $ref, $rnd);
ok(defined(my $enc = find_encoding('euc-jp')));
ok($enc->isa('Encode::XS'));
is($enc->name,'euc-jp');
my $dir = dirname(__FILE__);
-my $euc = File::Spec->catfile($dir,"table.euc");
-my $utf = File::Spec->catfile($dir,"$$.utf8");
-my $ref = File::Spec->catfile($dir,"table.ref");
-my $rnd = File::Spec->catfile($dir,"$$.rnd");
-print "# Basic decode test\n";
-open($src,"<",$euc) || die "Cannot open $euc:$!";
-binmode($src);
-ok(defined($src) && fileno($src));
-$txt = join('',<$src>);
-open($dst,">:utf8",$utf) || die "Cannot open $utf:$!";
-binmode($dst);
-ok(defined($dst) && fileno($dst));
-$uni = $enc->decode($txt,1);
-ok(defined($uni));
-is(length($txt),0);
-print $dst $uni;
-close($dst);
-close($src);
-ok(compare($utf,$ref) == 0);
+
+my @subcodings = qw(jisx0212 jisx0208);
+
+for my $subcoding (@subcodings){
+ $euc = File::Spec->catfile($dir,"$subcoding.euc");
+ $utf = File::Spec->catfile($dir,"$$.utf8");
+ $ref = File::Spec->catfile($dir,"$subcoding.ref");
+ $rnd = File::Spec->catfile($dir,"$$.rnd");
+ print "# Basic decode test\n";
+ open($src,"<",$euc) || die "Cannot open $euc:$!";
+ binmode($src);
+ ok(defined($src) && fileno($src));
+ $txt = join('',<$src>);
+ open($dst,">:utf8",$utf) || die "Cannot open $utf:$!";
+ binmode($dst);
+ ok(defined($dst) && fileno($dst));
+ eval{ $uni = $enc->decode($txt,1) };
+ $@ and print $@;
+ ok(defined($uni));
+ is(length($txt),0);
+ print $dst $uni;
+ close($dst);
+ close($src);
+ ok(compare($utf,$ref) == 0);
+}
print "# Basic encode test\n";
open($src,"<:utf8",$ref) || die "Cannot open $ref:$!";
}
close($dst);
close($src);
+
TODO:
{
local $TODO = 'needs debugging on VMS' if $^O eq 'VMS';
}
is($enc->name,'euc-jp');
+
END {
1 while unlink($utf,$rnd);
}
BEGIN {
chdir 't' if -d 't';
- @INC = '../lib';
+ unshift @INC, '../lib';
require Config; import Config;
if ($Config{'extensions'} !~ /\bEncode\b/) {
print "1..0 # Skip: Encode was not built\n";
BEGIN {
chdir 't' if -d 't';
- @INC = '../lib';
+ unshift @INC, '../lib';
require Config; import Config;
if ($Config{'extensions'} !~ /\bEncode\b/) {
print "1..0 # Skip: Encode was not built\n";
use Encode qw(encode decode);
use Encode::Tcl;
-my @encodings = qw(euc-cn euc-jp euc-kr big5 shiftjis); # CJK
+my @encodings = qw(euc-cn euc-kr big5 shiftjis); # CJK
my $n = 2;
my %greek = (
'euc-cn' => [0xA6A1..0xA6B8,0xA6C1..0xA6D8],
- 'euc-jp' => [0xA6A1..0xA6B8,0xA6C1..0xA6D8],
'euc-kr' => [0xA5C1..0xA5D8,0xA5E1..0xA5F8],
'big5' => [0xA344..0xA35B,0xA35C..0xA373],
'shiftjis' => [0x839F..0x83B6,0x83BF..0x83D6],
my %ideodigit = ( # cjk ideograph 'one' to 'ten'
'euc-cn' => [qw(d2bb b6fe c8fd cbc4 cee5 c1f9 c6df b0cb bec5 caae)],
- 'euc-jp' => [qw(b0ec c6f3 bbb0 bbcd b8de cfbb bcb7 c8ac b6e5 bdbd)],
'euc-kr' => [qw(ece9 eca3 dfb2 decc e7e9 d7bf f6d2 f8a2 cefa e4a8)],
'big5' => [qw(a440 a447 a454 a57c a4ad a4bb a443 a44b a445 a451)],
'shiftjis' => [qw(88ea 93f1 8e4f 8e6c 8cdc 985a 8eb5 94aa 8be3 8f5c)],
);
my @ideodigit = qw(one two three four five six seven eight nine ten);
-my $jis = '7bit-jis';
my $kr = '2022-kr';
my %esc_str;
-$esc_str{$jis} = {qw(
- 1b24422422242424262428242a1b2842
- 3042304430463048304a
- 1b284931323334355d1b2842
- ff71ff72ff73ff74ff75ff9d
- 1b2442467c4b5c1b2842
- 65e5672c
- 3132331b244234413b7a1b28425065726c
- 0031003200336f225b57005000650072006c
- 546573740a1b24422546253925481b28420a
- 0054006500730074000a30c630b930c8000a
-)};
-
$esc_str{$kr} = {qw(
1b2429430e2a22213e0f410d0a
304200b10041000d000a
my @ary_buff = ( # [ encoding, decoded, encoded ]
# type-M
["euc-cn", hiragana, "\xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA" ],
- ["euc-jp", hiragana, "\xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA" ],
- ["euc-jp", han_kana, "\x8E\xB1\x8E\xB2\x8E\xB3\x8E\xB4\x8E\xB5" ],
["euc-kr", hiragana, "\xAA\xA2\xAA\xA4\xAA\xA6\xAA\xA8\xAA\xAA" ],
["shiftjis", hiragana, "\x82\xA0\x82\xA2\x82\xA4\x82\xA6\x82\xA8" ],
["shiftjis", han_kana, "\xB1\xB2\xB3\xB4\xB5" ],
# type-E
["2022-cn", hiragana, "\e\$)A\cN". '$"$$$&$($*' . "\cO" ],
- ["2022-jp", hiragana, "\e\$B".'$"$$$&$($*'."\e(B" ],
["2022-kr", hiragana, "\e\$)C\cN". '*"*$*&*(**' . "\cO" ],
-# [ $jis, han_kana, "\e\(I".'12345'."\e(B" ],
["2022-jp1", macron, "\e\$(D\x2A\x27\x2A\x37\x2A\x45\x2A\x57\x2A\x69\e(B"],
["2022-jp2", "\x{C0}" . macron . "\x{C1}",
"\e\$(D\e.A\eN\x40\x2A\x27\x2A\x37\x2A\x45\x2A\x57\x2A\x69\e(B\eN\x41"],
-# type-X
- ["euc-jp-0212", hiragana, "\xA4\xA2\xA4\xA4\xA4\xA6\xA4\xA8\xA4\xAA" ],
- ["euc-jp-0212", han_kana, "\x8E\xB1\x8E\xB2\x8E\xB3\x8E\xB4\x8E\xB5" ],
- ["euc-jp-0212", macron,
- "\x8F\xAA\xA7\x8F\xAA\xB7\x8F\xAA\xC5\x8F\xAA\xD7\x8F\xAA\xE9" ],
);
plan test => $n*@encodings + $n*@encodings*@greek
+++ /dev/null
-#
-use strict;
-#use blib;
-use Encode::Japanese;
-
-# print join("\n", Encode::encodings()),"\n";
--- /dev/null
+0x8fa0a0:
+0x8fa0c0:
+0x8fa0e0:
+0x8fa1a0:
+0x8fa1c0:
+0x8fa1e0:
+0x8fa2a0: ¢¯¢°¢±¢²¢³¢´¢µ¢¶~¢¸¢¹
+0x8fa2c0: ¢Â¢Ã¢Ä
+0x8fa2e0: ¢ë¢ì¢í¢î¢ï¢ð¢ñ
+0x8fa3a0:
+0x8fa3c0:
+0x8fa3e0:
+0x8fa4a0:
+0x8fa4c0:
+0x8fa4e0:
+0x8fa5a0:
+0x8fa5c0:
+0x8fa5e0:
+0x8fa6a0:
+0x8fa6c0:
+0x8fa6e0: ¦á¦â¦ã¦ä¦å ¦ç ¦é¦ê ¦ì ¦ñ¦ò¦ó¦ô¦õ¦ö¦÷¦ø¦ù¦ú¦û¦ü
+0x8fa7a0:
+0x8fa7c0: §Â§Ã§Ä§Å§Æ§Ç§È§É§Ê§Ë§Ì§Í§Î
+0x8fa7e0: §ò§ó§ô§õ§ö§÷§ø§ù§ú§û§ü§ý§þ
+0x8fa8a0:
+0x8fa8c0:
+0x8fa8e0:
+0x8fa9a0: ©¡©¢ ©¤ ©¦ ©¨©© ©«©¬© ©¯©°
+0x8fa9c0: ©Á©Â©Ã©Ä©Å©Æ©Ç©È©É©Ê©Ë©Ì©Í©Î©Ï©Ð
+0x8fa9e0:
+0x8faaa0: ª¡ª¢ª£ª¤ª¥ª¦ª§ª¨ª©ªªª«ª¬ªª®ª¯ª°ª±ª²ª³ª´ªµª¶ª·ª¸ ªºª»ª¼ª½ª¾
+0x8faac0: ªÀªÁªÂªÃªÄªÅªÆªÇªÈªÉªÊªËªÌªÍªÎªÏªÐªÑªÒªÓªÔªÕªÖª×ªØªÙªÚªÛªÜªÝªÞ
+0x8faae0: ªàªáªâªãªäªåªæªçªèªéªêªëªìªíªîªïªðªñªòªóªôªõªöª÷
+0x8faba0: «¡«¢«£«¤«¥«¦«§«¨«©«ª«««¬««®«¯«°«±«²«³«´«µ«¶«·«¸«¹«º«» «½«¾
+0x8fabc0: «À«Á«Â«Ã «Å«Æ«Ç«È«É«Ê«Ë«Ì«Í«Î«Ï«Ð«Ñ«Ò«Ó«Ô«Õ«Ö«×«Ø«Ù«Ú«Û«Ü«Ý«Þ
+0x8fabe0: «à«á«â«ã«ä«å«æ«ç«è«é«ê«ë«ì«í«î«ï«ð«ñ«ò«ó«ô«õ«ö«÷
+0x8faca0:
+0x8facc0:
+0x8face0:
+0x8fada0:
+0x8fadc0:
+0x8fade0:
+0x8faea0:
+0x8faec0:
+0x8faee0:
+0x8fafa0:
+0x8fafc0:
+0x8fafe0:
+0x8fb0a0: °¡°¢°£°¤°¥°¦°§°¨°©°ª°«°¬°°®°¯°°°±°²°³°´°µ°¶°·°¸°¹°º°»°¼°½°¾
+0x8fb0c0: °À°Á°Â°Ã°Ä°Å°Æ°Ç°È°É°Ê°Ë°Ì°Í°Î°Ï°Ð°Ñ°Ò°Ó°Ô°Õ°Ö°×°Ø°Ù°Ú°Û°Ü°Ý°Þ
+0x8fb0e0: °à°á°â°ã°ä°å°æ°ç°è°é°ê°ë°ì°í°î°ï°ð°ñ°ò°ó°ô°õ°ö°÷°ø°ù°ú°û°ü°ý°þ
+0x8fb1a0: ±¡±¢±£±¤±¥±¦±§±¨±©±ª±«±¬±±®±¯±°±±±²±³±´±µ±¶±·±¸±¹±º±»±¼±½±¾
+0x8fb1c0: ±À±Á±Â±Ã±Ä±Å±Æ±Ç±È±É±Ê±Ë±Ì±Í±Î±Ï±Ð±Ñ±Ò±Ó±Ô±Õ±Ö±×±Ø±Ù±Ú±Û±Ü±Ý±Þ
+0x8fb1e0: ±à±á±â±ã±ä±å±æ±ç±è±é±ê±ë±ì±í±î±ï±ð±ñ±ò±ó±ô±õ±ö±÷±ø±ù±ú±û±ü±ý±þ
+0x8fb2a0: ²¡²¢²£²¤²¥²¦²§²¨²©²ª²«²¬²²®²¯²°²±²²²³²´²µ²¶²·²¸²¹²º²»²¼²½²¾
+0x8fb2c0: ²À²Á²Â²Ã²Ä²Å²Æ²Ç²È²É²Ê²Ë²Ì²Í²Î²Ï²Ð²Ñ²Ò²Ó²Ô²Õ²Ö²×²Ø²Ù²Ú²Û²Ü²Ý²Þ
+0x8fb2e0: ²à²á²â²ã²ä²å²æ²ç²è²é²ê²ë²ì²í²î²ï²ð²ñ²ò²ó²ô²õ²ö²÷²ø²ù²ú²û²ü²ý²þ
+0x8fb3a0: ³¡³¢³£³¤³¥³¦³§³¨³©³ª³«³¬³³®³¯³°³±³²³³³´³µ³¶³·³¸³¹³º³»³¼³½³¾
+0x8fb3c0: ³À³Á³Â³Ã³Ä³Å³Æ³Ç³È³É³Ê³Ë³Ì³Í³Î³Ï³Ð³Ñ³Ò³Ó³Ô³Õ³Ö³×³Ø³Ù³Ú³Û³Ü³Ý³Þ
+0x8fb3e0: ³à³á³â³ã³ä³å³æ³ç³è³é³ê³ë³ì³í³î³ï³ð³ñ³ò³ó³ô³õ³ö³÷³ø³ù³ú³û³ü³ý³þ
+0x8fb4a0: ´¡´¢´£´¤´¥´¦´§´¨´©´ª´«´¬´´®´¯´°´±´²´³´´´µ´¶´·´¸´¹´º´»´¼´½´¾
+0x8fb4c0: ´À´Á´Â´Ã´Ä´Å´Æ´Ç´È´É´Ê´Ë´Ì´Í´Î´Ï´Ð´Ñ´Ò´Ó´Ô´Õ´Ö´×´Ø´Ù´Ú´Û´Ü´Ý´Þ
+0x8fb4e0: ´à´á´â´ã´ä´å´æ´ç´è´é´ê´ë´ì´í´î´ï´ð´ñ´ò´ó´ô´õ´ö´÷´ø´ù´ú´û´ü´ý´þ
+0x8fb5a0: µ¡µ¢µ£µ¤µ¥µ¦µ§µ¨µ©µªµ«µ¬µµ®µ¯µ°µ±µ²µ³µ´µµµ¶µ·µ¸µ¹µºµ»µ¼µ½µ¾
+0x8fb5c0: µÀµÁµÂµÃµÄµÅµÆµÇµÈµÉµÊµËµÌµÍµÎµÏµÐµÑµÒµÓµÔµÕµÖµ×µØµÙµÚµÛµÜµÝµÞ
+0x8fb5e0: µàµáµâµãµäµåµæµçµèµéµêµëµìµíµîµïµðµñµòµóµôµõµöµ÷µøµùµúµûµüµýµþ
+0x8fb6a0: ¶¡¶¢¶£¶¤¶¥¶¦¶§¶¨¶©¶ª¶«¶¬¶¶®¶¯¶°¶±¶²¶³¶´¶µ¶¶¶·¶¸¶¹¶º¶»¶¼¶½¶¾
+0x8fb6c0: ¶À¶Á¶Â¶Ã¶Ä¶Å¶Æ¶Ç¶È¶É¶Ê¶Ë¶Ì¶Í¶Î¶Ï¶Ð¶Ñ¶Ò¶Ó¶Ô¶Õ¶Ö¶×¶Ø¶Ù¶Ú¶Û¶Ü¶Ý¶Þ
+0x8fb6e0: ¶à¶á¶â¶ã¶ä¶å¶æ¶ç¶è¶é¶ê¶ë¶ì¶í¶î¶ï¶ð¶ñ¶ò¶ó¶ô¶õ¶ö¶÷¶ø¶ù¶ú¶û¶ü¶ý¶þ
+0x8fb7a0: ·¡·¢·£·¤·¥·¦·§·¨·©·ª·«·¬··®·¯·°·±·²·³·´·µ·¶···¸·¹·º·»·¼·½·¾
+0x8fb7c0: ·À·Á·Â·Ã·Ä·Å·Æ·Ç·È·É·Ê·Ë·Ì·Í·Î·Ï·Ð·Ñ·Ò·Ó·Ô·Õ·Ö·×·Ø·Ù·Ú·Û·Ü·Ý·Þ
+0x8fb7e0: ·à·á·â·ã·ä·å·æ·ç·è·é·ê·ë·ì·í·î·ï·ð·ñ·ò·ó·ô·õ·ö·÷·ø·ù·ú·û·ü·ý·þ
+0x8fb8a0: ¸¡¸¢¸£¸¤¸¥¸¦¸§¸¨¸©¸ª¸«¸¬¸¸®¸¯¸°¸±¸²¸³¸´¸µ¸¶¸·¸¸¸¹¸º¸»¸¼¸½¸¾
+0x8fb8c0: ¸À¸Á¸Â¸Ã¸Ä¸Å¸Æ¸Ç¸È¸É¸Ê¸Ë¸Ì¸Í¸Î¸Ï¸Ð¸Ñ¸Ò¸Ó¸Ô¸Õ¸Ö¸×¸Ø¸Ù¸Ú¸Û¸Ü¸Ý¸Þ
+0x8fb8e0: ¸à¸á¸â¸ã¸ä¸å¸æ¸ç¸è¸é¸ê¸ë¸ì¸í¸î¸ï¸ð¸ñ¸ò¸ó¸ô¸õ¸ö¸÷¸ø¸ù¸ú¸û¸ü¸ý¸þ
+0x8fb9a0: ¹¡¹¢¹£¹¤¹¥¹¦¹§¹¨¹©¹ª¹«¹¬¹¹®¹¯¹°¹±¹²¹³¹´¹µ¹¶¹·¹¸¹¹¹º¹»¹¼¹½¹¾
+0x8fb9c0: ¹À¹Á¹Â¹Ã¹Ä¹Å¹Æ¹Ç¹È¹É¹Ê¹Ë¹Ì¹Í¹Î¹Ï¹Ð¹Ñ¹Ò¹Ó¹Ô¹Õ¹Ö¹×¹Ø¹Ù¹Ú¹Û¹Ü¹Ý¹Þ
+0x8fb9e0: ¹à¹á¹â¹ã¹ä¹å¹æ¹ç¹è¹é¹ê¹ë¹ì¹í¹î¹ï¹ð¹ñ¹ò¹ó¹ô¹õ¹ö¹÷¹ø¹ù¹ú¹û¹ü¹ý¹þ
+0x8fbaa0: º¡º¢º£º¤º¥º¦º§º¨º©ºªº«º¬ºº®º¯º°º±º²º³º´ºµº¶º·º¸º¹ººº»º¼º½º¾
+0x8fbac0: ºÀºÁºÂºÃºÄºÅºÆºÇºÈºÉºÊºËºÌºÍºÎºÏºÐºÑºÒºÓºÔºÕºÖº×ºØºÙºÚºÛºÜºÝºÞ
+0x8fbae0: ºàºáºâºãºäºåºæºçºèºéºêºëºìºíºîºïºðºñºòºóºôºõºöº÷ºøºùºúºûºüºýºþ
+0x8fbba0: »¡»¢»£»¤»¥»¦»§»¨»©»ª»«»¬»»®»¯»°»±»²»³»´»µ»¶»·»¸»¹»º»»»¼»½»¾
+0x8fbbc0: »À»Á»Â»Ã»Ä»Å»Æ»Ç»È»É»Ê»Ë»Ì»Í»Î»Ï»Ð»Ñ»Ò»Ó»Ô»Õ»Ö»×»Ø»Ù»Ú»Û»Ü»Ý»Þ
+0x8fbbe0: »à»á»â»ã»ä»å»æ»ç»è»é»ê»ë»ì»í»î»ï»ð»ñ»ò»ó»ô»õ»ö»÷»ø»ù»ú»û»ü»ý»þ
+0x8fbca0: ¼¡¼¢¼£¼¤¼¥¼¦¼§¼¨¼©¼ª¼«¼¬¼¼®¼¯¼°¼±¼²¼³¼´¼µ¼¶¼·¼¸¼¹¼º¼»¼¼¼½¼¾
+0x8fbcc0: ¼À¼Á¼Â¼Ã¼Ä¼Å¼Æ¼Ç¼È¼É¼Ê¼Ë¼Ì¼Í¼Î¼Ï¼Ð¼Ñ¼Ò¼Ó¼Ô¼Õ¼Ö¼×¼Ø¼Ù¼Ú¼Û¼Ü¼Ý¼Þ
+0x8fbce0: ¼à¼á¼â¼ã¼ä¼å¼æ¼ç¼è¼é¼ê¼ë¼ì¼í¼î¼ï¼ð¼ñ¼ò¼ó¼ô¼õ¼ö¼÷¼ø¼ù¼ú¼û¼ü¼ý¼þ
+0x8fbda0: ½¡½¢½£½¤½¥½¦½§½¨½©½ª½«½¬½½®½¯½°½±½²½³½´½µ½¶½·½¸½¹½º½»½¼½½½¾
+0x8fbdc0: ½À½Á½Â½Ã½Ä½Å½Æ½Ç½È½É½Ê½Ë½Ì½Í½Î½Ï½Ð½Ñ½Ò½Ó½Ô½Õ½Ö½×½Ø½Ù½Ú½Û½Ü½Ý½Þ
+0x8fbde0: ½à½á½â½ã½ä½å½æ½ç½è½é½ê½ë½ì½í½î½ï½ð½ñ½ò½ó½ô½õ½ö½÷½ø½ù½ú½û½ü½ý½þ
+0x8fbea0: ¾¡¾¢¾£¾¤¾¥¾¦¾§¾¨¾©¾ª¾«¾¬¾¾®¾¯¾°¾±¾²¾³¾´¾µ¾¶¾·¾¸¾¹¾º¾»¾¼¾½¾¾
+0x8fbec0: ¾À¾Á¾Â¾Ã¾Ä¾Å¾Æ¾Ç¾È¾É¾Ê¾Ë¾Ì¾Í¾Î¾Ï¾Ð¾Ñ¾Ò¾Ó¾Ô¾Õ¾Ö¾×¾Ø¾Ù¾Ú¾Û¾Ü¾Ý¾Þ
+0x8fbee0: ¾à¾á¾â¾ã¾ä¾å¾æ¾ç¾è¾é¾ê¾ë¾ì¾í¾î¾ï¾ð¾ñ¾ò¾ó¾ô¾õ¾ö¾÷¾ø¾ù¾ú¾û¾ü¾ý¾þ
+0x8fbfa0: ¿¡¿¢¿£¿¤¿¥¿¦¿§¿¨¿©¿ª¿«¿¬¿¿®¿¯¿°¿±¿²¿³¿´¿µ¿¶¿·¿¸¿¹¿º¿»¿¼¿½¿¾
+0x8fbfc0: ¿À¿Á¿Â¿Ã¿Ä¿Å¿Æ¿Ç¿È¿É¿Ê¿Ë¿Ì¿Í¿Î¿Ï¿Ð¿Ñ¿Ò¿Ó¿Ô¿Õ¿Ö¿×¿Ø¿Ù¿Ú¿Û¿Ü¿Ý¿Þ
+0x8fbfe0: ¿à¿á¿â¿ã¿ä¿å¿æ¿ç¿è¿é¿ê¿ë¿ì¿í¿î¿ï¿ð¿ñ¿ò¿ó¿ô¿õ¿ö¿÷¿ø¿ù¿ú¿û¿ü¿ý¿þ
+0x8fc0a0: À¡À¢À£À¤À¥À¦À§À¨À©ÀªÀ«À¬ÀÀ®À¯À°À±À²À³À´ÀµÀ¶À·À¸À¹ÀºÀ»À¼À½À¾
+0x8fc0c0: ÀÀÀÁÀÂÀÃÀÄÀÅÀÆÀÇÀÈÀÉÀÊÀËÀÌÀÍÀÎÀÏÀÐÀÑÀÒÀÓÀÔÀÕÀÖÀ×ÀØÀÙÀÚÀÛÀÜÀÝÀÞ
+0x8fc0e0: ÀàÀáÀâÀãÀäÀåÀæÀçÀèÀéÀêÀëÀìÀíÀîÀïÀðÀñÀòÀóÀôÀõÀöÀ÷ÀøÀùÀúÀûÀüÀýÀþ
+0x8fc1a0: Á¡Á¢Á£Á¤Á¥Á¦Á§Á¨Á©ÁªÁ«Á¬ÁÁ®Á¯Á°Á±Á²Á³Á´ÁµÁ¶Á·Á¸Á¹ÁºÁ»Á¼Á½Á¾
+0x8fc1c0: ÁÀÁÁÁÂÁÃÁÄÁÅÁÆÁÇÁÈÁÉÁÊÁËÁÌÁÍÁÎÁÏÁÐÁÑÁÒÁÓÁÔÁÕÁÖÁ×ÁØÁÙÁÚÁÛÁÜÁÝÁÞ
+0x8fc1e0: ÁàÁáÁâÁãÁäÁåÁæÁçÁèÁéÁêÁëÁìÁíÁîÁïÁðÁñÁòÁóÁôÁõÁöÁ÷ÁøÁùÁúÁûÁüÁýÁþ
+0x8fc2a0: ¡¢£¤¥¦§¨©ª«¬Â®¯°±²³´µ¶·¸¹º»¼½¾
+0x8fc2c0: ÂÀÂÁÂÂÂÃÂÄÂÅÂÆÂÇÂÈÂÉÂÊÂËÂÌÂÍÂÎÂÏÂÐÂÑÂÒÂÓÂÔÂÕÂÖÂ×ÂØÂÙÂÚÂÛÂÜÂÝÂÞ
+0x8fc2e0: ÂàÂáÂâÂãÂäÂåÂæÂçÂèÂéÂêÂëÂìÂíÂîÂïÂðÂñÂòÂóÂôÂõÂöÂ÷ÂøÂùÂúÂûÂüÂýÂþ
+0x8fc3a0: áâãäåæçèéêëìÃîïðñòóôõö÷øùúûüýþ
+0x8fc3c0: ÃÀÃÁÃÂÃÃÃÄÃÅÃÆÃÇÃÈÃÉÃÊÃËÃÌÃÍÃÎÃÏÃÐÃÑÃÒÃÓÃÔÃÕÃÖÃ×ÃØÃÙÃÚÃÛÃÜÃÝÃÞ
+0x8fc3e0: ÃàÃáÃâÃãÃäÃåÃæÃçÃèÃéÃêÃëÃìÃíÃîÃïÃðÃñÃòÃóÃôÃõÃöÃ÷ÃøÃùÃúÃûÃüÃýÃþ
+0x8fc4a0: ġĢģĤĥĦħĨĩĪīĬÄĮįİıIJijĴĵĶķĸĹĺĻļĽľ
+0x8fc4c0: ÄÀÄÁÄÂÄÃÄÄÄÅÄÆÄÇÄÈÄÉÄÊÄËÄÌÄÍÄÎÄÏÄÐÄÑÄÒÄÓÄÔÄÕÄÖÄ×ÄØÄÙÄÚÄÛÄÜÄÝÄÞ
+0x8fc4e0: ÄàÄáÄâÄãÄäÄåÄæÄçÄèÄéÄêÄëÄìÄíÄîÄïÄðÄñÄòÄóÄôÄõÄöÄ÷ÄøÄùÄúÄûÄüÄýÄþ
+0x8fc5a0: šŢţŤťŦŧŨũŪūŬÅŮůŰűŲųŴŵŶŷŸŹźŻżŽž
+0x8fc5c0: ÅÀÅÁÅÂÅÃÅÄÅÅÅÆÅÇÅÈÅÉÅÊÅËÅÌÅÍÅÎÅÏÅÐÅÑÅÒÅÓÅÔÅÕÅÖÅ×ÅØÅÙÅÚÅÛÅÜÅÝÅÞ
+0x8fc5e0: ÅàÅáÅâÅãÅäÅåÅæÅçÅèÅéÅêÅëÅìÅíÅîÅïÅðÅñÅòÅóÅôÅõÅöÅ÷ÅøÅùÅúÅûÅüÅýÅþ
+0x8fc6a0: ơƢƣƤƥƦƧƨƩƪƫƬÆƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾ
+0x8fc6c0: ÆÀÆÁÆÂÆÃÆÄÆÅÆÆÆÇÆÈÆÉÆÊÆËÆÌÆÍÆÎÆÏÆÐÆÑÆÒÆÓÆÔÆÕÆÖÆ×ÆØÆÙÆÚÆÛÆÜÆÝÆÞ
+0x8fc6e0: ÆàÆáÆâÆãÆäÆåÆæÆçÆèÆéÆêÆëÆìÆíÆîÆïÆðÆñÆòÆóÆôÆõÆöÆ÷ÆøÆùÆúÆûÆüÆýÆþ
+0x8fc7a0: ǡǢǣǤǥǦǧǨǩǪǫǬÇǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾ
+0x8fc7c0: ÇÀÇÁÇÂÇÃÇÄÇÅÇÆÇÇÇÈÇÉÇÊÇËÇÌÇÍÇÎÇÏÇÐÇÑÇÒÇÓÇÔÇÕÇÖÇ×ÇØÇÙÇÚÇÛÇÜÇÝÇÞ
+0x8fc7e0: ÇàÇáÇâÇãÇäÇåÇæÇçÇèÇéÇêÇëÇìÇíÇîÇïÇðÇñÇòÇóÇôÇõÇöÇ÷ÇøÇùÇúÇûÇüÇýÇþ
+0x8fc8a0: ȡȢȣȤȥȦȧȨȩȪȫȬÈȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾ
+0x8fc8c0: ÈÀÈÁÈÂÈÃÈÄÈÅÈÆÈÇÈÈÈÉÈÊÈËÈÌÈÍÈÎÈÏÈÐÈÑÈÒÈÓÈÔÈÕÈÖÈ×ÈØÈÙÈÚÈÛÈÜÈÝÈÞ
+0x8fc8e0: ÈàÈáÈâÈãÈäÈåÈæÈçÈèÈéÈêÈëÈìÈíÈîÈïÈðÈñÈòÈóÈôÈõÈöÈ÷ÈøÈùÈúÈûÈüÈýÈþ
+0x8fc9a0: ɡɢɣɤɥɦɧɨɩɪɫɬÉɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾ
+0x8fc9c0: ÉÀÉÁÉÂÉÃÉÄÉÅÉÆÉÇÉÈÉÉÉÊÉËÉÌÉÍÉÎÉÏÉÐÉÑÉÒÉÓÉÔÉÕÉÖÉ×ÉØÉÙÉÚÉÛÉÜÉÝÉÞ
+0x8fc9e0: ÉàÉáÉâÉãÉäÉåÉæÉçÉèÉéÉêÉëÉìÉíÉîÉïÉðÉñÉòÉóÉôÉõÉöÉ÷ÉøÉùÉúÉûÉüÉýÉþ
+0x8fcaa0: ʡʢʣʤʥʦʧʨʩʪʫʬÊʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾ
+0x8fcac0: ÊÀÊÁÊÂÊÃÊÄÊÅÊÆÊÇÊÈÊÉÊÊÊËÊÌÊÍÊÎÊÏÊÐÊÑÊÒÊÓÊÔÊÕÊÖÊ×ÊØÊÙÊÚÊÛÊÜÊÝÊÞ
+0x8fcae0: ÊàÊáÊâÊãÊäÊåÊæÊçÊèÊéÊêÊëÊìÊíÊîÊïÊðÊñÊòÊóÊôÊõÊöÊ÷ÊøÊùÊúÊûÊüÊýÊþ
+0x8fcba0: ˡˢˣˤ˥˦˧˨˩˪˫ˬËˮ˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾
+0x8fcbc0: ËÀËÁËÂËÃËÄËÅËÆËÇËÈËÉËÊËËËÌËÍËÎËÏËÐËÑËÒËÓËÔËÕËÖË×ËØËÙËÚËÛËÜËÝËÞ
+0x8fcbe0: ËàËáËâËãËäËåËæËçËèËéËêËëËìËíËîËïËðËñËòËóËôËõËöË÷ËøËùËúËûËüËýËþ
+0x8fcca0: ̡̢̧̨̣̤̥̦̩̪̫̬Ì̴̵̶̷̸̮̯̰̱̲̳̹̺̻̼̽̾
+0x8fccc0: ÌÀÌÁÌÂÌÃÌÄÌÅÌÆÌÇÌÈÌÉÌÊÌËÌÌÌÍÌÎÌÏÌÐÌÑÌÒÌÓÌÔÌÕÌÖÌ×ÌØÌÙÌÚÌÛÌÜÌÝÌÞ
+0x8fcce0: ÌàÌáÌâÌãÌäÌåÌæÌçÌèÌéÌêÌëÌìÌíÌîÌïÌðÌñÌòÌóÌôÌõÌöÌ÷ÌøÌùÌúÌûÌüÌýÌþ
+0x8fcda0: ͣͤͥͦͧͨͩͪͫͬ͢͡ÍͮͯͰͱͲͳʹ͵Ͷͷ͸͹ͺͻͼͽ;
+0x8fcdc0: ÍÀÍÁÍÂÍÃÍÄÍÅÍÆÍÇÍÈÍÉÍÊÍËÍÌÍÍÍÎÍÏÍÐÍÑÍÒÍÓÍÔÍÕÍÖÍ×ÍØÍÙÍÚÍÛÍÜÍÝÍÞ
+0x8fcde0: ÍàÍáÍâÍãÍäÍåÍæÍçÍèÍéÍêÍëÍìÍíÍîÍïÍðÍñÍòÍóÍôÍõÍöÍ÷ÍøÍùÍúÍûÍüÍýÍþ
+0x8fcea0: Ρ΢ΣΤΥΦΧΨΩΪΫάÎήίΰαβγδεζηθικλμνξ
+0x8fcec0: ÎÀÎÁÎÂÎÃÎÄÎÅÎÆÎÇÎÈÎÉÎÊÎËÎÌÎÍÎÎÎÏÎÐÎÑÎÒÎÓÎÔÎÕÎÖÎ×ÎØÎÙÎÚÎÛÎÜÎÝÎÞ
+0x8fcee0: ÎàÎáÎâÎãÎäÎåÎæÎçÎèÎéÎêÎëÎìÎíÎîÎïÎðÎñÎòÎóÎôÎõÎöÎ÷ÎøÎùÎúÎûÎüÎýÎþ
+0x8fcfa0: ϡϢϣϤϥϦϧϨϩϪϫϬÏϮϯϰϱϲϳϴϵ϶ϷϸϹϺϻϼϽϾ
+0x8fcfc0: ÏÀÏÁÏÂÏÃÏÄÏÅÏÆÏÇÏÈÏÉÏÊÏËÏÌÏÍÏÎÏÏÏÐÏÑÏÒÏÓÏÔÏÕÏÖÏ×ÏØÏÙÏÚÏÛÏÜÏÝÏÞ
+0x8fcfe0: ÏàÏáÏâÏãÏäÏåÏæÏçÏèÏéÏêÏëÏìÏíÏîÏïÏðÏñÏòÏóÏôÏõÏöÏ÷ÏøÏùÏúÏûÏüÏýÏþ
+0x8fd0a0: СТУФХЦЧШЩЪЫЬÐЮЯабвгдежзийклмно
+0x8fd0c0: ÐÀÐÁÐÂÐÃÐÄÐÅÐÆÐÇÐÈÐÉÐÊÐËÐÌÐÍÐÎÐÏÐÐÐÑÐÒÐÓÐÔÐÕÐÖÐ×ÐØÐÙÐÚÐÛÐÜÐÝÐÞ
+0x8fd0e0: ÐàÐáÐâÐãÐäÐåÐæÐçÐèÐéÐêÐëÐìÐíÐîÐïÐðÐñÐòÐóÐôÐõÐöÐ÷ÐøÐùÐúÐûÐüÐýÐþ
+0x8fd1a0: ѡѢѣѤѥѦѧѨѩѪѫѬÑѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾ
+0x8fd1c0: ÑÀÑÁÑÂÑÃÑÄÑÅÑÆÑÇÑÈÑÉÑÊÑËÑÌÑÍÑÎÑÏÑÐÑÑÑÒÑÓÑÔÑÕÑÖÑ×ÑØÑÙÑÚÑÛÑÜÑÝÑÞ
+0x8fd1e0: ÑàÑáÑâÑãÑäÑåÑæÑçÑèÑéÑêÑëÑìÑíÑîÑïÑðÑñÑòÑóÑôÑõÑöÑ÷ÑøÑùÑúÑûÑüÑýÑþ
+0x8fd2a0: Ò¡Ò¢Ò£Ò¤Ò¥Ò¦Ò§Ò¨Ò©ÒªÒ«Ò¬ÒÒ®Ò¯Ò°Ò±Ò²Ò³Ò´ÒµÒ¶Ò·Ò¸Ò¹ÒºÒ»Ò¼Ò½Ò¾
+0x8fd2c0: ÒÀÒÁÒÂÒÃÒÄÒÅÒÆÒÇÒÈÒÉÒÊÒËÒÌÒÍÒÎÒÏÒÐÒÑÒÒÒÓÒÔÒÕÒÖÒ×ÒØÒÙÒÚÒÛÒÜÒÝÒÞ
+0x8fd2e0: ÒàÒáÒâÒãÒäÒåÒæÒçÒèÒéÒêÒëÒìÒíÒîÒïÒðÒñÒòÒóÒôÒõÒöÒ÷ÒøÒùÒúÒûÒüÒýÒþ
+0x8fd3a0: Ó¡Ó¢Ó£Ó¤Ó¥Ó¦Ó§Ó¨Ó©ÓªÓ«Ó¬ÓÓ®Ó¯Ó°Ó±Ó²Ó³Ó´ÓµÓ¶Ó·Ó¸Ó¹ÓºÓ»Ó¼Ó½Ó¾
+0x8fd3c0: ÓÀÓÁÓÂÓÃÓÄÓÅÓÆÓÇÓÈÓÉÓÊÓËÓÌÓÍÓÎÓÏÓÐÓÑÓÒÓÓÓÔÓÕÓÖÓ×ÓØÓÙÓÚÓÛÓÜÓÝÓÞ
+0x8fd3e0: ÓàÓáÓâÓãÓäÓåÓæÓçÓèÓéÓêÓëÓìÓíÓîÓïÓðÓñÓòÓóÓôÓõÓöÓ÷ÓøÓùÓúÓûÓüÓýÓþ
+0x8fd4a0: Ô¡Ô¢Ô£Ô¤Ô¥Ô¦Ô§Ô¨Ô©ÔªÔ«Ô¬ÔÔ®Ô¯Ô°Ô±Ô²Ô³Ô´ÔµÔ¶Ô·Ô¸Ô¹ÔºÔ»Ô¼Ô½Ô¾
+0x8fd4c0: ÔÀÔÁÔÂÔÃÔÄÔÅÔÆÔÇÔÈÔÉÔÊÔËÔÌÔÍÔÎÔÏÔÐÔÑÔÒÔÓÔÔÔÕÔÖÔ×ÔØÔÙÔÚÔÛÔÜÔÝÔÞ
+0x8fd4e0: ÔàÔáÔâÔãÔäÔåÔæÔçÔèÔéÔêÔëÔìÔíÔîÔïÔðÔñÔòÔóÔôÔõÔöÔ÷ÔøÔùÔúÔûÔüÔýÔþ
+0x8fd5a0: Õ¡Õ¢Õ£Õ¤Õ¥Õ¦Õ§Õ¨Õ©ÕªÕ«Õ¬ÕÕ®Õ¯Õ°Õ±Õ²Õ³Õ´ÕµÕ¶Õ·Õ¸Õ¹ÕºÕ»Õ¼Õ½Õ¾
+0x8fd5c0: ÕÀÕÁÕÂÕÃÕÄÕÅÕÆÕÇÕÈÕÉÕÊÕËÕÌÕÍÕÎÕÏÕÐÕÑÕÒÕÓÕÔÕÕÕÖÕ×ÕØÕÙÕÚÕÛÕÜÕÝÕÞ
+0x8fd5e0: ÕàÕáÕâÕãÕäÕåÕæÕçÕèÕéÕêÕëÕìÕíÕîÕïÕðÕñÕòÕóÕôÕõÕöÕ÷ÕøÕùÕúÕûÕüÕýÕþ
+0x8fd6a0: Ö¡Ö¢Ö£Ö¤Ö¥Ö¦Ö§Ö¨Ö©ÖªÖ«Ö¬ÖÖ®Ö¯Ö°Ö±Ö²Ö³Ö´ÖµÖ¶Ö·Ö¸Ö¹ÖºÖ»Ö¼Ö½Ö¾
+0x8fd6c0: ÖÀÖÁÖÂÖÃÖÄÖÅÖÆÖÇÖÈÖÉÖÊÖËÖÌÖÍÖÎÖÏÖÐÖÑÖÒÖÓÖÔÖÕÖÖÖ×ÖØÖÙÖÚÖÛÖÜÖÝÖÞ
+0x8fd6e0: ÖàÖáÖâÖãÖäÖåÖæÖçÖèÖéÖêÖëÖìÖíÖîÖïÖðÖñÖòÖóÖôÖõÖöÖ÷ÖøÖùÖúÖûÖüÖýÖþ
+0x8fd7a0: סעףפץצקרשת׫׬×׮ׯװױײ׳״׵׶׷׸׹׺׻׼׽׾
+0x8fd7c0: ×À×Á×Â×Ã×Ä×Å×Æ×Ç×È×É×Ê×Ë×Ì×Í×Î×Ï×Ð×Ñ×Ò×Ó×Ô×Õ×Ö×××Ø×Ù×Ú×Û×Ü×Ý×Þ
+0x8fd7e0: ×à×á×â×ã×ä×å×æ×ç×è×é×ê×ë×ì×í×î×ï×ð×ñ×ò×ó×ô×õ×ö×÷×ø×ù×ú×û×ü×ý×þ
+0x8fd8a0: ءآأؤإئابةتثجØخدذرزسشصضطظعغػؼؽؾ
+0x8fd8c0: ØÀØÁØÂØÃØÄØÅØÆØÇØÈØÉØÊØËØÌØÍØÎØÏØÐØÑØÒØÓØÔØÕØÖØ×ØØØÙØÚØÛØÜØÝØÞ
+0x8fd8e0: ØàØáØâØãØäØåØæØçØèØéØêØëØìØíØîØïØðØñØòØóØôØõØöØ÷ØøØùØúØûØüØýØþ
+0x8fd9a0: ١٢٣٤٥٦٧٨٩٪٫٬Ùٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپ
+0x8fd9c0: ÙÀÙÁÙÂÙÃÙÄÙÅÙÆÙÇÙÈÙÉÙÊÙËÙÌÙÍÙÎÙÏÙÐÙÑÙÒÙÓÙÔÙÕÙÖÙ×ÙØÙÙÙÚÙÛÙÜÙÝÙÞ
+0x8fd9e0: ÙàÙáÙâÙãÙäÙåÙæÙçÙèÙéÙêÙëÙìÙíÙîÙïÙðÙñÙòÙóÙôÙõÙöÙ÷ÙøÙùÙúÙûÙüÙýÙþ
+0x8fdaa0: Ú¡Ú¢Ú£Ú¤Ú¥Ú¦Ú§Ú¨Ú©ÚªÚ«Ú¬ÚÚ®Ú¯Ú°Ú±Ú²Ú³Ú´ÚµÚ¶Ú·Ú¸Ú¹ÚºÚ»Ú¼Ú½Ú¾
+0x8fdac0: ÚÀÚÁÚÂÚÃÚÄÚÅÚÆÚÇÚÈÚÉÚÊÚËÚÌÚÍÚÎÚÏÚÐÚÑÚÒÚÓÚÔÚÕÚÖÚ×ÚØÚÙÚÚÚÛÚÜÚÝÚÞ
+0x8fdae0: ÚàÚáÚâÚãÚäÚåÚæÚçÚèÚéÚêÚëÚìÚíÚîÚïÚðÚñÚòÚóÚôÚõÚöÚ÷ÚøÚùÚúÚûÚüÚýÚþ
+0x8fdba0: Û¡Û¢Û£Û¤Û¥Û¦Û§Û¨Û©ÛªÛ«Û¬ÛÛ®Û¯Û°Û±Û²Û³Û´ÛµÛ¶Û·Û¸Û¹ÛºÛ»Û¼Û½Û¾
+0x8fdbc0: ÛÀÛÁÛÂÛÃÛÄÛÅÛÆÛÇÛÈÛÉÛÊÛËÛÌÛÍÛÎÛÏÛÐÛÑÛÒÛÓÛÔÛÕÛÖÛ×ÛØÛÙÛÚÛÛÛÜÛÝÛÞ
+0x8fdbe0: ÛàÛáÛâÛãÛäÛåÛæÛçÛèÛéÛêÛëÛìÛíÛîÛïÛðÛñÛòÛóÛôÛõÛöÛ÷ÛøÛùÛúÛûÛüÛýÛþ
+0x8fdca0: ܡܢܣܤܥܦܧܨܩܪܫܬÜܮܯܱܴܷܸܹܻܼܾܰܲܳܵܶܺܽ
+0x8fdcc0: ÜÀÜÁÜÂÜÃÜÄÜÅÜÆÜÇÜÈÜÉÜÊÜËÜÌÜÍÜÎÜÏÜÐÜÑÜÒÜÓÜÔÜÕÜÖÜ×ÜØÜÙÜÚÜÛÜÜÜÝÜÞ
+0x8fdce0: ÜàÜáÜâÜãÜäÜåÜæÜçÜèÜéÜêÜëÜìÜíÜîÜïÜðÜñÜòÜóÜôÜõÜöÜ÷ÜøÜùÜúÜûÜüÜýÜþ
+0x8fdda0: ݡݢݣݤݥݦݧݨݩݪݫݬÝݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾ
+0x8fddc0: ÝÀÝÁÝÂÝÃÝÄÝÅÝÆÝÇÝÈÝÉÝÊÝËÝÌÝÍÝÎÝÏÝÐÝÑÝÒÝÓÝÔÝÕÝÖÝ×ÝØÝÙÝÚÝÛÝÜÝÝÝÞ
+0x8fdde0: ÝàÝáÝâÝãÝäÝåÝæÝçÝèÝéÝêÝëÝìÝíÝîÝïÝðÝñÝòÝóÝôÝõÝöÝ÷ÝøÝùÝúÝûÝüÝýÝþ
+0x8fdea0: Þ¡Þ¢Þ£Þ¤Þ¥Þ¦Þ§Þ¨Þ©ÞªÞ«Þ¬ÞÞ®Þ¯Þ°Þ±Þ²Þ³Þ´ÞµÞ¶Þ·Þ¸Þ¹ÞºÞ»Þ¼Þ½Þ¾
+0x8fdec0: ÞÀÞÁÞÂÞÃÞÄÞÅÞÆÞÇÞÈÞÉÞÊÞËÞÌÞÍÞÎÞÏÞÐÞÑÞÒÞÓÞÔÞÕÞÖÞ×ÞØÞÙÞÚÞÛÞÜÞÝÞÞ
+0x8fdee0: ÞàÞáÞâÞãÞäÞåÞæÞçÞèÞéÞêÞëÞìÞíÞîÞïÞðÞñÞòÞóÞôÞõÞöÞ÷ÞøÞùÞúÞûÞüÞýÞþ
+0x8fdfa0: ߡߢߣߤߥߦߧߨߩߪ߫߬ß߲߮߯߰߱߳ߴߵ߶߷߸߹ߺ߻߼߽߾
+0x8fdfc0: ßÀßÁßÂßÃßÄßÅßÆßÇßÈßÉßÊßËßÌßÍßÎßÏßÐßÑßÒßÓßÔßÕßÖß×ßØßÙßÚßÛßÜßÝßÞ
+0x8fdfe0: ßàßáßâßãßäßåßæßçßèßéßêßëßìßíßîßïßðßñßòßóßôßõßöß÷ßøßùßúßûßüßýßþ
+0x8fe0a0: à¡à¢à£à¤à¥à¦à§à¨à©àªà«à¬àà®à¯à°à±à²à³à´àµà¶à·à¸à¹àºà»à¼à½à¾
+0x8fe0c0: àÀàÁàÂàÃàÄàÅàÆàÇàÈàÉàÊàËàÌàÍàÎàÏàÐàÑàÒàÓàÔàÕàÖà×àØàÙàÚàÛàÜàÝàÞ
+0x8fe0e0: àààáàâàãàäàåàæàçàèàéàêàëàìàíàîàïàðàñàòàóàôàõàöà÷àøàùàúàûàüàýàþ
+0x8fe1a0: á¡á¢á£á¤á¥á¦á§á¨á©áªá«á¬áá®á¯á°á±á²á³á´áµá¶á·á¸á¹áºá»á¼á½á¾
+0x8fe1c0: áÀáÁáÂáÃáÄáÅáÆáÇáÈáÉáÊáËáÌáÍáÎáÏáÐáÑáÒáÓáÔáÕáÖá×áØáÙáÚáÛáÜáÝáÞ
+0x8fe1e0: áàáááâáãáäáåáæáçáèáéáêáëáìáíáîáïáðáñáòáóáôáõáöá÷áøáùáúáûáüáýáþ
+0x8fe2a0: â¡â¢â£â¤â¥â¦â§â¨â©âªâ«â¬ââ®â¯â°â±â²â³â´âµâ¶â·â¸â¹âºâ»â¼â½â¾
+0x8fe2c0: âÀâÁâÂâÃâÄâÅâÆâÇâÈâÉâÊâËâÌâÍâÎâÏâÐâÑâÒâÓâÔâÕâÖâ×âØâÙâÚâÛâÜâÝâÞ
+0x8fe2e0: âàâáâââãâäâåâæâçâèâéâêâëâìâíâîâïâðâñâòâóâôâõâöâ÷âøâùâúâûâüâýâþ
+0x8fe3a0: ã¡ã¢ã£ã¤ã¥ã¦ã§ã¨ã©ãªã«ã¬ãã®ã¯ã°ã±ã²ã³ã´ãµã¶ã·ã¸ã¹ãºã»ã¼ã½ã¾
+0x8fe3c0: ãÀãÁãÂãÃãÄãÅãÆãÇãÈãÉãÊãËãÌãÍãÎãÏãÐãÑãÒãÓãÔãÕãÖã×ãØãÙãÚãÛãÜãÝãÞ
+0x8fe3e0: ãàãáãâãããäãåãæãçãèãéãêãëãìãíãîãïãðãñãòãóãôãõãöã÷ãøãùãúãûãüãýãþ
+0x8fe4a0: ä¡ä¢ä£ä¤ä¥ä¦ä§ä¨ä©äªä«ä¬ää®ä¯ä°ä±ä²ä³ä´äµä¶ä·ä¸ä¹äºä»ä¼ä½ä¾
+0x8fe4c0: äÀäÁäÂäÃäÄäÅäÆäÇäÈäÉäÊäËäÌäÍäÎäÏäÐäÑäÒäÓäÔäÕäÖä×äØäÙäÚäÛäÜäÝäÞ
+0x8fe4e0: äàäáäâäãäääåäæäçäèäéäêäëäìäíäîäïäðäñäòäóäôäõäöä÷äøäùäúäûäüäýäþ
+0x8fe5a0: å¡å¢å£å¤å¥å¦å§å¨å©åªå«å¬åå®å¯å°å±å²å³å´åµå¶å·å¸å¹åºå»å¼å½å¾
+0x8fe5c0: åÀåÁåÂåÃåÄåÅåÆåÇåÈåÉåÊåËåÌåÍåÎåÏåÐåÑåÒåÓåÔåÕåÖå×åØåÙåÚåÛåÜåÝåÞ
+0x8fe5e0: åàåáåâåãåäåååæåçåèåéåêåëåìåíåîåïåðåñåòåóåôåõåöå÷åøåùåúåûåüåýåþ
+0x8fe6a0: æ¡æ¢æ£æ¤æ¥æ¦æ§æ¨æ©æªæ«æ¬ææ®æ¯æ°æ±æ²æ³æ´æµæ¶æ·æ¸æ¹æºæ»æ¼æ½æ¾
+0x8fe6c0: æÀæÁæÂæÃæÄæÅæÆæÇæÈæÉæÊæËæÌæÍæÎæÏæÐæÑæÒæÓæÔæÕæÖæ×æØæÙæÚæÛæÜæÝæÞ
+0x8fe6e0: æàæáæâæãæäæåæææçæèæéæêæëæìæíæîæïæðæñæòæóæôæõæöæ÷æøæùæúæûæüæýæþ
+0x8fe7a0: ç¡ç¢ç£ç¤ç¥ç¦ç§ç¨ç©çªç«ç¬çç®ç¯ç°ç±ç²ç³ç´çµç¶ç·ç¸ç¹çºç»ç¼ç½ç¾
+0x8fe7c0: çÀçÁçÂçÃçÄçÅçÆçÇçÈçÉçÊçËçÌçÍçÎçÏçÐçÑçÒçÓçÔçÕçÖç×çØçÙçÚçÛçÜçÝçÞ
+0x8fe7e0: çàçáçâçãçäçåçæçççèçéçêçëçìçíçîçïçðçñçòçóçôçõçöç÷çøçùçúçûçüçýçþ
+0x8fe8a0: è¡è¢è£è¤è¥è¦è§è¨è©èªè«è¬èè®è¯è°è±è²è³è´èµè¶è·è¸è¹èºè»è¼è½è¾
+0x8fe8c0: èÀèÁèÂèÃèÄèÅèÆèÇèÈèÉèÊèËèÌèÍèÎèÏèÐèÑèÒèÓèÔèÕèÖè×èØèÙèÚèÛèÜèÝèÞ
+0x8fe8e0: èàèáèâèãèäèåèæèçèèèéèêèëèìèíèîèïèðèñèòèóèôèõèöè÷èøèùèúèûèüèýèþ
+0x8fe9a0: é¡é¢é£é¤é¥é¦é§é¨é©éªé«é¬éé®é¯é°é±é²é³é´éµé¶é·é¸é¹éºé»é¼é½é¾
+0x8fe9c0: éÀéÁéÂéÃéÄéÅéÆéÇéÈéÉéÊéËéÌéÍéÎéÏéÐéÑéÒéÓéÔéÕéÖé×éØéÙéÚéÛéÜéÝéÞ
+0x8fe9e0: éàéáéâéãéäéåéæéçéèéééêéëéìéíéîéïéðéñéòéóéôéõéöé÷éøéùéúéûéüéýéþ
+0x8feaa0: ê¡ê¢ê£ê¤ê¥ê¦ê§ê¨ê©êªê«ê¬êê®ê¯ê°ê±ê²ê³ê´êµê¶ê·ê¸ê¹êºê»ê¼ê½ê¾
+0x8feac0: êÀêÁêÂêÃêÄêÅêÆêÇêÈêÉêÊêËêÌêÍêÎêÏêÐêÑêÒêÓêÔêÕêÖê×êØêÙêÚêÛêÜêÝêÞ
+0x8feae0: êàêáêâêãêäêåêæêçêèêéêêêëêìêíêîêïêðêñêòêóêôêõêöê÷êøêùêúêûêüêýêþ
+0x8feba0: ë¡ë¢ë£ë¤ë¥ë¦ë§ë¨ë©ëªë«ë¬ëë®ë¯ë°ë±ë²ë³ë´ëµë¶ë·ë¸ë¹ëºë»ë¼ë½ë¾
+0x8febc0: ëÀëÁëÂëÃëÄëÅëÆëÇëÈëÉëÊëËëÌëÍëÎëÏëÐëÑëÒëÓëÔëÕëÖë×ëØëÙëÚëÛëÜëÝëÞ
+0x8febe0: ëàëáëâëãëäëåëæëçëèëéëêëëëìëíëîëïëðëñëòëóëôëõëöë÷ëøëùëúëûëüëýëþ
+0x8feca0: ì¡ì¢ì£ì¤ì¥ì¦ì§ì¨ì©ìªì«ì¬ìì®ì¯ì°ì±ì²ì³ì´ìµì¶ì·ì¸ì¹ìºì»ì¼ì½ì¾
+0x8fecc0: ìÀìÁìÂìÃìÄìÅìÆìÇìÈìÉìÊìËìÌìÍìÎìÏìÐìÑìÒìÓìÔìÕìÖì×ìØìÙìÚìÛìÜìÝìÞ
+0x8fece0: ìàìáìâìãìäìåìæìçìèìéìêìëìììíìîìïìðìñìòìóìôìõìöì÷ìøìùìúìûìüìýìþ
+0x8feda0: í¡í¢í£í¤í¥í¦í§í¨í©íªí«í¬íí®í¯í°í±í²í³í´íµí¶í·í¸í¹íºí»í¼í½í¾
+0x8fedc0: íÀíÁíÂíÃíÄíÅíÆíÇíÈíÉíÊíËíÌíÍíÎíÏíÐíÑíÒíÓíÔíÕíÖí×íØíÙíÚíÛíÜíÝíÞ
+0x8fede0: íàíáíâíã
+0x8feea0:
+0x8feec0:
+0x8feee0:
+0x8fefa0:
+0x8fefc0:
+0x8fefe0:
+0x8ff0a0:
+0x8ff0c0:
+0x8ff0e0:
+0x8ff1a0:
+0x8ff1c0:
+0x8ff1e0:
+0x8ff2a0:
+0x8ff2c0:
+0x8ff2e0:
+0x8ff3a0:
+0x8ff3c0:
+0x8ff3e0:
+0x8ff4a0:
+0x8ff4c0:
+0x8ff4e0:
+0x8ff5a0:
+0x8ff5c0:
+0x8ff5e0:
+0x8ff6a0:
+0x8ff6c0:
+0x8ff6e0:
+0x8ff7a0:
+0x8ff7c0:
+0x8ff7e0:
+0x8ff8a0:
+0x8ff8c0:
+0x8ff8e0:
+0x8ff9a0:
+0x8ff9c0:
+0x8ff9e0:
+0x8ffaa0:
+0x8ffac0:
+0x8ffae0:
+0x8ffba0:
+0x8ffbc0:
+0x8ffbe0:
+0x8ffca0:
+0x8ffcc0:
+0x8ffce0:
+0x8ffda0:
+0x8ffdc0:
+0x8ffde0:
+0x8ffea0:
+0x8ffec0:
+0x8ffee0:
+0x8fffa0:
+0x8fffc0:
+0x8fffe0:
--- /dev/null
+0x8fa0a0:
+0x8fa0c0:
+0x8fa0e0:
+0x8fa1a0:
+0x8fa1c0:
+0x8fa1e0:
+0x8fa2a0: ˘ˇ¸˙˝¯˛˚~΄΅
+0x8fa2c0: ¡¦¿
+0x8fa2e0: ºª©®™¤№
+0x8fa3a0:
+0x8fa3c0:
+0x8fa3e0:
+0x8fa4a0:
+0x8fa4c0:
+0x8fa4e0:
+0x8fa5a0:
+0x8fa5c0:
+0x8fa5e0:
+0x8fa6a0:
+0x8fa6c0:
+0x8fa6e0: ΆΈΉΊΪ Ό ΎΫ Ώ άέήίϊΐόςύϋΰώ
+0x8fa7a0:
+0x8fa7c0: ЂЃЄЅІЇЈЉЊЋЌЎЏ
+0x8fa7e0: ђѓєѕіїјљњћќўџ
+0x8fa8a0:
+0x8fa8c0:
+0x8fa8e0:
+0x8fa9a0: ÆĐ Ħ IJ ŁĿ ŊØŒ ŦÞ
+0x8fa9c0: æđðħıijĸłŀʼnŋøœßŧþ
+0x8fa9e0:
+0x8faaa0: ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ ĜĞĢĠĤ
+0x8faac0: ÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠ
+0x8faae0: ŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ
+0x8faba0: áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ ġĥ
+0x8fabc0: ìïîǐ īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝš
+0x8fabe0: ťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż
+0x8faca0:
+0x8facc0:
+0x8face0:
+0x8fada0:
+0x8fadc0:
+0x8fade0:
+0x8faea0:
+0x8faec0:
+0x8faee0:
+0x8fafa0:
+0x8fafc0:
+0x8fafe0:
+0x8fb0a0: 丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖
+0x8fb0c0: 亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱
+0x8fb0e0: 伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄
+0x8fb1a0: 侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍
+0x8fb1c0: 俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵
+0x8fb1e0: 偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐
+0x8fb2a0: 傒傓傔傖傛傜傞傟傠傡傢傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟
+0x8fb2c0: 僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯
+0x8fb2e0: 儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂
+0x8fb3a0: 凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅
+0x8fb3c0: 剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰
+0x8fb3e0: 劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋
+0x8fb4a0: 匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬
+0x8fb4c0: 卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝
+0x8fb4e0: 叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿
+0x8fb5a0: 咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪
+0x8fb5c0: 哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚
+0x8fb5e0: 啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒
+0x8fb6a0: 嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍嘎嘏嘐嘑嘒嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀
+0x8fb6c0: 噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟
+0x8fb6e0: 嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤囥囦囧囨囱囫园
+0x8fb7a0: 囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌
+0x8fb7c0: 坒坢坥坧坨坫坭坮坯坰坱坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟
+0x8fb7e0: 垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡
+0x8fb8a0: 堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈
+0x8fb8c0: 墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳
+0x8fb8e0: 夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭
+0x8fb9a0: 奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍
+0x8fb9c0: 姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈
+0x8fb9e0: 婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿
+0x8fbaa0: 嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖
+0x8fbac0: 孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏
+0x8fbae0: 寗寘寙寚寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩
+0x8fbba0: 屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮
+0x8fbbc0: 峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭
+0x8fbbe0: 嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤
+0x8fbca0: 巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪幫幬
+0x8fbcc0: 幮幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇
+0x8fbce0: 弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧
+0x8fbda0: 彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐忑
+0x8fbdc0: 忓忔忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀
+0x8fbde0: 恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷
+0x8fbea0: 悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐愑愒
+0x8fbec0: 愔愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄
+0x8fbee0: 憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥
+0x8fbfa0: 懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜
+0x8fbfc0: 扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋
+0x8fbfe0: 挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵
+0x8fc0a0: 捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠
+0x8fc0c0: 揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔
+0x8fc0e0: 摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿
+0x8fc1a0: 擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙
+0x8fc1c0: 攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣
+0x8fc1e0: 斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝
+0x8fc2a0: 昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡
+0x8fc2c0: 晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿
+0x8fc2e0: 曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝
+0x8fc3a0: 杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉
+0x8fc3c0: 柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘
+0x8fc3e0: 桫桮桯桰桱桲桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏
+0x8fc4a0: 棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳
+0x8fc4c0: 椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫
+0x8fc4e0: 榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲
+0x8fc5a0: 樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛
+0x8fc5c0: 檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃
+0x8fc5e0: 欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽
+0x8fc6a0: 歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮
+0x8fc6c0: 毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙
+0x8fc6e0: 汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖
+0x8fc7a0: 泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞
+0x8fc7c0: 浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠
+0x8fc7e0: 淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞
+0x8fc8a0: 湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹
+0x8fc8c0: 滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢
+0x8fc8e0: 潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊
+0x8fc9a0: 濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕
+0x8fc9c0: 灞灎灤灥灬灮灵灶灾炁炅炆炔炕炖炗炘炛炤炫炰炱炴炷烊烑烓烔烕烖烘
+0x8fc9e0: 烤烺焃焄焅焆焇焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠
+0x8fcaa0: 煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀
+0x8fcac0: 爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮
+0x8fcae0: 牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻
+0x8fcba0: 狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝
+0x8fcbc0: 獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦
+0x8fcbe0: 玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽
+0x8fcca0: 珿琀琁琄琇琊琑琚琛琤琦琨琩琪琫琬琭琮琯琰琱琹瑀瑃瑄瑆瑇瑋瑍瑑
+0x8fccc0: 瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨
+0x8fcce0: 璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆
+0x8fcda0: 甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹畺
+0x8fcdc0: 畼畽畾疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬
+0x8fcde0: 痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹
+0x8fcea0: 瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠
+0x8fcec0: 皣皤皥皦皧皨皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒
+0x8fcee0: 眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢
+0x8fcfa0: 睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑
+0x8fcfc0: 矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄
+0x8fcfe0: 硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳
+0x8fd0a0: 碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐
+0x8fd0c0: 礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻
+0x8fd0e0: 祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞
+0x8fd1a0: 秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺
+0x8fd1c0: 穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬
+0x8fd1e0: 窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰
+0x8fd2a0: 笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬
+0x8fd2c0: 箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃
+0x8fd2e0: 簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙籚籛籜籝籞
+0x8fd3a0: 籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍
+0x8fd3c0: 糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀
+0x8fd3e0: 絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝
+0x8fd4a0: 綞綦綧綪綳綶綷綹緂緃緄緅緆緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺
+0x8fd4c0: 縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸
+0x8fd4e0: 纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭
+0x8fd5a0: 罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥
+0x8fd5c0: 翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹
+0x8fd5e0: 耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮
+0x8fd6a0: 胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡
+0x8fd6c0: 腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝
+0x8fd6e0: 臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆
+0x8fd7a0: 艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡
+0x8fd7c0: 芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁
+0x8fd7e0: 茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸
+0x8fd8a0: 荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓
+0x8fd8c0: 菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥
+0x8fd8e0: 葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓
+0x8fd9a0: 蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴
+0x8fd9c0: 蔿蕆蕏蕐蕑蕒蕓蕖蕙蕜蕝蕞蕟蕠蕡蕢蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏
+0x8fd9e0: 薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼
+0x8fdaa0: 藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙
+0x8fdac0: 虠虡虢虣虤虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿
+0x8fdae0: 蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣
+0x8fdba0: 蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃螄螅螆螇螈螉
+0x8fdbc0: 螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣
+0x8fdbe0: 蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵
+0x8fdca0: 蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠
+0x8fdcc0: 袪袺袽袾裀裊裋裌裍裎裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚
+0x8fdce0: 褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺
+0x8fdda0: 襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔觕觖觗觘觥觩觫觭觱觳
+0x8fddc0: 觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓
+0x8fdde0: 詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳
+0x8fdea0: 誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟
+0x8fdec0: 謭謰謷謼譂譃譄譅譆譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕
+0x8fdee0: 讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆
+0x8fdfa0: 貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾
+0x8fdfc0: 贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀
+0x8fdfe0: 跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢
+0x8fe0a0: 踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹
+0x8fe0c0: 蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮
+0x8fe0e0: 軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁
+0x8fe1a0: 轃轇轏轑轒轓轔轕轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒
+0x8fe1c0: 迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛
+0x8fe1e0: 遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃
+0x8fe2a0: 郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗
+0x8fe2c0: 鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧
+0x8fe2e0: 酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿
+0x8fe3a0: 釂釃釅釓釔釗釙釚釞釤釥釩釪釬釭釮釯釰釱釷釹釻釽鈀鈁鈄鈅鈆鈇鈉
+0x8fe3c0: 鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍
+0x8fe3e0: 鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵鉶鉷鉸鉹鉻鉼鉽鉿銈銉銊銍銎銒銗
+0x8fe4a0: 銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿鋀鋁鋂鋃鋅鋆鋇鋈鋋鋌鋍鋎鋐
+0x8fe4c0: 鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡
+0x8fe4e0: 錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶
+0x8fe5a0: 鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅
+0x8fe5c0: 鏇鏉鏊鏋鏌鏍鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗
+0x8fe5e0: 鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹
+0x8fe6a0: 镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝
+0x8fe6c0: 闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾
+0x8fe6e0: 隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂
+0x8fe7a0: 霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸
+0x8fe7c0: 靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌
+0x8fe7e0: 韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦
+0x8fe8a0: 頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴
+0x8fe8c0: 颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫
+0x8fe8e0: 餲餳餴餵餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵
+0x8fe9a0: 馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖
+0x8fe9c0: 騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹
+0x8fe9e0: 骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿鬀鬁鬂鬃
+0x8feaa0: 鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖
+0x8feac0: 魛魞魡魣魥魦魨魪魫魬魭魮魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚
+0x8feae0: 鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸
+0x8feba0: 鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦鰧鰨鰩鰪鰱鰵鰶鰷鰽鱁鱃鱄
+0x8febc0: 鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂
+0x8febe0: 鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻
+0x8feca0: 鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖
+0x8fecc0: 鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃
+0x8fece0: 麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵
+0x8feda0: 黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿
+0x8fedc0: 齃齄齅齆齇齓齕齖齗齘齚齝齞齨齩齭齮齯齰齱齳齵齺齽龏龐龑龒龔龖龗
+0x8fede0: 龡龢龣龥
+0x8feea0:
+0x8feec0:
+0x8feee0:
+0x8fefa0:
+0x8fefc0:
+0x8fefe0:
+0x8ff0a0:
+0x8ff0c0:
+0x8ff0e0:
+0x8ff1a0:
+0x8ff1c0:
+0x8ff1e0:
+0x8ff2a0:
+0x8ff2c0:
+0x8ff2e0:
+0x8ff3a0:
+0x8ff3c0:
+0x8ff3e0:
+0x8ff4a0:
+0x8ff4c0:
+0x8ff4e0:
+0x8ff5a0:
+0x8ff5c0:
+0x8ff5e0:
+0x8ff6a0:
+0x8ff6c0:
+0x8ff6e0:
+0x8ff7a0:
+0x8ff7c0:
+0x8ff7e0:
+0x8ff8a0:
+0x8ff8c0:
+0x8ff8e0:
+0x8ff9a0:
+0x8ff9c0:
+0x8ff9e0:
+0x8ffaa0:
+0x8ffac0:
+0x8ffae0:
+0x8ffba0:
+0x8ffbc0:
+0x8ffbe0:
+0x8ffca0:
+0x8ffcc0:
+0x8ffce0:
+0x8ffda0:
+0x8ffdc0:
+0x8ffde0:
+0x8ffea0:
+0x8ffec0:
+0x8ffee0:
+0x8fffa0:
+0x8fffc0:
+0x8fffe0:
MAN3PODS => {}, # Pods will be built by installman.
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'Fcntl.pm',
+ realclean => {FILES=> 'const-c.inc const-xs.inc'},
);
my @names = (qw(FAPPEND FASYNC FCREAT FDEFER FDSYNC FD_CLOEXEC FEXCL FLARGEFILE
VERSION_FROM => 'Glob.pm',
MAN3PODS => {}, # Pods will be built by installman.
OBJECT => 'bsd_glob$(OBJ_EXT) Glob$(OBJ_EXT)',
+ realclean => {FILES=> 'const-c.inc const-xs.inc'},
## uncomment for glob debugging (will cause make test to fail)
# DEFINE => '-DGLOB_DEBUG',
MAN3PODS => {}, # Pods will be built by installman.
XSPROTOARG => '-noprototypes', # XXX remove later?
VERSION_FROM => 'GDBM_File.pm',
+ realclean => {FILES=> 'const-c.inc const-xs.inc'},
);
WriteConstants(
NAME => 'GDBM_File',
# Insert -I. if you add *.h files later:
'INC' => '', # e.g., '-I/usr/include/other'
'MAN3PODS' => {}, # Pods will be built by installman
+ realclean => {FILES=> 'const-c.inc const-xs.inc'},
# Un-comment this if you add C files to link with later:
# 'OBJECT' => '$(O_FILES)', # link all the C files too
);
--- /dev/null
+#define PERL_constant_NOTFOUND 1
+#define PERL_constant_NOTDEF 2
+#define PERL_constant_ISIV 3
+#define PERL_constant_ISNO 4
+#define PERL_constant_ISNV 5
+#define PERL_constant_ISPV 6
+#define PERL_constant_ISPVN 7
+#define PERL_constant_ISSV 8
+#define PERL_constant_ISUNDEF 9
+#define PERL_constant_ISUV 10
+#define PERL_constant_ISYES 11
+
+#ifndef NVTYPE
+typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */
+#endif
+#ifndef aTHX_
+#define aTHX_ /* 5.6 or later define this for threading support. */
+#endif
+#ifndef pTHX_
+#define pTHX_ /* 5.6 or later define this for threading support. */
+#endif
+
+static int
+constant_5 (pTHX_ const char *name, IV *iv_return) {
+ /* When generated this function returned values for the list of names given
+ here. However, subsequent manual editing may have added or removed some.
+ DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 D_FMT MON_1 MON_2 MON_3 MON_4
+ MON_5 MON_6 MON_7 MON_8 MON_9 NOSTR T_FMT */
+ /* Offset 4 gives the best switch position. */
+ switch (name[4]) {
+ case '1':
+ if (memEQ(name, "DAY_1", 5)) {
+ /* ^ */
+#if defined(DAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = DAY_1;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_1", 5)) {
+ /* ^ */
+#if defined(MON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_1;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '2':
+ if (memEQ(name, "DAY_2", 5)) {
+ /* ^ */
+#if defined(DAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = DAY_2;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_2", 5)) {
+ /* ^ */
+#if defined(MON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_2;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '3':
+ if (memEQ(name, "DAY_3", 5)) {
+ /* ^ */
+#if defined(DAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = DAY_3;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_3", 5)) {
+ /* ^ */
+#if defined(MON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_3;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '4':
+ if (memEQ(name, "DAY_4", 5)) {
+ /* ^ */
+#if defined(DAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = DAY_4;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_4", 5)) {
+ /* ^ */
+#if defined(MON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_4;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '5':
+ if (memEQ(name, "DAY_5", 5)) {
+ /* ^ */
+#if defined(DAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = DAY_5;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_5", 5)) {
+ /* ^ */
+#if defined(MON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_5;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '6':
+ if (memEQ(name, "DAY_6", 5)) {
+ /* ^ */
+#if defined(DAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = DAY_6;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_6", 5)) {
+ /* ^ */
+#if defined(MON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_6;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '7':
+ if (memEQ(name, "DAY_7", 5)) {
+ /* ^ */
+#if defined(DAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = DAY_7;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_7", 5)) {
+ /* ^ */
+#if defined(MON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_7;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '8':
+ if (memEQ(name, "MON_8", 5)) {
+ /* ^ */
+#if defined(MON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_8;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '9':
+ if (memEQ(name, "MON_9", 5)) {
+ /* ^ */
+#if defined(MON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_9;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'R':
+ if (memEQ(name, "NOSTR", 5)) {
+ /* ^ */
+#if defined(NOSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = NOSTR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'T':
+ if (memEQ(name, "D_FMT", 5)) {
+ /* ^ */
+#if defined(D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = D_FMT;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "T_FMT", 5)) {
+ /* ^ */
+#if defined(T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = T_FMT;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
+ return PERL_constant_NOTFOUND;
+}
+
+static int
+constant_6 (pTHX_ const char *name, IV *iv_return) {
+ /* When generated this function returned values for the list of names given
+ here. However, subsequent manual editing may have added or removed some.
+ AM_STR MON_10 MON_11 MON_12 NOEXPR PM_STR YESSTR */
+ /* Offset 0 gives the best switch position. */
+ switch (name[0]) {
+ case 'A':
+ if (memEQ(name, "AM_STR", 6)) {
+ /* ^ */
+#if defined(AM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = AM_STR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'M':
+ if (memEQ(name, "MON_10", 6)) {
+ /* ^ */
+#if defined(MON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_10;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_11", 6)) {
+ /* ^ */
+#if defined(MON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_11;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "MON_12", 6)) {
+ /* ^ */
+#if defined(MON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = MON_12;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'N':
+ if (memEQ(name, "NOEXPR", 6)) {
+ /* ^ */
+#if defined(NOEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = NOEXPR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'P':
+ if (memEQ(name, "PM_STR", 6)) {
+ /* ^ */
+#if defined(PM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = PM_STR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'Y':
+ if (memEQ(name, "YESSTR", 6)) {
+ /* ^ */
+#if defined(YESSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = YESSTR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
+ return PERL_constant_NOTFOUND;
+}
+
+static int
+constant_7 (pTHX_ const char *name, IV *iv_return) {
+ /* When generated this function returned values for the list of names given
+ here. However, subsequent manual editing may have added or removed some.
+ ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5 ABDAY_6 ABDAY_7 ABMON_1 ABMON_2
+ ABMON_3 ABMON_4 ABMON_5 ABMON_6 ABMON_7 ABMON_8 ABMON_9 CODESET D_T_FMT
+ THOUSEP YESEXPR */
+ /* Offset 6 gives the best switch position. */
+ switch (name[6]) {
+ case '1':
+ if (memEQ(name, "ABDAY_1", 7)) {
+ /* ^ */
+#if defined(ABDAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABDAY_1;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "ABMON_1", 7)) {
+ /* ^ */
+#if defined(ABMON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_1;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '2':
+ if (memEQ(name, "ABDAY_2", 7)) {
+ /* ^ */
+#if defined(ABDAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABDAY_2;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "ABMON_2", 7)) {
+ /* ^ */
+#if defined(ABMON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_2;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '3':
+ if (memEQ(name, "ABDAY_3", 7)) {
+ /* ^ */
+#if defined(ABDAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABDAY_3;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "ABMON_3", 7)) {
+ /* ^ */
+#if defined(ABMON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_3;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '4':
+ if (memEQ(name, "ABDAY_4", 7)) {
+ /* ^ */
+#if defined(ABDAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABDAY_4;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "ABMON_4", 7)) {
+ /* ^ */
+#if defined(ABMON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_4;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '5':
+ if (memEQ(name, "ABDAY_5", 7)) {
+ /* ^ */
+#if defined(ABDAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABDAY_5;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "ABMON_5", 7)) {
+ /* ^ */
+#if defined(ABMON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_5;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '6':
+ if (memEQ(name, "ABDAY_6", 7)) {
+ /* ^ */
+#if defined(ABDAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABDAY_6;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "ABMON_6", 7)) {
+ /* ^ */
+#if defined(ABMON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_6;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '7':
+ if (memEQ(name, "ABDAY_7", 7)) {
+ /* ^ */
+#if defined(ABDAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABDAY_7;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "ABMON_7", 7)) {
+ /* ^ */
+#if defined(ABMON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_7;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '8':
+ if (memEQ(name, "ABMON_8", 7)) {
+ /* ^ */
+#if defined(ABMON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_8;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '9':
+ if (memEQ(name, "ABMON_9", 7)) {
+ /* ^ */
+#if defined(ABMON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_9;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'P':
+ if (memEQ(name, "THOUSEP", 7)) {
+ /* ^ */
+#if defined(THOUSEP) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))
+ *iv_return = THOUSEP;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'R':
+ if (memEQ(name, "YESEXPR", 7)) {
+ /* ^ */
+#if defined(YESEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = YESEXPR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'T':
+ if (memEQ(name, "CODESET", 7)) {
+ /* ^ */
+#ifdef CODESET
+ *iv_return = CODESET;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ if (memEQ(name, "D_T_FMT", 7)) {
+ /* ^ */
+#if defined(D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = D_T_FMT;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
+ return PERL_constant_NOTFOUND;
+}
+
+static int
+constant_8 (pTHX_ const char *name, IV *iv_return) {
+ /* When generated this function returned values for the list of names given
+ here. However, subsequent manual editing may have added or removed some.
+ ABMON_10 ABMON_11 ABMON_12 CRNCYSTR */
+ /* Offset 7 gives the best switch position. */
+ switch (name[7]) {
+ case '0':
+ if (memEQ(name, "ABMON_10", 8)) {
+ /* ^ */
+#if defined(ABMON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_10;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '1':
+ if (memEQ(name, "ABMON_11", 8)) {
+ /* ^ */
+#if defined(ABMON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_11;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case '2':
+ if (memEQ(name, "ABMON_12", 8)) {
+ /* ^ */
+#if defined(ABMON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ABMON_12;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'R':
+ if (memEQ(name, "CRNCYSTR", 8)) {
+ /* ^ */
+#if defined(CRNCYSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))
+ *iv_return = CRNCYSTR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
+ return PERL_constant_NOTFOUND;
+}
+
+static int
+constant_9 (pTHX_ const char *name, IV *iv_return) {
+ /* When generated this function returned values for the list of names given
+ here. However, subsequent manual editing may have added or removed some.
+ ERA_D_FMT ERA_T_FMT RADIXCHAR */
+ /* Offset 4 gives the best switch position. */
+ switch (name[4]) {
+ case 'D':
+ if (memEQ(name, "ERA_D_FMT", 9)) {
+ /* ^ */
+#if defined(ERA_D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ERA_D_FMT;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'T':
+ if (memEQ(name, "ERA_T_FMT", 9)) {
+ /* ^ */
+#if defined(ERA_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ERA_T_FMT;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'X':
+ if (memEQ(name, "RADIXCHAR", 9)) {
+ /* ^ */
+#if defined(RADIXCHAR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))
+ *iv_return = RADIXCHAR;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
+ return PERL_constant_NOTFOUND;
+}
+
+static int
+constant (pTHX_ const char *name, STRLEN len, IV *iv_return) {
+ /* Initially switch on the length of the name. */
+ /* When generated this function returned values for the list of names given
+ in this section of perl code. Rather than manually editing these functions
+ to add or remove constants, which would result in this comment and section
+ of code becoming inaccurate, we recommend that you edit this section of
+ code, and use it to regenerate a new set of constant functions which you
+ then use to replace the originals.
+
+ Regenerate these constant functions by feeding this entire source file to
+ perl -x
+
+#!/mnt/six/blead/15141/miniperl -w
+use ExtUtils::Constant qw (constant_types C_constant XS_constant);
+
+my $types = {map {($_, 1)} qw(IV)};
+my @names = (qw(CODESET),
+ {name=>"ABDAY_1", type=>"IV", macro=>["#if defined(ABDAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABDAY_2", type=>"IV", macro=>["#if defined(ABDAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABDAY_3", type=>"IV", macro=>["#if defined(ABDAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABDAY_4", type=>"IV", macro=>["#if defined(ABDAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABDAY_5", type=>"IV", macro=>["#if defined(ABDAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABDAY_6", type=>"IV", macro=>["#if defined(ABDAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABDAY_7", type=>"IV", macro=>["#if defined(ABDAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_1", type=>"IV", macro=>["#if defined(ABMON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_10", type=>"IV", macro=>["#if defined(ABMON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_11", type=>"IV", macro=>["#if defined(ABMON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_12", type=>"IV", macro=>["#if defined(ABMON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_2", type=>"IV", macro=>["#if defined(ABMON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_3", type=>"IV", macro=>["#if defined(ABMON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_4", type=>"IV", macro=>["#if defined(ABMON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_5", type=>"IV", macro=>["#if defined(ABMON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_6", type=>"IV", macro=>["#if defined(ABMON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_7", type=>"IV", macro=>["#if defined(ABMON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_8", type=>"IV", macro=>["#if defined(ABMON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ABMON_9", type=>"IV", macro=>["#if defined(ABMON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ALT_DIGITS", type=>"IV", macro=>["#if defined(ALT_DIGITS) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"AM_STR", type=>"IV", macro=>["#if defined(AM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"CRNCYSTR", type=>"IV", macro=>["#if defined(CRNCYSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n", "#endif\n"]},
+ {name=>"DAY_1", type=>"IV", macro=>["#if defined(DAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"DAY_2", type=>"IV", macro=>["#if defined(DAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"DAY_3", type=>"IV", macro=>["#if defined(DAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"DAY_4", type=>"IV", macro=>["#if defined(DAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"DAY_5", type=>"IV", macro=>["#if defined(DAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"DAY_6", type=>"IV", macro=>["#if defined(DAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"DAY_7", type=>"IV", macro=>["#if defined(DAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"D_FMT", type=>"IV", macro=>["#if defined(D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"D_T_FMT", type=>"IV", macro=>["#if defined(D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ERA", type=>"IV", macro=>["#if defined(ERA) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ERA_D_FMT", type=>"IV", macro=>["#if defined(ERA_D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ERA_D_T_FMT", type=>"IV", macro=>["#if defined(ERA_D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"ERA_T_FMT", type=>"IV", macro=>["#if defined(ERA_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_1", type=>"IV", macro=>["#if defined(MON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_10", type=>"IV", macro=>["#if defined(MON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_11", type=>"IV", macro=>["#if defined(MON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_12", type=>"IV", macro=>["#if defined(MON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_2", type=>"IV", macro=>["#if defined(MON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_3", type=>"IV", macro=>["#if defined(MON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_4", type=>"IV", macro=>["#if defined(MON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_5", type=>"IV", macro=>["#if defined(MON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_6", type=>"IV", macro=>["#if defined(MON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_7", type=>"IV", macro=>["#if defined(MON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_8", type=>"IV", macro=>["#if defined(MON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"MON_9", type=>"IV", macro=>["#if defined(MON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"NOEXPR", type=>"IV", macro=>["#if defined(NOEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"NOSTR", type=>"IV", macro=>["#if defined(NOSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"PM_STR", type=>"IV", macro=>["#if defined(PM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"RADIXCHAR", type=>"IV", macro=>["#if defined(RADIXCHAR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n", "#endif\n"]},
+ {name=>"THOUSEP", type=>"IV", macro=>["#if defined(THOUSEP) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n", "#endif\n"]},
+ {name=>"T_FMT", type=>"IV", macro=>["#if defined(T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"T_FMT_AMPM", type=>"IV", macro=>["#if defined(T_FMT_AMPM) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"YESEXPR", type=>"IV", macro=>["#if defined(YESEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]},
+ {name=>"YESSTR", type=>"IV", macro=>["#if defined(YESSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]});
+
+print constant_types(); # macro defs
+foreach (C_constant ("I18N::Langinfo", 'constant', 'IV', $types, undef, 3, @names) ) {
+ print $_, "\n"; # C constant subs
+}
+print "#### XS Section:\n";
+print XS_constant ("I18N::Langinfo", $types);
+__END__
+ */
+
+ switch (len) {
+ case 3:
+ if (memEQ(name, "ERA", 3)) {
+#if defined(ERA) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ERA;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 5:
+ return constant_5 (aTHX_ name, iv_return);
+ break;
+ case 6:
+ return constant_6 (aTHX_ name, iv_return);
+ break;
+ case 7:
+ return constant_7 (aTHX_ name, iv_return);
+ break;
+ case 8:
+ return constant_8 (aTHX_ name, iv_return);
+ break;
+ case 9:
+ return constant_9 (aTHX_ name, iv_return);
+ break;
+ case 10:
+ /* Names all of length 10. */
+ /* ALT_DIGITS T_FMT_AMPM */
+ /* Offset 7 gives the best switch position. */
+ switch (name[7]) {
+ case 'I':
+ if (memEQ(name, "ALT_DIGITS", 10)) {
+ /* ^ */
+#if defined(ALT_DIGITS) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ALT_DIGITS;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ case 'M':
+ if (memEQ(name, "T_FMT_AMPM", 10)) {
+ /* ^ */
+#if defined(T_FMT_AMPM) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = T_FMT_AMPM;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
+ break;
+ case 11:
+ if (memEQ(name, "ERA_D_T_FMT", 11)) {
+#if defined(ERA_D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))
+ *iv_return = ERA_D_T_FMT;
+ return PERL_constant_ISIV;
+#else
+ return PERL_constant_NOTDEF;
+#endif
+ }
+ break;
+ }
+ return PERL_constant_NOTFOUND;
+}
+
@libs,
MAN3PODS => {}, # Pods will be built by installman.
XSPROTOARG => '-noprototypes', # XXX remove later?
- VERSION_FROM => 'POSIX.pm',
+ VERSION_FROM => 'POSIX.pm',
+ realclean => {FILES=> 'const-c.inc const-xs.inc'},
);
my @names =
($Config{libs} =~ /(-lsocks\S*)/ ? (LIBS => [ "$1" ] ) : ()),
MAN3PODS => {}, # Pods will be built by installman.
XSPROTOARG => '-noprototypes', # XXX remove later?
+ realclean => {FILES=> 'const-c.inc const-xs.inc'},
);
my @names = (qw(AF_802 AF_AAL AF_APPLETALK AF_CCITT AF_CHAOS AF_CTF
AF_DATAKIT AF_DECnet AF_DLI AF_ECMA AF_GOSIP AF_HYLINK
VERSION_FROM => 'Syslog.pm',
MAN3PODS => {}, # Pods will be built by installman.
XSPROTOARG => '-noprototypes',
+ realclean => {FILES=> 'const-c.inc const-xs.inc'},
);
# We hope syslogd understands /dev/log.
@EXPORT_OK = qw(setlogsock);
$VERSION = '0.02';
+# it would be nice to try stream/unix first, since that will be
+# most efficient. However streams are dodgy - see _syslog_send_stream
+#my @connectMethods = ( 'stream', 'unix', 'tcp', 'udp' );
+my @connectMethods = ( 'tcp', 'udp', 'unix', 'stream', 'console' );
+my @defaultMethods = @connectMethods;
+my $syslog_path = undef;
+my $transmit_ok = 0;
+my $current_proto = undef;
+my $failed = undef;
+my $fail_time = undef;
+
use Socket;
use Sys::Hostname;
# with support from Tim Bunce <Tim.Bunce@ig.co.uk> and the perl5-porters mailing list
# Modified to use an XS backend instead of syslog.ph by Tom Hughes <tom@compton.nu>
-# Todo: enable connect to try all three types before failing (auto setlogsock)?
-
=head1 NAME
Sys::Syslog, openlog, closelog, setlogmask, syslog - Perl interface to the UNIX syslog(3) calls
=item openlog $ident, $logopt, $facility
-I<$ident> is prepended to every message.
-I<$logopt> contains zero or more of the words I<pid>, I<ndelay>, I<cons>, I<nowait>.
-I<$facility> specifies the part of the system
+I<$ident> is prepended to every message. I<$logopt> contains zero or
+more of the words I<pid>, I<ndelay>, I<nowait>. The cons option is
+ignored, since the failover mechanism will drop down to the console
+automatically if all other media fail. I<$facility> specifies the
+part of the system
=item syslog $priority, $format, @args
Sets log mask I<$mask_priority> and returns the old mask.
-=item setlogsock $sock_type (added in 5.004_02)
+=item setlogsock $sock_type [$stream_location] (added in 5.004_02)
Sets the socket type to be used for the next call to
C<openlog()> or C<syslog()> and returns TRUE on success,
undef on failure.
-A value of 'unix' will connect to the UNIX domain socket returned by the
-C<_PATH_LOG> macro (if you system defines it) in F<syslog.h>. A value of
-'inet' will connect to an INET socket returned by getservbyname(). If
-C<_PATH_LOG> is unavailable or if getservbyname() fails, returns undef. Any
-other value croaks.
+A value of 'unix' will connect to the UNIX domain socket returned by
+the C<_PATH_LOG> macro (if your system defines it) in F<syslog.ph>. A
+value of 'stream' will connect to the stream indicated by the pathname
+provided as the optional second parameter. A value of 'inet' will
+connect to an INET socket (either tcp or udp, tried in that order)
+returned by getservbyname(). 'tcp' and 'udp' can also be given as
+values. The value 'console' will send messages directly to the
+console, as for the 'cons' option in the logopts in openlog().
+
+A reference to an array can also be passed as the first parameter.
+When this calling method is used, the array should contain a list of
+sock_types which are attempted in order.
-The default is for the INET socket to be used.
+The default is to try tcp, udp, unix, stream, console.
+
+Giving an invalid value for sock_type will croak.
=item closelog
E<lt>F<larry@wall.org>E<gt>.
UNIX domain sockets added by Sean Robinson
-E<lt>F<robinson_s@sc.maricopa.edu>E<gt> with support from Tim Bunce
-E<lt>F<Tim.Bunce@ig.co.uk>E<gt> and the perl5-porters mailing list.
+E<lt>F<robinson_s@sc.maricopa.edu>E<gt> with support from Tim Bunce
+E<lit>F<Tim.Bunce@ig.co.uk>E<gt> and the perl5-porters mailing list.
Dependency on F<syslog.ph> replaced with XS code by Tom Hughes
E<lt>F<tom@compton.nu>E<gt>.
-Code for constant()s regenerated by Nicholas Clark E<lt>nick@ccl4.orgE<gt>.
+Code for constant()s regenerated by Nicholas Clark E<lt>F<nick@ccl4.org>E<gt>.
+
+Failover to different communication modes by Nick Williams
+E<lt>F<Nick.Williams@morganstanley.com>E<gt>.
=cut
sub AUTOLOAD {
# This AUTOLOAD is used to 'autoload' constants from the constant()
# XS function.
-
+
my $constname;
our $AUTOLOAD;
($constname = $AUTOLOAD) =~ s/.*:://;
($ident, $logopt, $facility) = @_; # package vars
$lo_pid = $logopt =~ /\bpid\b/;
$lo_ndelay = $logopt =~ /\bndelay\b/;
- $lo_cons = $logopt =~ /\bcons\b/;
$lo_nowait = $logopt =~ /\bnowait\b/;
return 1 unless $lo_ndelay;
&connect;
sub setlogsock {
local($setsock) = shift;
+ $syslog_path = shift;
&disconnect if $connected;
- if (lc($setsock) eq 'unix') {
- if (length _PATH_LOG()) {
- $sock_type = 1;
+ $transmit_ok = 0;
+ @fallbackMethods = ();
+ @connectMethods = @defaultMethods;
+ if (ref $setsock eq 'ARRAY') {
+ @connectMethods = @$setsock;
+ } elsif (lc($setsock) eq 'stream') {
+ $syslog_path = '/dev/log' unless($syslog_path);
+ if (!-w $syslog_path) {
+ carp "stream passed to setlogsock, but $syslog_path is not writable";
+ return undef;
+ } else {
+ @connectMethods = ( 'stream' );
+ }
+ } elsif (lc($setsock) eq 'unix') {
+ if (length _PATH_LOG() && !defined $syslog_path) {
+ $syslog_path = _PATH_LOG();
+ @connectMethods = ( 'unix' );
} else {
- return undef;
+ carp 'unix passed to setlogsock, but path not available';
+ return undef;
}
+ } elsif (lc($setsock) eq 'tcp') {
+ if (getservbyname('syslog', 'tcp') || getservbyname('syslogng', 'tcp')) {
+ @connectMethods = ( 'tcp' );
+ } else {
+ carp "tcp passed to setlogsock, but tcp service unavailable";
+ return undef;
+ }
+ } elsif (lc($setsock) eq 'udp') {
+ if (getservbyname('syslog', 'udp')) {
+ @connectMethods = ( 'udp' );
+ } else {
+ carp "udp passed to setlogsock, but udp service unavailable";
+ return undef;
+ }
} elsif (lc($setsock) eq 'inet') {
- if (getservbyname('syslog','udp')) {
- undef($sock_type);
- } else {
- return undef;
- }
+ @connectMethods = ( 'tcp', 'udp' );
+ } elsif (lc($setsock) eq 'console') {
+ @connectMethods = ( 'console' );
} else {
- croak "Invalid argument passed to setlogsock; must be 'unix' or 'inet'";
+ carp "Invalid argument passed to setlogsock; must be 'stream', 'unix', 'tcp', 'udp' or 'inet'";
}
return 1;
}
$message = sprintf ($mask, @_);
$sum = $numpri + $numfac;
- unless (send(SYSLOG,"<$sum>$whoami: $message\0",0)) {
- if ($lo_cons) {
- if ($pid = fork) {
- unless ($lo_nowait) {
- $died = waitpid($pid, 0);
- }
+ my $buf = "<$sum>$whoami: $message\0";
+
+ # it's possible that we'll get an error from sending
+ # (e.g. if method is UDP and there is no UDP listener,
+ # then we'll get ECONNREFUSED on the send). So what we
+ # want to do at this point is to fallback onto a different
+ # connection method.
+ while (scalar @fallbackMethods || $syslog_send) {
+ if ($failed && (time - $fail_time) > 60) {
+ # it's been a while... maybe things have been fixed
+ @fallbackMethods = ();
+ disconnect();
+ $transmit_ok = 0; # make it look like a fresh attempt
+ &connect;
+ }
+ if ($connected && !connection_ok()) {
+ # Something was OK, but has now broken. Remember coz we'll
+ # want to go back to what used to be OK.
+ $failed = $current_proto unless $failed;
+ $fail_time = time;
+ disconnect();
+ }
+ &connect unless $connected;
+ $failed = undef if ($current_proto eq $failed);
+ if ($syslog_send) {
+ if (&{$syslog_send}($buf)) {
+ $transmit_ok++;
+ return 1;
}
- else {
- if (open(CONS,">/dev/console")) {
- print CONS "<$facility.$priority>$whoami: $message\r";
- close CONS;
- }
- exit if defined $pid; # if fork failed, we're parent
+ # typically doesn't happen, since errors are rare from write().
+ disconnect();
+ }
+ }
+ # could not send, could not fallback onto a working
+ # connection method. Lose.
+ return 0;
+}
+
+sub _syslog_send_console {
+ my ($buf) = @_;
+ chop($buf); # delete the NUL from the end
+ # The console print is a method which could block
+ # so we do it in a child process and always return success
+ # to the caller.
+ if (my $pid = fork) {
+ if ($lo_nowait) {
+ return 1;
+ } else {
+ if (waitpid($pid, 0) >= 0) {
+ return ($? >> 8);
+ } else {
+ # it's possible that the caller has other
+ # plans for SIGCHLD, so let's not interfere
+ return 1;
}
}
+ } else {
+ if (open(CONS, ">/dev/console")) {
+ my $ret = print CONS $buf . "\r";
+ exit ($ret) if defined $pid;
+ close CONS;
+ }
+ exit if defined $pid;
}
}
+sub _syslog_send_stream {
+ my ($buf) = @_;
+ # XXX: this only works if the OS stream implementation makes a write
+ # look like a putmsg() with simple header. For instance it works on
+ # Solaris 8 but not Solaris 7.
+ # To be correct, it should use a STREAMS API, but perl doesn't have one.
+ return syswrite(SYSLOG, $buf, length($buf));
+}
+sub _syslog_send_socket {
+ my ($buf) = @_;
+ return syswrite(SYSLOG, $buf, length($buf));
+ #return send(SYSLOG, $buf, 0);
+}
+
sub xlate {
local($name) = @_;
$name = uc $name;
}
sub connect {
+ @fallbackMethods = @connectMethods unless (scalar @fallbackMethods);
+ if ($transmit_ok && $current_proto) {
+ # Retry what we were on, because it's worked in the past.
+ unshift(@fallbackMethods, $current_proto);
+ }
+ $connected = 0;
+ my @errs = ();
+ my $proto = undef;
+ while ($proto = shift(@fallbackMethods)) {
+ my $fn = "connect_$proto";
+ $connected = &$fn(\@errs) unless (!defined &$fn);
+ last if ($connected);
+ }
+
+ $transmit_ok = 0;
+ if ($connected) {
+ $current_proto = $proto;
+ local($old) = select(SYSLOG); $| = 1; select($old);
+ } else {
+ @fallbackMethods = ();
+ foreach my $err (@errs) {
+ carp $err;
+ }
+ croak "no connection to syslog available";
+ }
+}
+
+sub connect_tcp {
+ my ($errs) = @_;
+ unless ($host) {
+ require Sys::Hostname;
+ my($host_uniq) = Sys::Hostname::hostname();
+ ($host) = $host_uniq =~ /([A-Za-z0-9_.-]+)/; # allow FQDN (inc _)
+ }
+ my $tcp = getprotobyname('tcp');
+ if (!defined $tcp) {
+ push(@{$errs}, "getprotobyname failed for tcp");
+ return 0;
+ }
+ my $syslog = getservbyname('syslog','tcp');
+ $syslog = getservbyname('syslogng','tcp') unless (defined $syslog);
+ if (!defined $syslog) {
+ push(@{$errs}, "getservbyname failed for tcp");
+ return 0;
+ }
+
+ my $this = sockaddr_in($syslog, INADDR_ANY);
+ my $that = sockaddr_in($syslog, inet_aton($host));
+ if (!$that) {
+ push(@{$errs}, "can't lookup $host");
+ return 0;
+ }
+ if (!socket(SYSLOG,AF_INET,SOCK_STREAM,$tcp)) {
+ push(@{$errs}, "tcp socket: $!");
+ return 0;
+ }
+ setsockopt(SYSLOG, SOL_SOCKET, SO_KEEPALIVE, 1);
+ setsockopt(SYSLOG, IPPROTO_TCP, TCP_NODELAY, 1);
+ if (!connect(SYSLOG,$that)) {
+ push(@{$errs}, "tcp connect: $!");
+ return 0;
+ }
+ $syslog_send = \&_syslog_send_socket;
+ return 1;
+}
+
+sub connect_udp {
+ my ($errs) = @_;
unless ($host) {
require Sys::Hostname;
my($host_uniq) = Sys::Hostname::hostname();
($host) = $host_uniq =~ /([A-Za-z0-9_.-]+)/; # allow FQDN (inc _)
}
- unless ( $sock_type ) {
- my $udp = getprotobyname('udp') || croak "getprotobyname failed for udp";
- my $syslog = getservbyname('syslog','udp') || croak "getservbyname failed";
- my $this = sockaddr_in($syslog, INADDR_ANY);
- my $that = sockaddr_in($syslog, inet_aton($host) || croak "Can't lookup $host");
- socket(SYSLOG,AF_INET,SOCK_DGRAM,$udp) || croak "socket: $!";
- connect(SYSLOG,$that) || croak "connect: $!";
+ my $udp = getprotobyname('udp');
+ if (!defined $udp) {
+ push(@{$errs}, "getprotobyname failed for udp");
+ return 0;
+ }
+ my $syslog = getservbyname('syslog','udp');
+ if (!defined $syslog) {
+ push(@{$errs}, "getservbyname failed for udp");
+ return 0;
+ }
+ my $this = sockaddr_in($syslog, INADDR_ANY);
+ my $that = sockaddr_in($syslog, inet_aton($host));
+ if (!$that) {
+ push(@{$errs}, "can't lookup $host");
+ return 0;
+ }
+ if (!socket(SYSLOG,AF_INET,SOCK_DGRAM,$udp)) {
+ push(@{$errs}, "udp socket: $!");
+ return 0;
+ }
+ if (!connect(SYSLOG,$that)) {
+ push(@{$errs}, "udp connect: $!");
+ return 0;
+ }
+ # We want to check that the UDP connect worked. However the only
+ # way to do that is to send a message and see if an ICMP is returned
+ _syslog_send_socket("");
+ if (!connection_ok()) {
+ push(@{$errs}, "udp connect: nobody listening");
+ return 0;
+ }
+ $syslog_send = \&_syslog_send_socket;
+ return 1;
+}
+
+sub connect_stream {
+ my ($errs) = @_;
+ # might want syslog_path to be variable based on syslog.h (if only
+ # it were in there!)
+ $syslog_path = '/dev/conslog';
+ if (!-w $syslog_path) {
+ push(@{$errs}, "stream $syslog_path is not writable");
+ return 0;
+ }
+ if (!open(SYSLOG, ">" . $syslog_path)) {
+ push(@{$errs}, "stream can't open $syslog_path: $!");
+ return 0;
+ }
+ $syslog_send = \&_syslog_send_stream;
+ return 1;
+}
+
+sub connect_unix {
+ my ($errs) = @_;
+ if (length _PATH_LOG()) {
+ $syslog_path = _PATH_LOG();
} else {
- my $syslog = _PATH_LOG();
- length($syslog) || croak "_PATH_LOG unavailable in syslog.h";
- my $that = sockaddr_un($syslog) || croak "Can't locate $syslog";
- socket(SYSLOG,AF_UNIX,SOCK_STREAM,0) || croak "socket: $!";
+ push(@{$errs}, "_PATH_LOG not available in syslog.h");
+ return 0;
+ }
+ my $that = sockaddr_un($syslog_path);
+ if (!$that) {
+ push(@{$errs}, "can't locate $syslog_path");
+ return 0;
+ }
+ if (!socket(SYSLOG,AF_UNIX,SOCK_STREAM,0)) {
+ push(@{$errs}, "unix stream socket: $!");
+ return 0;
+ }
+ if (!connect(SYSLOG,$that)) {
+ if (!socket(SYSLOG,AF_UNIX,SOCK_DGRAM,0)) {
+ push(@{$errs}, "unix dgram socket: $!");
+ return 0;
+ }
if (!connect(SYSLOG,$that)) {
- socket(SYSLOG,AF_UNIX,SOCK_DGRAM,0) || croak "socket: $!";
- connect(SYSLOG,$that) || croak "connect: $! (SOCK_DGRAM after trying SOCK_STREAM)";
- }
+ push(@{$errs}, "unix dgram connect: $!");
+ return 0;
+ }
}
- local($old) = select(SYSLOG); $| = 1; select($old);
- $connected = 1;
+ $syslog_send = \&_syslog_send_socket;
+ return 1;
+}
+
+sub connect_console {
+ my ($errs) = @_;
+ if (!-w '/dev/console') {
+ push(@{$errs}, "console is not writable");
+ return 0;
+ }
+ $syslog_send = \&_syslog_send_console;
+ return 1;
+}
+
+# to test if the connection is still good, we need to check if any
+# errors are present on the connection. The errors will not be raised
+# by a write. Instead, sockets are made readable and the next read
+# would cause the error to be returned. Unfortunately the syslog
+# 'protocol' never provides anything for us to read. But with
+# judicious use of select(), we can see if it would be readable...
+sub connection_ok {
+ return 1 if ($current_proto eq 'console');
+ my $rin = '';
+ vec($rin, fileno(SYSLOG), 1) = 1;
+ my $ret = select $rin, undef, $rin, 0;
+ return ($ret ? 0 : 1);
}
sub disconnect {
close SYSLOG;
$connected = 0;
+ $syslog_send = undef;
}
1;
Revision history for Perl extension Unicode::Normalize.
+0.16 Thu Mar 21 13:36:14 2002
+ - synchronization with bleadperl.
+ - Change 15318: by jhi
+ - Change 15319: by jhi
+
+0.15 Tue Mar 19 22:04:07 2002
+ - Quick check is implemented.
+ - decompose(), reorder(), and compose() are documented.
+ - The Non-XS version is also independent of Lingua::KO::Hangul::Util.
+
0.14 Sat Feb 02 20:40:14 2002
- synchronization with bleadperl.
- Change 14128: by Arthur
use warnings;
use Carp;
-our $VERSION = '0.14';
+our $VERSION = '0.16';
our $PACKAGE = __PACKAGE__;
require Exporter;
our @EXPORT = qw( NFC NFD NFKC NFKD );
our @EXPORT_OK = qw(
normalize decompose reorder compose
- getCanon getCompat getComposite getCombinClass isExclusion
+ checkNFD checkNFKD checkNFC checkNFKC check
+ getCanon getCompat getComposite getCombinClass
+ isExclusion isSingleton isNonStDecomp isComp2nd isComp_Ex
+ isNFD_NO isNFC_NO isNFC_MAYBE isNFKD_NO isNFKC_NO isNFKC_MAYBE
+);
+our %EXPORT_TAGS = (
+ all => [ @EXPORT, @EXPORT_OK ],
+ normalize => [ @EXPORT, qw/normalize decompose reorder compose/ ],
+ check => [ qw/checkNFD checkNFKD checkNFC checkNFKC check/ ],
);
-our %EXPORT_TAGS = ( all => [ @EXPORT, @EXPORT_OK ] );
bootstrap Unicode::Normalize $VERSION;
sub NFD ($) { reorder(decompose($_[0])) }
sub NFKD ($) { reorder(decompose($_[0], COMPAT)) }
-
sub NFC ($) { compose(reorder(decompose($_[0]))) }
sub NFKC ($) { compose(reorder(decompose($_[0], COMPAT))) }
croak $PACKAGE."::normalize: invalid form name: $form";
}
+sub check($$)
+{
+ my $form = shift;
+ $form =~ s/^NF//;
+ return
+ $form eq 'D' ? checkNFD ($_[0]) :
+ $form eq 'C' ? checkNFC ($_[0]) :
+ $form eq 'KD' ? checkNFKD($_[0]) :
+ $form eq 'KC' ? checkNFKC($_[0]) :
+ croak $PACKAGE."::check: invalid form name: $form";
+}
+
1;
__END__
use Unicode::Normalize;
- $string_NFD = NFD($raw_string); # Normalization Form D
- $string_NFC = NFC($raw_string); # Normalization Form C
- $string_NFKD = NFKD($raw_string); # Normalization Form KD
- $string_NFKC = NFKC($raw_string); # Normalization Form KC
+ $NFD_string = NFD($string); # Normalization Form D
+ $NFC_string = NFC($string); # Normalization Form C
+ $NFKD_string = NFKD($string); # Normalization Form KD
+ $NFKC_string = NFKC($string); # Normalization Form KC
or
use Unicode::Normalize 'normalize';
- $string_NFD = normalize('D', $raw_string); # Normalization Form D
- $string_NFC = normalize('C', $raw_string); # Normalization Form C
- $string_NFKD = normalize('KD', $raw_string); # Normalization Form KD
- $string_NFKC = normalize('KC', $raw_string); # Normalization Form KC
+ $NFD_string = normalize('D', $string); # Normalization Form D
+ $NFC_string = normalize('C', $string); # Normalization Form C
+ $NFKD_string = normalize('KD', $string); # Normalization Form KD
+ $NFKC_string = normalize('KC', $string); # Normalization Form KC
=head1 DESCRIPTION
=over 4
-=item C<$string_NFD = NFD($raw_string)>
+=item C<$NFD_string = NFD($string)>
returns the Normalization Form D (formed by canonical decomposition).
-
-=item C<$string_NFC = NFC($raw_string)>
+=item C<$NFC_string = NFC($string)>
returns the Normalization Form C (formed by canonical decomposition
followed by canonical composition).
-=item C<$string_NFKD = NFKD($raw_string)>
+=item C<$NFKD_string = NFKD($string)>
returns the Normalization Form KD (formed by compatibility decomposition).
-=item C<$string_NFKC = NFKC($raw_string)>
+=item C<$NFKC_string = NFKC($string)>
returns the Normalization Form KC (formed by compatibility decomposition
followed by B<canonical> composition).
-=item C<$normalized_string = normalize($form_name, $raw_string)>
+=item C<$normalized_string = normalize($form_name, $string)>
As C<$form_name>, one of the following names must be given.
=back
+=head2 Decomposition and Composition
+
+=over 4
+
+=item C<$decomposed_string = decompose($string)>
+
+=item C<$decomposed_string = decompose($string, $useCompatMapping)>
+
+Decompose the specified string and returns the result.
+
+If the second parameter (a boolean) is omitted or false, decomposes it
+using the Canonical Decomposition Mapping.
+If true, decomposes it using the Compatibility Decomposition Mapping.
+
+The string returned is not always in NFD/NFKD.
+Reordering may be required.
+
+ $NFD_string = reorder(decompose($string)); # eq. to NFD()
+ $NFKD_string = reorder(decompose($string, TRUE)); # eq. to NFKD()
+
+=item C<$reordered_string = reorder($string)>
+
+Reorder the combining characters and the like in the canonical ordering
+and returns the result.
+
+E.g., when you have a list of NFD/NFKD strings,
+you can get the concatenated NFD/NFKD string from them, saying
+
+ $concat_NFD = reorder(join '', @NFD_strings);
+ $concat_NFKD = reorder(join '', @NFKD_strings);
+
+=item C<$composed_string = compose($string)>
+
+Returns the string where composable pairs are composed.
+
+E.g., when you have a NFD/NFKD string,
+you can get its NFC/NFKC string, saying
+
+ $NFC_string = compose($NFD_string);
+ $NFKC_string = compose($NFKD_string);
+
+=back
+
+=head2 Quick Check
+
+(see Annex 8, UAX #15; F<DerivedNormalizationProperties.txt>)
+
+The following functions check whether the string is in that normalization form.
+
+The result returned will be:
+
+ YES The string is in that normalization form.
+ NO The string is not in that normalization form.
+ MAYBE Dubious. Maybe yes, maybe no.
+
+=over 4
+
+=item C<$result = checkNFD($string)>
+
+returns YES (1) or NO (empty string).
+
+=item C<$result = checkNFC($string)>
+
+returns YES (1), NO (empty string), or MAYBE (undef).
+
+=item C<$result = checkNFKD($string)>
+
+returns YES (1) or NO (empty string).
+
+=item C<$result = checkNFKC($string)>
+
+returns YES (1), NO (empty string), or MAYBE (undef).
+
+=item C<$result = check($form_name, $string)>
+
+returns YES (1), NO (empty string), or MAYBE (undef).
+
+C<$form_name> is alike to that for C<normalize()>.
+
+=back
+
+B<Note>
+
+In the cases of NFD and NFKD, the answer must be either C<YES> or C<NO>.
+The answer C<MAYBE> may be returned in the cases of NFC and NFKC.
+
+A MAYBE-NFC/NFKC string should contain at least
+one combining character or the like.
+For example, C<COMBINING ACUTE ACCENT> has
+the MAYBE_NFC/MAYBE_NFKC property.
+Both C<checkNFC("A\N{COMBINING ACUTE ACCENT}")>
+and C<checkNFC("B\N{COMBINING ACUTE ACCENT}")> will return C<MAYBE>.
+Though, C<"A\N{COMBINING ACUTE ACCENT}"> is not in NFC
+(its NFC is C<"\N{LATIN CAPITAL LETTER A WITH ACUTE}">),
+while C<"B\N{COMBINING ACUTE ACCENT}"> is in NFC.
+
+If you want to check exactly, compare the string with its NFC/NFKC; i.e.,
+
+ $string eq NFC($string) # more thorough than checkNFC($string)
+ $string eq NFKC($string) # more thorough than checkNFKC($string)
+
=head2 Character Data
These functions are interface of character data used internally.
=item C<$canonical_decomposed = getCanon($codepoint)>
+If the character of the specified codepoint is canonically
+decomposable (including Hangul Syllables),
+returns the B<completely decomposed> string canonically equivalent to it.
+
+If it is not decomposable, returns undef.
+
=item C<$compatibility_decomposed = getCompat($codepoint)>
-If the character of the specified codepoint is canonically or
-compatibility decomposable (including Hangul Syllables),
-returns the B<completely decomposed> string equivalent to it.
+If the character of the specified codepoint is compatibility
+decomposable (including Hangul Syllables),
+returns the B<completely decomposed> string compatibility equivalent to it.
If it is not decomposable, returns undef.
-=item C<$uv_composite = getComposite($uv_here, $uv_next)>
+=item C<$codepoint_composite = getComposite($codepoint_here, $codepoint_next)>
If two characters here and next (as codepoints) are composable
-(including Hangul Jamo/Syllables and Exclusions),
+(including Hangul Jamo/Syllables and Composition Exclusions),
returns the codepoint of the composite.
If they are not composable, returns undef.
=item C<$combining_class = getCombinClass($codepoint)>
-Returns the combining class as integer of the character.
+Returns the combining class of the character as an integer.
=item C<$is_exclusion = isExclusion($codepoint)>
+Returns a boolean whether the character of the specified codepoint
+is a composition exclusion.
+
+=item C<$is_singleton = isSingleton($codepoint)>
+
Returns a boolean whether the character of the specified codepoint is
-a composition exclusion.
+a singleton.
+
+=item C<$is_non_startar_decomposition = isNonStDecomp($codepoint)>
+
+Returns a boolean whether the canonical decomposition
+of the character of the specified codepoint
+is a Non-Starter Decomposition.
+
+=item C<$may_be_composed_with_prev_char = isComp2nd($codepoint)>
+
+Returns a boolean whether the character of the specified codepoint
+may be composed with the previous one in a certain composition
+(including Hangul Compositions, but excluding
+Composition Exclusions and Non-Starter Decompositions).
=back
C<normalize> and other some functions: on request.
-=head2 TODO
-
-Unicode::Normalize has not been ported to EBCDIC. The code mostly
-would work just fine but a decision needs to be made: how the module
-should work in EBCDIC? Should the low 256 characters be understood as
-Unicode or as EBCDIC code points? Should one be chosen or should
-there be a way to do either? Or should such translation be left
-outside the module for the user to do, for example by using
-Encode::from_to()?
-
=head1 AUTHOR
SADAHIRO Tomoyuki, E<lt>SADAHIRO@cpan.orgE<gt>
Unicode Normalization Forms - UAX #15
+=item http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProperties.txt
+
+Derived Normalization Properties
+
=back
=cut
{
int ret_cc;
ret_cc = (*(UNF_cc*)a).cc - (*(UNF_cc*)b).cc;
- if(ret_cc) return ret_cc;
+ if (ret_cc)
+ return ret_cc;
return (*(UNF_cc*)a).pos - (*(UNF_cc*)b).pos;
}
U8* dec_canonical (UV uv)
{
U8 ***plane, **row;
- if(OVER_UTF_MAX(uv)) return NULL;
+ if (OVER_UTF_MAX(uv))
+ return NULL;
plane = (U8***)UNF_canon[uv >> 16];
- if(! plane) return NULL;
+ if (! plane)
+ return NULL;
row = plane[(uv >> 8) & 0xff];
return row ? row[uv & 0xff] : NULL;
}
U8* dec_compat (UV uv)
{
U8 ***plane, **row;
- if(OVER_UTF_MAX(uv)) return NULL;
+ if (OVER_UTF_MAX(uv))
+ return NULL;
plane = (U8***)UNF_compat[uv >> 16];
- if(! plane) return NULL;
+ if (! plane)
+ return NULL;
row = plane[(uv >> 8) & 0xff];
return row ? row[uv & 0xff] : NULL;
}
{
UNF_complist ***plane, **row, *cell, *i;
- if(! uv2 || OVER_UTF_MAX(uv) || OVER_UTF_MAX(uv2)) return 0;
+ if (! uv2 || OVER_UTF_MAX(uv) || OVER_UTF_MAX(uv2))
+ return 0;
- if(Hangul_IsL(uv) && Hangul_IsV(uv2)) {
+ if (Hangul_IsL(uv) && Hangul_IsV(uv2)) {
uv -= Hangul_LBase; /* lindex */
uv2 -= Hangul_VBase; /* vindex */
return(Hangul_SBase + (uv * Hangul_VCount + uv2) * Hangul_TCount);
}
- if(Hangul_IsLV(uv) && Hangul_IsT(uv2)) {
+ if (Hangul_IsLV(uv) && Hangul_IsT(uv2)) {
uv2 -= Hangul_TBase; /* tindex */
return(uv + uv2);
}
plane = UNF_compos[uv >> 16];
- if(! plane) return 0;
+ if (! plane)
+ return 0;
row = plane[(uv >> 8) & 0xff];
- if(! row) return 0;
+ if (! row)
+ return 0;
cell = row[uv & 0xff];
- if(! cell) return 0;
- for(i = cell; i->nextchar; i++) {
- if(uv2 == i->nextchar) return i->composite;
+ if (! cell)
+ return 0;
+ for (i = cell; i->nextchar; i++) {
+ if (uv2 == i->nextchar)
+ return i->composite;
}
return 0;
}
U8 getCombinClass (UV uv)
{
U8 **plane, *row;
- if(OVER_UTF_MAX(uv)) return 0;
+ if (OVER_UTF_MAX(uv))
+ return 0;
plane = (U8**)UNF_combin[uv >> 16];
- if(! plane) return 0;
+ if (! plane)
+ return 0;
row = plane[(uv >> 8) & 0xff];
return row ? row[uv & 0xff] : 0;
}
UV sindex, lindex, vindex, tindex;
U8 *t, tmp[3 * UTF8_MAXLEN + 1];
- if(! Hangul_IsS(uv)) return;
+ if (! Hangul_IsS(uv))
+ return;
sindex = uv - Hangul_SBase;
lindex = sindex / Hangul_NCount;
t = tmp;
t = uvuni_to_utf8(t, (lindex + Hangul_LBase));
t = uvuni_to_utf8(t, (vindex + Hangul_VBase));
- if (tindex) t = uvuni_to_utf8(t, (tindex + Hangul_TBase));
+ if (tindex)
+ t = uvuni_to_utf8(t, (tindex + Hangul_TBase));
*t = '\0';
sv_catpvn(sv, (char *)tmp, strlen((char *)tmp));
}
U8 *s, *e, *p, *r;
bool iscompat;
CODE:
- if(SvUTF8(arg)) {
+ if (SvUTF8(arg)) {
src = arg;
} else {
src = sv_mortalcopy(arg);
s = (U8*)SvPV(src,srclen);
e = s + srclen;
- for(p = s; p < e;){
+ for (p = s; p < e;) {
uv = utf8n_to_uvuni(p, e - p, &retlen, 0);
p += retlen;
- if(Hangul_IsS(uv)) sv_cat_decompHangul(dst, uv);
+ if (Hangul_IsS(uv))
+ sv_cat_decompHangul(dst, uv);
else {
r = iscompat ? dec_compat(uv) : dec_canonical(uv);
- if(r) sv_catpv(dst, (char *)r);
- else sv_catpvn(dst, (char *)p - retlen, retlen);
+ if (r)
+ sv_catpv(dst, (char *)r);
+ else
+ sv_catpvn(dst, (char *)p - retlen, retlen);
}
}
RETVAL = dst;
SV * arg
PROTOTYPE: $
PREINIT:
- SV *src;
- STRLEN srclen, retlen, stk_cc_max;
- U8 *s, *e, *p, curCC;
+ SV *src, *dst;
+ STRLEN srclen, dstlen, retlen, stk_cc_max;
+ U8 *s, *e, *p, *d, curCC;
UV uv;
UNF_cc * stk_cc;
CODE:
- src = newSVsv(arg);
- if(! SvUTF8(arg)) sv_utf8_upgrade(src);
+ if (SvUTF8(arg)) {
+ src = arg;
+ } else {
+ src = sv_mortalcopy(arg);
+ sv_utf8_upgrade(src);
+ }
+
+ s = (U8*)SvPV(src, srclen);
+
+ dstlen = srclen + 1;
+ dst = newSV(dstlen);
+ sv_setpvn(dst,(const char*)s,srclen);
+ SvUTF8_on(dst);
stk_cc_max = 10; /* enough as an initial value? */
New(0, stk_cc, stk_cc_max, UNF_cc);
- s = (U8*)SvPV(src,srclen);
- e = s + srclen;
+ d = (U8*)SvPV(dst,dstlen);
+ e = d + dstlen;
- for(p = s; p < e;){
+ for (p = d; p < e;) {
U8 *cc_in;
STRLEN cc_len, cc_iter, cc_pos;
curCC = getCombinClass(uv);
p += retlen;
- if(! (curCC && p < e)) continue; else cc_in = p - retlen;
+ if (! (curCC && p < e))
+ continue;
+ else
+ cc_in = p - retlen;
cc_pos = 0;
stk_cc[cc_pos].cc = curCC;
stk_cc[cc_pos].uv = uv;
stk_cc[cc_pos].pos = cc_pos;
- while(p < e) {
+ while (p < e) {
uv = utf8n_to_uvuni(p, e - p, &retlen, 0);
curCC = getCombinClass(uv);
- if(!curCC) break;
+ if (!curCC)
+ break;
p += retlen;
cc_pos++;
- if(stk_cc_max <= cc_pos) { /* extend if need */
+ if (stk_cc_max <= cc_pos) { /* extend if need */
stk_cc_max = cc_pos + 1;
Renew(stk_cc, stk_cc_max, UNF_cc);
}
}
/* only one c.c. in cc_len from cc_in, no need of reordering */
- if(!cc_pos) continue;
+ if (!cc_pos)
+ continue;
qsort((void*)stk_cc, cc_pos + 1, sizeof(UNF_cc), compare_cc);
cc_len = p - cc_in;
p = cc_in;
- for(cc_iter = 0; cc_iter <= cc_pos; cc_iter++) {
+ for (cc_iter = 0; cc_iter <= cc_pos; cc_iter++) {
p = uvuni_to_utf8(p, stk_cc[cc_iter].uv);
}
}
Safefree(stk_cc);
- RETVAL = src;
+ RETVAL = dst;
OUTPUT:
RETVAL
STRLEN srclen, dstlen, tmplen, retlen;
bool beginning = TRUE;
CODE:
- if(SvUTF8(arg)) {
+ if (SvUTF8(arg)) {
src = arg;
} else {
src = sv_mortalcopy(arg);
(void)SvPOK_only(tmp);
SvUTF8_on(tmp);
- for(p = s; p < e;){
- if(beginning) {
+ for (p = s; p < e;) {
+ if (beginning) {
uvS = utf8n_to_uvuni(p, e - p, &retlen, 0);
p += retlen;
- if (getCombinClass(uvS)){ /* no Starter found yet */
+ if (getCombinClass(uvS)) { /* no Starter found yet */
d = uvuni_to_utf8(d, uvS);
continue;
}
preCC = 0;
/* to the next Starter */
- while(p < e) {
+ while (p < e) {
uv = utf8n_to_uvuni(p, e - p, &retlen, 0);
p += retlen;
curCC = getCombinClass(uv);
- if(preCC && preCC == curCC) {
+ if (preCC && preCC == curCC) {
preCC = curCC;
t = uvuni_to_utf8(t, uv);
} else {
uvComp = composite_uv(uvS, uv);
- /* S + C + S => S-S + C would be also blocked. */
- if( uvComp && ! isExclusion(uvComp) && preCC <= curCC)
- {
+ if (uvComp && ! isExclusion(uvComp) && preCC <= curCC) {
STRLEN leftcur, rightcur, dstcur;
leftcur = UNISKIP(uvComp);
rightcur = UNISKIP(uvS) + UNISKIP(uv);
dstlen += leftcur - rightcur;
d = (U8*)SvGROW(dst,dstlen) + dstcur;
}
-
/* preCC not changed to curCC */
uvS = uvComp;
} else if (! curCC && p < e) { /* blocked */
tmplen = t - tmp_start;
if (tmplen) { /* uncomposed combining char */
t = (U8*)SvPVX(tmp);
- while(tmplen--) *d++ = *t++;
+ while (tmplen--)
+ *d++ = *t++;
}
uvS = uv;
} /* for */
+void
+checkNFD(arg)
+ SV * arg
+ PROTOTYPE: $
+ ALIAS:
+ checkNFKD = 1
+ PREINIT:
+ UV uv;
+ SV *src;
+ STRLEN srclen, retlen;
+ U8 *s, *e, *p, curCC, preCC;
+ PPCODE:
+ if (SvUTF8(arg)) {
+ src = arg;
+ } else {
+ src = sv_mortalcopy(arg);
+ sv_utf8_upgrade(src);
+ }
+
+ s = (U8*)SvPV(src,srclen);
+ e = s + srclen;
+
+ preCC = 0;
+ for (p = s; p < e; p += retlen) {
+ uv = utf8n_to_uvuni(p, e - p, &retlen, 0);
+ curCC = getCombinClass(uv);
+ if (preCC > curCC && curCC != 0) /* canonical ordering violated */
+ XSRETURN_NO;
+ if (Hangul_IsS(uv) || (ix ? dec_compat(uv) : dec_canonical(uv)))
+ XSRETURN_NO;
+ preCC = curCC;
+ }
+ XSRETURN_YES;
+
+
+
+void
+checkNFC(arg)
+ SV * arg
+ PROTOTYPE: $
+ ALIAS:
+ checkNFKC = 1
+ PREINIT:
+ UV uv;
+ SV *src;
+ STRLEN srclen, retlen;
+ U8 *s, *e, *p, curCC, preCC;
+ bool isMAYBE;
+ PPCODE:
+ if (SvUTF8(arg)) {
+ src = arg;
+ } else {
+ src = sv_mortalcopy(arg);
+ sv_utf8_upgrade(src);
+ }
+
+ s = (U8*)SvPV(src,srclen);
+ e = s + srclen;
+
+ preCC = 0;
+ isMAYBE = FALSE;
+ for (p = s; p < e; p += retlen) {
+ uv = utf8n_to_uvuni(p, e - p, &retlen, 0);
+ curCC = getCombinClass(uv);
+
+ if (preCC > curCC && curCC != 0) /* canonical ordering violated */
+ XSRETURN_NO;
+
+ /* get NFC/NFKC property */
+ if (Hangul_IsS(uv)) /* Hangul syllables are canonical composites */
+ ; /* YES */
+ else if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv))
+ XSRETURN_NO;
+ else if (isComp2nd(uv))
+ isMAYBE = TRUE;
+ else if (ix) {
+ char *canon, *compat;
+ /*
+ * NFKC_NO when having compatibility mapping;
+ * i.e. dec_compat(uv) defined & different with dec_canonical(uv).
+ */
+ canon = (char *) dec_canonical(uv);
+ compat = (char *) dec_compat(uv);
+ if (compat && (!canon || strNE(canon, compat)))
+ XSRETURN_NO;
+ } /* end of get NFC/NFKC property */
+
+ preCC = curCC;
+ }
+ if (isMAYBE)
+ XSRETURN_UNDEF;
+ else
+ XSRETURN_YES;
+
+
+
U8
getCombinClass(uv)
UV uv
+ PROTOTYPE: $
bool
isExclusion(uv)
UV uv
+ PROTOTYPE: $
+
+bool
+isSingleton(uv)
+ UV uv
+ PROTOTYPE: $
+
+bool
+isNonStDecomp(uv)
+ UV uv
+ PROTOTYPE: $
+
+bool
+isComp2nd(uv)
+ UV uv
+ PROTOTYPE: $
+ ALIAS:
+ isNFC_MAYBE = 1
+ isNFKC_MAYBE = 2
+
+
+
+void
+isNFD_NO(uv)
+ UV uv
+ PROTOTYPE: $
+ ALIAS:
+ isNFKD_NO = 1
+ PPCODE:
+ if (Hangul_IsS(uv) || (ix ? dec_compat(uv) : dec_canonical(uv)))
+ XSRETURN_YES; /* NFD_NO or NFKD_NO */
+ else
+ XSRETURN_NO;
+
+
+
+void
+isComp_Ex(uv)
+ UV uv
+ PROTOTYPE: $
+ ALIAS:
+ isNFC_NO = 0
+ isNFKC_NO = 1
+ PPCODE:
+ if (isExclusion(uv) || isSingleton(uv) || isNonStDecomp(uv))
+ XSRETURN_YES; /* NFC_NO or NFKC_NO */
+ else if (ix) {
+ char *canon, *compat;
+ canon = (char *) dec_canonical(uv);
+ compat = (char *) dec_compat(uv);
+ if (compat && (!canon || strNE(canon, compat)))
+ XSRETURN_YES; /* NFC_NO or NFKC_NO */
+ else
+ XSRETURN_NO;
+ }
+ else
+ XSRETURN_NO;
+
+
SV*
getComposite(uv, uv2)
OUTPUT:
RETVAL
+
+
SV*
getCanon(uv)
UV uv
PREINIT:
U8 * rstr;
CODE:
- if(Hangul_IsS(uv)) {
+ if (Hangul_IsS(uv)) {
SV * dst;
dst = newSV(1);
(void)SvPOK_only(dst);
RETVAL = dst;
} else {
rstr = ix ? dec_compat(uv) : dec_canonical(uv);
- if(!rstr) XSRETURN_UNDEF;
+ if (!rstr)
+ XSRETURN_UNDEF;
RETVAL = newSVpvn((char *)rstr, strlen((char *)rstr));
}
SvUTF8_on(RETVAL);
-Unicode/Normalize version 0.14
+Unicode/Normalize version 0.15
===================================
Unicode::Normalize - normalized forms of Unicode text
use Unicode::Normalize;
- $string_NFD = NFD($string); # Normalization Form D
- $string_NFC = NFC($string); # Normalization Form C
- $string_NFKD = NFKD($string); # Normalization Form KD
- $string_NFKC = NFKC($string); # Normalization Form KC
+ $NFD_string = NFD($string); # Normalization Form D
+ $NFC_string = NFC($string); # Normalization Form C
+ $NFKD_string = NFKD($string); # Normalization Form KD
+ $NFKC_string = NFKC($string); # Normalization Form KC
+
+
+ or
- or
use Unicode::Normalize 'normalize';
- $string_NFD = normalize('D', $string); # Normalization Form D
- $string_NFC = normalize('C', $string); # Normalization Form C
- $string_NFKD = normalize('KD', $string); # Normalization Form KD
- $string_NFKC = normalize('KC', $string); # Normalization Form KC
+ $NFD_string = normalize('D', $string); # Normalization Form D
+ $NFC_string = normalize('C', $string); # Normalization Form C
+ $NFKD_string = normalize('KD', $string); # Normalization Form KD
+ $NFKC_string = normalize('KC', $string); # Normalization Form KC
+
INSTALLATION
-Perl 5.006 or later
+Perl 5.6 or later
To install this module type the following:
File::Copy
File::Spec
-unicore/CombiningClass.pl
- (or unicode/CombiningClass.pl)
-unicore/Decomposition.pl
- (or unicode/Decomposition.pl)
-unicore/CompositionExclusions.txt
- (or unicode/CompExcl.txt)
+unicore/CombiningClass.pl (or unicode/CombiningClass.pl)
+unicore/Decomposition.pl (or unicode/Decomposition.pl)
+unicore/CompositionExclusions.txt (or unicode/CompExcl.txt)
-# CAVEAT:
-# In bleadperl, unicore/CompExcl.txt is renamed
-# unicore/CompositionExclusions.txt.
+CAVEAT
-And for the NoXS version, in addition to the above,
+(1) In bleadperl, unicore/CompExcl.txt is renamed
+ unicore/CompositionExclusions.txt.
- Lingua::KO::Hangul::Util 0.06
+(2) When these unicore/*.* files are updated;
-is required.
+ in the case of an XS version:
+ You must rebuild the module,
+ as the data will be compiled on building.
+
+ in the case of a NoXS version:
+ Rebuilding is not necessary,
+ as the data will be read on requirement.
COPYRIGHT AND LICENCE
-SADAHIRO Tomoyuki, E<lt>SADAHIRO@cpan.orgE<gt>
+ SADAHIRO Tomoyuki
+
+ SADAHIRO@cpan.org
http://homepage1.nifty.com/nomenclator/perl/
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.
-
our $PACKAGE = 'Unicode::Normalize, mkheader';
our $Combin = do "unicore/CombiningClass.pl"
- || do "unicode/CombiningClass.pl"
- || croak "$PACKAGE: CombiningClass.pl not found";
+ || do "unicode/CombiningClass.pl"
+ || croak "$PACKAGE: CombiningClass.pl not found";
our $Decomp = do "unicore/Decomposition.pl"
- || do "unicode/Decomposition.pl"
- || croak "$PACKAGE: Decomposition.pl not found";
+ || do "unicode/Decomposition.pl"
+ || croak "$PACKAGE: Decomposition.pl not found";
our %Combin; # $codepoint => $number : combination class
our %Canon; # $codepoint => $hexstring : canonical decomp.
our %Compat; # $codepoint => $hexstring : compat. decomp.
our %Compos; # $string => $codepoint : composite
-
our %Exclus; # $codepoint => 1 : composition exclusions
+our %Single; # $codepoint => 1 : singletons
+our %NonStD; # $codepoint => 1 : non-starter decompositions
{
- my($f, $fh);
- foreach my $d (@INC) {
- use File::Spec;
- $f = File::Spec->catfile($d, "unicore", "CompositionExclusions.txt");
- last if open($fh, $f);
- $f = File::Spec->catfile($d, "unicode", "CompExcl.txt");
- last if open($fh, $f);
- $f = undef;
- }
- croak "$PACKAGE: CompExcl.txt not found in @INC" unless defined $f;
- while(<$fh>) {
- next if /^#/ or /^$/;
- s/#.*//;
- $Exclus{ hex($1) } =1 if /([0-9A-Fa-f]+)/;
- }
- close $fh;
+ my($f, $fh);
+ foreach my $d (@INC) {
+ use File::Spec;
+ $f = File::Spec->catfile($d, "unicore", "CompositionExclusions.txt");
+ last if open($fh, $f);
+ $f = File::Spec->catfile($d, "unicode", "CompExcl.txt");
+ last if open($fh, $f);
+ $f = undef;
+ }
+ croak "$PACKAGE: CompExcl.txt not found in @INC" unless defined $f;
+ while (<$fh>) {
+ next if /^#/ or /^$/;
+ s/#.*//;
+ $Exclus{ hex($1) } =1 if /([0-9A-Fa-f]+)/;
+ }
+ close $fh;
}
-while($Combin =~ /(.+)/g) {
- my @tab = split /\t/, $1;
- my $ini = hex $tab[0];
- if($tab[1] eq '') {
- $Combin{ $ini } = $tab[2];
- } else {
- $Combin{ $_ } = $tab[2] foreach $ini .. hex($tab[1]);
- }
+while ($Combin =~ /(.+)/g) {
+ my @tab = split /\t/, $1;
+ my $ini = hex $tab[0];
+ if ($tab[1] eq '') {
+ $Combin{ $ini } = $tab[2];
+ } else {
+ $Combin{ $_ } = $tab[2] foreach $ini .. hex($tab[1]);
+ }
}
-while($Decomp =~ /(.+)/g) {
- my @tab = split /\t/, $1;
- my $compat = $tab[2] =~ s/<[^>]+>//;
- my $dec = [ _getHexArray($tab[2]) ]; # decomposition
- my $com = pack('U*', @$dec); # composable sequence
- my $ini = hex($tab[0]);
- if($tab[1] eq '') {
- $Compat{ $ini } = $dec;
- if(! $compat) {
- $Canon{ $ini } = $dec;
- $Compos{ $com } = $ini if @$dec > 1;
+while ($Decomp =~ /(.+)/g) {
+ my @tab = split /\t/, $1;
+ my $compat = $tab[2] =~ s/<[^>]+>//;
+ my $dec = [ _getHexArray($tab[2]) ]; # decomposition
+ my $com = pack('U*', @$dec); # composable sequence
+ my $ini = hex($tab[0]); # initial decomposable character
+ if ($tab[1] eq '') {
+ $Compat{ $ini } = $dec;
+
+ if (! $compat) {
+ $Canon{ $ini } = $dec;
+
+ if (@$dec > 1) {
+ if ($Combin{ $dec->[0] }) {
+ $NonStD{ $ini } = 1;
+ } else {
+ $Compos{ $com } = $ini;
+ }
+ } else {
+ $Single{ $ini } = 1;
+ }
+ }
+ } else {
+ foreach my $u ($ini .. hex($tab[1])){
+ $Compat{ $u } = $dec;
+ if (! $compat) {
+ $Canon{ $u } = $dec;
+
+ if (@$dec > 1) {
+ if ($Combin{ $dec->[0] }) {
+ $NonStD{ $u } = 1;
+ } else {
+ $Compos{ $com } = $u;
+ }
+ } else {
+ $Single{ $u } = 1;
+ }
+ }
+ }
}
- } else {
- foreach my $u ($ini .. hex($tab[1])){
- $Compat{ $u } = $dec;
- if(! $compat){
- $Canon{ $u } = $dec;
- $Compos{ $com } = $ini if @$dec > 1;
- }
- }
- }
}
# exhaustive decomposition
foreach my $key (keys %Canon) {
- $Canon{$key} = [ getCanonList($key) ];
+ $Canon{$key} = [ getCanonList($key) ];
}
# exhaustive decomposition
foreach my $key (keys %Compat) {
- $Compat{$key} = [ getCompatList($key) ];
+ $Compat{$key} = [ getCompatList($key) ];
}
sub getCanonList {
- my @src = @_;
- my @dec = map $Canon{$_} ? @{ $Canon{$_} } : $_, @src;
- join(" ",@src) eq join(" ",@dec) ? @dec : getCanonList(@dec);
- # condition @src == @dec is not ok.
+ my @src = @_;
+ my @dec = map $Canon{$_} ? @{ $Canon{$_} } : $_, @src;
+ return join(" ",@src) eq join(" ",@dec) ? @dec : getCanonList(@dec);
+ # condition @src == @dec is not ok.
}
sub getCompatList {
- my @src = @_;
- my @dec = map $Compat{$_} ? @{ $Compat{$_} } : $_, @src;
- join(" ",@src) eq join(" ",@dec) ? @dec : getCompatList(@dec);
- # condition @src == @dec is not ok.
+ my @src = @_;
+ my @dec = map $Compat{$_} ? @{ $Compat{$_} } : $_, @src;
+ return join(" ",@src) eq join(" ",@dec) ? @dec : getCompatList(@dec);
+ # condition @src == @dec is not ok.
}
-sub _getHexArray {
- my $str = shift;
- map hex(), $str =~ /([0-9A-Fa-f]+)/g;
-}
+sub _getHexArray { map hex, $_[0] =~ /([0-9A-Fa-f]+)/g }
sub _U_stringify {
- sprintf '"%s"', join '',
- map sprintf("\\x%02x", $_), unpack 'C*', pack 'U*', @_;
+ sprintf '"%s"', join '',
+ map sprintf("\\x%02x", $_), unpack 'C*', pack 'U*', @_;
}
foreach my $hash (\%Canon, \%Compat) {
- foreach my $key (keys %$hash) {
- $hash->{$key} = _U_stringify( @{ $hash->{$key} } );
- }
+ foreach my $key (keys %$hash) {
+ $hash->{$key} = _U_stringify( @{ $hash->{$key} } );
+ }
}
my $prefix = "UNF_";
-
my $structname = "${prefix}complist";
-our (%Comp1st, %CompList);
+our (%Comp1st, %Comp2nd, %CompList);
-foreach(sort keys %Compos) {
- my @a = unpack('U*', $_);
- my $val = $Compos{$_};
- my $name = sprintf "${structname}_%06x", $a[0];
- $Comp1st{ $a[0] } = $name;
- $CompList{ $name }{ $a[1] } = $val;
+foreach (sort keys %Compos) {
+ my @a = unpack('U*', $_);
+ my $val = $Compos{$_};
+ my $name = sprintf "${structname}_%06x", $a[0];
+ $Comp1st{$a[0]} = $name;
+ $Comp2nd{$a[1]} = 1 if ! $Exclus{$Compos{$_}} && ! $Combin{$a[0]};
+ $CompList{$name}{$a[1]} = $val;
+}
+
+# modern HANGUL JUNGSEONG and HANGUL JONGSEONG jamo
+foreach (0x1161..0x1175, 0x11A8..0x11C2) {
+ $Comp2nd{$_} = 1;
}
my $compinit =
- "typedef struct { UV nextchar; UV composite; } $structname;\n\n";
+ "typedef struct { UV nextchar; UV composite; } $structname;\n\n";
foreach my $i (sort keys %CompList) {
- $compinit .= "$structname $i [] = {\n";
- $compinit .= join ",\n",
- map sprintf("\t{ %d, %d }", $_, $CompList{$i}{$_}),
- sort {$a <=> $b } keys %{ $CompList{$i} };
- $compinit .= ",\n{0,0}\n};\n\n"; # with sentinel
+ $compinit .= "$structname $i [] = {\n";
+ $compinit .= join ",\n",
+ map sprintf("\t{ %d, %d }", $_, $CompList{$i}{$_}),
+ sort {$a <=> $b } keys %{ $CompList{$i} };
+ $compinit .= ",\n{0,0}\n};\n\n"; # with sentinel
}
####################################
-my @Exclus = sort {$a <=> $b} keys %Exclus;
+my @boolfunc = (
+ {
+ name => "Exclusion",
+ type => "bool",
+ hash => \%Exclus,
+ },
+ {
+ name => "Singleton",
+ type => "bool",
+ hash => \%Single,
+ },
+ {
+ name => "NonStDecomp",
+ type => "bool",
+ hash => \%NonStD,
+ },
+ {
+ name => "Comp2nd",
+ type => "bool",
+ hash => \%Comp2nd,
+ },
+);
my $file = "unfexc.h";
open FH, ">$file" or croak "$PACKAGE: $file can't be made";
binmode FH; select FH;
-print "bool isExclusion (UV uv) \n{\nreturn\n\t";
+ print << 'EOF';
+/*
+ * This file is auto-generated by mkheader.
+ * Any changes here will be lost!
+ */
+EOF
-while(@Exclus) {
- my $cur = shift @Exclus;
- if(@Exclus && $cur + 1 == $Exclus[0]) {
- print "($cur <= uv && uv <= ";
- while(@Exclus && $cur + 1 == $Exclus[0]) {
- $cur = shift @Exclus;
+foreach my $tbl (@boolfunc) {
+ my @temp = sort {$a <=> $b} keys %{$tbl->{hash}};
+ my $type = $tbl->{type};
+ my $name = $tbl->{name};
+ print "$type is$name (UV uv)\n{\nreturn\n\t";
+
+ while (@temp) {
+ my $cur = shift @temp;
+ if (@temp && $cur + 1 == $temp[0]) {
+ print "($cur <= uv && uv <= ";
+ while (@temp && $cur + 1 == $temp[0]) {
+ $cur = shift @temp;
+ }
+ print "$cur)";
+ print "\n\t|| " if @temp;
+ } else {
+ print "uv == $cur";
+ print "\n\t|| " if @temp;
+ }
}
- print "$cur)";
- print "\n\t|| " if @Exclus;
- } else {
- print "uv == $cur";
- print "\n\t|| " if @Exclus;
- }
+ print "\n\t? TRUE : FALSE;\n}\n\n";
}
-print "\n\t? TRUE : FALSE;\n}\n\n";
close FH;
+
####################################
my @tripletable = (
- {
- file => "unfcmb",
- name => "combin",
- type => "STDCHAR",
- hash => \%Combin,
- null => 0,
- },
- {
- file => "unfcan",
- name => "canon",
- type => "char*",
- hash => \%Canon,
- null => "NULL",
- },
- {
- file => "unfcpt",
- name => "compat",
- type => "char*",
- hash => \%Compat,
- null => "NULL",
- },
- {
- file => "unfcmp",
- name => "compos",
- type => "$structname *",
- hash => \%Comp1st,
- null => "NULL",
- init => $compinit,
- },
+ {
+ file => "unfcmb",
+ name => "combin",
+ type => "STDCHAR",
+ hash => \%Combin,
+ null => 0,
+ },
+ {
+ file => "unfcan",
+ name => "canon",
+ type => "char*",
+ hash => \%Canon,
+ null => "NULL",
+ },
+ {
+ file => "unfcpt",
+ name => "compat",
+ type => "char*",
+ hash => \%Compat,
+ null => "NULL",
+ },
+ {
+ file => "unfcmp",
+ name => "compos",
+ type => "$structname *",
+ hash => \%Comp1st,
+ null => "NULL",
+ init => $compinit,
+ },
);
foreach my $tbl (@tripletable) {
- my $file = "$tbl->{file}.h";
- my $head = "${prefix}$tbl->{name}";
- my $type = $tbl->{type};
- my $hash = $tbl->{hash};
- my $null = $tbl->{null};
- my $init = $tbl->{init};
-
- open FH, ">$file" or croak "$PACKAGE: $file can't be made";
- binmode FH; select FH;
- my %val;
-
- print FH << 'EOF';
+ my $file = "$tbl->{file}.h";
+ my $head = "${prefix}$tbl->{name}";
+ my $type = $tbl->{type};
+ my $hash = $tbl->{hash};
+ my $null = $tbl->{null};
+ my $init = $tbl->{init};
+
+ open FH, ">$file" or croak "$PACKAGE: $file can't be made";
+ binmode FH; select FH;
+ my %val;
+
+ print FH << 'EOF';
/*
* This file is auto-generated by mkheader.
* Any changes here will be lost!
*/
EOF
- print $init if defined $init;
-
- foreach my $uv (keys %$hash) {
- my @c = unpack 'CCCC', pack 'N', $uv;
- $val{ $c[1] }{ $c[2] }{ $c[3] } = $hash->{$uv};
- }
-
- foreach my $p (sort { $a <=> $b } keys %val) {
- next if ! $val{ $p };
- for(my $r = 0; $r < 256; $r++){
- next if ! $val{ $p }{ $r };
- printf "$type ${head}_%02x_%02x [256] = {\n", $p, $r;
- for(my $c = 0; $c < 256; $c++){
- print "\t", defined $val{$p}{$r}{$c}
- ? "($type)".$val{$p}{$r}{$c} : $null;
- print ',' if $c != 255;
- print "\n" if $c % 8 == 7;
- }
- print "};\n\n";
+ print $init if defined $init;
+
+ foreach my $uv (keys %$hash) {
+ my @c = unpack 'CCCC', pack 'N', $uv;
+ $val{ $c[1] }{ $c[2] }{ $c[3] } = $hash->{$uv};
+ }
+
+ foreach my $p (sort { $a <=> $b } keys %val) {
+ next if ! $val{ $p };
+ for (my $r = 0; $r < 256; $r++) {
+ next if ! $val{ $p }{ $r };
+ printf "$type ${head}_%02x_%02x [256] = {\n", $p, $r;
+ for (my $c = 0; $c < 256; $c++) {
+ print "\t", defined $val{$p}{$r}{$c}
+ ? "($type)".$val{$p}{$r}{$c}
+ : $null;
+ print ',' if $c != 255;
+ print "\n" if $c % 8 == 7;
+ }
+ print "};\n\n";
+ }
+ }
+ foreach my $p (sort { $a <=> $b } keys %val) {
+ next if ! $val{ $p };
+ printf "$type* ${head}_%02x [256] = {\n", $p;
+ for (my $r = 0; $r < 256; $r++) {
+ print $val{ $p }{ $r }
+ ? sprintf("${head}_%02x_%02x", $p, $r)
+ : "NULL";
+ print ',' if $r != 255;
+ print "\n" if $val{ $p }{ $r } || ($r+1) % 8 == 0;
+ }
+ print "};\n\n";
}
- }
- foreach my $p (sort { $a <=> $b } keys %val) {
- next if ! $val{ $p };
- printf "$type* ${head}_%02x [256] = {\n", $p;
- for(my $r = 0; $r < 256; $r++){
- print $val{ $p }{ $r } ? sprintf("${head}_%02x_%02x", $p, $r) : "NULL";
- print ',' if $r != 255;
- print "\n" if $val{ $p }{ $r } || ($r+1) % 8 == 0;
+ print "$type** $head [] = {\n";
+ for (my $p = 0; $p <= 0x10; $p++) {
+ print $val{ $p } ? sprintf("${head}_%02x", $p) : "NULL";
+ print ',' if $p != 0x10;
+ print "\n";
}
print "};\n\n";
- }
- print "$type** $head [] = {\n";
- for(my $p = 0; $p <= 0x10; $p++){
- print $val{ $p } ? sprintf("${head}_%02x", $p) : "NULL";
- print ',' if $p != 0x10;
- print "\n";
- }
- print "};\n\n";
- close FH;
+ close FH;
}
__END__
BEGIN {
if (ord("A") == 193) {
- print "1..0 # Unicode::Normalize not ported to EBCDIC\n";
- exit 0;
+ print "1..0 # Unicode::Normalize not ported to EBCDIC\n";
+ exit 0;
}
}
use Test;
use strict;
use warnings;
-BEGIN { plan tests => 6 };
+BEGIN { plan tests => 10 };
use Unicode::Normalize qw(:all);
ok(1); # If we made it this far, we're ok.
print getCombinClass( 0) == 0
&& getCombinClass( 768) == 230
&& getCombinClass(1809) == 36
-# && getCombinClass(119143) == 1
+# && getCombinClass(119143) == 1 # U+1D167, a Unicode 3.1 character
? "ok" : "not ok", " 2\n";
print ! defined getCanon( 0)
&& 0xADF8 == getComposite(0x1100, 0x1173)
&& ! defined getComposite(0x1100, 0x11AF)
&& ! defined getComposite(0x1173, 0x11AF)
+ && ! defined getComposite(0xAC00, 0x11A7)
+ && 0xAC01 == getComposite(0xAC00, 0x11A8)
&& 0xAE00 == getComposite(0xADF8, 0x11AF)
? "ok" : "not ok", " 5\n";
print ! isExclusion( 0)
&& ! isExclusion(41)
- && isExclusion(2392)
- && isExclusion(3907)
- && isExclusion(64334)
+ && isExclusion(2392) # DEVANAGARI LETTER QA
+ && isExclusion(3907) # TIBETAN LETTER GHA
+ && isExclusion(64334) # HEBREW LETTER PE WITH RAFE
? "ok" : "not ok", " 6\n";
+print ! isSingleton( 0)
+ && isSingleton(0x212B) # ANGSTROM SIGN
+ ? "ok" : "not ok", " 7\n";
+
+print reorder("") eq ""
+ && reorder(pack("U*", 0x0041, 0x0300, 0x0315, 0x0313, 0x031b, 0x0061))
+ eq pack("U*", 0x0041, 0x031b, 0x0300, 0x0313, 0x0315, 0x0061)
+ && reorder(pack("U*", 0x00C1, 0x0300, 0x0315, 0x0313, 0x031b,
+ 0x0061, 0x309A, 0x3099))
+ eq pack("U*", 0x00C1, 0x031b, 0x0300, 0x0313, 0x0315,
+ 0x0061, 0x309A, 0x3099)
+ ? "ok" : "not ok", " 8\n";
+
+sub answer { defined $_[0] ? $_[0] ? "YES" : "NO" : "MAYBE" }
+
+print answer(checkNFD("")) eq "YES"
+ && answer(checkNFC("")) eq "YES"
+ && answer(checkNFKD("")) eq "YES"
+ && answer(checkNFKC("")) eq "YES"
+ && answer(check("NFD", "")) eq "YES"
+ && answer(check("NFC", "")) eq "YES"
+ && answer(check("NFKD","")) eq "YES"
+ && answer(check("NFKC","")) eq "YES"
+# U+0000 to U+007F are prenormalized in all the normalization forms.
+ && answer(checkNFD("AZaz\t12!#`")) eq "YES"
+ && answer(checkNFC("AZaz\t12!#`")) eq "YES"
+ && answer(checkNFKD("AZaz\t12!#`")) eq "YES"
+ && answer(checkNFKC("AZaz\t12!#`")) eq "YES"
+ && answer(check("D", "AZaz\t12!#`")) eq "YES"
+ && answer(check("C", "AZaz\t12!#`")) eq "YES"
+ && answer(check("KD","AZaz\t12!#`")) eq "YES"
+ && answer(check("KC","AZaz\t12!#`")) eq "YES"
+ ? "ok" : "not ok", " 9\n";
+
+print 1
+ && answer(checkNFD(NFD(pack('U*', 0xC1, 0x1100, 0x1173, 0x11AF)))) eq "YES"
+ && answer(checkNFD(pack('U*', 0x20, 0xC1, 0x1100, 0x1173, 0x11AF))) eq "NO"
+ && answer(checkNFC(pack('U*', 0x20, 0xC1, 0x1173, 0x11AF))) eq "MAYBE"
+ && answer(checkNFC(pack('U*', 0x20, 0xC1, 0xAE00, 0x1100))) eq "YES"
+ && answer(checkNFC(pack('U*', 0x20, 0xC1, 0xAE00, 0x1100, 0x300))) eq "MAYBE"
+ && answer(checkNFC(pack('U*', 0x20, 0xC1, 0xFF71, 0x2025))) eq "YES"
+ && answer(check("NFC", pack('U*', 0x20, 0xC1, 0x212B, 0x300))) eq "NO"
+ && answer(checkNFKD(pack('U*', 0x20, 0xC1, 0xFF71, 0x2025))) eq "NO"
+ && answer(checkNFKC(pack('U*', 0x20, 0xC1, 0xAE00, 0x2025))) eq "NO"
+ ? "ok" : "not ok", " 10\n";
if (!PL_compcv || !(cv = CvOUTSIDE(PL_compcv)))
croak("can't set attributes outside a subroutine scope");
if (ckWARN(WARN_DEPRECATED))
- Perl_warner(aTHX_ WARN_DEPRECATED,
+ Perl_warner(aTHX_ packWARN(WARN_DEPRECATED),
"pragma \"attrs\" is deprecated, "
"use \"sub NAME : ATTRS\" instead");
for (i = 1; i < items; i++) {
break;
case '\017': /* $^O & $^OPEN */
if (len == 1
- || (len == 4 && strEQ(name, "\027PEN")))
+ || (len == 4 && strEQ(name, "\017PEN")))
{
goto yes;
}
sed -e 's/HP-//' -e 1q`;
selecttype='int *'
fi
- # For some strange reason, the u32align test from Configure hangs in
- # HP-UX 10.20 since the December 2001 patches. So hint it to avoid
- # the test.
- if [ "$xxOsRevMajor" -le 10 ]; then
- d_u32align=$define
+
+# For some strange reason, the u32align test from Configure hangs in
+# HP-UX 10.20 since the December 2001 patches. So hint it to avoid
+# the test.
+if [ "$xxOsRevMajor" -le 10 ]; then
+ d_u32align=$define
fi
echo "Archname is $archname"
# Done too late in Configure if hinted
gccversion=`$cc --version`
fi
- case "$gccversion" in
- [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-(
- ccflags="$ccflags -DUINT32_MAX_BROKEN"
- ;;
- esac
+ case "$gccversion" in
+ [012]*) # HP-UX and gcc-2.* break UINT32_MAX :-(
+ ccflags="$ccflags -DUINT32_MAX_BROKEN"
+ ;;
+ esac
case "`getconf KERNEL_BITS 2>/dev/null`" in
*64*)
echo "main(){}">try.c
gnu_ld=yes
;;
*) # HPld
- case "$gccversion" in
- [12]*)
- ldflags="$ldflags -Wl,+vnocompatwarnings"
- ccflags="$ccflags -Wl,+vnocompatwarnings"
- ;;
- esac
+ case "$gccversion" in
+ [12]*)
+ ldflags="$ldflags -Wl,+vnocompatwarnings"
+ ccflags="$ccflags -Wl,+vnocompatwarnings"
+ ;;
+ esac
;;
esac
rm -f try.c
so='so'
;;
*)
- case "$uselongdouble" in
- *) ;;
- $define|true|[yY]*)
- cat <<EOM >&4
+ case "$uselongdouble" in
+ *) ;;
+ $define|true|[yY]*)
+ cat <<EOM >&4
*** long doubles are not (yet) supported on HP-UX (any version)
*** Until it does, we cannot continue, aborting.
EOM
- exit 1 ;;
- esac
+ exit 1 ;;
+ esac
;;
esac
esac
case "$optimize" in
*-O*|\
- *O2*) opt=`echo "$optimize" | sed -e 's/-O/+O2/' -e 's/O2/O1/' -e 's/ *+Onolimit//'`
+ *O2*) opt=`echo "$optimize" | sed -e 's/-O/+O2/' -e 's/O2/O1/' -e 's/ *+Onolimit//'`
;;
- *) opt="$optimize"
- ;;
- esac
+ *) opt="$optimize"
+ ;;
+ esac
if [ $maxdsiz -le 64 ]; then
- toke_cflags="$toke_cflags;optimize=\"$opt\""
- regexec_cflags="optimize=\"$opt\""
+ toke_cflags="$toke_cflags;optimize=\"$opt\""
+ regexec_cflags="optimize=\"$opt\""
fi
case "$archname" in
IA64*)
*) ccflags="$ccflags $ccflags_uselargefiles" ;;
esac
- if test -z "$ccisgcc" -a -z "$gccversion"; then
+ if test -z "$ccisgcc" -a -z "$gccversion"; then
# The strict ANSI mode (-Aa) doesn't like large files.
ccflags=`echo " $ccflags "|sed 's@ -Aa @ @g'`
case "$ccflags" in
if [ -f /usr/lib/libcma.sl ]; then
# DCE (from Core OS CD) is installed
- # Check if it is pristine, or patched
- cmavsn=`what /usr/lib/libcma.sl 2>&1 | grep 1996`
- if [ ! -z "$cmavsn" ]; then
- cat <<EOM >&4
+ # Check if it is pristine, or patched
+ cmavsn=`what /usr/lib/libcma.sl 2>&1 | grep 1996`
+ if [ ! -z "$cmavsn" ]; then
+ cat <<EOM >&4
\a
***************************************************************************
(sleeping for 10 seconds...)
EOM
- sleep 10
- fi
+ sleep 10
+ fi
# It needs # libcma and OLD_PTHREADS_API. Also
# <pthread.h> needs to be #included before any
cat > UU/usethreads.cbu <<'EOCBU'
case "$usethreads" in
$define|true|[yY]*)
- ccflags="-D_GNU_SOURCE -D_REENTRANT $ccflags"
+ ccflags="-D_REENTRANT -D_GNU_SOURCE $ccflags"
set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
shift
libswanted="$*"
+
# Somehow at least in Debian 2.2 these manage to escape
# the #define forest of <features.h> and <time.h> so that
# the hasproto macro of Configure doesn't see these protos,
- # regardless of the -D_GNU_SOURCE that should turn on everything.
+ # even with the -D_GNU_SOURCE.
+
d_asctime_r_proto="$define"
+ d_crypt_r_proto="$define"
d_ctime_r_proto="$define"
d_gmtime_r_proto="$define"
d_localtime_r_proto="$define"
+
;;
esac
EOCBU
# Ditto. (Solaris 7)
d_readdir_r_proto="$define"
d_readdir64_r_proto="$define"
+ d_tmpnam_r_proto="$define"
+ d_ttyname_r_proto="$define"
;;
esac
PERLVAR(IOpSlab,I32 *)
#endif
+PERLVAR(Iwantutf8, bool) /* want utf8 as the default discipline */
+
/* New variables must be added to the very end for binary compatibility.
* XSUB.h provides wrapper functions via perlapi.h that make this
* irrelevant, but not all code may be expected to #include XSUB.h. */
my @makeout;
+if ($^O eq 'VMS') { $make .= ' all'; }
print "# make = '$make'\n";
@makeout = `$make`;
if ($?) {
print "ok 3\n";
}
+if ($^O eq 'VMS') { $make =~ s{ all}{}; }
+
if ($Config{usedl}) {
print "ok 4\n";
} else {
package Getopt::Long;
-# RCS Status : $Id: GetoptLong.pm,v 2.54 2002-02-20 15:00:10+01 jv Exp $
+# RCS Status : $Id: GetoptLong.pm,v 2.55 2002-03-13 13:06:44+01 jv Exp $
# Author : Johan Vromans
# Created On : Tue Sep 11 15:00:12 1990
# Last Modified By: Johan Vromans
-# Last Modified On: Wed Feb 20 15:00:04 2002
-# Update Count : 1045
+# Last Modified On: Wed Mar 13 12:54:01 2002
+# Update Count : 1070
# Status : Released
################ Copyright ################
use strict;
use vars qw($VERSION);
-$VERSION = 2.28;
+$VERSION = 2.29;
# For testing versions only.
use vars qw($VERSION_STRING);
-$VERSION_STRING = "2.28";
+$VERSION_STRING = "2.29";
use Exporter;
sub ParseOptionSpec ($$);
sub OptCtl ($);
sub FindOption ($$$$);
-sub Croak (@); # demand loading the real Croak
################ Local Variables ################
}
if ( %atts ) { # Oops
- Getopt::Long::Croak(__PACKAGE__.": unhandled attributes: ".
- join(" ", sort(keys(%atts))));
+ die(__PACKAGE__.": unhandled attributes: ".
+ join(" ", sort(keys(%atts)))."\n");
}
$self;
$error = '';
print STDERR ("GetOpt::Long $Getopt::Long::VERSION (",
- '$Revision: 2.54 $', ") ",
+ '$Revision: 2.55 $', ") ",
"called from package \"$pkg\".",
"\n ",
"ARGV: (@ARGV)",
else {
print STDERR ("Invalid REF type \"", ref($linkage{$opt}),
"\" in linkage\n");
- Croak ("Getopt::Long -- internal error!\n");
+ die("Getopt::Long -- internal error!\n");
}
}
# No entry in linkage means entry in userlinkage.
}
if ( $dups && $^W ) {
- require 'Carp.pm';
- $Carp::CarpLevel = 2;
foreach ( split(/\n+/, $dups) ) {
- Carp::cluck($_);
+ warn($_."\n");
}
}
($names[0], $orig);
#### Look it up ###
- my $tryopt; # option to try
+ my $tryopt = $opt; # option to try
if ( $bundling && $starter eq '-' ) {
}
}
else {
- Croak ("GetOpt::Long internal error (Can't happen)\n");
+ die("GetOpt::Long internal error (Can't happen)\n");
}
return (1, $opt, $ctl, $arg, $key);
}
# Turn into regexp. Needs to be parenthesized!
$genprefix = "(" . quotemeta($genprefix) . ")";
eval { '' =~ /$genprefix/; };
- Croak ("Getopt::Long: invalid pattern \"$genprefix\"") if $@;
+ die("Getopt::Long: invalid pattern \"$genprefix\"") if $@;
}
elsif ( $try =~ /^prefix_pattern=(.+)$/ && $action ) {
$genprefix = $1;
$genprefix = "(" . $genprefix . ")"
unless $genprefix =~ /^\(.*\)$/;
eval { '' =~ /$genprefix/; };
- Croak ("Getopt::Long: invalid pattern \"$genprefix\"") if $@;
+ die("Getopt::Long: invalid pattern \"$genprefix\"") if $@;
}
elsif ( $try eq 'debug' ) {
$debug = $action;
}
else {
- Croak ("Getopt::Long: unknown config parameter \"$opt\"")
+ die("Getopt::Long: unknown config parameter \"$opt\"")
}
}
$prevconfig;
Configure (@_);
}
-# To prevent Carp from being loaded unnecessarily.
-sub Croak (@) {
- require 'Carp.pm';
- $Carp::CarpLevel = 1;
- Carp::croak(@_);
-};
-
################ Documentation ################
=head1 NAME
+Changes in version 2.29
+-----------------------
+
+* Fix a problem where options were not recognized when both
+ auto_abbrev and ignore_case were disabled. Thanks to Seth Robertson
+ <seth@systemdetection.com>.
+
+* Remove Carp.
+
Changes in version 2.28
-----------------------
if (/^=(head[1-6])\s+(.*\S)/s) { # =head[1-6] heading
process_head( $1, $2, $doindex && $index );
} elsif (/^=item\s*(.*\S)?/sm) { # =item text
- warn "$0: $podfile: =item without bullet, number or text"
- . " in paragraph $paragraph.\n" if !defined($1) or $1 eq '';
$need_dd = process_item( $1 );
$after_item = 1;
} elsif (/^=over\s*(.*)/) { # =over N
untie @a;
# (79) We can't use check_contents any more, because the object is dead
open F, "< $file" or die;
+binmode F;
{ local $/ ; $z = <F> }
close F;
my $x = join("$:", qw(flushed recordB recordE
}
}
+sub matchlex {
+ (my $var = $_[0]) =~ s/.//;
+ $var eq $_[1] or
+ ($_[1] =~ /^([!~])(.)([\x00-\xff]*)/) and
+ ($1 eq '!') ^ (eval { $var =~ /$2$3/ });
+}
+
sub matchvar {
$_[0] eq $_[1] or
($_[1] =~ /^([!~])(.)([\x00-\xff]*)/) and
}
}
+sub dumplex {
+ return if $DB::signal;
+ my ($key, $val, $m, @vars) = @_;
+ return if @vars && !grep( matchlex($key, $_), @vars );
+ local %address;
+ my $off = 0; # It reads better this way
+ my $fileno;
+ if (UNIVERSAL::isa($val,'ARRAY')) {
+ print( (' ' x $off) . "$key = (\n" );
+ unwrap($val,3+$off,$m) ;
+ print( (' ' x $off) . ")\n" );
+ }
+ elsif (UNIVERSAL::isa($val,'HASH')) {
+ print( (' ' x $off) . "$key = (\n" );
+ unwrap($val,3+$off,$m) ;
+ print( (' ' x $off) . ")\n" );
+ }
+ elsif (UNIVERSAL::isa($val,'IO')) {
+ print( (' ' x $off) . "FileHandle($key) => fileno($fileno)\n" );
+ }
+ # No lexical subroutines yet...
+ # elsif (UNIVERSAL::isa($val,'CODE')) {
+ # dumpsub($off, $$val);
+ # }
+ else {
+ print( (' ' x $off) . &unctrl($key), " = " );
+ DumpElem $$val, 3+$off, $m;
+ }
+}
+
sub CvGV_name_or_bust {
my $in = shift;
return if $skipCvGV; # Backdoor to avoid problems if XS broken...
} elsif ($country_language =~ /^zh_CN|chin(?:a|ese)?$/i) {
$locale_encoding = 'euc-cn';
} elsif ($country_language =~ /^zh_TW|taiwan(?:ese)?$/i) {
- $locale_encoding = 'big5';
+ $locale_encoding = 'euc-tw';
}
croak "Locale encoding 'euc' too ambiguous"
if $locale_encoding eq 'euc';
}
$std = 1;
} else {
- unless(PerlIO::Layer::->find($layer)) {
+ my $target = $layer; # the layer name itself
+ $target =~ s/^(\w+)\(.+\)$/$1/; # strip parameters
+
+ unless(PerlIO::Layer::->find($target)) {
carp("Unknown discipline layer '$layer'");
}
}
=back
+If your locale environment variables (LANGUAGE, LC_ALL, LC_CTYPE, LANG)
+contain the strings 'UTF-8' or 'UTF8' (case-insensitive matching),
+the default encoding of your STDIN, STDOUT, and STDERR, and of
+B<any subsequent file open>, is UTF-8.
+
Directory handles may also support disciplines in future.
=head1 NONPERLIO FUNCTIONALITY
# + m(methods), M(modules) # ... (was m,v)
# + o(option) # lc (was O)
# + v(view code), V(view Variables) # ... (was w,V)
+# Changes: 1.18: Mar 17, 2002 Richard Foley <richard.foley@rfi.net>
+# + fixed missing cmd_O bug
#
####################################################################
my $call = 'cmd_'.(
$set{$CommandSet}{$cmd} || $cmd
);
- # print "rjsf: cmd_wrapper($cmd): $CommandSet($set{$CommandSet}{$cmd}) => call($call)\n";
+ # print "cmd_wrapper($cmd): $CommandSet($set{$CommandSet}{$cmd}) => call($call)\n";
return &$call($line, $dblineno);
}
}
}
+sub cmd_O {
+ print $OUT "The old O command is now the o command.\n"; # hint
+ print $OUT "Use 'h' to get current command help synopsis or\n"; #
+ print $OUT "use 'o CommandSet=pre580' to revert to old usage\n"; #
+}
+
sub cmd_v {
my $line = shift;
B<S> [[B<!>]I<pat>] List subroutine names [not] matching pattern
B<V> [I<Pk> [I<Vars>]] List Variables in Package. Vars can be ~pattern or !pattern.
B<X> [I<Vars>] Same as \"B<V> I<current_package> [I<Vars>]\".
+ B<y> [I<n> [I<Vars>]] List lexicals in higher scope <n>. Vars same as B<V>.
For more help, type B<h> I<cmd_letter>, or run B<$doccmd perldebug> for all docs.
END_SUM
# ')}}; # Fix balance of vi % matching
B<S> [[B<!>]I<pat>] List subroutine names [not] matching pattern
B<V> [I<Pk> [I<Vars>]] List Variables in Package. Vars can be ~pattern or !pattern.
B<X> [I<Vars>] Same as \"B<V> I<current_package> [I<Vars>]\".
+ B<y> [I<n> [I<Vars>]] List lexicals in higher scope <n>. Vars same as B<V>.
For more help, type B<h> I<cmd_letter>, or run B<$doccmd perldebug> for all docs.
END_SUM
# ')}}; # Fix balance of vi % matching
# include <locale.h>
#endif
+#ifdef I_LANGINFO
+# include <langinfo.h>
+#endif
+
/*
* Standardize the locale name from a string returned by 'setlocale'.
*
#ifdef USE_LOCALE_NUMERIC
new_numeric(curnum);
#endif /* USE_LOCALE_NUMERIC */
+
}
#endif /* USE_LOCALE */
+ {
+ bool wantutf8 = FALSE;
+ char *codeset = NULL;
+#if defined(HAS_NL_LANGINFO) && defined(CODESET)
+ codeset = nl_langinfo(CODESET);
+#endif
+ if (codeset &&
+ (ibcmp(codeset, "UTF-8", 5) == 0 ||
+ ibcmp(codeset, "UTF8", 4) == 0))
+ wantutf8 = TRUE;
+#ifdef __GLIBC__
+ if (!wantutf8 && language &&
+ (ibcmp(language, "UTF-8", 5) == 0 ||
+ ibcmp(language, "UTF8", 4) == 0))
+ wantutf8 = TRUE;
+#endif
+ if (!wantutf8 && lc_all &&
+ (ibcmp(lc_all, "UTF-8", 5) == 0 ||
+ ibcmp(lc_all, "UTF8", 4) == 0))
+ wantutf8 = TRUE;
+#ifdef USE_LOCALE_CTYPE
+ if (!wantutf8 && curctype &&
+ (ibcmp(curctype, "UTF-8", 5) == 0 ||
+ ibcmp(curctype, "UTF8", 4) == 0))
+ wantutf8 = TRUE;
+#endif
+ if (!wantutf8 && lang &&
+ (ibcmp(lang, "UTF-8", 5) == 0 ||
+ ibcmp(lang, "UTF8", 4) == 0))
+ wantutf8 = TRUE;
+ if (wantutf8)
+ PL_wantutf8 = TRUE;
+ }
+
#ifdef USE_LOCALE_CTYPE
if (curctype != NULL)
Safefree(curctype);
if (flag == P_NOWAIT)
flag = P_PM;
else if ((flag & 7) != P_PM && (flag & 7) != P_SESSION)
- Perl_warner(aTHX_ WARN_EXEC, "Starting PM process with flag=%d, mytype=%d",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Starting PM process with flag=%d, mytype=%d",
flag, os2_mytype);
}
}
if (flag == P_NOWAIT)
flag = P_SESSION;
else if ((flag & 7) != P_SESSION)
- Perl_warner(aTHX_ WARN_EXEC, "Starting Full Screen process with flag=%d, mytype=%d",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Starting Full Screen process with flag=%d, mytype=%d",
flag, os2_mytype);
}
}
}
if (PerlIO_close(file) != 0) { /* Failure */
panic_file:
- Perl_warner(aTHX_ WARN_EXEC, "Error reading \"%s\": %s",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Error reading \"%s\": %s",
scr, Strerror(errno));
buf = ""; /* Not #! */
goto doshell_args;
*s++ = 0;
}
if (nargs == -1) {
- Perl_warner(aTHX_ WARN_EXEC, "Too many args on %.*s line of \"%s\"",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Too many args on %.*s line of \"%s\"",
s1 - buf, buf, scr);
nargs = 4;
argsp = fargs;
}
}
if (rc < 0 && ckWARN(WARN_EXEC))
- Perl_warner(aTHX_ WARN_EXEC, "Can't %s \"%s\": %s\n",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't %s \"%s\": %s\n",
((execf != EXECF_EXEC && execf != EXECF_TRUEEXEC)
? "spawn" : "exec"),
PL_Argv[0], Strerror(errno));
rc = result(aTHX_ P_WAIT,
spawnl(P_NOWAIT,shell,shell,copt,cmd,(char*)0));
if (rc < 0 && ckWARN(WARN_EXEC))
- Perl_warner(aTHX_ WARN_EXEC, "Can't %s \"%s\": %s",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't %s \"%s\": %s",
(execf == EXECF_SPAWN ? "spawn" : "exec"),
shell, Strerror(errno));
if (rc < 0)
#if !defined(PERL_PATCHLEVEL_H_IMPLICIT) && !defined(LOCAL_PATCH_COUNT)
static char *local_patches[] = {
NULL
- ,"DEVEL15299"
+ ,"DEVEL15372"
,NULL
};
if (!PL_do_undump)
init_postdump_symbols(argc,argv,env);
+ if (PL_wantutf8) { /* Requires init_predump_symbols(). */
+ IO* io;
+ PerlIO* fp;
+ SV* sv;
+ if (PL_stdingv && (io = GvIO(PL_stdingv)) && (fp = IoIFP(io)))
+ PerlIO_binmode(aTHX_ fp, IoTYPE(io), 0, ":utf8");
+ if (PL_defoutgv && (io = GvIO(PL_defoutgv)) && (fp = IoOFP(io)))
+ PerlIO_binmode(aTHX_ fp, IoTYPE(io), 0, ":utf8");
+ if (PL_stderrgv && (io = GvIO(PL_stderrgv)) && (fp = IoOFP(io)))
+ PerlIO_binmode(aTHX_ fp, IoTYPE(io), 0, ":utf8");
+ if ((sv = GvSV(gv_fetchpv("\017PEN", TRUE, SVt_PV)))) {
+ sv_setpvn(sv, ":utf8\0:utf8", 11);
+ SvSETMAGIC(sv);
+ }
+ }
+
init_lexer();
/* now parse the script */
#define PL_utf8_xdigit (*Perl_Iutf8_xdigit_ptr(aTHX))
#undef PL_uudmap
#define PL_uudmap (*Perl_Iuudmap_ptr(aTHX))
+#undef PL_wantutf8
+#define PL_wantutf8 (*Perl_Iwantutf8_ptr(aTHX))
#undef PL_warnhook
#define PL_warnhook (*Perl_Iwarnhook_ptr(aTHX))
#undef PL_widesyscalls
=head2 Writing Your Own Debugger
=head3 Environment Variables
-
+
The C<PERL5DB> environment variable can be used to define a debugger.
For example, the minimal "working" debugger (it actually doesn't do anything)
consists of one line:
-
+
sub DB::DB {}
It can easily be defined like this:
-
+
$ PERL5DB="sub DB::DB {}" perl -d your-script
Another brief debugger, slightly more useful, can be created
This debugger prints a number which increments for each statement
encountered and waits for you to hit a newline before continuing
to the next statement.
-
+
The following debugger is actually useful:
-
+
{
package DB;
sub DB {}
Same as C<V currentpackage [vars]>.
+=item y [level [vars]]
+
+Display all (or some) lexical variables (mnemonic: C<mY> variables)
+in the current scope or I<level> scopes higher. You can limit the
+variables that you see with I<vars> which works exactly as it does
+for the C<V> and C<X> commands. Requires the C<PadWalker> module
+version 0.08 or higher; will warn if this isn't installed. Output
+is pretty-printed in the same style as for C<V> and the format is
+controlled by the same options.
+
=item T
Produce a stack backtrace. See below for details on its output.
creates a pipe, and runs the equivalent of exec('cat', '/etc/motd') in
the child process.
+=item *
+
+If your locale environment variables (LANGUAGE, LC_ALL, LC_CTYPE, LANG)
+contain the strings 'UTF-8' or 'UTF8' (case-insensitive matching),
+the default encoding of your STDIN, STDOUT, and STDERR, and of
+B<any subsequent file open>, is UTF-8.
+
=back
=head2 Safe Signals
Unicode in general should be now much more usable than in Perl 5.6.0
(or even in 5.6.1). Unicode can be used in hash keys, Unicode in
regular expressions should work now, Unicode in tr/// should work now,
-Unicode in I/O should work now.
+Unicode in I/O should work now. See L<perluniintro> for introduction
+and L<perlunicode> for details.
=over 4
C<Encode>, by Nick Ing-Simmons, provides a mechanism to translate
between different character encodings. Support for Unicode,
ISO-8859-*, ASCII, CP*, KOI8-R, and three variants of EBCDIC are
-compiled in to the module. Several other encodings (like Japanese,
-Chinese, and MacIntosh encodings) are included and will be loaded at
-runtime. See L<Encode>.
+compiled in to the module. Several other encodings (like Chinese,
+Japanese, Korean, and MacIntosh encodings) are included and will be
+loaded at runtime. (For space considerations, the largest Chinese
+encodings have been separated into their own CPAN module,
+Encode::HanExtra). See L<Encode>.
Any encoding supported by Encode module is also available to the
":encoding()" layer if PerlIO is used.
=item *
-perl5db.pl has been modified to present a more consistent commands
-interface, via (CommandSet=580). perl5db.t was also added to test the
-changes, and as a placeholder for further tests.
+The debugger (perl5db.pl) has been modified to present a more
+consistent commands interface, via (CommandSet=580). perl5db.t was
+also added to test the changes, and as a placeholder for further tests.
-See L<perldebug>
+See L<perldebug>.
=item *
=item *
+The debugger can now show lexical variables if you have the CPAN
+module PadWalker installed.
+
+=item *
+
If an attempt to use a (non-blessed) reference as an array index
is made, a warning is given.
t/op/stat.t subtest #9 fail. This is caused by Darwin's UFS not
supporting inode change time.
-=head2 OS/390
+=head2 z/OS (OS/390)
-OS/390 has rather many test failures but the situation is actually
+z/OS has rather many test failures but the situation is actually
better than it was in 5.6.0, it's just that so many new modules and
tests have been added.
- ../ext/B/t/deparse.t 17 1 5.88% 14
+ Failed Test Stat Wstat Total Fail Failed List of Failed
+ -------------------------------------------------------------------------
../ext/Data/Dumper/t/dumper.t 321 2 0.62% 311 314
../ext/IO/lib/IO/t/io_unix.t 5 4 80.00% 2-5
../lib/utf8.t 94 13 13.83% 27 30-31 43 46 73
76 79 82 85 88 91
94
../lib/Benchmark.t 1 256 159 1 0.63% 75
+ ../lib/ExtUtils/t/Constant.t 27 19 70.37% 5-23
../lib/ExtUtils/t/Embed.t 9 9 100.00% 1-9
- ../lib/ExtUtils/t/ExtUtils.t 27 19 70.37% 5-23
op/pat.t 864 9 1.04% 242-243 665 776
785 832-834 845
op/sprintf.t 224 3 1.34% 98 100 136
=head2 UNICOS
+ Failed Test Stat Wstat Total Fail Failed List of Failed
+ -------------------------------------------------------------------------
../ext/Socket/socketpair.t 1 256 45 1 2.22% 12
../lib/Math/Trig.t 26 1 3.85% 25
../lib/warnings.t 460 1 0.22% 425
=head2 Win32
In multi-CPU boxes there are some problems with the I/O buffering:
-some output may appear twice. The Win32 following failures are known
+some output may appear twice. The following Win32 failures are known
as of 5.7.3:
- ..\ext/Encode/t/JP.t 4 1024 22 4 18.18% 9 14 18 21
+ Failed Test Stat Wstat Total Fail Failed List of Failed
+ -------------------------------------------------------------------------
..\ext/threads/t/end.t 6 4 66.67% 3-6
- ..\lib/blib.t 3 768 7 3 42.86% 1 4-5
=head2 Localising a Tied Variable Leaks Memory
equal I<A with acute> or chr(101), and unpack("U", "A") would equal
65, or I<non-breaking space>, not 193, or ord "A".)
+=head2 Remaining Perl Unicode problems in EBCDIC
+
+=over 4
+
+=item *
+
+Many of the remaining seem to be related to case-insensitive matching:
+for example, C<< /[\x{131}]/ >> (LATIN SMALL LETTER DOTLESS I) does
+not match "I" case-insensitively, as it should under Unicode.
+(The match succeeds in ASCII-derived platforms.)
+
+=item *
+
+The extensions Unicode::Collate and Unicode::Normalized are not
+supported under EBCDIC, likewise for the encoding pragma.
+
+=back
+
=head2 Unicode and UTF
UTF is a Unicode Transformation Format. UTF-8 is a Unicode conforming
open FILE, "<", " file "; # filename is " file "
open FILE, ">", ">file"; # filename is ">file"
-
It may be a lot clearer to use sysopen(), though:
decoding a URL and checking whether something is a number are handled
with regular expressions, but those answers are found elsewhere in
this document (in L<perlfaq9>: ``How do I decode or create those %-encodings
-on the web'' and L<perfaq4>: ``How do I determine whether a scalar is
+on the web'' and L<perlfaq4>: ``How do I determine whether a scalar is
a number/whole/integer/float'', to be precise).
=head2 How can I hope to use regular expressions without creating illegible and unmaintainable code?
unpack() C's C<struct {char c; double d; char cc[2]}> one may need to
use the template C<C x![d] d C[2]>; this assumes that doubles must be
aligned on the double's size.
-
+
For alignment commands C<count> of 0 is equivalent to C<count> of 1;
both result in no-ops.
-
+
=item *
A comment in a TEMPLATE starts with C<#> and goes to the end of line.
from the set of macros C<PERL_MAGIC_foo> found perl.h. Note that before
these macros were added, Perl internals used to directly use character
literals, so you may occasionally come across old code or documentation
-referrring to 'U' magic rather than C<PERL_MAGIC_uvar> for example.
+referring to 'U' magic rather than C<PERL_MAGIC_uvar> for example.
The C<obj> argument is stored in the C<mg_obj> field of the C<MAGIC>
structure. If it is not the same as the C<sv> argument, the reference
into bankers, bikers, gamers, and so on. But, for now, it's the only
standard we've got. This may be construed as a bug.
+=head1 Unicode and UTF-8
+
+The support of Unicode is new starting from Perl version 5.6, and
+more fully implemented in the version 5.8. See L<perluniintro> and
+L<perlunicode> for more details.
+
+Usually locale settings and Unicode do not affect each other, but
+there are exceptions, see L<perlunicode/Locales> for examples.
+
=head1 BUGS
=head2 Broken systems
=head1 SEE ALSO
-L<I18N::Langinfo>, L<POSIX/isalnum>, L<POSIX/isalpha>,
+L<I18N::Langinfo>, L<perluniintro>, L<perlunicode>, L<open>,
+L<POSIX/isalnum>, L<POSIX/isalpha>,
L<POSIX/isdigit>, L<POSIX/isgraph>, L<POSIX/islower>,
L<POSIX/isprint>, L<POSIX/ispunct>, L<POSIX/isspace>,
L<POSIX/isupper>, L<POSIX/isxdigit>, L<POSIX/localeconv>,
Access permissions are mapped onto VOS access-control list changes. (VOS)
+The actual permissions set depend on the value of the C<CYGWIN>
+in the SYSTEM environment settings. (Cygwin)
+
=item chown LIST
Not implemented. (S<Mac OS>, Win32, Plan9, S<RISC OS>, VOS)
=back
+=item Unicode and UTF-8
+
=item BUGS
=over 4
=item Perl's Unicode Model
+=item Unicode and EBCDIC
+
=item Creating Unicode
=item Handling Unicode
=item Unicode in Perl on EBCDIC
+=item Locales
+
=item Using Unicode in XS
=back
=item BUGS
+=item SEE ALSO
+
=back
=head2 perlebcdic - Considerations for running Perl on EBCDIC platforms
=item POSIX-BC
+=item Unicode code points versus EBCDIC code points
+
+=item Remaining Perl Unicode problems in EBCDIC
+
=item Unicode and UTF
=item Using Encode
=item Pragmatic Modules
-attributes, autouse, base, blib, bytes, charnames, constant, diagnostics,
-encoding, fields, filetest, integer, less, locale, open, overload, sigtrap,
-sort, strict, subs, utf8, vars, vmsish, warnings, warnings::register
+attributes, attrs, autouse, base, blib, bytes, charnames, constant,
+diagnostics, encoding, fields, filetest, if, integer, less, locale, open,
+ops, overload, re, sigtrap, sort, strict, subs, threads, utf8, vars,
+vmsish, warnings, warnings::register
=item Standard Modules
-AnyDBM_File, Attribute::Handlers, AutoLoader, AutoSplit, Benchmark, CGI,
-CGI::Apache, CGI::Carp, CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push,
-CGI::Switch, CGI::Util, CPAN, CPAN::FirstTime, CPAN::Nox, Carp,
-Carp::Heavy, Class::ISA, Class::Struct, Cwd, DB, Devel::SelfStubber,
-Digest, DirHandle, Dumpvalue, English, Env, Exporter, Exporter::Heavy,
+AnyDBM_File, Attribute::Handlers, AutoLoader, AutoSplit, B, B::Asmdata,
+B::Assembler, B::Bblock, B::Bytecode, B::C, B::CC, B::Concise, B::Debug,
+B::Deparse, B::Disassembler, B::Lint, B::Showlex, B::Stackobj, B::Stash,
+B::Terse, B::Xref, Benchmark, ByteLoader, CGI, CGI::Apache, CGI::Carp,
+CGI::Cookie, CGI::Fast, CGI::Pretty, CGI::Push, CGI::Switch, CGI::Util,
+CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Carp::Heavy, Class::ISA,
+Class::Struct, Cwd, DB, DB_File, Devel::SelfStubber, Digest, DirHandle,
+Dumpvalue, Encode, English, Env, Exporter, Exporter::Heavy,
ExtUtils::Command, ExtUtils::Constant, ExtUtils::Embed, ExtUtils::Install,
-ExtUtils::Installed, ExtUtils::Liblist, ExtUtils::MM_Cygwin,
-ExtUtils::MM_NW5, ExtUtils::MM_OS2, ExtUtils::MM_Unix, ExtUtils::MM_VMS,
-ExtUtils::MM_Win32, ExtUtils::MakeMaker, ExtUtils::Manifest,
-ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, ExtUtils::Packlist,
-ExtUtils::testlib, Fatal, File::Basename, File::CheckTree, File::Compare,
-File::Copy, File::DosGlob, File::Find, File::Path, File::Spec,
-File::Spec::Cygwin, File::Spec::Epoc, File::Spec::Functions,
-File::Spec::Mac, File::Spec::OS2, File::Spec::Unix, File::Spec::VMS,
-File::Spec::Win32, File::Temp, File::stat, FileCache, FileHandle,
-Filter::Simple, FindBin, Getopt::Long, Getopt::Std, I18N::Collate,
-I18N::LangTags, I18N::LangTags::List, IPC::Open2, IPC::Open3,
-Locale::Constants, Locale::Country, Locale::Currency, Locale::Language,
-Locale::Maketext, Locale::Maketext::TPJ13, Math::BigFloat, Math::BigInt,
-Math::BigInt::Calc, Math::Complex, Math::Trig, Memoize,
-Memoize::AnyDBM_File, Memoize::Expire, Memoize::ExpireFile,
-Memoize::ExpireTest, Memoize::NDBM_File, Memoize::SDBM_File,
-Memoize::Storable, NEXT, Net::Cmd, Net::Config, Net::Domain, Net::FTP,
-Net::NNTP, Net::Netrc, Net::POP3, Net::Ping, Net::SMTP, Net::Time,
-Net::hostent, Net::libnetFAQ, Net::netent, Net::protoent, Net::servent,
-PerlIO, Pod::Checker, Pod::Find, Pod::Functions, Pod::Html,
-Pod::InputObjects, Pod::LaTeX, Pod::Man, Pod::ParseLink, Pod::ParseUtils,
-Pod::Parser, Pod::Plainer, Pod::Select, Pod::Text, Pod::Text::Color,
+ExtUtils::Installed, ExtUtils::Liblist, ExtUtils::MM_BeOS,
+ExtUtils::MM_Cygwin, ExtUtils::MM_NW5, ExtUtils::MM_OS2, ExtUtils::MM_Unix,
+ExtUtils::MM_VMS, ExtUtils::MM_Win32, ExtUtils::MakeMaker,
+ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists,
+ExtUtils::Packlist, ExtUtils::testlib, Fatal, Fcntl, File::Basename,
+File::CheckTree, File::Compare, File::Copy, File::DosGlob, File::Find,
+File::Path, File::Spec, File::Spec::Cygwin, File::Spec::Epoc,
+File::Spec::Functions, File::Spec::Mac, File::Spec::OS2, File::Spec::Unix,
+File::Spec::VMS, File::Spec::Win32, File::Temp, File::stat, FileCache,
+FileHandle, Filter::Simple, FindBin, Getopt::Long, Getopt::Std, Hash::Util,
+I18N::Collate, I18N::LangTags, I18N::LangTags::List, IO, IPC::Open2,
+IPC::Open3, Locale::Constants, Locale::Country, Locale::Currency,
+Locale::Language, Locale::Maketext, Locale::Maketext::TPJ13,
+Locale::Script, Math::BigFloat, Math::BigInt, Math::BigInt::Calc,
+Math::Complex, Math::Trig, Memoize, Memoize::AnyDBM_File, Memoize::Expire,
+Memoize::ExpireFile, Memoize::ExpireTest, Memoize::NDBM_File,
+Memoize::SDBM_File, Memoize::Storable, NDBM_File, NEXT, Net::Cmd,
+Net::Config, Net::Domain, Net::FTP, Net::NNTP, Net::Netrc, Net::POP3,
+Net::Ping, Net::SMTP, Net::Time, Net::hostent, Net::libnetFAQ, Net::netent,
+Net::protoent, Net::servent, O, ODBM_File, Opcode, POSIX, PerlIO,
+Pod::Checker, Pod::Find, Pod::Functions, Pod::Html, Pod::InputObjects,
+Pod::LaTeX, Pod::Man, Pod::ParseLink, Pod::ParseUtils, Pod::Parser,
+Pod::Plainer, Pod::Select, Pod::Text, Pod::Text::Color,
Pod::Text::Overstrike, Pod::Text::Termcap, Pod::Usage, Pod::t::basic,
-Search::Dict, SelectSaver, SelfLoader, Shell, Switch, Symbol,
-Term::ANSIColor, Term::Cap, Term::Complete, Term::ReadLine, Test,
-Test::Builder, Test::Harness, Test::More, Test::Simple, Test::Tutorial,
-Text::Abbrev, Text::Balanced, Text::ParseWords, Text::Soundex, Text::Tabs,
-Text::Wrap, Thread, Tie::Array, Tie::Handle, Tie::Hash, Tie::RefHash,
-Tie::Scalar, Tie::SubstrHash, Time::Local, Time::gmtime, Time::localtime,
-Time::tm, UNIVERSAL, Unicode::Collate, Unicode::UCD, User::grent,
-User::pwent, Win32
+SDBM_File, Safe, Search::Dict, SelectSaver, SelfLoader, Shell, Socket,
+Storable, Switch, Symbol, Term::ANSIColor, Term::Cap, Term::Complete,
+Term::ReadLine, Test, Test::Builder, Test::Harness, Test::Harness::Assert,
+Test::Harness::Iterator, Test::Harness::Straps, Test::More, Test::Simple,
+Test::Tutorial, Text::Abbrev, Text::Balanced, Text::ParseWords,
+Text::Soundex, Text::Tabs, Text::Wrap, Thread, Tie::Array, Tie::File,
+Tie::Handle, Tie::Hash, Tie::Memoize, Tie::RefHash, Tie::Scalar,
+Tie::SubstrHash, Time::Local, Time::gmtime, Time::localtime, Time::tm,
+UNIVERSAL, Unicode::Collate, Unicode::UCD, User::grent, User::pwent, Win32
=item Extension Modules
=item Sort out the uid-setting mess
+=item Custom opcodes
+
=item DLL Versioning
=item Introduce @( and @)
-h, -l, -p[rocedures], -h[eavy], -i[nvocations], -l[ines], -testcoverage,
-z[ero]
+=item Miscellaneous tricks
+
=item CONCLUSION
I<The Road goes ever on and on, down from the door where it began.>
=item Utility functions
$num_octets = utf8::upgrade($string);, utf8::downgrade($string[, CHECK]),
-utf8::encode($string), $flag = utf8::decode($string)
+utf8::encode($string), $flag = utf8::decode($string), $flag =
+utf8::valid(STRING)
=back
regex_padav, sv_undef, sv_yes, sv_no, amagic_generation, walkoptree(OP,
METHOD), walkoptree_debug(DEBUG), walksymtable(SYMREF, METHOD, RECURSE,
PREFIX), svref_2object(SV), ppname(OPNUM), hash(STR), cast_I32(I), minus_c,
-cstring(STR), class(OBJ), threadsv_names
+cstring(STR), perlstring(STR), class(OBJ), threadsv_names
=item AUTHOR
=item OPTIONS
-C<-oFILENAME>, C<-r>, C<-D[tO]>
+C<-oFILENAME>, C<-r>, C<-d>, C<-D[tO]>
=item BUGS
C<afs>, C<afsroot>, C<alignbytes>, C<ansi2knr>, C<aphostname>,
C<api_revision>, C<api_subversion>, C<api_version>, C<api_versionstring>,
C<ar>, C<archlib>, C<archlibexp>, C<archname64>, C<archname>, C<archobjs>,
-C<awk>
+C<asctime_r_proto>, C<awk>
=item b
C<cf_email>, C<cf_time>, C<charsize>, C<chgrp>, C<chmod>, C<chown>,
C<clocktype>, C<comm>, C<compress>, C<contains>, C<cp>, C<cpio>, C<cpp>,
C<cpp_stuff>, C<cppccsymbols>, C<cppflags>, C<cpplast>, C<cppminus>,
-C<cpprun>, C<cppstdin>, C<cppsymbols>, C<cryptlib>, C<csh>
+C<cpprun>, C<cppstdin>, C<cppsymbols>, C<crypt_r_proto>, C<cryptlib>,
+C<csh>, C<ctermid_r_proto>, C<ctime_r_proto>
=item d
C<d__fwalk>, C<d_access>, C<d_accessx>, C<d_alarm>, C<d_archlib>,
-C<d_atolf>, C<d_atoll>, C<d_attribut>, C<d_bcmp>, C<d_bcopy>,
-C<d_bincompat5005>, C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>, C<d_bzero>,
-C<d_casti32>, C<d_castneg>, C<d_charvspr>, C<d_chown>, C<d_chroot>,
-C<d_chsize>, C<d_class>, C<d_closedir>, C<d_cmsghdr_s>, C<d_const>,
-C<d_crypt>, C<d_csh>, C<d_cuserid>, C<d_dbl_dig>, C<d_dbminitproto>,
-C<d_difftime>, C<d_dirfd>, C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>,
-C<d_dlsymun>, C<d_dosuid>, C<d_drand48proto>, C<d_dup2>, C<d_eaccess>,
-C<d_endgrent>, C<d_endhent>, C<d_endnent>, C<d_endpent>, C<d_endpwent>,
-C<d_endsent>, C<d_eofnblk>, C<d_eunice>, C<d_fchdir>, C<d_fchmod>,
-C<d_fchown>, C<d_fcntl>, C<d_fcntl_can_lock>, C<d_fd_macros>, C<d_fd_set>,
+C<d_asctime_r>, C<d_atolf>, C<d_atoll>, C<d_attribut>, C<d_bcmp>,
+C<d_bcopy>, C<d_bincompat5005>, C<d_bsd>, C<d_bsdgetpgrp>, C<d_bsdsetpgrp>,
+C<d_bzero>, C<d_casti32>, C<d_castneg>, C<d_charvspr>, C<d_chown>,
+C<d_chroot>, C<d_chsize>, C<d_class>, C<d_closedir>, C<d_cmsghdr_s>,
+C<d_const>, C<d_crypt>, C<d_crypt_r>, C<d_csh>, C<d_ctermid_r>,
+C<d_ctime_r>, C<d_cuserid>, C<d_dbl_dig>, C<d_dbminitproto>, C<d_difftime>,
+C<d_dirfd>, C<d_dirnamlen>, C<d_dlerror>, C<d_dlopen>, C<d_dlsymun>,
+C<d_dosuid>, C<d_drand48_r>, C<d_drand48proto>, C<d_dup2>, C<d_eaccess>,
+C<d_endgrent>, C<d_endgrent_r>, C<d_endhent>, C<d_endhostent_r>,
+C<d_endnent>, C<d_endnetent_r>, C<d_endpent>, C<d_endprotoent_r>,
+C<d_endpwent>, C<d_endpwent_r>, C<d_endsent>, C<d_endservent_r>,
+C<d_eofnblk>, C<d_eunice>, C<d_fchdir>, C<d_fchmod>, C<d_fchown>,
+C<d_fcntl>, C<d_fcntl_can_lock>, C<d_fd_macros>, C<d_fd_set>,
C<d_fds_bits>, C<d_fgetpos>, C<d_finite>, C<d_finitel>, C<d_flexfnam>,
C<d_flock>, C<d_flockproto>, C<d_fork>, C<d_fp_class>, C<d_fpathconf>,
C<d_fpclass>, C<d_fpclassify>, C<d_fpclassl>, C<d_fpos64_t>, C<d_frexpl>,
C<d_fs_data_s>, C<d_fseeko>, C<d_fsetpos>, C<d_fstatfs>, C<d_fstatvfs>,
C<d_fsync>, C<d_ftello>, C<d_ftime>, C<d_Gconvert>, C<d_getcwd>,
-C<d_getespwnam>, C<d_getfsstat>, C<d_getgrent>, C<d_getgrps>,
-C<d_gethbyaddr>, C<d_gethbyname>, C<d_gethent>, C<d_gethname>,
-C<d_gethostprotos>, C<d_getitimer>, C<d_getlogin>, C<d_getmnt>,
+C<d_getespwnam>, C<d_getfsstat>, C<d_getgrent>, C<d_getgrent_r>,
+C<d_getgrgid_r>, C<d_getgrnam_r>, C<d_getgrps>, C<d_gethbyaddr>,
+C<d_gethbyname>, C<d_gethent>, C<d_gethname>, C<d_gethostbyaddr_r>,
+C<d_gethostbyname_r>, C<d_gethostent_r>, C<d_gethostprotos>,
+C<d_getitimer>, C<d_getlogin>, C<d_getlogin_r>, C<d_getmnt>,
C<d_getmntent>, C<d_getnbyaddr>, C<d_getnbyname>, C<d_getnent>,
+C<d_getnetbyaddr_r>, C<d_getnetbyname_r>, C<d_getnetent_r>,
C<d_getnetprotos>, C<d_getpagsz>, C<d_getpbyname>, C<d_getpbynumber>,
C<d_getpent>, C<d_getpgid>, C<d_getpgrp2>, C<d_getpgrp>, C<d_getppid>,
-C<d_getprior>, C<d_getprotoprotos>, C<d_getprpwnam>, C<d_getpwent>,
-C<d_getsbyname>, C<d_getsbyport>, C<d_getsent>, C<d_getservprotos>,
-C<d_getspnam>, C<d_gettimeod>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>,
+C<d_getprior>, C<d_getprotobyname_r>, C<d_getprotobynumber_r>,
+C<d_getprotoent_r>, C<d_getprotoprotos>, C<d_getprpwnam>, C<d_getpwent>,
+C<d_getpwent_r>, C<d_getpwnam_r>, C<d_getpwuid_r>, C<d_getsbyname>,
+C<d_getsbyport>, C<d_getsent>, C<d_getservbyname_r>, C<d_getservbyport_r>,
+C<d_getservent_r>, C<d_getservprotos>, C<d_getspnam>, C<d_getspnam_r>,
+C<d_gettimeod>, C<d_gmtime_r>, C<d_gnulibc>, C<d_grpasswd>, C<d_hasmntopt>,
C<d_htonl>, C<d_index>, C<d_inetaton>, C<d_int64_t>, C<d_isascii>,
C<d_isfinite>, C<d_isinf>, C<d_isnan>, C<d_isnanl>, C<d_killpg>,
-C<d_lchown>, C<d_ldbl_dig>, C<d_link>, C<d_locconv>, C<d_lockf>,
-C<d_longdbl>, C<d_longlong>, C<d_lseekproto>, C<d_lstat>, C<d_madvise>,
-C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>, C<d_memchr>, C<d_memcmp>,
-C<d_memcpy>, C<d_memmove>, C<d_memset>, C<d_mkdir>, C<d_mkdtemp>,
-C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>, C<d_mktime>, C<d_mmap>,
-C<d_modfl>, C<d_modfl_pow32_bug>, C<d_mprotect>, C<d_msg>, C<d_msg_ctrunc>,
-C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>, C<d_msg_proxy>,
-C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>, C<d_msgrcv>, C<d_msgsnd>,
-C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>, C<d_nl_langinfo>,
-C<d_nv_preserves_uv>, C<nv_preserves_uv_bits>, C<d_off64_t>,
-C<d_old_pthread_create_joinable>, C<d_oldpthreads>, C<d_oldsock>,
-C<d_open3>, C<d_pathconf>, C<d_pause>, C<d_perl_otherlibdirs>,
-C<d_phostname>, C<d_pipe>, C<d_poll>, C<d_portable>, C<d_PRId64>,
-C<d_PRIeldbl>, C<d_PRIEUldbl>, C<d_PRIfldbl>, C<d_PRIFUldbl>,
-C<d_PRIgldbl>, C<d_PRIGUldbl>, C<d_PRIi64>, C<d_PRIo64>, C<d_PRIu64>,
-C<d_PRIx64>, C<d_PRIXU64>, C<d_procselfexe>, C<d_pthread_atfork>,
-C<d_pthread_yield>, C<d_pwage>, C<d_pwchange>, C<d_pwclass>,
-C<d_pwcomment>, C<d_pwexpire>, C<d_pwgecos>, C<d_pwpasswd>, C<d_pwquota>,
-C<d_qgcvt>, C<d_quad>, C<d_readdir>, C<d_readlink>, C<d_readv>,
-C<d_recvmsg>, C<d_rename>, C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>,
-C<d_safemcpy>, C<d_sanemcmp>, C<d_sbrkproto>, C<d_sched_yield>,
-C<d_scm_rights>, C<d_SCNfldbl>, C<d_seekdir>, C<d_select>, C<d_sem>,
-C<d_semctl>, C<d_semctl_semid_ds>, C<d_semctl_semun>, C<d_semget>,
-C<d_semop>, C<d_sendmsg>, C<d_setegid>, C<d_seteuid>, C<d_setgrent>,
-C<d_setgrps>, C<d_sethent>, C<d_setitimer>, C<d_setlinebuf>,
-C<d_setlocale>, C<d_setnent>, C<d_setpent>, C<d_setpgid>, C<d_setpgrp2>,
-C<d_setpgrp>, C<d_setprior>, C<d_setproctitle>, C<d_setpwent>,
-C<d_setregid>, C<d_setresgid>, C<d_setresuid>, C<d_setreuid>, C<d_setrgid>,
-C<d_setruid>, C<d_setsent>, C<d_setsid>, C<d_setvbuf>, C<d_sfio>, C<d_shm>,
-C<d_shmat>, C<d_shmatprototype>, C<d_shmctl>, C<d_shmdt>, C<d_shmget>,
-C<d_sigaction>, C<d_sigprocmask>, C<d_sigsetjmp>, C<d_sockatmark>,
-C<d_sockatmarkproto>, C<d_socket>, C<d_socklen_t>, C<d_sockpair>,
-C<d_socks5_init>, C<d_sqrtl>, C<d_sresgproto>, C<d_sresuproto>,
+C<d_lchown>, C<d_ldbl_dig>, C<d_link>, C<d_localtime_r>, C<d_locconv>,
+C<d_lockf>, C<d_longdbl>, C<d_longlong>, C<d_lseekproto>, C<d_lstat>,
+C<d_madvise>, C<d_mblen>, C<d_mbstowcs>, C<d_mbtowc>, C<d_memchr>,
+C<d_memcmp>, C<d_memcpy>, C<d_memmove>, C<d_memset>, C<d_mkdir>,
+C<d_mkdtemp>, C<d_mkfifo>, C<d_mkstemp>, C<d_mkstemps>, C<d_mktime>,
+C<d_mmap>, C<d_modfl>, C<d_modfl_pow32_bug>, C<d_mprotect>, C<d_msg>,
+C<d_msg_ctrunc>, C<d_msg_dontroute>, C<d_msg_oob>, C<d_msg_peek>,
+C<d_msg_proxy>, C<d_msgctl>, C<d_msgget>, C<d_msghdr_s>, C<d_msgrcv>,
+C<d_msgsnd>, C<d_msync>, C<d_munmap>, C<d_mymalloc>, C<d_nice>,
+C<d_nl_langinfo>, C<d_nv_preserves_uv>
+
+=item n
+
+C<nv_preserves_uv_bits>, C<d_off64_t>, C<d_old_pthread_create_joinable>,
+C<d_oldpthreads>, C<d_oldsock>, C<d_open3>, C<d_pathconf>, C<d_pause>,
+C<d_perl_otherlibdirs>, C<d_phostname>, C<d_pipe>, C<d_poll>,
+C<d_portable>, C<d_PRId64>, C<d_PRIeldbl>, C<d_PRIEUldbl>, C<d_PRIfldbl>,
+C<d_PRIFUldbl>, C<d_PRIgldbl>, C<d_PRIGUldbl>, C<d_PRIi64>, C<d_PRIo64>,
+C<d_PRIu64>, C<d_PRIx64>, C<d_PRIXU64>, C<d_procselfexe>,
+C<d_pthread_atfork>, C<d_pthread_yield>, C<d_pwage>, C<d_pwchange>,
+C<d_pwclass>, C<d_pwcomment>, C<d_pwexpire>, C<d_pwgecos>, C<d_pwpasswd>,
+C<d_pwquota>, C<d_qgcvt>, C<d_quad>, C<d_random_r>, C<d_readdir64_r>,
+C<d_readdir>, C<d_readdir_r>, C<d_readlink>, C<d_readv>, C<d_recvmsg>,
+C<d_rename>, C<d_rewinddir>, C<d_rmdir>, C<d_safebcpy>, C<d_safemcpy>,
+C<d_sanemcmp>, C<d_sbrkproto>, C<d_sched_yield>, C<d_scm_rights>,
+C<d_SCNfldbl>, C<d_seekdir>, C<d_select>, C<d_sem>, C<d_semctl>,
+C<d_semctl_semid_ds>, C<d_semctl_semun>, C<d_semget>, C<d_semop>,
+C<d_sendmsg>, C<d_setegid>, C<d_seteuid>, C<d_setgrent>, C<d_setgrent_r>,
+C<d_setgrps>, C<d_sethent>, C<d_sethostent_r>, C<d_setitimer>,
+C<d_setlinebuf>, C<d_setlocale>, C<d_setlocale_r>, C<d_setnent>,
+C<d_setnetent_r>, C<d_setpent>, C<d_setpgid>, C<d_setpgrp2>, C<d_setpgrp>,
+C<d_setprior>, C<d_setproctitle>, C<d_setprotoent_r>, C<d_setpwent>,
+C<d_setpwent_r>, C<d_setregid>, C<d_setresgid>, C<d_setresuid>,
+C<d_setreuid>, C<d_setrgid>, C<d_setruid>, C<d_setsent>, C<d_setservent_r>,
+C<d_setsid>, C<d_setvbuf>, C<d_sfio>, C<d_shm>, C<d_shmat>,
+C<d_shmatprototype>, C<d_shmctl>, C<d_shmdt>, C<d_shmget>, C<d_sigaction>,
+C<d_sigprocmask>, C<d_sigsetjmp>, C<d_sockatmark>, C<d_sockatmarkproto>,
+C<d_socket>, C<d_socklen_t>, C<d_sockpair>, C<d_socks5_init>, C<d_sqrtl>,
+C<d_srand48_r>, C<d_srandom_r>, C<d_sresgproto>, C<d_sresuproto>,
C<d_statblks>, C<d_statfs_f_flags>, C<d_statfs_s>, C<d_statvfs>,
C<d_stdio_cnt_lval>, C<d_stdio_ptr_lval>, C<d_stdio_ptr_lval_nochange_cnt>,
C<d_stdio_ptr_lval_sets_cnt>, C<d_stdio_stream_array>, C<d_stdiobase>,
C<d_stdstdio>, C<d_strchr>, C<d_strcoll>, C<d_strctcpy>, C<d_strerrm>,
-C<d_strerror>, C<d_strftime>, C<d_strtod>, C<d_strtol>, C<d_strtold>,
-C<d_strtoll>, C<d_strtoq>, C<d_strtoul>, C<d_strtoull>, C<d_strtouq>,
-C<d_strxfrm>, C<d_suidsafe>, C<d_symlink>, C<d_syscall>, C<d_syscallproto>,
-C<d_sysconf>, C<d_sysernlst>, C<d_syserrlst>, C<d_system>, C<d_tcgetpgrp>,
-C<d_tcsetpgrp>, C<d_telldir>, C<d_telldirproto>, C<d_time>, C<d_times>,
-C<d_tm_tm_gmtoff>, C<d_tm_tm_zone>, C<d_truncate>, C<d_tzname>,
+C<d_strerror>, C<d_strerror_r>, C<d_strftime>, C<d_strtod>, C<d_strtol>,
+C<d_strtold>, C<d_strtoll>, C<d_strtoq>, C<d_strtoul>, C<d_strtoull>,
+C<d_strtouq>, C<d_strxfrm>, C<d_suidsafe>, C<d_symlink>, C<d_syscall>,
+C<d_syscallproto>, C<d_sysconf>, C<d_sysernlst>, C<d_syserrlst>,
+C<d_system>, C<d_tcgetpgrp>, C<d_tcsetpgrp>, C<d_telldir>,
+C<d_telldirproto>, C<d_time>, C<d_times>, C<d_tm_tm_gmtoff>,
+C<d_tm_tm_zone>, C<d_tmpnam_r>, C<d_truncate>, C<d_ttyname_r>, C<d_tzname>,
C<d_u32align>, C<d_ualarm>, C<d_umask>, C<d_uname>, C<d_union_semun>,
C<d_unordered>, C<d_usleep>, C<d_usleepproto>, C<d_ustat>, C<d_vendorarch>,
C<d_vendorbin>, C<d_vendorlib>, C<d_vfork>, C<d_void_closedir>,
C<d_waitpid>, C<d_wcstombs>, C<d_wctomb>, C<d_writev>, C<d_xenix>, C<date>,
C<db_hashtype>, C<db_prefixtype>, C<db_version_major>, C<db_version_minor>,
C<db_version_patch>, C<defvoidused>, C<direntrytype>, C<dlext>, C<dlsrc>,
-C<doublesize>, C<drand01>, C<dynamic_ext>
+C<doublesize>, C<drand01>, C<drand48_r_proto>, C<dynamic_ext>
=item e
-C<eagain>, C<ebcdic>, C<echo>, C<egrep>, C<emacs>, C<eunicefix>,
-C<exe_ext>, C<expr>, C<extensions>, C<extras>
+C<eagain>, C<ebcdic>, C<echo>, C<egrep>, C<emacs>, C<endgrent_r_proto>,
+C<endhostent_r_proto>, C<endnetent_r_proto>, C<endprotoent_r_proto>,
+C<endpwent_r_proto>, C<endservent_r_proto>, C<eunicefix>, C<exe_ext>,
+C<expr>, C<extensions>, C<extras>
=item f
=item g
-C<gccosandvers>, C<gccversion>, C<gidformat>, C<gidsign>, C<gidsize>,
-C<gidtype>, C<glibpth>, C<gmake>, C<grep>, C<groupcat>, C<groupstype>,
-C<gzip>
+C<gccosandvers>, C<gccversion>, C<getgrent_r_proto>, C<getgrgid_r_proto>,
+C<getgrnam_r_proto>, C<gethostbyaddr_r_proto>, C<gethostbyname_r_proto>,
+C<gethostent_r_proto>, C<getlogin_r_proto>, C<getnetbyaddr_r_proto>,
+C<getnetbyname_r_proto>, C<getnetent_r_proto>, C<getprotobyname_r_proto>,
+C<getprotobynumber_r_proto>, C<getprotoent_r_proto>, C<getpwent_r_proto>,
+C<getpwnam_r_proto>, C<getpwuid_r_proto>, C<getservbyname_r_proto>,
+C<getservbyport_r_proto>, C<getservent_r_proto>, C<getspnam_r_proto>,
+C<gidformat>, C<gidsign>, C<gidsize>, C<gidtype>, C<glibpth>, C<gmake>,
+C<gmtime_r_proto>, C<grep>, C<groupcat>, C<groupstype>, C<gzip>
=item h
=item i
C<i16size>, C<i16type>, C<i32size>, C<i32type>, C<i64size>, C<i64type>,
-C<i8size>, C<i8type>, C<i_arpainet>, C<i_bsdioctl>, C<i_db>, C<i_dbm>,
-C<i_dirent>, C<i_dld>, C<i_dlfcn>, C<i_fcntl>, C<i_float>, C<i_fp>,
-C<i_fp_class>, C<i_gdbm>, C<i_grp>, C<i_ieeefp>, C<i_inttypes>,
+C<i8size>, C<i8type>, C<i_arpainet>, C<i_bsdioctl>, C<i_crypt>, C<i_db>,
+C<i_dbm>, C<i_dirent>, C<i_dld>, C<i_dlfcn>, C<i_fcntl>, C<i_float>,
+C<i_fp>, C<i_fp_class>, C<i_gdbm>, C<i_grp>, C<i_ieeefp>, C<i_inttypes>,
C<i_langinfo>, C<i_libutil>, C<i_limits>, C<i_locale>, C<i_machcthr>,
C<i_malloc>, C<i_math>, C<i_memory>, C<i_mntent>, C<i_ndbm>, C<i_netdb>,
C<i_neterrno>, C<i_netinettcp>, C<i_niin>, C<i_poll>, C<i_prot>,
C<less>, C<lib_ext>, C<libc>, C<libperl>, C<libpth>, C<libs>, C<libsdirs>,
C<libsfiles>, C<libsfound>, C<libspath>, C<libswanted>,
C<libswanted_uselargefiles>, C<line>, C<lint>, C<lkflags>, C<ln>, C<lns>,
-C<locincpth>, C<loclibpth>, C<longdblsize>, C<longlongsize>, C<longsize>,
-C<lp>, C<lpr>, C<ls>, C<lseeksize>, C<lseektype>
+C<localtime_r_proto>, C<locincpth>, C<loclibpth>, C<longdblsize>,
+C<longlongsize>, C<longsize>, C<lp>, C<lpr>, C<ls>, C<lseeksize>,
+C<lseektype>
=item m
=item M
C<Mcc>, C<mips_type>, C<mkdir>, C<mmaptype>, C<modetype>, C<more>,
-C<multiarch>, C<mv>, C<myarchname>, C<mydomain>, C<myhostname>, C<myuname>
-
-=item n
-
+C<multiarch>, C<mv>, C<myarchname>, C<mydomain>, C<myhostname>, C<myuname>,
C<n>, C<need_va_copy>, C<netdb_hlen_type>, C<netdb_host_type>,
C<netdb_name_type>, C<netdb_net_type>, C<nm>, C<nm_opt>, C<nm_so_opt>,
C<nonxs_ext>, C<nroff>, C<nveformat>, C<nvEUformat>, C<nvfformat>,
=item r
-C<randbits>, C<randfunc>, C<randseedtype>, C<ranlib>, C<rd_nodata>,
-C<revision>, C<rm>, C<rmail>, C<run>, C<runnm>
+C<randbits>, C<randfunc>, C<random_r_proto>, C<randseedtype>, C<ranlib>,
+C<rd_nodata>, C<readdir64_r_proto>, C<readdir_r_proto>, C<revision>, C<rm>,
+C<rmail>, C<run>, C<runnm>
=item s
C<sched_yield>, C<scriptdir>, C<scriptdirexp>, C<sed>, C<seedfunc>,
-C<selectminbits>, C<selecttype>, C<sendmail>, C<sh>, C<shar>, C<sharpbang>,
-C<shmattype>, C<shortsize>, C<shrpenv>, C<shsharp>, C<sig_count>,
-C<sig_name>, C<sig_name_init>, C<sig_num>, C<sig_num_init>, C<sig_size>,
-C<signal_t>, C<sitearch>, C<sitearchexp>, C<sitebin>, C<sitebinexp>,
-C<sitelib>, C<sitelib_stem>, C<sitelibexp>, C<siteprefix>,
+C<selectminbits>, C<selecttype>, C<sendmail>, C<setgrent_r_proto>,
+C<sethostent_r_proto>, C<setlocale_r_proto>, C<setnetent_r_proto>,
+C<setprotoent_r_proto>, C<setpwent_r_proto>, C<setservent_r_proto>, C<sh>,
+C<shar>, C<sharpbang>, C<shmattype>, C<shortsize>, C<shrpenv>, C<shsharp>,
+C<sig_count>, C<sig_name>, C<sig_name_init>, C<sig_num>, C<sig_num_init>,
+C<sig_size>, C<signal_t>, C<sitearch>, C<sitearchexp>, C<sitebin>,
+C<sitebinexp>, C<sitelib>, C<sitelib_stem>, C<sitelibexp>, C<siteprefix>,
C<siteprefixexp>, C<sizesize>, C<sizetype>, C<sleep>, C<smail>, C<so>,
C<sockethdr>, C<socketlib>, C<socksizetype>, C<sort>, C<spackage>,
C<spitshell>, C<sPRId64>, C<sPRIeldbl>, C<sPRIEUldbl>, C<sPRIfldbl>,
C<sPRIFUldbl>, C<sPRIgldbl>, C<sPRIGUldbl>, C<sPRIi64>, C<sPRIo64>,
-C<sPRIu64>, C<sPRIx64>, C<sPRIXU64>, C<src>, C<sSCNfldbl>, C<ssizetype>,
-C<startperl>, C<startsh>, C<static_ext>, C<stdchar>, C<stdio_base>,
-C<stdio_bufsiz>, C<stdio_cnt>, C<stdio_filbuf>, C<stdio_ptr>,
-C<stdio_stream_array>, C<strings>, C<submit>, C<subversion>, C<sysman>
+C<sPRIu64>, C<sPRIx64>, C<sPRIXU64>, C<srand48_r_proto>,
+C<srandom_r_proto>, C<src>, C<sSCNfldbl>, C<ssizetype>, C<startperl>,
+C<startsh>, C<static_ext>, C<stdchar>, C<stdio_base>, C<stdio_bufsiz>,
+C<stdio_cnt>, C<stdio_filbuf>, C<stdio_ptr>, C<stdio_stream_array>,
+C<strerror_r_proto>, C<strings>, C<submit>, C<subversion>, C<sysman>
=item t
C<tail>, C<tar>, C<targetarch>, C<tbl>, C<tee>, C<test>, C<timeincl>,
-C<timetype>, C<to>, C<touch>, C<tr>, C<trnl>, C<troff>
+C<timetype>, C<tmpnam_r_proto>, C<to>, C<touch>, C<tr>, C<trnl>, C<troff>,
+C<ttyname_r_proto>
=item u
=item Messing with Perl's Internals
-is_utf8(STRING [, CHECK]), valid_utf8(STRING)
+is_utf8(STRING [, CHECK])
=item IMPLEMENTATION CLASSES
=back
-=head2 Encode::Tcl::Extended - Tcl EUC encodings
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item SEE ALSO
-
-=back
-
=head2 Encode::Tcl::Table - Tcl Table encodings
=over 4
=back
-=head2 Encode::lib::Encode::Tcl::Extended, Encode::Tcl::Extended - Tcl EUC
-encodings
-
-=over 4
-
-=item SYNOPSIS
-
-=item DESCRIPTION
-
-=item SEE ALSO
-
-=back
-
=head2 Encode::lib::Encode::Tcl::Table, Encode::Tcl::Table - Tcl Table
encodings
=item DESCRIPTION
-blessed EXPR, dualvar NUM, STRING, isweak EXPR, readonly SCALAR, reftype
+blessed EXPR, dualvar NUM, STRING, isweak EXPR, openhandle FH, reftype
EXPR, tainted EXPR, weaken REF
=item KNOWN BUGS
=item DESCRIPTION
-blessed EXPR, dualvar NUM, STRING, isweak EXPR, readonly SCALAR, reftype
+blessed EXPR, dualvar NUM, STRING, isweak EXPR, openhandle FH, reftype
EXPR, tainted EXPR, weaken REF
=item KNOWN BUGS
=item C<recsep>
+=item C<autochomp>
+
=item C<mode>
-=item C<cachesize>
+=item C<memory>
+
+=item C<dw_size>
=item Option Format
=item C<flock>
-=item Tying to an already-opened filehandle
+=item C<autochomp>
-=back
+=item C<defer>, C<flush>, and C<discard>
-=item CAVEATS
+=back
-=over 4
+=item Tying to an already-opened filehandle
-=item Efficiency Note
+=item Deferred Writing
-=item Efficiency Note 2
+=item CAVEATS
-=item Efficiency Note 3
+You might be tempted to think that deferred writing is like transactions,
+with C<flush> as C<commit> and C<discard> as C<rollback>, but it isn't, so
+don't
-=back
+=item SUBCLASSING
-=item CAVEATS
+=item WHAT ABOUT C<DB_File>?
=item AUTHOR
=item Normalization Forms
-C<$string_NFD = NFD($raw_string)>, C<$string_NFC = NFC($raw_string)>,
-C<$string_NFKD = NFKD($raw_string)>, C<$string_NFKC = NFKC($raw_string)>,
-C<$normalized_string = normalize($form_name, $raw_string)>
+C<$NFD_string = NFD($string)>, C<$NFC_string = NFC($string)>,
+C<$NFKD_string = NFKD($string)>, C<$NFKC_string = NFKC($string)>,
+C<$normalized_string = normalize($form_name, $string)>
+
+=item Decomposition and Composition
+
+C<$decomposed_string = decompose($string)>, C<$decomposed_string =
+decompose($string, $useCompatMapping)>, C<$reordered_string =
+reorder($string)>, C<$composed_string = compose($string)>
+
+=item Quick Check
+
+C<$result = checkNFD($string)>, C<$result = checkNFC($string)>, C<$result =
+checkNFKD($string)>, C<$result = checkNFKC($string)>, C<$result =
+check($form_name, $string)>
=item Character Data
C<$canonical_decomposed = getCanon($codepoint)>,
-C<$compatibility_decomposed = getCompat($codepoint)>, C<$uv_composite =
-getComposite($uv_here, $uv_next)>, C<$combining_class =
-getCombinClass($codepoint)>, C<$is_exclusion = isExclusion($codepoint)>
+C<$compatibility_decomposed = getCompat($codepoint)>,
+C<$codepoint_composite = getComposite($codepoint_here, $codepoint_next)>,
+C<$combining_class = getCombinClass($codepoint)>, C<$is_exclusion =
+isExclusion($codepoint)>, C<$is_singleton = isSingleton($codepoint)>,
+C<$is_non_startar_decomposition = isNonStDecomp($codepoint)>,
+C<$may_be_composed_with_prev_char = isComp2nd($codepoint)>
=item EXPORT
-=item TODO
-
=back
=item AUTHOR
=item SEE ALSO
-http://www.unicode.org/unicode/reports/tr15/
+http://www.unicode.org/unicode/reports/tr15/,
+http://www.unicode.org/Public/UNIDATA/DerivedNormalizationProperties.txt
=back
gets invoked in which platform is simply a big mess that needs to be
untangled. Secondly, the effects are apparently not standard across
platforms, (if you first set $< and then $>, or vice versa, being
-uid==euid== zero, or just euid==zero, or as a normal user, what are
+uid == euid == zero, or just euid == zero, or as a normal user, what are
the results?). The test suite not (usually) being run as root means
that these things do not get much testing. Thirdly, there's quite
often a third uid called saved uid, and Perl has no knowledge of that
back any real and effective uids.) As an example, to change also the
saved uid, one needs to set the real and effective uids B<twice>-- in
most systems, that is: in HP-UX that doesn't seem to work.
-
+
=head2 Custom opcodes
Have a way to introduce user-defined opcodes without the subroutine call
the platform's "natural" 8-bit encoding of Unicode. See L<perlebcdic>
for more discussion of the issues.
+=head2 Locales
+
+Usually locale settings and Unicode do not affect each other, but
+there are a couple of exceptions:
+
+=over 4
+
+=item *
+
+If your locale environment variables (LANGUAGE, LC_ALL, LC_CTYPE, LANG)
+contain the strings 'UTF-8' or 'UTF8' (case-insensitive matching),
+the default encoding of your STDIN, STDOUT, and STDERR, and of
+B<any subsequent file open>, is UTF-8.
+
+=item *
+
+Perl tries really hard to work both with Unicode and the old byte
+oriented world: most often this is nice, but sometimes this causes
+problems. See L</BUGS> for example how sometimes using locales
+with Unicode can help with these problems.
+
+=back
+
=head2 Using Unicode in XS
If you want to handle Perl Unicode in XS extensions, you may find
there is some attempt to apply 8-bit locale info to characters in the
range 0..255, but this is demonstrably incorrect for locales that use
characters above that range when mapped into Unicode. It will also
-tend to run slower. Avoidance of locales is strongly encouraged.
+tend to run slower. Avoidance of locales is strongly encouraged,
+with one known expection, see the next paragraph.
+
+If the keys of a hash are "mixed", that is, some keys are Unicode,
+while some keys are "byte", the keys may behave differently in regular
+expressions since the definition of character classes like C</\w/>
+is different for byte strings and character strings. This problem can
+sometimes be helped by using an appropriate locale (see L<perllocale>).
+Another way is to force all the strings to be character encoded by
+using utf8::upgrade() (see L<utf8>).
Some functions are slower when working on UTF-8 encoded strings than
on byte encoded strings. All functions that need to hop over
characters such as length(), substr() or index() can work B<much>
faster when the underlying data are byte-encoded. Witness the
following benchmark:
-
+
% perl -e '
use Benchmark;
use strict;
LENGTH_U: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 12155.45/s (n=25648)
SUBSTR_B: 3 wallclock secs ( 2.16 usr + 0.00 sys = 2.16 CPU) @ 374480.09/s (n=808877)
SUBSTR_U: 2 wallclock secs ( 2.11 usr + 0.00 sys = 2.11 CPU) @ 6791.00/s (n=14329)
-
+
The numbers show an incredible slowness on long UTF-8 strings and you
should carefully avoid to use these functions within tight loops. For
example if you want to iterate over characters, it is infinitely
You see, the algorithm based on substr() was faster with byte encoded
data but it is pathologically slow with UTF-8 data.
-
+
=head1 SEE ALSO
L<perluniintro>, L<encoding>, L<Encode>, L<open>, L<utf8>, L<bytes>,
to this sample program ensures the output is completely UTF-8, and
of course, removes the warning.
+If your locale environment variables (LANGUAGE, LC_ALL, LC_CTYPE, LANG)
+contain the strings 'UTF-8' or 'UTF8' (case-insensitive matching),
+the default encoding of your STDIN, STDOUT, and STDERR, and of
+B<any subsequent file open>, is UTF-8.
+
=head2 Unicode and EBCDIC
Perl 5.8.0 also supports Unicode on EBCDIC platforms. There,
the Unicode support is somewhat more complex to implement since
additional conversions are needed at every step. Some problems
-remain, but they all seem to be related to the combination of
-the extra mapping just described and case-insensitive matching:
-for example, "\x{131}" (LATIN SMALL LETTER DOTLESS I) does not
-match "I" case-insensitively, as it should under Unicode.
-(The match succeeds in ASCII-derived platforms.)
+remain, see L<perlebcdic> for details.
In any case, the Unicode support on EBCDIC platforms is better than
in the 5.6 series, which didn't work much at all for EBCDIC platform.
STATIC U8* S_reghopmaybe(pTHX_ U8 *pos, I32 off);
STATIC U8* S_reghopmaybe3(pTHX_ U8 *pos, I32 off, U8 *lim);
STATIC char* S_find_byclass(pTHX_ regexp * prog, regnode *c, char *s, char *strend, char *startpos, I32 norun);
+STATIC void S_to_utf8_substr(pTHX_ regexp * prog);
+STATIC void S_to_byte_substr(pTHX_ regexp * prog);
#endif
#if defined(PERL_IN_DUMP_C) || defined(PERL_DECL_PROT)
#define REENTRANT_PROTO_B_B 1
#define REENTRANT_PROTO_B_BI 2
#define REENTRANT_PROTO_B_BW 3
-#define REENTRANT_PROTO_B_CCS 4
-#define REENTRANT_PROTO_B_IBI 5
-#define REENTRANT_PROTO_B_IBW 6
-#define REENTRANT_PROTO_B_SB 7
-#define REENTRANT_PROTO_B_SBI 8
-#define REENTRANT_PROTO_I_BI 9
-#define REENTRANT_PROTO_I_BW 10
-#define REENTRANT_PROTO_I_CCSBWR 11
-#define REENTRANT_PROTO_I_CCSD 12
-#define REENTRANT_PROTO_I_CII 13
-#define REENTRANT_PROTO_I_CIISD 14
-#define REENTRANT_PROTO_I_CSBI 15
-#define REENTRANT_PROTO_I_CSBIR 16
-#define REENTRANT_PROTO_I_CSBWR 17
-#define REENTRANT_PROTO_I_CSBWRE 18
-#define REENTRANT_PROTO_I_CSD 19
-#define REENTRANT_PROTO_I_CWISBWRE 20
-#define REENTRANT_PROTO_I_CWISD 21
-#define REENTRANT_PROTO_I_H 22
-#define REENTRANT_PROTO_I_IBI 23
-#define REENTRANT_PROTO_I_IBW 24
-#define REENTRANT_PROTO_I_ICBI 25
-#define REENTRANT_PROTO_I_ICSBWR 26
-#define REENTRANT_PROTO_I_ICSD 27
-#define REENTRANT_PROTO_I_ID 28
-#define REENTRANT_PROTO_I_IISD 29
-#define REENTRANT_PROTO_I_ISBWR 30
-#define REENTRANT_PROTO_I_ISD 31
-#define REENTRANT_PROTO_I_LISBI 32
-#define REENTRANT_PROTO_I_LISD 33
-#define REENTRANT_PROTO_I_LS 34
-#define REENTRANT_PROTO_I_S 35
-#define REENTRANT_PROTO_I_SB 36
-#define REENTRANT_PROTO_I_SBI 37
-#define REENTRANT_PROTO_I_SBIE 38
-#define REENTRANT_PROTO_I_SBIH 39
-#define REENTRANT_PROTO_I_SBIR 40
-#define REENTRANT_PROTO_I_SBWR 41
-#define REENTRANT_PROTO_I_SBWRE 42
-#define REENTRANT_PROTO_I_SD 43
-#define REENTRANT_PROTO_I_ST 44
-#define REENTRANT_PROTO_I_TISD 45
-#define REENTRANT_PROTO_I_TS 46
-#define REENTRANT_PROTO_I_TSBI 47
-#define REENTRANT_PROTO_I_TSBIR 48
-#define REENTRANT_PROTO_I_TSBWR 49
-#define REENTRANT_PROTO_I_TSR 50
-#define REENTRANT_PROTO_I_UISBWRE 51
-#define REENTRANT_PROTO_S_CBI 52
-#define REENTRANT_PROTO_S_CCSBI 53
-#define REENTRANT_PROTO_S_CIISBIE 54
-#define REENTRANT_PROTO_S_CSBI 55
-#define REENTRANT_PROTO_S_CSBIE 56
-#define REENTRANT_PROTO_S_CWISBIE 57
-#define REENTRANT_PROTO_S_CWISBWIE 58
-#define REENTRANT_PROTO_S_ICSBI 59
-#define REENTRANT_PROTO_S_ISBI 60
-#define REENTRANT_PROTO_S_LISBI 61
-#define REENTRANT_PROTO_S_SBI 62
-#define REENTRANT_PROTO_S_SBIE 63
-#define REENTRANT_PROTO_S_SBW 64
-#define REENTRANT_PROTO_S_TISBI 65
-#define REENTRANT_PROTO_S_TS 66
-#define REENTRANT_PROTO_S_TSBI 67
-#define REENTRANT_PROTO_S_TSBIE 68
-#define REENTRANT_PROTO_S_TWISBIE 69
-#define REENTRANT_PROTO_V_H 70
-#define REENTRANT_PROTO_V_ID 71
-#define REENTRANT_PROTO_V_S 72
+#define REENTRANT_PROTO_B_CCD 4
+#define REENTRANT_PROTO_B_CCS 5
+#define REENTRANT_PROTO_B_IBI 6
+#define REENTRANT_PROTO_B_IBW 7
+#define REENTRANT_PROTO_B_SB 8
+#define REENTRANT_PROTO_B_SBI 9
+#define REENTRANT_PROTO_I_BI 10
+#define REENTRANT_PROTO_I_BW 11
+#define REENTRANT_PROTO_I_CCSBWR 12
+#define REENTRANT_PROTO_I_CCSD 13
+#define REENTRANT_PROTO_I_CII 14
+#define REENTRANT_PROTO_I_CIISD 15
+#define REENTRANT_PROTO_I_CSBI 16
+#define REENTRANT_PROTO_I_CSBIR 17
+#define REENTRANT_PROTO_I_CSBWR 18
+#define REENTRANT_PROTO_I_CSBWRE 19
+#define REENTRANT_PROTO_I_CSD 20
+#define REENTRANT_PROTO_I_CWISBWRE 21
+#define REENTRANT_PROTO_I_CWISD 22
+#define REENTRANT_PROTO_I_H 23
+#define REENTRANT_PROTO_I_IBI 24
+#define REENTRANT_PROTO_I_IBW 25
+#define REENTRANT_PROTO_I_ICBI 26
+#define REENTRANT_PROTO_I_ICSBWR 27
+#define REENTRANT_PROTO_I_ICSD 28
+#define REENTRANT_PROTO_I_ID 29
+#define REENTRANT_PROTO_I_IISD 30
+#define REENTRANT_PROTO_I_ISBWR 31
+#define REENTRANT_PROTO_I_ISD 32
+#define REENTRANT_PROTO_I_LISBI 33
+#define REENTRANT_PROTO_I_LISD 34
+#define REENTRANT_PROTO_I_LS 35
+#define REENTRANT_PROTO_I_S 36
+#define REENTRANT_PROTO_I_SB 37
+#define REENTRANT_PROTO_I_SBI 38
+#define REENTRANT_PROTO_I_SBIE 39
+#define REENTRANT_PROTO_I_SBIH 40
+#define REENTRANT_PROTO_I_SBIR 41
+#define REENTRANT_PROTO_I_SBWR 42
+#define REENTRANT_PROTO_I_SBWRE 43
+#define REENTRANT_PROTO_I_SD 44
+#define REENTRANT_PROTO_I_ST 45
+#define REENTRANT_PROTO_I_TISD 46
+#define REENTRANT_PROTO_I_TS 47
+#define REENTRANT_PROTO_I_TSBI 48
+#define REENTRANT_PROTO_I_TSBIR 49
+#define REENTRANT_PROTO_I_TSBWR 50
+#define REENTRANT_PROTO_I_TSR 51
+#define REENTRANT_PROTO_I_UISBWRE 52
+#define REENTRANT_PROTO_S_CBI 53
+#define REENTRANT_PROTO_S_CCSBI 54
+#define REENTRANT_PROTO_S_CIISBIE 55
+#define REENTRANT_PROTO_S_CSBI 56
+#define REENTRANT_PROTO_S_CSBIE 57
+#define REENTRANT_PROTO_S_CWISBIE 58
+#define REENTRANT_PROTO_S_CWISBWIE 59
+#define REENTRANT_PROTO_S_ICSBI 60
+#define REENTRANT_PROTO_S_ISBI 61
+#define REENTRANT_PROTO_S_LISBI 62
+#define REENTRANT_PROTO_S_SBI 63
+#define REENTRANT_PROTO_S_SBIE 64
+#define REENTRANT_PROTO_S_SBW 65
+#define REENTRANT_PROTO_S_TISBI 66
+#define REENTRANT_PROTO_S_TS 67
+#define REENTRANT_PROTO_S_TSBI 68
+#define REENTRANT_PROTO_S_TSBIE 69
+#define REENTRANT_PROTO_S_TWISBIE 70
+#define REENTRANT_PROTO_V_H 71
+#define REENTRANT_PROTO_V_ID 72
+#define REENTRANT_PROTO_V_S 73
/* Defines for indicating which special features are supported. */
size_t _asctime_size;
#endif /* HAS_ASCTIME_R */
#ifdef HAS_CRYPT_R
+#if CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
+ CRYPTD* _crypt_data;
+#else
struct crypt_data _crypt_struct;
+#endif
#endif /* HAS_CRYPT_R */
#ifdef HAS_CTIME_R
char* _ctime_buffer;
# if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCS
# define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_struct)
# endif
+# if !defined(crypt) && CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
+# define crypt(a, b) crypt_r(a, b, &PL_reentrant_buffer->_crypt_data)
+# endif
#endif /* HAS_CRYPT_R */
#ifdef HAS_CTERMID_R
pushinitfree $f;
pushssif $endif;
}
- elsif ($f =~ /^(crypt|drand48|gmtime|localtime|random)$/) {
+ elsif ($f =~ /^(crypt)$/) {
pushssif $ifdef;
push @struct, <<EOF;
+#if CRYPT_R_PROTO == REENTRANT_PROTO_B_CCD
+ $seend{$f} _${f}_data;
+#else
$seent{$f} _${f}_struct;
+#endif
EOF
- if ($f eq 'crypt') {
- push @init, <<EOF;
+ push @init, <<EOF;
#ifdef __GLIBC__
PL_reentrant_buffer->_${f}_struct.initialized = 0;
#endif
EOF
- }
+ pushssif $endif;
+ }
+ elsif ($f =~ /^(drand48|gmtime|localtime|random)$/) {
+ pushssif $ifdef;
+ push @struct, <<EOF;
+ $seent{$f} _${f}_struct;
+EOF
if ($1 eq 'drand48') {
push @struct, <<EOF;
double _${f}_double;
__DATA__
asctime S |time |const struct tm|B_SB|B_SBI|I_SB|I_SBI
-crypt CC |crypt |struct crypt_data|B_CCS
+crypt CC |crypt |struct crypt_data|B_CCS|B_CCD|D=CRYPTD*
ctermid B |stdio | |B_B
ctime S |time |const time_t |B_SB|B_SBI|I_SB|I_SBI
drand48 |stdlib |struct drand48_data |I_ST|T=double*
? I32_MAX : data->pos_min + data->pos_delta;
}
sv_catpvn(data->last_found, STRING(scan), STR_LEN(scan));
+ if (UTF)
+ SvUTF8_on(data->last_found);
data->last_end = data->pos_min + l;
data->pos_min += l; /* As in the first entry. */
data->flags &= ~SF_BEFORE_EOL;
&& SvCUR(data.longest_fixed) == SvCUR(data.longest_float))
goto remove_float; /* As in (a)+. */
- r->float_substr = data.longest_float;
+ if (SvUTF8(data.longest_float)) {
+ r->float_utf8 = data.longest_float;
+ r->float_substr = Nullsv;
+ } else {
+ r->float_substr = data.longest_float;
+ r->float_utf8 = Nullsv;
+ }
r->float_min_offset = data.offset_float_min;
r->float_max_offset = data.offset_float_max;
t = (data.flags & SF_FL_BEFORE_EOL /* Can't have SEOL and MULTI */
&& (!(data.flags & SF_FL_BEFORE_MEOL)
|| (RExC_flags16 & PMf_MULTILINE)));
- fbm_compile(r->float_substr, t ? FBMcf_TAIL : 0);
+ fbm_compile(data.longest_float, t ? FBMcf_TAIL : 0);
}
else {
remove_float:
- r->float_substr = Nullsv;
+ r->float_substr = r->float_utf8 = Nullsv;
SvREFCNT_dec(data.longest_float);
longest_float_length = 0;
}
|| (RExC_flags16 & PMf_MULTILINE)))) {
int t;
- r->anchored_substr = data.longest_fixed;
+ if (SvUTF8(data.longest_fixed)) {
+ r->anchored_utf8 = data.longest_fixed;
+ r->anchored_substr = Nullsv;
+ } else {
+ r->anchored_substr = data.longest_fixed;
+ r->anchored_utf8 = Nullsv;
+ }
r->anchored_offset = data.offset_fixed;
t = (data.flags & SF_FIX_BEFORE_EOL /* Can't have SEOL and MULTI */
&& (!(data.flags & SF_FIX_BEFORE_MEOL)
|| (RExC_flags16 & PMf_MULTILINE)));
- fbm_compile(r->anchored_substr, t ? FBMcf_TAIL : 0);
+ fbm_compile(data.longest_fixed, t ? FBMcf_TAIL : 0);
}
else {
- r->anchored_substr = Nullsv;
+ r->anchored_substr = r->anchored_utf8 = Nullsv;
SvREFCNT_dec(data.longest_fixed);
longest_fixed_length = 0;
}
if (r->regstclass
&& (OP(r->regstclass) == REG_ANY || OP(r->regstclass) == SANY))
r->regstclass = NULL;
- if ((!r->anchored_substr || r->anchored_offset) && stclass_flag
+ if ((!(r->anchored_substr || r->anchored_utf8) || r->anchored_offset)
+ && stclass_flag
&& !(data.start_class->flags & ANYOF_EOS)
&& !cl_is_anything(data.start_class)) {
I32 n = add_data(pRExC_state, 1, "f");
/* A temporary algorithm prefers floated substr to fixed one to dig more info. */
if (longest_fixed_length > longest_float_length) {
r->check_substr = r->anchored_substr;
+ r->check_utf8 = r->anchored_utf8;
r->check_offset_min = r->check_offset_max = r->anchored_offset;
if (r->reganch & ROPT_ANCH_SINGLE)
r->reganch |= ROPT_NOSCAN;
}
else {
r->check_substr = r->float_substr;
+ r->check_utf8 = r->float_utf8;
r->check_offset_min = data.offset_float_min;
r->check_offset_max = data.offset_float_max;
}
/* XXXX Currently intuiting is not compatible with ANCH_GPOS.
This should be changed ASAP! */
- if (r->check_substr && !(r->reganch & ROPT_ANCH_GPOS)) {
+ if ((r->check_substr || r->check_utf8) && !(r->reganch & ROPT_ANCH_GPOS)) {
r->reganch |= RE_USE_INTUIT;
- if (SvTAIL(r->check_substr))
+ if (SvTAIL(r->check_substr ? r->check_substr : r->check_utf8))
r->reganch |= RE_INTUIT_TAIL;
}
}
data.start_class = &ch_class;
data.last_closep = &last_close;
minlen = study_chunk(pRExC_state, &scan, &fake, scan + RExC_size, &data, SCF_DO_STCLASS_AND|SCF_WHILEM_VISITED_POS);
- r->check_substr = r->anchored_substr = r->float_substr = Nullsv;
+ r->check_substr = r->check_utf8 = r->anchored_substr = r->anchored_utf8
+ = r->float_substr = r->float_utf8 = Nullsv;
if (!(data.start_class->flags & ANYOF_EOS)
&& !cl_is_anything(data.start_class)) {
I32 n = add_data(pRExC_state, 1, "f");
PL_colors[1],
SvTAIL(r->anchored_substr) ? "$" : "",
(IV)r->anchored_offset);
+ else if (r->anchored_utf8)
+ PerlIO_printf(Perl_debug_log,
+ "anchored utf8 `%s%.*s%s'%s at %"IVdf" ",
+ PL_colors[0],
+ (int)(SvCUR(r->anchored_utf8) - (SvTAIL(r->anchored_utf8)!=0)),
+ SvPVX(r->anchored_utf8),
+ PL_colors[1],
+ SvTAIL(r->anchored_utf8) ? "$" : "",
+ (IV)r->anchored_offset);
if (r->float_substr)
PerlIO_printf(Perl_debug_log,
"floating `%s%.*s%s'%s at %"IVdf"..%"UVuf" ",
PL_colors[1],
SvTAIL(r->float_substr) ? "$" : "",
(IV)r->float_min_offset, (UV)r->float_max_offset);
- if (r->check_substr)
+ else if (r->float_utf8)
+ PerlIO_printf(Perl_debug_log,
+ "floating utf8 `%s%.*s%s'%s at %"IVdf"..%"UVuf" ",
+ PL_colors[0],
+ (int)(SvCUR(r->float_utf8) - (SvTAIL(r->float_utf8)!=0)),
+ SvPVX(r->float_utf8),
+ PL_colors[1],
+ SvTAIL(r->float_utf8) ? "$" : "",
+ (IV)r->float_min_offset, (UV)r->float_max_offset);
+ if (r->check_substr || r->check_utf8)
PerlIO_printf(Perl_debug_log,
r->check_substr == r->float_substr
+ && r->check_utf8 == r->float_utf8
? "(checking floating" : "(checking anchored");
if (r->reganch & ROPT_NOSCAN)
PerlIO_printf(Perl_debug_log, " noscan");
if (r->reganch & ROPT_CHECK_ALL)
PerlIO_printf(Perl_debug_log, " isall");
- if (r->check_substr)
+ if (r->check_substr || r->check_utf8)
PerlIO_printf(Perl_debug_log, ") ");
if (r->regstclass) {
{ /* Assume that RE_INTUIT is set */
DEBUG_r(
{ STRLEN n_a;
- char *s = SvPV(prog->check_substr,n_a);
+ char *s = SvPV(prog->check_substr
+ ? prog->check_substr : prog->check_utf8, n_a);
if (!PL_colorset) reginitcolors();
PerlIO_printf(Perl_debug_log,
- "%sUsing REx substr:%s `%s%.60s%s%s'\n",
- PL_colors[4],PL_colors[5],PL_colors[0],
+ "%sUsing REx %ssubstr:%s `%s%.60s%s%s'\n",
+ PL_colors[4],
+ prog->check_substr ? "" : "utf8 ",
+ PL_colors[5],PL_colors[0],
s,
PL_colors[1],
(strlen(s) > 60 ? "..." : ""));
} );
- return prog->check_substr;
+ return prog->check_substr ? prog->check_substr : prog->check_utf8;
}
void
if (r->substrs) {
if (r->anchored_substr)
SvREFCNT_dec(r->anchored_substr);
+ if (r->anchored_utf8)
+ SvREFCNT_dec(r->anchored_utf8);
if (r->float_substr)
SvREFCNT_dec(r->float_substr);
+ if (r->float_utf8)
+ SvREFCNT_dec(r->float_utf8);
Safefree(r->substrs);
}
if (r->data) {
struct reg_substr_datum {
I32 min_offset;
I32 max_offset;
- SV *substr;
+ SV *substr; /* non-utf8 variant */
+ SV *utf8_substr; /* utf8 variant */
};
struct reg_substr_data {
};
#define anchored_substr substrs->data[0].substr
+#define anchored_utf8 substrs->data[0].utf8_substr
#define anchored_offset substrs->data[0].min_offset
#define float_substr substrs->data[1].substr
+#define float_utf8 substrs->data[1].utf8_substr
#define float_min_offset substrs->data[1].min_offset
#define float_max_offset substrs->data[1].max_offset
#define check_substr substrs->data[2].substr
+#define check_utf8 substrs->data[2].utf8_substr
#define check_offset_min substrs->data[2].min_offset
#define check_offset_max substrs->data[2].max_offset
* Forwards.
*/
-#define CHR_SVLEN(sv) (UTF ? sv_len_utf8(sv) : SvCUR(sv))
+#define CHR_SVLEN(sv) (do_utf8 ? sv_len_utf8(sv) : SvCUR(sv))
#define CHR_DIST(a,b) (PL_reg_match_utf8 ? utf8_distance(a,b) : a - b)
#define reghop_c(pos,off) ((char*)reghop((U8*)pos, off))
register SV *check;
char *strbeg;
char *t;
+ int do_utf8 = sv ? SvUTF8(sv) : 0; /* if no sv we have to assume bytes */
I32 ml_anch;
register char *other_last = Nullch; /* other substr checked before this */
char *check_at = Nullch; /* check substr found at this pos */
}
strbeg = (sv && SvPOK(sv)) ? strend - SvCUR(sv) : strpos;
PL_regeol = strend;
- check = prog->check_substr;
+ if (do_utf8) {
+ if (!prog->check_utf8 && prog->check_substr)
+ to_utf8_substr(prog);
+ check = prog->check_utf8;
+ } else {
+ if (!prog->check_substr && prog->check_utf8)
+ to_byte_substr(prog);
+ check = prog->check_substr;
+ }
+ if (check == &PL_sv_undef) {
+ DEBUG_r(PerlIO_printf(Perl_debug_log,
+ "Non-utf string cannot match utf check string\n"));
+ goto fail;
+ }
if (prog->reganch & ROPT_ANCH) { /* Match at beg-of-str or after \n */
ml_anch = !( (prog->reganch & ROPT_ANCH_SINGLE)
|| ( (prog->reganch & ROPT_ANCH_BOL)
DEBUG_r(PerlIO_printf(Perl_debug_log, "%s %s substr `%s%.*s%s'%s%s",
(s ? "Found" : "Did not find"),
- ((check == prog->anchored_substr) ? "anchored" : "floating"),
+ (check == (do_utf8 ? prog->anchored_utf8 : prog->anchored_substr) ? "anchored" : "floating"),
PL_colors[0],
(int)(SvCUR(check) - (SvTAIL(check)!=0)),
SvPVX(check),
Probably it is right to do no SCREAM here...
*/
- if (prog->float_substr && prog->anchored_substr) {
+ if (do_utf8 ? (prog->float_utf8 && prog->anchored_utf8) : (prog->float_substr && prog->anchored_substr)) {
/* Take into account the "other" substring. */
/* XXXX May be hopelessly wrong for UTF... */
if (!other_last)
other_last = strpos;
- if (check == prog->float_substr) {
+ if (check == (do_utf8 ? prog->float_utf8 : prog->float_substr)) {
do_other_anchored:
{
char *last = HOP3c(s, -start_shift, strbeg), *last1, *last2;
char *s1 = s;
+ SV* must;
t = s - prog->check_offset_max;
if (s - strpos > prog->check_offset_max /* signed-corrected t > strpos */
last1 = last;
/* XXXX It is not documented what units *_offsets are in. Assume bytes. */
/* On end-of-str: see comment below. */
- s = fbm_instr((unsigned char*)t,
- HOP3(HOP3(last1, prog->anchored_offset, strend)
- + SvCUR(prog->anchored_substr),
- -(SvTAIL(prog->anchored_substr)!=0), strbeg),
- prog->anchored_substr,
- PL_multiline ? FBMrf_MULTILINE : 0);
+ must = do_utf8 ? prog->anchored_utf8 : prog->anchored_substr;
+ if (must == &PL_sv_undef) {
+ s = (char*)NULL;
+ DEBUG_r(must = prog->anchored_utf8); /* for debug */
+ }
+ else
+ s = fbm_instr(
+ (unsigned char*)t,
+ HOP3(HOP3(last1, prog->anchored_offset, strend)
+ + SvCUR(must), -(SvTAIL(must)!=0), strbeg),
+ must,
+ PL_multiline ? FBMrf_MULTILINE : 0
+ );
DEBUG_r(PerlIO_printf(Perl_debug_log,
"%s anchored substr `%s%.*s%s'%s",
(s ? "Found" : "Contradicts"),
PL_colors[0],
- (int)(SvCUR(prog->anchored_substr)
- - (SvTAIL(prog->anchored_substr)!=0)),
- SvPVX(prog->anchored_substr),
- PL_colors[1], (SvTAIL(prog->anchored_substr) ? "$" : "")));
+ (int)(SvCUR(must)
+ - (SvTAIL(must)!=0)),
+ SvPVX(must),
+ PL_colors[1], (SvTAIL(must) ? "$" : "")));
if (!s) {
if (last1 >= last2) {
DEBUG_r(PerlIO_printf(Perl_debug_log,
}
}
else { /* Take into account the floating substring. */
- char *last, *last1;
- char *s1 = s;
-
- t = HOP3c(s, -start_shift, strbeg);
- last1 = last =
- HOP3c(strend, -prog->minlen + prog->float_min_offset, strbeg);
- if (CHR_DIST((U8*)last, (U8*)t) > prog->float_max_offset)
- last = HOP3c(t, prog->float_max_offset, strend);
- s = HOP3c(t, prog->float_min_offset, strend);
- if (s < other_last)
- s = other_last;
+ char *last, *last1;
+ char *s1 = s;
+ SV* must;
+
+ t = HOP3c(s, -start_shift, strbeg);
+ last1 = last =
+ HOP3c(strend, -prog->minlen + prog->float_min_offset, strbeg);
+ if (CHR_DIST((U8*)last, (U8*)t) > prog->float_max_offset)
+ last = HOP3c(t, prog->float_max_offset, strend);
+ s = HOP3c(t, prog->float_min_offset, strend);
+ if (s < other_last)
+ s = other_last;
/* XXXX It is not documented what units *_offsets are in. Assume bytes. */
- /* fbm_instr() takes into account exact value of end-of-str
- if the check is SvTAIL(ed). Since false positives are OK,
- and end-of-str is not later than strend we are OK. */
+ must = do_utf8 ? prog->float_utf8 : prog->float_substr;
+ /* fbm_instr() takes into account exact value of end-of-str
+ if the check is SvTAIL(ed). Since false positives are OK,
+ and end-of-str is not later than strend we are OK. */
+ if (must == &PL_sv_undef) {
+ s = (char*)NULL;
+ DEBUG_r(must = prog->float_utf8); /* for debug message */
+ }
+ else
s = fbm_instr((unsigned char*)s,
- (unsigned char*)last + SvCUR(prog->float_substr)
- - (SvTAIL(prog->float_substr)!=0),
- prog->float_substr, PL_multiline ? FBMrf_MULTILINE : 0);
- DEBUG_r(PerlIO_printf(Perl_debug_log, "%s floating substr `%s%.*s%s'%s",
- (s ? "Found" : "Contradicts"),
- PL_colors[0],
- (int)(SvCUR(prog->float_substr)
- - (SvTAIL(prog->float_substr)!=0)),
- SvPVX(prog->float_substr),
- PL_colors[1], (SvTAIL(prog->float_substr) ? "$" : "")));
- if (!s) {
- if (last1 == last) {
- DEBUG_r(PerlIO_printf(Perl_debug_log,
- ", giving up...\n"));
- goto fail_finish;
- }
+ (unsigned char*)last + SvCUR(must)
+ - (SvTAIL(must)!=0),
+ must, PL_multiline ? FBMrf_MULTILINE : 0);
+ DEBUG_r(PerlIO_printf(Perl_debug_log, "%s floating substr `%s%.*s%s'%s",
+ (s ? "Found" : "Contradicts"),
+ PL_colors[0],
+ (int)(SvCUR(must) - (SvTAIL(must)!=0)),
+ SvPVX(must),
+ PL_colors[1], (SvTAIL(must) ? "$" : "")));
+ if (!s) {
+ if (last1 == last) {
DEBUG_r(PerlIO_printf(Perl_debug_log,
- ", trying anchored starting at offset %ld...\n",
- (long)(s1 + 1 - i_strpos)));
- other_last = last;
- s = HOP3c(t, 1, strend);
- goto restart;
- }
- else {
- DEBUG_r(PerlIO_printf(Perl_debug_log, " at offset %ld...\n",
- (long)(s - i_strpos)));
- other_last = s; /* Fix this later. --Hugo */
- s = s1;
- if (t == strpos)
- goto try_at_start;
- goto try_at_offset;
+ ", giving up...\n"));
+ goto fail_finish;
}
+ DEBUG_r(PerlIO_printf(Perl_debug_log,
+ ", trying anchored starting at offset %ld...\n",
+ (long)(s1 + 1 - i_strpos)));
+ other_last = last;
+ s = HOP3c(t, 1, strend);
+ goto restart;
+ }
+ else {
+ DEBUG_r(PerlIO_printf(Perl_debug_log, " at offset %ld...\n",
+ (long)(s - i_strpos)));
+ other_last = s; /* Fix this later. --Hugo */
+ s = s1;
+ if (t == strpos)
+ goto try_at_start;
+ goto try_at_offset;
+ }
}
}
while (t < strend - prog->minlen) {
if (*t == '\n') {
if (t < check_at - prog->check_offset_min) {
- if (prog->anchored_substr) {
+ if (do_utf8 ? prog->anchored_utf8 : prog->anchored_substr) {
/* Since we moved from the found position,
we definitely contradict the found anchored
substr. Due to the above check we do not
}
s = t;
set_useful:
- ++BmUSEFUL(prog->check_substr); /* hooray/5 */
+ ++BmUSEFUL(do_utf8 ? prog->check_utf8 : prog->check_substr); /* hooray/5 */
}
else {
/* The found string does not prohibit matching at strpos,
);
success_at_start:
if (!(prog->reganch & ROPT_NAUGHTY) /* XXXX If strpos moved? */
- && prog->check_substr /* Could be deleted already */
- && --BmUSEFUL(prog->check_substr) < 0
- && prog->check_substr == prog->float_substr)
+ && (do_utf8 ? (
+ prog->check_utf8 /* Could be deleted already */
+ && --BmUSEFUL(prog->check_utf8) < 0
+ && (prog->check_utf8 == prog->float_utf8)
+ ) : (
+ prog->check_substr /* Could be deleted already */
+ && --BmUSEFUL(prog->check_substr) < 0
+ && (prog->check_substr == prog->float_substr)
+ )))
{
/* If flags & SOMETHING - do not do it many times on the same match */
DEBUG_r(PerlIO_printf(Perl_debug_log, "... Disabling check substring...\n"));
- SvREFCNT_dec(prog->check_substr);
- prog->check_substr = Nullsv; /* disable */
- prog->float_substr = Nullsv; /* clear */
+ SvREFCNT_dec(do_utf8 ? prog->check_utf8 : prog->check_substr);
+ if (do_utf8 ? prog->check_substr : prog->check_utf8)
+ SvREFCNT_dec(do_utf8 ? prog->check_substr : prog->check_utf8);
+ prog->check_substr = prog->check_utf8 = Nullsv; /* disable */
+ prog->float_substr = prog->float_utf8 = Nullsv; /* clear */
check = Nullsv; /* abort */
s = strpos;
/* XXXX This is a remnant of the old implementation. It
int cl_l = (PL_regkind[(U8)OP(prog->regstclass)] == EXACT
? CHR_DIST(str+STR_LEN(prog->regstclass), str)
: 1);
- char *endpos = (prog->anchored_substr || ml_anch)
+ char *endpos = (prog->anchored_substr || prog->anchored_utf8 || ml_anch)
? HOP3c(s, (prog->minlen ? cl_l : 0), strend)
- : (prog->float_substr
+ : (prog->float_substr || prog->float_utf8
? HOP3c(HOP3c(check_at, -start_shift, strbeg),
cl_l, strend)
: strend);
if ((prog->reganch & ROPT_ANCH) && !ml_anch)
goto fail;
/* Contradict one of substrings */
- if (prog->anchored_substr) {
- if (prog->anchored_substr == check) {
+ if (prog->anchored_substr || prog->anchored_utf8) {
+ if ((do_utf8 ? prog->anchored_utf8 : prog->anchored_substr) == check) {
DEBUG_r( what = "anchored" );
hop_and_restart:
s = HOP3c(t, 1, strend);
PL_colors[0],PL_colors[1], (long)(t - i_strpos)) );
goto try_at_offset;
}
- if (!prog->float_substr) /* Could have been deleted */
+ if (!(do_utf8 ? prog->float_utf8 : prog->float_substr)) /* Could have been deleted */
goto fail;
/* Check is floating subtring. */
retry_floating_check:
return s;
fail_finish: /* Substring not found */
- if (prog->check_substr) /* could be removed already */
- BmUSEFUL(prog->check_substr) += 5; /* hooray */
+ if (prog->check_substr || prog->check_utf8) /* could be removed already */
+ BmUSEFUL(do_utf8 ? prog->check_utf8 : prog->check_substr) += 5; /* hooray */
fail:
DEBUG_r(PerlIO_printf(Perl_debug_log, "%sMatch rejected by optimizer%s\n",
PL_colors[4],PL_colors[5]));
PL_reg_ganch = strbeg;
}
- if (do_utf8 == (UTF!=0) &&
- !(flags & REXEC_CHECKED) && prog->check_substr != Nullsv) {
+ if (!(flags & REXEC_CHECKED) && (prog->check_substr != Nullsv || prog->check_utf8 != Nullsv)) {
re_scream_pos_data d;
d.scream_olds = &scream_olds;
dontbother = minlen - 1;
end = HOP3c(strend, -dontbother, strbeg) - 1;
/* for multiline we only have to try after newlines */
- if (prog->check_substr) {
+ if (prog->check_substr || prog->check_utf8) {
if (s == startpos)
goto after_try;
while (1) {
}
/* Messy cases: unanchored match. */
- if (prog->anchored_substr && prog->reganch & ROPT_SKIP) {
+ if ((prog->anchored_substr || prog->anchored_utf8) && prog->reganch & ROPT_SKIP) {
/* we have /x+whatever/ */
/* it must be a one character string (XXXX Except UTF?) */
- char ch = SvPVX(prog->anchored_substr)[0];
+ char ch;
#ifdef DEBUGGING
int did_match = 0;
#endif
+ if (!(do_utf8 ? prog->anchored_utf8 : prog->anchored_substr))
+ do_utf8 ? to_utf8_substr(prog) : to_byte_substr(prog);
+ ch = SvPVX(do_utf8 ? prog->anchored_utf8 : prog->anchored_substr)[0];
if (do_utf8) {
while (s < strend) {
);
}
/*SUPPRESS 560*/
- else if (do_utf8 == (UTF!=0) &&
- (prog->anchored_substr != Nullsv
- || (prog->float_substr != Nullsv
- && prog->float_max_offset < strend - s))) {
- SV *must = prog->anchored_substr
- ? prog->anchored_substr : prog->float_substr;
- I32 back_max =
- prog->anchored_substr ? prog->anchored_offset : prog->float_max_offset;
- I32 back_min =
- prog->anchored_substr ? prog->anchored_offset : prog->float_min_offset;
- char *last = HOP3c(strend, /* Cannot start after this */
- -(I32)(CHR_SVLEN(must)
- - (SvTAIL(must) != 0) + back_min), strbeg);
+ else if (prog->anchored_substr != Nullsv
+ || prog->anchored_utf8 != Nullsv
+ || ((prog->float_substr != Nullsv || prog->float_utf8 != Nullsv)
+ && prog->float_max_offset < strend - s)) {
+ SV *must;
+ I32 back_max;
+ I32 back_min;
+ char *last;
char *last1; /* Last position checked before */
#ifdef DEBUGGING
int did_match = 0;
#endif
+ if (prog->anchored_substr || prog->anchored_utf8) {
+ if (!(do_utf8 ? prog->anchored_utf8 : prog->anchored_substr))
+ do_utf8 ? to_utf8_substr(prog) : to_byte_substr(prog);
+ must = do_utf8 ? prog->anchored_utf8 : prog->anchored_substr;
+ back_max = back_min = prog->anchored_offset;
+ } else {
+ if (!(do_utf8 ? prog->float_utf8 : prog->float_substr))
+ do_utf8 ? to_utf8_substr(prog) : to_byte_substr(prog);
+ must = do_utf8 ? prog->float_utf8 : prog->float_substr;
+ back_max = prog->float_max_offset;
+ back_min = prog->float_min_offset;
+ }
+ if (must == &PL_sv_undef)
+ /* could not downgrade utf8 check substring, so must fail */
+ goto phooey;
+
+ last = HOP3c(strend, /* Cannot start after this */
+ -(I32)(CHR_SVLEN(must)
+ - (SvTAIL(must) != 0) + back_min), strbeg);
if (s > PL_bostr)
last1 = HOPc(s, -1);
DEBUG_r(if (!did_match)
PerlIO_printf(Perl_debug_log,
"Did not find %s substr `%s%.*s%s'%s...\n",
- ((must == prog->anchored_substr)
+ ((must == prog->anchored_substr || must == prog->anchored_utf8)
? "anchored" : "floating"),
PL_colors[0],
(int)(SvCUR(must) - (SvTAIL(must)!=0)),
}
else {
dontbother = 0;
- if (prog->float_substr != Nullsv) { /* Trim the end. */
+ if (prog->float_substr != Nullsv || prog->float_utf8 != Nullsv) {
+ /* Trim the end. */
char *last;
+ SV* float_real;
+
+ if (!(do_utf8 ? prog->float_utf8 : prog->float_substr))
+ do_utf8 ? to_utf8_substr(prog) : to_byte_substr(prog);
+ float_real = do_utf8 ? prog->float_utf8 : prog->float_substr;
if (flags & REXEC_SCREAM) {
- last = screaminstr(sv, prog->float_substr, s - strbeg,
+ last = screaminstr(sv, float_real, s - strbeg,
end_shift, &scream_pos, 1); /* last one */
if (!last)
last = scream_olds; /* Only one occurrence. */
}
else {
STRLEN len;
- char *little = SvPV(prog->float_substr, len);
+ char *little = SvPV(float_real, len);
- if (SvTAIL(prog->float_substr)) {
+ if (SvTAIL(float_real)) {
if (memEQ(strend - len + 1, little, len - 1))
last = strend - len + 1;
else if (!PL_multiline)
PL_curpm = PL_reg_oldcurpm;
}
}
+
+STATIC void
+S_to_utf8_substr(pTHX_ register regexp *prog)
+{
+ SV* sv;
+ if (prog->float_substr && !prog->float_utf8) {
+ prog->float_utf8 = sv = NEWSV(117, 0);
+ SvSetMagicSV(sv, prog->float_substr);
+ sv_utf8_upgrade(sv);
+ if (SvTAIL(prog->float_substr))
+ SvTAIL_on(sv);
+ if (prog->float_substr == prog->check_substr)
+ prog->check_utf8 = sv;
+ }
+ if (prog->anchored_substr && !prog->anchored_utf8) {
+ prog->anchored_utf8 = sv = NEWSV(118, 0);
+ SvSetMagicSV(sv, prog->anchored_substr);
+ sv_utf8_upgrade(sv);
+ if (SvTAIL(prog->anchored_substr))
+ SvTAIL_on(sv);
+ if (prog->anchored_substr == prog->check_substr)
+ prog->check_utf8 = sv;
+ }
+}
+
+STATIC void
+S_to_byte_substr(pTHX_ register regexp *prog)
+{
+ SV* sv;
+ if (prog->float_utf8 && !prog->float_substr) {
+ prog->float_substr = sv = NEWSV(117, 0);
+ SvSetMagicSV(sv, prog->float_utf8);
+ if (sv_utf8_downgrade(sv, TRUE)) {
+ if (SvTAIL(prog->float_utf8))
+ SvTAIL_on(sv);
+ } else {
+ SvREFCNT_dec(sv);
+ prog->float_substr = sv = &PL_sv_undef;
+ }
+ if (prog->float_utf8 == prog->check_utf8)
+ prog->check_substr = sv;
+ }
+ if (prog->anchored_utf8 && !prog->anchored_substr) {
+ prog->anchored_substr = sv = NEWSV(118, 0);
+ SvSetMagicSV(sv, prog->anchored_utf8);
+ if (sv_utf8_downgrade(sv, TRUE)) {
+ if (SvTAIL(prog->anchored_utf8))
+ SvTAIL_on(sv);
+ } else {
+ SvREFCNT_dec(sv);
+ prog->anchored_substr = sv = &PL_sv_undef;
+ }
+ if (prog->anchored_utf8 == prog->check_utf8)
+ prog->check_substr = sv;
+ }
+}
s->min_offset = r->substrs->data[i].min_offset;
s->max_offset = r->substrs->data[i].max_offset;
s->substr = sv_dup_inc(r->substrs->data[i].substr, param);
+ s->utf8_substr = sv_dup_inc(r->substrs->data[i].utf8_substr, param);
}
ret->regstclass = NULL;
$needs_fh_reopen = 1 if (defined &Win32::IsWin95 && Win32::IsWin95());
+my $skip_mode_checks =
+ $^O eq 'cygwin' && $ENV{CYGWIN} !~ /ntsec/;
+
plan tests => 36;
SKIP: {
skip "hard links not that hard in $^O", 1 if $^O eq 'amigaos';
+ skip "no mode checks", 1 if $skip_mode_checks;
- is($mode & 0777, 0666, "mode of triply-linked file");
+ if ($^O eq 'cygwin') { # new files on cygwin get rwx instead of rw-
+ is($mode & 0777, 0777, "mode of triply-linked file");
+ } else {
+ is($mode & 0777, 0666, "mode of triply-linked file");
+ }
}
}
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
$blksize,$blocks) = stat('c');
- is($mode & 0777, $newmode, "chmod going through");
+ SKIP: {
+ skip "no mode checks", 1 if $skip_mode_checks;
+
+ is($mode & 0777, $newmode, "chmod going through");
+ }
$newmode = 0700;
chmod 0444, 'x';
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
$blksize,$blocks) = stat('c');
- is($mode & 0777, $newmode, "chmod going through to c");
+ SKIP: {
+ skip "no mode checks", 1 if $skip_mode_checks;
+
+ is($mode & 0777, $newmode, "chmod going through to c");
+ }
($dev,$ino,$mode,$nlink,$uid,$gid,$rdev,$size,$atime,$mtime,$ctime,
$blksize,$blocks) = stat('x');
- is($mode & 0777, $newmode, "chmod going through to x");
+ SKIP: {
+ skip "no mode checks", 1 if $skip_mode_checks;
+
+ is($mode & 0777, $newmode, "chmod going through to x");
+ }
is(unlink('b','x'), 2, "unlink two files");
my @Core_Modules = sort keys %Core_Modules;
-print "1..".@Core_Modules."\n";
+print "1..".(1+@Core_Modules)."\n";
-my $test_num = 1;
+my $message
+ = "ok 1 - All modules should have tests # TODO Make Schwern Poorer\n";
+if (@Core_Modules) {
+ print "not $message";
+} else {
+ print $message;
+}
+
+my $test_num = 2;
foreach my $module (@Core_Modules) {
print "$module compile failed\nnot " unless compile_module($module);
Carp::Heavy
CPAN::Nox
Exporter::Heavy
+ExtUtils::Command
ExtUtils::Constant
+ExtUtils::Embed
+ExtUtils::Installed
ExtUtils::MakeMaker
+ExtUtils::Manifest
+ExtUtils::Mkbootstrap
+ExtUtils::Packlist
+File::Spec::Functions
Filter::Util::Call
GDBM_File
I18N::LangTags::List
Locale::Country
Locale::Currency
Locale::Language
+Locale::Script
MIME::QuotedPrint
Math::BigFloat
Math::BigInt::Calc
ODBM_File
Pod::Checker
Pod::Find
+Pod::Functions
Pod::Html
+Pod::InputObjects
Pod::LaTeX
Pod::Man
Pod::ParseLink
Pod::ParseUtils
+Pod::Select
Pod::Text
Pod::Text::Overstrike
Pod::Text::Termcap
Safe
Scalar::Util
Sys::Syslog
+Test::Builder
+Test::Harness::Assert
+Test::Harness::Straps
Test::More
Test::ParseWords
Text::Tabs
$rc = system "lskdfj";
-unless( ok($rc == 255 << 8 or $rc == -1 or $rc == 256) ) {
+unless( ok($rc == 255 << 8 or $rc == -1 or $rc == 256 or $rc == 512) ) {
print "# \$rc == $rc\n";
}
eval '$ENV{"FOO"} = "hi there";'; # check that ENV is inited inside eval
# cmd.exe will echo 'variable=value' but 4nt will echo just the value
# -- Nikola Knezevic
-if ($Is_MSWin32) { ok `set FOO` =~ /^(FOO=)?hi there$/; }
+if ($Is_MSWin32) { ok `set FOO` =~ /^(?:FOO=)?hi there$/; }
elsif ($Is_MacOS) { ok "1 # skipped", 1; }
elsif ($Is_VMS) { ok `write sys\$output f\$trnlnm("FOO")` eq "hi there\n"; }
else { ok `echo \$FOO` eq "hi there\n"; }
$0 = "bar";
# cmd.exe will echo 'variable=value' but 4nt will echo just the value
# -- Nikola Knezevic
- ok ($Is_MSWin32 ? (`set __NoNeSuCh` =~ /^(__NoNeSuCh=)?foo$/)
+ ok ($Is_MSWin32 ? (`set __NoNeSuCh` =~ /^(?:__NoNeSuCh=)?foo$/)
: (`echo \$__NoNeSuCh` eq "foo\n") );
}
$| = 1;
-print "1..864\n";
+print "1..892\n";
BEGIN {
chdir 't' if -d 't';
print $u eq "feeber" ? "ok 864\n" : "not ok 864\n";
}
+{
+ print "# UTF-8 bug with s///\n";
+ # check utf8/non-utf8 mixtures
+ # try to force all float/anchored check combinations
+ my $c = "\x{100}";
+ my $test = 865;
+ my $subst;
+ for my $re (
+ "xx.*$c", "x.*$c$c", "$c.*xx", "$c$c.*x", "xx.*(?=$c)", "(?=$c).*xx",
+ ) {
+ print "xxx" =~ /$re/ ? "not ok $test\n" : "ok $test\n";
+ ++$test;
+ print +($subst = "xxx") =~ s/$re// ? "not ok $test\n" : "ok $test\n";
+ ++$test;
+ }
+ for my $re ("xx.*$c*", "$c*.*xx") {
+ print "xxx" =~ /$re/ ? "ok $test\n" : "not ok $test\n";
+ ++$test;
+ ($subst = "xxx") =~ s/$re//;
+ print $subst eq '' ? "ok $test\n" : "not ok $test\t# $subst\n";
+ ++$test;
+ }
+ for my $re ("xxy*", "y*xx") {
+ print "xx$c" =~ /$re/ ? "ok $test\n" : "not ok $test\n";
+ ++$test;
+ ($subst = "xx$c") =~ s/$re//;
+ print $subst eq $c ? "ok $test\n" : "not ok $test\n";
+ ++$test;
+ print "xy$c" =~ /$re/ ? "not ok $test\n" : "ok $test\n";
+ ++$test;
+ print +($subst = "xy$c") =~ /$re/ ? "not ok $test\n" : "ok $test\n";
+ ++$test;
+ }
+ for my $re ("xy$c*z", "x$c*yz") {
+ print "xyz" =~ /$re/ ? "ok $test\n" : "not ok $test\n";
+ ++$test;
+ ($subst = "xyz") =~ s/$re//;
+ print $subst eq '' ? "ok $test\n" : "not ok $test\n";
+ ++$test;
+ }
+}
if (thr && PL_curcop) {
#endif
if (ckWARN(WARN_MISC)) {
- Perl_warner(aTHX_ WARN_MISC,"Value of CLI symbol \"%s\" too long",lnm);
+ Perl_warner(aTHX_ packWARN(WARN_MISC),"Value of CLI symbol \"%s\" too long",lnm);
}
#if defined(USE_5005THREADS)
} else {
- Perl_warner(aTHX_ WARN_MISC,"Value of CLI symbol \"%s\" too long",lnm);
+ Perl_warner(aTHX_ packWARN(WARN_MISC),"Value of CLI symbol \"%s\" too long",lnm);
}
#endif
for (j = 0; environ[j]; j++) {
if (!(start = strchr(environ[j],'='))) {
if (ckWARN(WARN_INTERNAL))
- Perl_warner(aTHX_ WARN_INTERNAL,"Ill-formed CRTL environ value \"%s\"\n",environ[j]);
+ Perl_warner(aTHX_ packWARN(WARN_INTERNAL),"Ill-formed CRTL environ value \"%s\"\n",environ[j]);
}
else {
start++;
continue;
}
if (sts == SS$_BUFFEROVF && ckWARN(WARN_INTERNAL))
- Perl_warner(aTHX_ WARN_INTERNAL,"Buffer overflow in prime_env_iter: %s",buf);
+ Perl_warner(aTHX_ packWARN(WARN_INTERNAL),"Buffer overflow in prime_env_iter: %s",buf);
for (cp1 = buf; *cp1 && isspace(*cp1); cp1++) ;
if (*cp1 == '(' || /* Logical name table name */
cp1--; /* stop on last non-space char */
}
if ((!keylen || (cp1 - cp2 < -1)) && ckWARN(WARN_INTERNAL)) {
- Perl_warner(aTHX_ WARN_INTERNAL,"Ill-formed message in prime_env_iter: |%s|",buf);
+ Perl_warner(aTHX_ packWARN(WARN_INTERNAL),"Ill-formed message in prime_env_iter: |%s|",buf);
continue;
}
PERL_HASH(hash,key,keylen);
ivenv = 1; retsts = SS$_NOLOGNAM;
#else
if (ckWARN(WARN_INTERNAL))
- Perl_warner(aTHX_ WARN_INTERNAL,"This Perl can't reset CRTL environ elements (%s)",lnm);
+ Perl_warner(aTHX_ packWARN(WARN_INTERNAL),"This Perl can't reset CRTL environ elements (%s)",lnm);
ivenv = 1; retsts = SS$_NOSUCHPGM;
break;
}
return setenv(lnm,eqv,1) ? vaxc$errno : 0;
#else
if (ckWARN(WARN_INTERNAL))
- Perl_warner(aTHX_ WARN_INTERNAL,"This Perl can't set CRTL environ elements (%s=%s)",lnm,eqv);
+ Perl_warner(aTHX_ packWARN(WARN_INTERNAL),"This Perl can't set CRTL environ elements (%s=%s)",lnm,eqv);
retsts = SS$_NOSUCHPGM;
#endif
}
if (eqvdsc.dsc$w_length > LNM$C_NAMLENGTH) {
eqvdsc.dsc$w_length = LNM$C_NAMLENGTH;
if (ckWARN(WARN_MISC)) {
- Perl_warner(aTHX_ WARN_MISC,"Value of logical \"%s\" too long. Truncating to %i bytes",lnm, LNM$C_NAMLENGTH);
+ Perl_warner(aTHX_ packWARN(WARN_MISC),"Value of logical \"%s\" too long. Truncating to %i bytes",lnm, LNM$C_NAMLENGTH);
}
}
retsts = lib$set_logical(&lnmdsc,&eqvdsc,tabvec[0],0,0);
tpipe = vmspipe_tempfile(aTHX);
if (!tpipe) { /* a fish popular in Boston */
if (ckWARN(WARN_PIPE)) {
- Perl_warner(aTHX_ WARN_PIPE,"unable to find VMSPIPE.COM for i/o piping");
+ Perl_warner(aTHX_ packWARN(WARN_PIPE),"unable to find VMSPIPE.COM for i/o piping");
}
return Nullfp;
}
}
set_vaxc_errno(sts);
if (*mode != 'n' && ckWARN(WARN_PIPE)) {
- Perl_warner(aTHX_ WARN_PIPE,"Can't pipe \"%*s\": %s", strlen(cmd), cmd, Strerror(errno));
+ Perl_warner(aTHX_ packWARN(WARN_PIPE),"Can't pipe \"%*s\": %s", strlen(cmd), cmd, Strerror(errno));
}
*psts = sts;
return Nullfp;
/* remind folks they are asking for non-standard waitpid behavior */
_ckvmssts(lib$getjpi(&pidcode,0,0,&mypid,0,0));
if (ownerpid != mypid)
- Perl_warner(aTHX_ WARN_EXEC,
+ Perl_warner(aTHX_ packWARN(WARN_EXEC),
"waitpid: process %x is not a child of process %x",
pid,mypid);
}
}
set_vaxc_errno(retsts);
if (ckWARN(WARN_EXEC)) {
- Perl_warner(aTHX_ WARN_EXEC,"Can't exec \"%*s\": %s",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC),"Can't exec \"%*s\": %s",
vmscmd->dsc$w_length, vmscmd->dsc$a_pointer, Strerror(errno));
}
vms_execfree(vmscmd);
}
set_vaxc_errno(sts);
if (ckWARN(WARN_EXEC)) {
- Perl_warner(aTHX_ WARN_EXEC,"Can't spawn: %s",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC),"Can't spawn: %s",
Strerror(errno));
}
}
$(PERLEXE) -I..\lib harness
cd ..\win32
+_test :
+ $(XCOPY) $(PERLEXE) ..\t\$(NULL)
+ $(XCOPY) $(PERLDLL) ..\t\$(NULL)
+ $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
+ cd ..\t
+ $(PERLEXE) -I..\lib harness
+ cd ..\win32
+
clean : Extensions_clean
-@$(DEL) miniperlmain$(o)
-@$(DEL) $(MINIPERL)
cd ..\t
$(PERLEXE) -I..\lib harness
cd ..\win32
+
+_test :
+ $(XCOPY) $(PERLEXE) ..\t\$(NULL)
+ $(XCOPY) $(PERLDLL) ..\t\$(NULL)
+ $(XCOPY) $(GLOBEXE) ..\t\$(NULL)
+ cd ..\t
+ $(PERLEXE) -I..\lib harness
+ cd ..\win32
clean :
-@erase miniperlmain$(o)
else {
if (status < 0) {
if (ckWARN(WARN_EXEC))
- Perl_warner(aTHX_ WARN_EXEC, "Can't spawn \"%s\": %s", argv[0], strerror(errno));
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't spawn \"%s\": %s", argv[0], strerror(errno));
status = 255 * 256;
}
else
else {
if (status < 0) {
if (ckWARN(WARN_EXEC))
- Perl_warner(aTHX_ WARN_EXEC, "Can't %s \"%s\": %s",
+ Perl_warner(aTHX_ packWARN(WARN_EXEC), "Can't %s \"%s\": %s",
(exectype == EXECF_EXEC ? "exec" : "spawn"),
cmd, strerror(errno));
status = 255 * 256;